09 Mar 2021
如何用手机发博客
承接上一篇从手机发出来的博客,讲一下是如何实现的。不过,这篇是在电脑写的。
(●'◡'●)
缘起
最初用静态博客的时候,觉得每次写好了markdown,还要生成一下HTML十分的麻烦。后来Github官推了Jekyll,并且有了Actions的功能,算是解决了这个通点吧。
我这里的原理也是基于Github Actions去做的,下面具体的看一下是如何实现的吧。
实现
总共有三步
把冰箱门打开
这一步是把当前的仓库 checkout
下来。
- uses: actions/checkout@v2 with: persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token fetch-depth: 0 # otherwise, you will failed to push refs to dest repo
把大象装进去
这一步先是安装 Emacs 27.1
,然后执行 render.bat
。
- uses: jcs090218/setup-emacs-windows@master with: version: 27.1 - name: Render HTML run: ./scripts/render.bat
render.bat
主要是调用 Emacs
去执行 render.el
脚本。
render.bat
:
emacs -q -nw --batch --load "./scripts/render.el"
render.el
:
(set-language-environment "UTF-8") (setq make-backup-files nil) (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/")) (package-initialize) (package-refresh-contents) (package-install 'org-static-blog) (package-install 'htmlize) (setq fiery-blog-title "Les Frites") (setq fiery-blog-url "https://fieryzig.github.io") (setq org-static-blog-publish-title fiery-blog-title) (setq org-static-blog-publish-url fiery-blog-url) (setq org-static-blog-publish-directory "./") (setq org-static-blog-posts-directory "posts/") (setq org-static-blog-drafts-directory "drafts/") (setq org-static-blog-enable-tags t) (setq org-static-blog-use-preview t) (setq org-static-blog-preview-ellipsis "<p>......</p>") (setq org-static-blog-preview-link-p t) (setq org-export-with-toc nil) (setq org-export-with-section-numbers nil) (setq org-static-blog-page-header "<meta name=\"author\" content=\"fieryzig\"> <meta name=\"referrer\" content=\"no-referrer\"> <link href=\"static/style.css\" rel=\"stylesheet\" type=\"text/css\" /> ") (setq org-static-blog-page-preamble (concat "<div class=\"header\"> <h1><a href=\"https://fieryzig.github.io\" class=\"title\">" fiery-blog-title "</a></h1> <p class=\"text-muted\">fieryzig's blog</p> <ul class=\"list-inline\"> <li class=\"list-inline-item\"><a href=\"https://fieryzig.github.io/about.html\">About</a></li> <li class=\"list-inline-item\"><a href=\"https://fieryzig.github.io/tags.html\">Tags</a></li> </ul> </div>")) (setq org-static-blog-page-postamble "") (org-static-blog-publish)
这里有三个地方需要留意一下:
(set-language-environment "UTF-8")
设置默认的编码为UTF-8
(setq make-backup-files nil)
关闭备份文件- 记得最后调用
(org-static-blog-publish)
把冰箱门带上
最后把项目再Commit Push上,就OK了。
- name: Commit & Push uses: actions-js/push@master with: github_token: ${{ secrets.GITHUB_TOKEN }}
完整的代码详见:
https://github.com/fieryzig/fieryzig.github.io/blob/master/.github/workflows/main.yml