静态站点生成器。

biisan的Python项目详细描述


比桑

traviscodecovUpdatesPython 3Reviewed by Houndcodebeat badge

biisan是一个静态站点生成器,可以在reStructuredText中编写文档。

功能

  • 将structuredtext的结构转换为object的结构,并使用jinja2模板为每个structuredtext的Directives输出到html
  • 为biisan支持的指令附加默认模板,但如果在配置中设置了搜索目标,则可以替换要使用的模板
  • 从指令到对象的转换处理器也可以通过设置来替换任何处理器
  • 不受支持的指令的处理也可以使用与替换相同的机制。
  • 新指令的简单定义
  • 将structuredText的结构转换为对象的过程在多处理中并行执行

快速启动

安装

它可以与pip一起安装。由于依赖库也同时安装,如果希望能够清除它们,则可能需要使用venv创建和安装虚拟环境。

$ pip install biisan

初始化

生成biisan的基本结构和配置文件。在您运行的文件夹下有一个名为biisan_data的文件夹。

按要求回答blog titlebase URLlanguage 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文件夹中有两个文件夹,dataout

  • 数据

    • 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_extraGLUE_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由条目中描述的dateslug组成。此时,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文件中描述的slugdate创建的。

:slug: my_first_biisan_entry
:date: 2019-05-05 13:00

模板

为每个指令提供一个模板。如果要更改样式等,请将模板放入“模板”文件夹。

Default templatereal project template

展开

将的内容部署到适当的服务器。别忘了指定目录索引。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用Java解析Html并将结果作为字符串   java我的switch语句有点问题   java在注册后为新用户生成唯一的用户ID   Java 8 lambda表达式字节码一致性   Java应用程序的playframework类型安全控制台配置   java将mxGraph导出到SVG(或任何类型的图像)   业务逻辑之前的java执行方法   LinkedList输出null的Java实现   java需要帮助检查值是否为1   java Delaunay三角形点连通性?   使用setImageResource的java相对路径   java获取方法所消耗的时间   正则表达式当字符串不匹配时,为什么javagrok返回最后一次成功匹配?   java在Spring批处理作业之后触发Spring集成出站适配器   集合Java按降序遍历映射集,返回所需的输出   代表设计模式在Swagger生成代码中的java意义?   如何使用Java代码将Sql Server的数据(行)实时复制到MySql中?