【免费下载链接】pelicanStatic site generator that supports Markdown and reST syntax. Powered by Python.项目地址https://gitcode.com/gh_mirrors/pe/pelican点击查看免费下载导读本指南以仓库测试夹具 page_markdown.md 为标本系统讲解 Pelican基于 Python 的静态站点生成器中页面Page型内容的 Markdown 编写规范包括元数据块语法、Setext/ATX 标题结构、status状态语义、页面与文章的差异以及从MarkdownReader到PagesGenerator的完整处理链路。读完本文你将能够独立编写规范、可复现的 Markdown 页面并理解它最终如何被解析、分类、排序并输出为 HTML。一、page_markdown.md一个最小可用的 Markdown 页面该文件的完整内容仅 9 行却浓缩了 Pelican Markdown 页面的三个核心组成部分title: This is a markdown test page Test Markdown File Header Used for pelican test --------------------- The quick brown fox jumped over the lazy dogs back.1. 元数据块Metadata Block文件首行title: This is a markdown test page是YAML 风格的键值对元数据。Pelican 借助 Python-Markdown 的meta扩展解析该区域并以空行将其与正文分隔。在 readers.py 的MarkdownReader中这一行为是强制启用的if markdown.extensions.meta not in settings[extensions]: settings[extensions].append(markdown.extensions.meta)即使你的pelicanconf.py未显式声明markdown.extensions.meta也会被自动追加到扩展列表readers.py。默认的MARKDOWN配置还包含codehilite代码高亮与extraMarkdown 扩展集并指定output_format: html5settings.py。2. Setext 标题正文使用Setext 风格标题Test Markdown File Header # H1由 下划线标记 Used for pelican test --------------------- # H2由 - 下划线标记在测试 test_readers.py 中这份文档的期望渲染结果是h1Test Markdown File Header/h1 h2Used for pelican test/h2 pThe quick brown fox jumped over the lazy dogs back./p可见 Setext 的对应h1、-对应h2正文段落被包进p。你也可以改用 ATX 风格#/##两种写法对 Pelican 而言等价。3. 正文标题之后的普通段落即页面正文。Pelican 不会对正文做额外限制Markdown 语法列表、链接、图片、代码块均可直接使用。二、页面的元数据字段与状态语义1. 必填项只有 title与文章Article不同页面Page的必填元数据只有title一项。源码 contents.py 中定义class Page(Content): mandatory_properties (title,) allowed_statuses (published, hidden, draft, skip) default_status published default_template page缺失title的页面会在Content.is_valid()校验阶段被判为无效并被跳过contents.py。2. 可选元数据除title外页面还可使用以下常用字段经readers.METADATA_PROCESSORS处理readers.py字段说明statuspublished/hidden/draft/skip默认publisheddate/modified日期会经get_date()解析category/author/authors分类、作者authors支持逗号或分号分隔tags标签列表slugURL 别名未提供时从文件名推导summary摘要可包含 Markdown 格式注意元数据键在解析时会被统一转为小写name name.lower()readers.py所以Title:与title:效果相同。对于date、status等不允许重复定义的键若出现多次定义会记录警告并使用第一个值readers.py。3. status 的四种取值status决定页面归属的集合generators.pypublished默认进入pages正常渲染到输出目录hidden进入hidden_pages渲染但不显示在导航菜单draft进入draft_pages渲染到草稿目录默认drafts/pages/{slug}.htmlskip由Readers.read_file转为SkipStub直接跳过不生成readers.py。仓库在 draft_page_markdown.mdstatus: draft与 hidden_page_markdown.mdstatus: hidden中给出了同构的对照样例——三份文件标题结构完全一致仅元数据与尾句不同非常便于观察状态字段的差异。三、页面与文章两种内容类型的分工Pelican 将内容分为 Article博客文章与 Page页面两类。二者的核心差异在 contents.py 中一览无余维度PageArticle必填元数据仅titletitledate默认模板pagearticle归档/订阅不进入文章流进入索引、归档与 Feed分类/作者一般不用默认按目录生成分类因此关于我联系方式项目介绍等静态内容适合写成 Page而带日期的博文应写成 Article。同目录下 page.rst 展示了同一页面的 reST 写法说明 Pelican 对两种语法一视同仁选择取决于你的内容习惯。四、从源码看 Markdown 页面的解析链路1. 扩展名路由MarkdownReader支持的扩展名包括md、markdown、mkd、mdown四种readers.py。Readers.read_file()根据文件后缀在注册表中查找对应 Reader若安装了markdown包则启用否则会在日志中提示安装readers.py。测试 test_readers.py 专门验证了md/mkd/markdown/mdown四种后缀都能被正确路由并产出相同 HTML这解释了为何仓库中同时存在.md、.mkd、.markdown、.mdown的样例文件。2. 元数据合并顺序read_file()依次合并四类元数据readers.pydefault_metadata()来自DEFAULT_METADATA、DEFAULT_CATEGORY、DEFAULT_DATE设置path_metadata()与parse_path_metadata()从文件路径提取的元数据如FILENAME_METADATA正则Reader 解析出的文件内元数据如page_markdown.md中的title。文件内元数据最后写入因此优先级最高——这就是为什么page_markdown.md的title能覆盖默认值。3. 页面的分类、排序与输出PagesGenerator.generate_context()遍历PAGE_PATHS下的文件排除PAGE_EXCLUDES按状态分流到pages/hidden_pages/draft_pages再按PAGE_ORDER_BY排序generators.py。随后generate_output()将每个页面交给 Writer结合模板渲染并写入save_as路径。五、相关配置项速查在 settings.py 中与 Markdown 页面直接相关的默认配置如下配置项默认值说明PAGE_PATHS[pages]页面源文件目录必须为列表误配为字符串会回退默认值PAGE_EXCLUDES[]需要排除的页面路径PAGE_URLpages/{slug}.html页面 URL 格式PAGE_SAVE_ASpages/{slug}.html页面输出文件路径PAGE_ORDER_BYbasename页面排序字段DRAFT_PAGE_SAVE_ASdrafts/pages/{slug}.html草稿页面输出路径MARKDOWN见 settings.pyMarkdown 扩展与输出格式TYPOGRIFYFalse开启后对正文、标题、摘要应用智能排版ARTICLE_PATHS与PAGE_PATHS会自动互相加入对方的排除列表避免同一文件被两种生成器重复处理settings.py。排序逻辑在PagesGenerator中经order_content(origs, self.settings[PAGE_ORDER_BY])生效测试 test_generators.py 展示了默认按文件名排序与设置PAGE_ORDER_BY title后按标题排序的两种结果。六、实战写一个自己的 Markdown 页面参照page_markdown.md在站点根目录创建content/pages/about.md若项目使用默认配置PAGE_PATHS即pagestitle: 关于本站 status: published # 关于本站 这是一个用 Markdown 编写的 Pelican 页面。 - 支持 Setext 与 ATX 两种标题 - 支持 codehilite 代码高亮 - 支持 extra 扩展表格、脚注等构建后它会被解析为Page对象并输出到output/pages/about.html由PAGE_SAVE_AS决定。若希望页面暂不对外可见将status改为draft或hidden即可分别进入草稿目录或从导航隐藏。七、小结page_markdown.md虽小却完整示范了 Pelican Markdown 页面的全部关键要素YAML 风格元数据块title必填、Setext/ATX 标题、四种status语义以及被MarkdownReader解析、经PagesGenerator分流排序、最终渲染输出的整条流水线。理解这份最小样例就等于掌握了在 Pelican 中编写静态页面的通用范式。赞分享【免费下载链接】pelicanStatic site generator that supports Markdown and reST syntax. Powered by Python.项目地址https://gitcode.com/gh_mirrors/pe/pelican点击查看免费下载相关推荐Pelican reStructuredText 页面编写详解从 RST 页面到 Vercel 静态构建验证Pelican reStructuredText 页面编写详解从 RST 页面到 Vercel 静态构建验证 本篇技术指南以 Vercel 开源仓库中 pacCLI后端云原生Gatsby 中使用 Markdown 文件生成页面using-markdown-pages 示例全解析Gatsby 中使用 Markdown 文件生成页面using markdown pages 示例全解析 导读 本文围绕 Gatsby 官方仓库中的 usin前端静态站点Web框架Pelican 静态页面Pages机制实战从测试样本 page.rst 理解页面文件格式与生成流程Pelican 静态页面Pages机制实战从测试样本 page.rst 理解页面文件格式与生成流程 Pelican 将内容分为文章Articles与静创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
推荐系统技术深度与技术品味 原文链接:https://zhuanlan.zhihu.com/p/2084072802139820141 博客地址:https://blog.recsys-frontier.com/ 第一次听到“技术深度”这个词,是我工作的第二年。那时候我觉得工作已经比较得心应手,绩效反馈也很好,拿到了… · 2026/9/23 15:27:35
5个致命坑!一文搞懂视频文件恢复底层逻辑与代码实现 5个致命坑!一文搞懂视频文件恢复底层逻辑与代码实现 你是不是也遇到过这种崩溃时刻:手里拿着网上抄来的视频修复脚本,Python环境配好了,依赖装完了,结果一运行,要么报错 FileNotFoundError… · 2026/9/23 15:27:28
去除app内置小广告保姆级教程:3步搞定底层逻辑 去除app内置小广告保姆级教程:3步搞定底层逻辑 刚毕业拿到Offer,是不是常遇到这种尴尬:面试时背熟了Spring源码,简历上写着精通Java,但一让你现场搭个完整项目,脑子瞬间空白?或者做安卓开发时,为了凑工时接了个外包,结果被要求保… · 2026/9/23 15:27:21
化工仪表故障诊断实战:从导压管到DCS回路的排查方法 简介:这是一份面向化工企业仪表维护人员、设备工程师及自动化专业学生的故障检修研究文档,聚焦实际生产中常见的流量、液位、压力、温度四类自动化仪表。文档逐一分析了各类仪表的典型故障表现与诱因,如气体流量测量中温压补偿差异导致的误差… · 2026/9/23 16:03:40
Homebrew国内安装脚本:macOS包管理器快速换源指南 简介:这份资源是面向国内 macOS 用户的 Homebrew 国内安装脚本合集,主要解决官方源下载缓慢甚至无法访问的问题。包内共 12 个文件,以 5 个 sh 脚本、3 个 md 说明文档为主,另含 2 张 jpg 运行截图、1 个 license 及 1 个 .DS_Sto… · 2026/9/23 16:03:34
梦境解析:时间标记与惊梦心理分析 1. 梦境解析与心理映射"丙午年二月廿三晨黑惊梦"这个标题本身就蕴含着丰富的解读空间。从字面来看,这记录了一个发生在特定农历日期的清晨黑暗时分的惊悚梦境。作为从业十余年的梦境分析师,我见过太多被噩梦困扰的案例,而这类带有明… · 2026/9/23 16:03:27
OpenSpec接口契约管理:规范文件驱动开发与校验实践 1. 从“规范先行”说起:OpenSpec 到底在解决什么问题第一次接触 OpenSpec 是在一个多人协作的接口项目里。当时团队里后端、前端、测试三拨人各自维护一份“接口说明”,结果联调时字段名对不上、状态码含义不一致、分页参数有人传page有人传offset&#… · 2026/9/23 16:03:27
Octopress静态博客搭建指南:基于Jekyll的完整实践与踩坑记录 最开始接触 Octopress,是因为印象里有一段时期技术圈的博客里经常能看到它,而且那些博客的阅读体验都出奇地统一又舒服。后来自己动手折腾了一遍,才发现这套基于 Jekyll 的静态博客框架,设计思路比想象中要完整得多。它不只是一套… · 2026/9/23 16:03:27
MDM的定位与六项技术挑战 MDM系统、应用及服务常作为已有业务处理系统和商业智能系统的战术扩展。但从企业发展看,战略层面的MDM方案应单独提出,面向全企业范围,并获高层支持。该MDM系统应作为主数据的有效资源,为其他IT系统提供主数据,而非仅在… · 2026/9/23 16:03:27
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29