静态内容生成器

(此文章同时发布在自家微信公众号“dotNET每天精华小说”,欢迎左侧二维码来关怀。)

题记:前几日两次三番静态网站的话题,介绍本身选择的三个使用.NET开发的静态内容生成器——Wyam。

技术选型

在支配起始搞静态网站随后,面临的率先个难题正是如何变迁静态内容。有现成工具吗?这样的工具符合近年来和远期必要呢?假诺不合乎,有啥样技能思路本身付出吗?

皇冠直营现金网开户,带着如此的难点,作者十分的快Bing到了https://www.staticgen.com/本条网站,那一个网站汇集了市面上存在的差不多拥有开源静态网站生成器。

不出所料,排行第①的是Jekyll,其GitHub上的Star高达22822。Jekyll固然最流行,可是其首要用来Blog站点生成,我当下首要面向公司CMS,更为首要的是它是Ruby编写的,那几个不是自作者最熟知的开发平台。

但是StaticGen贴心的提交了语言过滤选项,在.NET语言下,仅出现了pretzelWyamgrazeMisakai
Baker
八个工具。即便pretzel使用了和Jekyll一样的Liquid模板引擎,适应性大概更广,不过在对那伍个工具初步切磋后,基本选定了Wyam。他基本得以满意自小编对静态内容生成器的技术须要:

  • 据悉纯熟的言语和平台开发,框架结构划设想计考虑了扩充性。那样便于本人能够根据须要活动扩充。
  • 运用深谙和相对使用大规模的模板语言和引擎。方便笔者制作网站模板(内容输入),并对其余人进行培养。
  • 可见有利于的流入元数据。因为CMS可能需求注入越多更扑朔迷离的数码。
  • 能够放置运维。很多生成器都以命令行工具,然则自个儿大概供给让生成器在后台运行。

Wyam的介绍

Waym.io官网上的自小编介绍基本上把Wyam是什么说的很明亮了,作者就简单在这里翻译一下。

Wyam是杰出的。它不是Jekyll的仿制(并不意味着Jekyll有任何难点),它不是设计来变化博客的(纵然也能很好的尽责尽职此使命)。Waym是3个静态内容生成器,能够用于生成网站、文书档案、电子书和其余越多的始末。由于它的兼具东西都以通过广大灵活的模块(你也得以编写制定本身的模块)串在一起,所以唯一的界定是你的想象力。

在它的特点个中,特别让作者看中的是:

  • 配置文件使用C#剧本写就,那一点一滴是得益于Roslyn的强劲
  • 大约直接的元数据动用格局
  • 协助种种模板引擎和语言,尤其直接内置Razor的帮助(且Razor的援助是基于ASP.NET
    MVC 6的源代码的,未来会支撑TagHelper)
    。当然也有马克down支持依旧扩大本人的沙盘语言协助。
  • 集成Web
    Server
    便利在编写模板的时候实行预览
  • 完全支持Nuget,能够在实践生成的经过中,自动下载信赖的Nuget包
  • 更为主要的,它帮助停放运营
  • 相对完整清楚的文书档案

Waym其实借鉴了现有任石军态内容生成器的亮点和布署性,比如Front马特er的援助(通过Yaml完结)。即便它如今还只是0.11,不过意义完毕度依然相比高了,并且你也足以直接pull
request加入进献。源代码地址是:https://github.com/Wyamio/Wyam

Wyam的使用

Wyam的用法很简短,直接通过命令行执行,如下所示:

c:\MySite>Wyam.exe --preview --watch
    Loading configuration from c:\MySite\config.wyam.
    Cleaning output directory c:\MySite\.\Output...
    Cleaned output directory.
    Executing 3 pipelines...
        Executing pipeline "Markdown" (1/3) with 5 child module(s)...
        Executed pipeline "Markdown" (1/3) resulting in 0 output document(s).
        Executing pipeline "Razor" (2/3) with 4 child module(s)...
        Executed pipeline "Razor" (2/3) resulting in 2 output document(s).
        Executing pipeline "Resources" (3/3) with 1 child module(s)...
        Executed pipeline "Resources" (3/3) resulting in 21 output document(s).
    Executed 3 pipelines.
    Preview server running on port 5080...
    Watching folder c:\MySite\.\Input...
    Hit any key to exit...  

Wyam的源代码中有个Examples的文本夹,里面有局地事例可以参照。其实,Wyam.io这么些网站本人就是用Wyam来变化的,且也有源代码,所以也是2个很好的参阅。当然作者也做了1个简单的言传身教,可以透过那里下载:https://zyg.blob.core.windows.net/test/SampleTemplate.zip

相关文章