您有几个不同的选择。就个人而言,我会使用第一种方法,但我在不同情况下都使用了这三种方法。
index.html 方法
使用此方法,您可以创建一个纯 HTML 格式的 index.html 文件 - 正是您希望 index.html 页面的外观。您可以在其中使用 Jinja 变量,如果您在主题中包含 CSS(而不是使用 hosted libraries),这一点很重要,但大多数情况下,它看起来与您想要的完全一样。一个很简单的例子:
<html>
<head>
<title>My Title</title>
<link href="{{ SITEURL }}/theme/css/mystyles.css" rel="stylesheet" type="text/css">
<body>
<h1>Hello world!</h1>
</body>
</html>
然后,您可以通过在您的 pelicanconfig.py 中包含这一行来告诉 Pelican 不要渲染 .html 文件:
READERS = {'html': None}
这不会阻止 Jinja 处理 HTML 文档中的 Jinja 模板。
最后,因为您没有在 HTML 文件本身中包含有关 HTML 文件的任何元数据(这就是 READERS = {'html': None} 业务的全部内容),您必须告诉 Pelican 将最终的 index.html 放在哪里,通过设置TEMPLATE_PAGES 变量,也在你的pelicanconf.py 文件中:
TEMPLATE_PAGES = {
'index.html' : 'index.html'
}
现在您可以在浏览器中转到localhost/ 来查看您的页面。
如果你想把文件放在不同的位置,你可以指定你想要的任何位置:
TEMPLATE_PAGES = {
'index.html' : 'mydirectory/mypage.html'
}
这将使您的页面可通过localhost/mydirectory/mypage.html 访问。
在 Markdown 中包含备用 CSS 文件
由于大多数 HTML 在 Markdown 帖子中逐字显示,您还可以修改着陆页 Markdown 文件以在顶部包含 CSS 文件,
Title: My Index
Author: Clark Kent
Date: 2010-12-03 10:20
Category: StackOverflow
<link href="{{ SITEURL }}/theme/css/mystyles.css" rel="stylesheet" type="text/css">
# Hello World
Welcome to the landing page!
添加元数据以控制主题
最后,您可以直接修改主题以包含一个元数据属性,该属性控制主题使用的样式表。例如,让我们使用WhichTheme: 元数据标志。我们将为我们的索引 Markdown 页面指定WhichTheme: index,为所有其他页面指定WhichTheme: notindex(或不指定任何内容)。然后在我们的主题文件中,我们将查找用于渲染所有页面的模板(通常是pages.html),我们将添加一个 Jinja 条件来检查我们的新变量,该变量可通过page.WhichTheme 访问:
{% if page.WhichTheme=='index' %}
<link href="{{ SITEURL }}/theme/css/mystyles.css" rel="stylesheet" type="text/css">
<h1>{{ page.title }}</h1>
{% else %}
<h1>{{ page.title }}</h1>
{% endif %}