Jekyll目录结构和运行机理

Jekyll是一款使用Ruby脚本生成静态网站的工具,它通过将内容与排版分离,利用Liquid脚本处理HTML模板。主要内容包括:加载_layouts中的模板,解析_post中的Markdown或HTML文件,根据Front Matter生成博客,处理_includes文件夹内的内容,以及使用Liquid的Object、Tag和Filter。在配置文件_config.yml中,注意冒号后要加空格。创建非博客页面集合,如Projects,只需将文件放在除_posts外的目录并添加Front Matter。
部署运行你感兴趣的模型镜像

参考文章
Jekyll使用Ruby脚本根据模板生成静态网页,实现了内容与排版的分离。模板以嵌入Liquid脚本的HTML格式存放。内容为markdown或者html。

正常的Jekyll工程包含以下几个目录:

_posts  博客内容
_pages  其他需要生成的网页,如About页
_layouts 网页排版模板
_includes 被模板包含的HTML片段,可在_config.yml中修改位置
assets 辅助资源 css布局 js脚本 图片等
_data 动态数据
_sites  最终生成的静态网页

在项目文件夹(含有_config.yml)中运行jekyll build 指令后,jekyll会依次做如下几件事

  1. 加载_layout文件夹内的所有模板,并将其中的{% include xxxx.html %} 字段按照_includes文件夹内对应文件填入
  2. 遍历_post文件夹及子文件夹,对所有命名符合yyyy-mm--dd-title.md 格式的博客文件放入site.posts 变量(按时间倒序),并对其进行解析,根据Front Matter 头的内容套入layout生成对应title的博客
  3. 遍历整个项目子目录,扫描所有含Front Matter 头的文件,放入site.pages 变量并根据permalink 字段指定的URL目标位置生成index.html
  4. 在生成过程中,文件中包含的Liquid脚本{{ content }} 会被解析并替换。Liquid指令 包括Object、Tag、Filter三类,其中object是变量,在解析过程中会被直接文本替换,如
{{ page.title }}

Tag是控制流,可以做判断和循环,如

{% if user %}
      Hello {{ user.name }}!
{% else %}
    {% assign foo = false %}
    {{ foo }}
{% endif %}

{% if foo!= true %}
  This statement is valid.
{% endif %}

{% for product in collection.products %}
    {{ product.title }}
{% endfor %}

Filter用于对文本进一步处理

{{ "fold" | | prepend: {{ site.baseurl }} | append: "/.html" }}
{{ "adam!" | capitalize | prepend: "Hello " }}
Output: Hello Adam!

.yml文件中,字段的冒号后面必须有空格!

为了添加除博客以外的页面集合(如Projects),可将含有Front Matter头的文件放入除_posts之外的任意目录,便可被添入site.pages 变量中。为了与posts相区分,一般来说应该在网页头部添加一个变量,如type 并在对应生成循环中逐个判断。

您可能感兴趣的与本文相关的镜像

Langchain-Chatchat

Langchain-Chatchat

AI应用
Langchain

Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型和 Langchain 应用框架实现的开源项目,旨在构建一个可以离线部署的本地知识库问答系统。它通过检索增强生成 (RAG) 的方法,让用户能够以自然语言与本地文件、数据库或搜索引擎进行交互,并支持多种大模型和向量数据库的集成,以及提供 WebUI 和 API 服务

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值