静态站点生成器。
biisan的Python项目详细描述
比桑
biisan是一个静态站点生成器,可以在reStructuredText中编写文档。
功能
- 将structuredtext的结构转换为object的结构,并使用jinja2模板为每个structuredtext的Directives输出到html
- 为biisan支持的指令附加默认模板,但如果在配置中设置了搜索目标,则可以替换要使用的模板
- 从指令到对象的转换处理器也可以通过设置来替换任何处理器
- 不受支持的指令的处理也可以使用与替换相同的机制。
- 新指令的简单定义
- 将structuredText的结构转换为对象的过程在多处理中并行执行
快速启动
安装
它可以与pip一起安装。由于依赖库也同时安装,如果希望能够清除它们,则可能需要使用venv创建和安装虚拟环境。
$ pip install biisan
初始化
生成biisan的基本结构和配置文件。在您运行的文件夹下有一个名为biisan_data
的文件夹。
按要求回答blog title
、base URL
、language code
。您可以稍后在配置文件中更改它。
$ python -m biisan.main
? What's your blog title blog title
? input your blog base url. like https://www.tsuyukimakoto.com http:localhost
? input your blog language like ja en
Always set environment variable BIISAN_SETTINGS_MODULE to biisan_local_settings like bellow.
$ export BIISAN_SETTINGS_MODULE=biisan_local_settings
最后,输出使用biisan时所需的环境变量。它是使用biisan时始终需要的环境变量。
它是glueplate的设置框架设置。
第一项
让我们检查生成的文件夹的内容。
$ cd biisan_data
$ tree
.
├── data
│ ├── biisan_local_settings.py
│ ├── blog
│ ├── extra
│ │ └── about.rst
│ └── templates
└── out
在biisan_data
文件夹中有两个文件夹,data
和out
。
数据
biisan_local_settings.py
正在设置文件。它已被添加到Original file settings设置中或被覆盖。
博客
将重构的文本文件放在这个文件中。做一个文件夹很好,这样便于组织。blog文件夹中的文件夹结构与输出url的路径无关。
额外的
如果要从基于日期的条目创建单独的页,请放置该文件。默认设置为“关于”。 新增时,在设置文件(data/biisan_local_settings.py)中添加glue_plate_plus_before_extra的定义。
例如,如果将文件imusing.rst放在
data/biisan_local_settings.py
中,请按如下方式定义GLUE_PLATE_PLUS_BEFORE_extra
。# Omitted settings = _( # 省略 multiprocess = 8, GLUE_PLATE_PLUS_BEFORE_extra = [ 'imusing', ], )
这就是胶板的工作原理,['imusing'在添加original file settings file'中的
extra
设置之前,]。另请参见Actual setting。
模板
放置要覆盖的模板。像
GLUE_PLATE_PLUS_BEFORE_extra
,GLUE_PLATE_PLUS_BEFORE_template_dirs
是在配置文件中定义的,因此首先我们将开始在此文件夹中查找模板文件。
输出
Html is output statically in this folder.
这是第一个条目
让我们在data/blog
中保存为my_first_entry.rst
,如下所示。文件名可以是文件扩展名之前的任何内容,只要扩展名是.rst。
Is the first entry
=========================================================
:slug: my_first_biisan_entry
:date: 2019-05-05 13:00
:author: Your name
Hello! world!
建造
操作在data
目录(biisan_data/data)中完成。
$ python -m biisan.generate
如果出现如下错误,则是因为尚未设置初始化时显示的环境变量。
Traceback (most recent call last):
(Omitted)
KeyError: 'BIISAN_SETTINGS_MODULE'
如果尚未设置环境变量,请再次尝试设置并再次执行该命令。
$ export BIISAN_SETTINGS_MODULE=biisan_local_settings
$ python -m biisan.generate
如果出现以下错误,则执行命令的文件夹是错误的。让我们在biisan_data/data
中执行它。
Traceback (most recent call last):
(Omitted)
ModuleNotFoundError: No module named 'biisan_local_settings'
如果可以,输出如下,那么让我们在浏览器中打开它。
$ python -m biisan.generate
BIISAN 0.3.0
INFO:__main__:Write:(omitted)/biisan_data/out/blog/2019/05/05/my_first_biisan_entry/index.html
INFO:__main__:Write:(omitted)/biisan_data/out/about/index.html
url由条目中描述的date
和slug
组成。此时,data文件夹和out文件夹如下所示。
.
├── data
│ ├── __pycache__
│ │ └── biisan_local_settings.cpython-37.pyc
│ ├── biisan_local_settings.py
│ ├── blog
│ │ └── my_first_entry.rst
│ ├── extra
│ │ └── about.rst
│ └── templates
└── out
├── about
│ └── index.html
├── api
│ ├── feed
│ │ └── index.xml
│ └── google_sitemaps
│ └── index.xml
├── blog
│ ├── 2019
│ │ └── 05
│ │ ├── 05
│ │ │ └── my_first_biisan_entry
│ │ │ └── index.html
│ │ └── index.html
│ └── index.html
└── index.html
尽管文件名是index.html,但假定它可以是o通过指定Web服务器的目录索引提交。
例如,如果省略文件名,https://www.tsuyukimakoto.com/about/
应设置为返回index.html。
条目路径是基于条目rst文件中描述的slug
和date
创建的。
:slug: my_first_biisan_entry
:date: 2019-05-05 13:00
模板
为每个指令提供一个模板。如果要更改样式等,请将模板放入“模板”文件夹。
Default template和real project template。
展开
将的内容部署到适当的服务器。别忘了指定目录索引。