静态站点生成器。

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第三方库


热门话题
iOS MDM注册配置文件请求/Profile使用java对证书进行签名   java如何调试GWT项目中的PHP文件   Mac和Windows之间的Java文件getFreeSpace差异   java从ArrayList进入JComboBox   ApacheKafka如何执行zookeeperserverstart。我的java程序中的bat文件?   JAXRS应用程序的java初始化   java如何为double覆盖compareTo方法?   使用进程动态运行java代码   sockets java。网SocketException:权限被拒绝openshift   java PorterduffXfermode:清除位图的一部分   其他线程中变量的java更改侦听器   java如何初始化接口实例以与父片段中的子片段通信   java Cordova插件在构建时出错,源代码1.6中不支持菱形运算符使用源代码7   java是学习编程的教育游戏吗?   在不同机器上使用JasperReports API运行代码时出现java问题   java Spring引导延迟Flyway序列化循环依赖   未为加密/解密初始化java密码