跳过正文

如何创建个人 Blog

·1482 字·3 分钟
目录

这里有三个概念首先需要理清:

  1. 用 org-mode 模式写文章,并将 org 格式的文章转换为 markdown 格式,以便 hugo 可以识别;
  2. 使用 hugo 建立静态网页;
  3. 将本地静态网页发布到互联网上。

org-mode 写文档
#

org-mode 是一种标记模式,把文档的内容和格式分开,这样所有的文档都是文本模式。org-mode 模式已经被很多编辑器支持了,但还是 Emacs 支持得最好。因此,请参考 org mode 网站,学习如何使用 org-mode 模式。

hugo 制作网页
#

hugo 是一个静态网站生成器。所谓网站,就是有逻辑关系的各 html 网页组成的集合。html 本质上也是一种标记语言,呈现的样式用特殊的标记来指明。由于组成网站的每个 html 网页的样式基本是相同的,因此,对于网站来说,更好的方式是把样式统一在一起。这些样式说明文件以 css 语言最为流行。

快速建立网站
#

hugo quickstart 介绍了如何使用 hugo 快速建立一个网站,非常实用。这里我将模仿使用的命令记录如下:

1
2
3
4
5
6
hugo new site quickstart
cd quickstart
git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke
echo "theme = 'ananke'" >> config.toml
hugo server

进入建立好的 quickstart 目录,检查 hugo 大致的目录结构如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
├── archetypes
├── assets
├── config.toml
├── content
├── data
├── layouts
├── public
├── resources
├── static
└── themes

其中,

  • config.toml 文件为基本设置文件,网站样式都可以在这里指定。
  • themes 下包含多种不同的样式模版,可以到网上寻找喜欢的模版并改造。1
  • content/post 目录下是原始的文章内容,hugo 只认 markdwon 格式的。
  • public 目录下所有的内容可以打包发布出去。

本地浏览网站
#

在 hugo 网站目录下执行:

1
hugo server -D

然后打开浏览器,输入网址:http://127.0.0.1:1313 。则可以浏览网站所有内容。

发布网站内容
#

在 hugo 网站目录下执行:

1
hugo

则在 public 目录下会生成所有静态网站所需的全部文档,把这个目录下的所有内容拷贝到支持的域名中即可。

ox-hugo
#

org-mode 写成的 .org 文档,可以直接输出成 .md 格式。然后拷贝到 hugo 网站的 content/post 目录下,用 hugo 进行管理,发布成静态网页。但这样的方式显得很“愚笨”,也不利于 org 的统一管理,尤其是想直接把 org-roam 建立的个人笔记系统中的文章发布在博客上。这时,我们可以采用 ox-hugo 宏包来方便处理。

  1. 在 emacs 的设置文件中加入:

    1
    2
    3
    4
    
    (use-package ox-hugo
      :ensure t
      :pin melpa
      :after ox)
  2. 在 hugo 网站下建立目录

    1
    
    mkdir content-org
  3. 在该目录下建立文件— all-posts.org,其表头内容如下:

    1
    2
    
    #+hugo_base_dir: ../
    #+hugo_section: ./post/

    这里,

    • HUGO_BASE_DIR: 这里是博客的根目录,因为我的 org 文件放在博客根目录下的 content-org,所以这里博客的根目录就是 “../” ,也就是本目录的上一层目录
    • HUGO_SECTION: 生成的 markdown 文件的位置,比如 “./post/” 就会将 markdown 文件生成在博客根目录下的 “content/post/”

    然后在里面按照 org-mode 的格式添加博客文章,比如:

    1
    2
    3
    4
    5
    
    ​*  DONE 使用 Org-Mode+ox-hugo+github page 创建个人 Blog       :tech:@技术:
      CLOSED: [2023-01-14 Sat 16:36] SCHEDULED: <2023-01-14 Sat>
      :PROPERTIES:
      :EXPORT_FILE_NAME: org-hugo-blog
      :END:

    即,每一篇博客文章都作为 all-posts.org 文件里的一级标题,且必须包含如下三行:

    1
    2
    3
    
    :PROPERTIES:
    :EXPORT_FILE_NAME: filename
    :END:

    状态为 DONE 的文章,才会被正式发布出去。如果是 TODO,则在本地预览时,也可看到。当然,还可以添加 tag 和 category。这样设置以后的文档出现在网站的不同分类中。

  4. 每当更新完一篇博客文章后,都在 all-posts.org 文件里执行:

    1
    2
    3
    
    C-c C-e
    H
    A

发布到 github 静态网站上
#

如果有域名,则可以将 public 目录下的所有内容拷贝上去即可。github 网站提供了一个免费的个人 blog 方法。

  1. 在 github 上建立 yourname.github.io 仓库。(注意:必须是你在 github 上的账号名作为 yourname。)

2。 在 public 目录下建立 git 仓库:

1
2
git init
git remote add github git@github.com:yourname/yourname.github.io.git

以后每次博客更新后,都按照 git 的方式提交就好了。

1
2
3
git add .
git commit -m "test"
git push -f github master

github.io 经常被屏蔽,可以尝试在阿里云上申请个人域名,再用域名解析的方式将 github.io 绑定。


  1. 采用他人的主题,大多数只需要修改 config.toml 文件即可。但若想完全改造成自己希望的样式,还是需要深入到目录内部。因此,一旦选定了某个 theme,好好地定制一下,不要随便更新。 ↩︎

相关文章

文档中插入图形

·1593 字·4 分钟
传统的文字-图形融合 # 一般文档主要是进行字处理,而文字的书写、编辑、排版和画图是截然不同的两种模式。虽然在计算机里最后都是处理成二进制代码,但不管在哪种操作系统中,画图软件和字处理软件都是分属于不同的类别。早期的文档如果想同时包含文字和图形,只能把文字先打印出来,留出空白,再用画图软件做好图,把图形打印出来,用胶水粘贴上去。话说这么麻烦的方法,我当年是干过的,读研究生的时候,为了给一个会议期刊投稿,用 xvgr 画好了图,然后用胶水粘在文字稿的空白处。这种“精巧的活”我干起来非常吃力,看着文稿上黑乎乎的手指印,欲哭无泪,重复了好多次 ……。

把 Emacs 打造为 Python IDE

·3104 字·7 分钟
集成开发环境(IDE)是一种帮助程序员高效开发软件代码的软件应用程序。它通过将软件编辑、构建、测试和打包等功能结合到一个易于使用的应用程序中,提高了开发人员的工作效率。就像作家使用文本编辑器,会计师使用电子表格一样,软件开发人员使用 IDE 让他们的工作变得更轻松。当前比较流行的 Python IDE 有 PyCharm, IDEA, VS CODE 等。 Emacs 作为一个可扩展的文本编辑器,处理各种文本数据是非常方便的。我们在 Emacs 里增加 elisp 扩展,就可以模拟各种 IDE 的环境,还能更好。

梅西“封王”,纪念一周年

·1721 字·4 分钟
距离阿根廷世界杯夺冠,刚刚一年。网上阿根廷的粉丝、梅西的粉丝热闹起来,到处都是回忆和开心的帖子。连梅西自己也在 ins 上连发两条,十几张照片。可见梅西心里也是久久不能忘怀的。更有财力雄厚的粉丝,继续在上海外滩包下大屏,滚动播放夺冠的镜头。于是,去年世界杯的各种场景,尤其决赛的画面,又浮现在脑海里,仿佛没有过去一年,而是一天。很多人在感慨,去年,我们“阳”了,梅西也“羊”了。(梅西去年正式被国际足联称为“Greatest of All Times”,简称 GOAT。)