"像黑客一样写博客" 是 Tom Preston-Werner的博客文章, Thomas Preston-Werner是美国亿万富翁软件开发商和企业家。他是开源开发社区的积极贡献者,他居住的旧金山湾区。 因为是流行的GitHub的创始人, 因此被很多人所熟知, Thomas Preston-Werner也是Gravatar头像服务的创始人.

Tom Preston-Werner

他在他的个人博客上分享了这篇文章,讲述了多年在互联网上写作经历, 我想很多人都经历写写停停的过程,我想更多的原因是没有好的能够完全掌控的博客工具,希望了解该文后,能按照作者的思路找到适合自己的博客工具, 避免因为工具的原因不断的退出,不断又重新开始的恶心循环。下面是翻译后的正文:

回到2000年,当我以为我将成为一名专业作家时,我每天花几个小时在LiveJournal上与其他有抱负的诗人和作家一起写作。从那时起,我在三个不同的域名写作,关于Web标准、印刷设计、摄影、Flash、插画、信息架构、ColdFusion、包管理、PHP、CSS、广告、Ruby、Rails、Erlang等。

我喜欢写作。我很高兴与他人分享我的想法的。将想法转化为文字的行为是一种非常有效的方法,可以巩固和完善您对特定主题的想法。当我享受写作的同时,我似乎陷入了恶性循环,不断的停止,不断的重新开始。在开始新的恶性循环前,我决定反思到底是哪些因素导致的这种情况。

我已经发现很多我不想要的内容。我厌倦了复杂的博客平台,像WordPress和Mephisto。我想写完美的文章,而不是写一个类似zillion的模板页面,也不是整天参与评论,不断的落后于最新的软件版本。虽然Posterss的东西看起来很吸引人,但是我想设计我的博客,它需要托管在我自己选择的域名。出于同样的原因,其他托管网站(wordpress.com、blogger.com)被放弃。有少部分人直接使用GitHub作为博客(这非常酷),但这对我的喜好来说让我接受很困难。

10月19日,一个星期日,我坐在旧金山的公寓里,喝了一杯苹果酒,这时头脑很清醒。经过一段时间的思考,我有了一个想法。虽然我不是受过散文诗词的专门训练的作家,但我被训练为写代码的作家。如果我从软件开发的角度来看博客,会发生什么?那会是什么样的?

首先,我所有的写作都将存储在 Git 存储库中。这将确保我可以尝试不同的想法,并从我喜欢的编辑器和命令行中浏览我的所有文章。我可以通过简单的发布脚本或者关联一个发布的hook来发布我的文章。这将非常简便,因此静态站点将优于需要持续维护的动态站点。我的博客需要易于自定义;对于拥有图形设计背景的我来说, 意味着我将一直在调整网站的外观和布局。

在过去的一个月里,我将这些概念付诸实践,我很高兴地将其命名为 Jekyll 。 Jekyll是一个简单的,博客感知的静态站点生成器。它需要一个模板目录(代表网站的原始形式),通过Textile和Liquid转换器来构建它,并输出一个完整的静态网站,非常适合与Apache或您喜欢的Web服务器一起提供服务。如果您在网站(http://tom.preston-werner.com)上阅读这篇文章,您将会看到这是一个Jekyll生成的博客!

要了解这一切是如何工作的,请在新的浏览器窗口中打开我的 TPW 仓库。我将在那里注明这些代码。

看看index.html。此文件代表网站的主页。在文件的顶部是一块YAML,其中包含有关该文件的元数据。这个数据告诉Jekyll给文件的布局,页面标题应该是什么,等等。在这种情况下,我指定应该使用“默认”模板。您可以在_layouts目录中找到布局文件。如果您打开default.html,您可以看到通过使用此布局包装index.html来构建主页。

您还会注意到这些文件中的Liquid模板代码。 Liquid是一种简单,可扩展的模板语言,可以轻松地在模板中嵌入数据。对于我的主页,我想要列出我所有的博文。 Jekyll递给我一个包含有关我网站的各种数据的哈希。我可以在site.posts中找到所有博文的反向时间顺序列表。反过来,每个帖子都包含各种字段,如标题和日期。

Jekyll通过解析_posts目录中的文件获取博客文章列表。每个帖子的文件名包含最终HTML文件应具有的发布日期和slug(URL中显示的内容)。打开与此博客文章对应的文件:2008-11-17-blogging-like-a-hacker.textile。 GitHub默认渲染textile文件,因此为了更好地理解文件,请单击原始视图以查看原始文件。在这里我指定了帖子布局。如果查看该文件,您将看到嵌套布局的示例。布局可以包含其他布局,使您可以灵活地组合页面。在我的环境下,我使用嵌套布局,以显示每个博客条目的相关帖子。 YAML还指定帖子的标题,然后通过Liquid将其嵌入帖子的主体中。

帖子由 Jekyll 以特殊方式处理。您在文件名中指定的日期用于在生成的站点中构造URL。例如,这篇文章最终发布在http://tom.preston-werner.com/2008/11/17/blogging-like-a-hacker.html

不驻留在以下划线为前缀的目录中的文件将镜像到生成的站点中的相应目录结构中。如果文件没有YAML,则不会通过Liquid解释器运行。程序将复制未经修改地内容。

为了将您的原始网站转换为完成版本,您只需运行:

$ jekyll /path/to/raw/site
/path/to/place/generated/site

Jekyll 仍然是一个非常年轻的项目。我只开发了我需要的确切功能。随着时间的推移,我希望看到项目成熟并支持其他功能。如果您最终将Jekyll用于自己的博客,请告诉我你的想法, 让我知道您希望在未来的版本中看到什么。当然,您可以将项目fork到GitHub, 并hack您自己需要的功能!

我和Jekyll一起度过了一个多月。我喜欢它。根据我自己博客的需求推动Jekyll的向前发展。我可以在TextMate中编辑我的文章,给我自动和完善的拼写检查。我可以立即访问CSS和页面模板。一切都在GitHub上备份。当我我撰写文章时,我感到轻松。系统足够简单,我可以了解整个转换过程。从我的大脑中想法到我的博客的距离已经缩小,最后,我认为这将使我成为更好的作者。

【腾讯云】境外1核2G服务器低至2折,半价续费券限量免费领取!
https://cloud.tencent.com/act/cps/redirect?redirect=1068&cps_key=e4b50f6c64a4480367f8a8d16fd07c5a&from=console

标签: none

添加新评论