目錄
博文和页面的区别
元数据
页面
引用内部的链接
链接静态文件
附件
链接标签和分类
语法高亮
发布草稿
首頁 web前端 html教學 Pelican系列:开启写作人生_html/css_WEB-ITnose

Pelican系列:开启写作人生_html/css_WEB-ITnose

Jun 24, 2016 am 11:16 AM

博文和页面的区别

Articles: 博文,是指具体写的文章。

Pages: 页面,一般指一些固定不变的页面,比如关于等

元数据

元数据可以进行一些搜索引擎的优化,包含博文的一些基础信息。

如果用reStructuredText来编写内容的话,可以像下面这样写元数据头

My super title##############:date: 2010-10-03 10:20:modified: 2010-10-04 18:40:tags: thats, awesome:category: yeah:slug: my-super-post:authors: Alexis Metaireau, Conan Doyle:summary: Short version for index and feeds
登入後複製

多个标签(tags)和多个作者(authors)可以用逗号分割。

:tags: pelican, publishing tool; pelican, bird:authors: Metaireau, Alexis; Doyle, Conan
登入後複製

Pelican 还支持在reStructuredText中写abbr标签,使用方法如下

This will be turned into :abbr:`HTML (HyperText Markup Language)`.
登入後複製

同样可以使用Markdown语法(以.md,.markdown,.mkd,.mdown结尾的文件),Markdown生成html文件需要Markdown的模块支持,通过命令pip install markdown安装。

Pelican 还支持Markdown的扩展语法,Markdown的扩展没有包含在Markdown的模块下面,需要通过MD_EXTENSIONS进行配置。

用Markdown写文章的基本格式如下

Title: My super titleDate: 2010-12-03 10:20Modified: 2010-12-05 19:30Category: PythonTags: pelican, publishingSlug: my-super-postAuthors: Alexis Metaireau, Conan DoyleSummary: Short version for index and feedsThis is the content of my super blog post.
登入後複製

还可以用插件支持更多的格式,这个以后研究了。

Pelican也能直接解析html和htm文件,解析html文件就比较直接了,跟复制没啥区别。

<html>    <head>        <title>My super title</title>        <meta name="tags" content="thats, awesome" />        <meta name="date" content="2012-07-09 22:28" />        <meta name="modified" content="2012-07-10 20:14" />        <meta name="category" content="yeah" />        <meta name="authors" content="Alexis M&eacute;taireau, Conan Doyle" />        <meta name="summary" content="Short version for index and feeds" />    </head>    <body>        This is the content of my super blog post.    </body></html>
登入後複製

温馨提示:除了标题之外,其他元数据不是必填项,如果没有指定时间且DEFAULT_DATE设置为'fs',Pelican就会根据文件的时间戳来确定时间,文章的分类可以根据子目录的名称来确定,例如:python/foobar/myfoobar.rst的分类就行foobar,如果不希望子目录的名称不作为分类名称,可以通过设置USE_FOLDER_AS_CATEGORYFalse

modified是值最后编辑文章的时间,默认和date相同。另外,可以通过modified进行RSS推送,可能在刚写文章的时候RSS已经推送了一遍,后来进行了修改,就可以通过modified进行再次推送。

authors用来表示多个作者,如果只有一个作者,可以使用author

如果希望文章的摘要有一个确定的长度,可以通过设置SUMMARY_MAX_LENGTH,Pelican会从文章的开头进行截取制定的长度作为摘要。

也可以通过设置FILENAME_METADATA文件名称来提取元数据,默认情况下,FILENAME_METADATA只是提出文件名上面的的日期信息,如果希望提出文件名中的除日期信息之外的内容为slug,可以将FILENAME_METADATA设置为:'(?P\d{4}-\d{2}-\d{2})_(?P.*)'

需要注意的是,在文件头编写的元数据信息会覆盖通过文件名提取出来的信息。

页面

如果在content下面创建了目录pages,这个目录下所有的文件都将被生成静态页面,比如About和Contact页面。

可以通过设置DISPLAY_PAGES_ON_MENU来控制页面是否在导航栏显示,默认情况是True

如果希望页面不在导航条上显示,可以在页面的元数据里面添加:status: hidden属性,对于404页面很有效果,因为404静态页面我们是不希望在导航条上面显示的。

