Lanyon:一个Markdown驱动的Web服务器

Lanyon:一个Markdown驱动的Web服务器

Lanyon是一个简洁的Web服务器,它能读取目录中的Markdown文件并将其转化为HTML进行服务,提供了一种直观且简单的创建网站的方式。这个创新性的工具源于Hastie,简化了从创建、生成到发布的多步骤流程,并消除了静态站点生成器中的源代码树和生成树的冗余,使得内容和资产仅需存储在一个目录中。


轻松上手

安装

binaries文件夹中可以找到Mac OS X和Linux(amd64)的二进制文件。您也可以通过Go源代码来构建二进制文件。唯一的依赖是github.com/russross/blackfriday库,用于Markdown解析。假设你已经安装了Golang,你可以按照以下步骤构建:

$ git clone https://github.com/mkaz/lanyon
$ cd lanyon
$ go get
$ go build

然后将生成的二进制文件复制到你的路径中,如~/bin//usr/local/bin/

运行站点

查看演示站点是快速了解如何运行的最好方式。只需在示例目录下运行二进制文件。Lanyon会在启动的目录中查找配置文件lanyon.json,这个配置文件告诉它在哪里寻找模板以及从哪个目录提供内容。

$ cd lanyon/example
$ lanyon
>>> Lanyon listening on http://localhost:9999

现在,你可以访问那个URL看到演示站点正在运行。所有Markdown文件,即扩展名为.md的文件,都可以通过.html扩展名进行引用。

例如,访问/giraffe.html会首先检查HTML文件是否存在,如果不存在,则会查找giraffe.md并将其转换为HTML。


配置

配置文件采用JSON格式,以下是一个包含所有参数的示例:

{
    "PortNum": 9999,
    "TemplateDir": "templates",
    "PublicDir": "public",
    "RedirectDomain": ["www.mkaz.com", "www.mkaz.com"]
}

PortNum - [必需] Web服务器监听的端口号,如果设置为80,需要以root权限启动。

TemplateDir - [必需] 存放模板文件的目录,接受完整路径或相对于Lanyon启动目录的相对路径。目录末尾可以带斜线。

PublicDir - [必需] 主站点Markdown文件所在的目录,这是你的Web服务器根目录,所有的资源也都包括在此处。接受完整路径或相对于Lanyon启动目录的相对路径。

RedirectDomain - [可选] 如果指定,会检查请求的域名是否与第一个匹配,如果不匹配,就会重定向到第二个域名。

通常情况下,你可以在两个位置都放置相同的域名,以确保所有请求都能指向正确的域名。


模板与定制

最简单的方法是修改style.css文件来满足你的需求。示例模板基于开源的WordPress Underscores主题生成常见的博客布局。

对于更深入的自定义,Lanyon使用Go的模板语言,提供了基础的变量替换和少量逻辑功能。你可以修改模板以适应你的需求。查看仓库中的示例模板开始定制。存在用于文章和分类的模板。你可以通过命名“custom.html”(其中“custom”是你自定义模板的名字)来添加自己的模板。

在页面中通过以下方式引用这个模板:

    ---
    title: 我的页面标题
    date: 2005-02-01
    layout: custom
    ---

    我的页面内容

可用的模板变量有:

.Title - 页面标题
.Content - 页面主要内容
.Category - 文件所在目录
.Layout - 使用的布局模板
.Params - 参数映射键值对

Lanyon会将不识别的前端事项变量创建成参数。这提供了一种灵活的方式来控制模板,定制特定的页面。举个例子,使用参数来包含jQuery。

在你想包含jQuery的页面中,加入以下前端事项:

---
title: 我的jQuery页面
jquery: yes
---

这是一个包含jQuery的页面

然后,在你的模板中,可以使用if-else语句来检查jQuery参数并引入。

{{ if .Params.jquery }}
    <script src="/a/jquery.min.js"></script>
{{ end }}

注:只有模板才能使用模板语言、变量和逻辑。单独的Markdown页面内不可使用。


错误页

当找不到页面时,Lanyon会查找名为404.md的文件作为错误页。如果没有此文件,它将显示一个简单的错误消息。


Less支持

Lanyon支持Less文件自动编译为CSS。这就需要lessc安装在系统中。任何在公共目录下创建的扩展名为.less的文件都会被自动编译为css。你应该通过.web服务器访问它们作为.css

例如,文件public/a/style.less将通过web服务器作为http://localhost:9999/a/style.css被访问。

你可以使用Node.js的包管理器npm来安装lessc。如果你已经有node.js安装:

$ npm install -g less less-plugin-clean-css

更多信息,请访问lesscss.org


性能

我认为Lanyon在大多数服务器上的表现都非常好。然而,我建议在前面设置反向代理缓存服务器,如Varnishnginx,并且使用CDN(如Amazon CloudFront)来进一步提高服务性能和减轻服务器负载。

我使用Lanyon无反向代理缓存地服务于我的个人站点mkaz.com,但使用了Amazon CloudFront作为CDN。


关于

Lanyon遵循MIT开源许可协议,详情请参阅LICENSE文件。

欢迎任何形式的评论、建议、贡献或者只是单纯的祝福。GitHub可能是最方便的途径,但如果你想的话,可以通过电子邮件marcus@mkaz.com联系我,或者在Twitter上找到我@mkaz


Lanyon,让您的Markdown内容轻松变为互动网页,体验更自由、更高效的内容创作。立刻尝试,开启您的轻量级Web开发之旅!

  • 21
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周琰策Scott

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值