Blog

使用 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,爱折腾是程序猿的天性,但是搭建站点只是提供一个写作平台,持续输出有价值的内容,能够帮助影响到他人,这才是最重要的,我们一起共勉。

Tagged with:
👈 Swift语言特性之-PropertyWrapper使用 Hugo + Travis CI + Github Pages 搭建静态博客 👉