noflo jekyll

网站数据 2025-08-13

Noflo-Jekyll

基于流量的jekyll静态站点生成器的重新实现。这为Node.js,尤其是NOFLO开发人员提供了一些优势:

  • 纯JavaScript ,在您的环境中不需要Ruby或其他运行时间。如果您将Grunt用于现场生成,特别是方便的
  • 其他数据源,在noflo中,一切都只是数据流。您可以轻松地插入其他数据源。例如,数据库查询结果
  • 不同的转换器,不想使用Markdown?只需插入您自己的标记处理器组件
  • 不同的模板引擎不想使用液体?只需插入您自己的模板处理器组件
  • 用作库或可执行文件,此Jekyll实现只是一个NOFLO图。您可以在其他noflo应用程序中使用它,作为node.js模块,也可以用作命令行可执行文件

但是,与积极开发的应用程序的任何重新实现一样,还有一些潜在的警告需要观察。

结构

noflo jekyll已作为NOFLO图实现。大多数逻辑都由各种现有的NOFLO组件来处理,但是在某些地方,将事物作为自定义组件有意义。但是,超过85%的代码库是完全可重复使用的。

这是使用noflo ui可视化时的主要流程:

您可以从图形文件夹中找到主流量和不同的子图。

安装

如果要将其用作命令行可执行文件,那么最简单的选项是用以下方式在全球安装它。

 $ npm install -g noflo-jekyll

如果要将其用作较大应用程序中的库,则只需将其作为依赖项安装:

 $ npm install noflo-jekyll --save

命令行的用法

由于该项目的目的是与Jekyll的功能均衡,因此命令行的使用情况相似。要生成一个站点,请运行:

 $ noflo-jekyll source_dir target_dir

在node.js应用程序中使用

站点生成图也可以用作Node.js应用程序中的库。

 var Jekyll , generator ;
Jekyll = require ( 'noflo-jekyll' ) . Jekyll ;

// Prepare the site generator
generator = new Jekyll ( 'source_dir' , 'target_dir' ) ;

// Event handling
generator . on ( 'start' , function ( ) {
  console . log ( "Build started" ) ;
} ) ;

generator . on ( 'error' , console . error ) ;

generator . on ( 'end' , function ( end ) {
  var seconds = end . uptime / 1000 ;
  console . log ( "Build finished in " + seconds ) ;
} ) ;

// Start the process
generator . run ( ) ; 

在NOFLO图中使用

主要的站点生成流程为jekyll/Jekyll图。这是在另一个图中使用它的一个简单示例:

 # Directory setup
'/some/source/directory' -> SOURCE Generator(jekyll/Jekyll)
'/some/target/directory' -> DESTINATION Generator()

# Outputs
Generator() GENERATED -> IN Drop(Drop)
Generator() ERRORS -> IN Display(Output)

Ruby Jekyll的已知问题和差异

模板不兼容

我们使用的液体模板库不覆盖液体规格的100%,因此与Jekyll一起使用的某些模板参数可能尚不正常。

我们正在与液体节点开发人员合作以改善覆盖范围,这也是您可以提供帮助的。如果您使用的是不起作用的问题,请报告一个问题!

较新的Jekyll功能

当这个项目开始时,杰基尔仍处于1.0之前的阶段,其发展已经停止。从那时起,它的开发恢复了,1.0添加了我们尚未提供的功能。其中包括:

  • 草稿职位
  • 时带
  • baseurl

请报告您遇到这些或其他Jekyll功能的任何问题。

没有Web服务器

Ruby Jekyll包含用于测试目的的基本Web服务器。由于这超出了静态站点生成的范围,因此noflo jekyll实施中未包含此功能。您可以在许多方面使用生成的页面,包括Grunt-Contrib-Connect,Simple-Server或Noflo Web服务器。

测试和开发

欢迎任何丢失的Jekyll功能或其他问题的拉动请求!如果您想与存储库一起工作,最好能够在本地进行测试。

我们的主体测试由jekyll网站源组成,该网站源是我们使用Ruby Jekyll生成静态站点的test/fixtures/source 。我们通过相同来源运行noflo jekyll ,并检查结果是否相同(除了某些空格差异外)。

如果您发现noflo jekyll无法正确处理的东西,请将它们添加到该jekyll站点源,然后使用以下方式运行Ruby Jekyll固定装置。

 $ grunt jekyll

此后,您应该能够使用以下方式进行测试:

 $ grunt test
下载源码

通过命令行克隆项目:

git clone https://github.com/noflo/noflo-jekyll.git