引用内部的链接

从Pelican3.1开始,可以通过content的目录结构在不同的文章之间进行链接,这样可以很方便引用操作了。

引用content里面的的内容的语法是:{filename}path/to/file{fielname}是必填内容,可以同时支持Linux和windows

假设content的目录结构是这样的

website/├── content│   ├── category/│   │   └── article1.rst│   ├── article2.md│   └── pages│       └── about.md└── pelican.conf.py
登入後複製

article1.rst中链接代码

The first article#################:date: 2012-12-01 10:02See below intra-site link examples in reStructuredText format.`a link relative to the current file <{filename}../article2.md>`_`a link relative to the content root <{filename}/article2.md>`_
登入後複製

article2.md

Title: The second articleDate: 2012-12-01 10:02See below intra-site link examples in Markdown format.[a link relative to the current file]({filename}category/article1.rst)[a link relative to the content root]({filename}/category/article1.rst)
登入後複製

链接静态文件

有时候我们需要引用一些除了博客和页面以为的资源,比如图片,PDF文件等,这就需要在pelicanconf.py中配置STATIC_PATHS属性,Pelican默认设置content下的images为图片资源,其他的资源需要进行配置。

假设content的目录结构如下

content├── images│   └── han.jpg├── pdfs│   └── menu.pdf└── pages    └── test.md
登入後複製

test.md中引用

![Alt Text]({filename}/images/han.jpg)[Our Menu]({filename}/pdfs/menu.pdf)
登入後複製

pelicanconf.py新增配置

STATIC_PATHS = ['images', 'pdfs']
登入後複製

生产页面时,Pelican会将han.jpg复制到output/images/han.jpgmenu.pdf复制到output/pdfs/menu.pdf,同时将链接适配到test.md

附件

从Pelican 3.5开始,通过{attach}path/to/file可以给文章或者页面添加附件,语法和{filename}类似,但是附件会被复制到文章或者页面的同一个目录下面。这种方式只有在STATIC_PATHS设置了该目录才能使用这个标签。

假设content的目录结构如下

content├── blog│   ├── icons│   │   └── icon.png│   ├── photo.jpg│   └── testpost.md└── downloads    └── archive.zip
登入後複製

pelicanconf.py的配置如下

PATH = 'content'STATIC_PATHS = ['blog', 'downloads']ARTICLE_PATHS = ['blog']ARTICLE_SAVE_AS = '{date:%Y}/{slug}.html'ARTICLE_URL = '{date:%Y}/{slug}.html'
登入後複製

testpost.md的内容如下

Title: Test PostCategory: testDate: 2014-10-31![Icon]({attach}icons/icon.png)![Photo]({attach}photo.jpg)[Downloadable File]({attach}/downloads/archive.zip)
登入後複製

生成之后的output的目录结构如下

output└── 2014    ├── archive.zip    ├── icons    │   └── icon.png    ├── photo.jpg    └── test-post.html
登入後複製

如果使用{attach}引用文章所在目录之外的资源,在生成文件的时候会将这个资源复制到文章所在的目录下。

如果资源被多篇文章通过{attach}引用,在第一个被引用的地方Pelican会以attach的方式来处理这个资源,在之后的引用的地方会按照{filename}的方式来链接这个资源,也就是说,在同一个目录下同一个资源被多次引用,Pelican只复制一次这个资源到该目录下面。

请谨慎使用多篇文章引用同一个资源,因为Pelican对{attach}资源处理的顺序是不确定的,就可能导致资源复制到不确定的目录下面,只有当所有的引用同一个资源的文章在同一个目录下面的时候才是安全的。

链接标签和分类

链接标签和分类的语法为{tag}tagname{category}foobar

语法高亮

Pelican为代码块提供了语法高亮功能,对于reStructuredText用户,可以使用code-block标记,假设我们要高亮Python的代码。

.. code-block:: python   print("Pelican is a static site generator.")
登入後複製

对于Markdown用户,按照以下语法

There are two ways to specify the identifier:    :::python    print("The triple-colon syntax will *not* show line numbers.")To display line numbers, use a path-less shebang instead of colons:    #!python    print("The path-less shebang syntax *will* show line numbers.")
登入後複製

