postToBlog / post2blog 是 shell 脚本,用于在终端将 Markdown 文件发布到基于 Jekyll 的 GitHub Pages 个人博客。
其中 post2blog 是 postToBlog 的升级版:主要区别在于 post2blog 能自动处理链接的本地文件(如图片、文档)。注意脚本只会复制本地文件到你的 github.io,以 http 或 https 开头的超链接不会被处理。
安装
- postToBlog:将
dispOptions.sh与postToBlog.sh复制到任意$PATH中的目录,重新打开终端即可。 - post2blog:将
post2blog.sh复制到任意目录,并软链接到$PATH中的目录(如/usr/local/bin),重新打开终端即可。
配置
打开脚本并按提示修改。以 post2blog.sh 为例:
- 修改
_my_repository_addresses为你的博客仓库目录,通常命名为<YourGithubCount>.github.io,脚本默认使用第一个。
_my_repository_addresses=("Directory to your github.io" "Directory to your github.io")
- 修改
_posts_address与_posts_sub_address为文章目录的相对路径。通常_posts_address为_posts/无需改动,_posts_sub_address用于将文件归入默认子目录。
_posts_address="_posts/"
_posts_sub_address=`date +"%Y-%m/"` #classify your files by yyyy-mm for instance
- 修改
_assets_address为资源目录相对路径。脚本会在该目录下按yyyy-mm建子目录对图片/文档按月归类,并将文件重命名为超链接的键值,例如键值[This is a test name]对应的输出文件名为This-is-a-test-name。
_assets_address="assets/" #directory of your assets
- 通过
_mfile指定默认输入文件名。 - 设置 Jekyll 需要的头部信息,
_layout的值必须在 Jekyll 样式中定义。
_layout='post' #using the layout named post
_categories='Command Line Tools' #example category
_tags='shell,git,jekyll' #example tags
用法
post2blog [-i<markdown-file>] [-l<layout>] [-T<title>] [-c<categories>] [-t<tags>] [-s<sub-directory>] [-S] [-V] [-r] [-h]
配置正确时,多数情况无需任何参数即可运行。需要时可用以下选项:
- -i:输入 Markdown 文件。
- -l:文章的 layout。
- -T:博客标题。默认使用输入文件中 h1 级标题;若未找到则需手动输入,使用此选项可覆盖标题。
- -c:文章分类,多个分类用逗号分隔。
- -t:文章标签,多个标签用逗号分隔。
- -s:用于文件归类的子目录。
- -S:保存一份输出文件副本,文件名按 Jekyll 规则由日期与标题用
-连接而成,标题中的!、:等特殊符号会被删除。 - -V:以静默模式运行。
- -r:从
_my_repository_addresses中选择仓库。 - -h:显示帮助信息。
示例
发布当前正在阅读的文件:
post2blog -i README.md -c "Command Line Tools" -t "Shell,Git,Jekyll"