使用 Publish 搭建静态博客
Publish 是什么?
Publish是一款静态网站生成器。它使用Swift构建整个网站,并支持主题、插件和其他大量的定制选项。
为什么要使用 Publish
接触到Publish是因为它的作者John Sundell,John Sundell 是国外Swift领域的技术大牛,发表了大量高质量的技术文章,笔者也从中受益匪浅,他的文章发布在 Swift by Sundell。这个站点正是使用他亲手开发的Publish框架来构建的。
Publish最吸引我的地方是整个框架全部由Swift进行构建,Swift语言是我目前主力开发语言,所以Publish让我感到非常亲切,对站点的定制化需求也会更得心应手,这种完全自己掌控的感觉太好了。
如何使用 Publish
安装
同大量的其他静态网站生成器一样,Publish提供了CLI。通过命令行快速完成创建模板、内容更新、远程发布等一系列操作 安装方式可以通过 brew 安装也可以通过源代码安装,这里使用 brew 安装 brew install publish
创建站点
创建一个 Blog 站点
mkdir blog
cd blog
publish new
Publish 会自动创建项目模版,结构如下:
|-- blog
| |-- Content
| |–– posts
| |–– first-post.md
| |–– index.md
| |–– index.md
| |-- Resources
| |-- Sources
| |–– blog
| |–– main.swift
Content目录存放markdown源文件 Resource目录存放资源文件,比如css 图片等 Source目录存放构建网站的源代码文件,比如main.swift里定义了站点的框架结构、主题选择以及站点生成的各种工作流,当然可以在这个目录里做各种扩展操作,比如自定义一个插件、主题等
运行和调试
Swift是编译型语言,代码每次修改之后,都需在本机编译并运行
publish run
第一次运行,Publish会自动从Github上获取依赖的三方库,然后会看到如下信息
publish run
...
Publishing blog (6 steps)
[1/6] Copy 'Resources' files
[2/6] Add Markdown files from 'Content' folder
[3/6] Sort items
[4/6] Generate HTML
[5/6] Generate RSS feed
[6/6] Generate site map
✅ Successfully published blog
🌍 Starting web server at http://localhost:8000
Press ENTER to stop the server and exit
用浏览器访问 http://localhost:8000 就可以看到新站点了,网站的所有内容放置在了Output目录。 如果要发布到 github page,只需要添加 .deploy(using: .gitHub("username/username.github.io"))
username为github的用户名,然后执行
publish deploy
便可将内容发布上去,这个框架的介绍和使用就说到这里,关于Publish中涉及的概念以及如何定制化后面会专门讲解
感想
文章最后说说笔者的一些感想吧,我从2012年第一次用 JekyII 来搭建的我的博客,转眼间九年过去了,这期间我更换过很多框架 从JekyII
hexo
hugo
vuepress
到现在的 Publish
,爱折腾是程序猿的天性,但是搭建站点只是提供一个写作平台,持续输出有价值的内容,能够帮助影响到他人,这才是最重要的,我们一起共勉。