如果是普通的代码,分不出具体语言的,可以按照如下语法格式,用一对```包起代码

发布草稿

有时候我们希望把我们的草稿先发布出来给部分朋友看看,不让文章在首页和分类列表里面显示出来,我们可以在文章中添加Status: draft属性。

如果将所有刚写好的文章都作为草搞件发布的话,可以在配置文件中配置DEFAULT_METADATA属性

DEFAULT_METADATA = {        'status': 'draft',}
登入後複製

这样文章在发布的时候默认就是草稿,通过修改文章的配置为Status: published将文章正式发布出来。

文章同步发布在我的个人站点: http://www.xinxingzhao.com/blog/2016/03/25/pelican-writing-content.html

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1272
29
C# 教程
1252
24
了解HTML,CSS和JavaScript:初學者指南 了解HTML,CSS和JavaScript:初學者指南 Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML:結構,CSS:樣式,JavaScript:行為 HTML:結構,CSS:樣式,JavaScript:行為 Apr 18, 2025 am 12:09 AM

HTML、CSS和JavaScript在Web開發中的作用分別是:1.HTML定義網頁結構,2.CSS控製網頁樣式,3.JavaScript添加動態行為。它們共同構建了現代網站的框架、美觀和交互性。

HTML,CSS和JavaScript的未來:網絡開發趨勢 HTML,CSS和JavaScript的未來:網絡開發趨勢 Apr 19, 2025 am 12:02 AM

HTML的未來趨勢是語義化和Web組件,CSS的未來趨勢是CSS-in-JS和CSSHoudini,JavaScript的未來趨勢是WebAssembly和Serverless。 1.HTML的語義化提高可訪問性和SEO效果,Web組件提升開發效率但需注意瀏覽器兼容性。 2.CSS-in-JS增強樣式管理靈活性但可能增大文件體積,CSSHoudini允許直接操作CSS渲染。 3.WebAssembly優化瀏覽器應用性能但學習曲線陡,Serverless簡化開發但需優化冷啟動問題。

HTML的未來:網絡設計的發展和趨勢 HTML的未來:網絡設計的發展和趨勢 Apr 17, 2025 am 12:12 AM

HTML的未來充滿了無限可能。 1)新功能和標準將包括更多的語義化標籤和WebComponents的普及。 2)網頁設計趨勢將繼續向響應式和無障礙設計發展。 3)性能優化將通過響應式圖片加載和延遲加載技術提升用戶體驗。

HTML與CSS vs. JavaScript:比較概述 HTML與CSS vs. JavaScript:比較概述 Apr 16, 2025 am 12:04 AM

HTML、CSS和JavaScript在網頁開發中的角色分別是:HTML負責內容結構,CSS負責樣式,JavaScript負責動態行為。 1.HTML通過標籤定義網頁結構和內容,確保語義化。 2.CSS通過選擇器和屬性控製網頁樣式,使其美觀易讀。 3.JavaScript通過腳本控製網頁行為,實現動態和交互功能。

HTML:建立網頁的結構 HTML:建立網頁的結構 Apr 14, 2025 am 12:14 AM

HTML是構建網頁結構的基石。 1.HTML定義內容結構和語義,使用、、等標籤。 2.提供語義化標記,如、、等,提升SEO效果。 3.通過標籤實現用戶交互,需注意表單驗證。 4.使用、等高級元素結合JavaScript實現動態效果。 5.常見錯誤包括標籤未閉合和屬性值未加引號,需使用驗證工具。 6.優化策略包括減少HTTP請求、壓縮HTML、使用語義化標籤等。

HTML與CSS和JavaScript:比較Web技術 HTML與CSS和JavaScript:比較Web技術 Apr 23, 2025 am 12:05 AM

HTML、CSS和JavaScript是構建現代網頁的核心技術:1.HTML定義網頁結構,2.CSS負責網頁外觀,3.JavaScript提供網頁動態和交互性,它們共同作用,打造出用戶體驗良好的網站。

HTML:是編程語言還是其他? HTML:是編程語言還是其他? Apr 15, 2025 am 12:13 AM

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增強WebevebDevelopment。

See all articles