跳转到主要内容

未提供项目描述

项目描述

blogit

Build Status Coverage Status Documentation Status

一个基于markdown和jinja2的简单快速的静态网站生成器。

关于blogit

Blogit是一个Python3静态网站生成器。它使用markdown2解析器和Jinja2模板引擎。它具有小巧的代码库,并且对内容进行逐步构建。因此,它很快!新帖子根据需求添加,无需每次都重新解析和重建所有内容。

哦不,为什么还需要另一个静态网站生成器呢?

好吧,我在几年前已经研究了几种,但没有一种让我满意。我希望有一个用Python编写的工具,这样我就可以阅读代码并改进它。但是,我研究的那些工具规模太大,只是做我需要的事情——一个简单快速的静态网站生成器。

例如,看看nikola,它的代码量约为14,000行(!),或者Pelican,它更小,但仍然有约7600行代码。最常用的静态网站生成器之一jekyll是用Ruby编写的,只有约4800行代码。

Blogit,以优雅的约320行Python代码完成了它们的功能。简单的代码,简单是Jinja2和Markdown的包装器。这是Unix风格的。它不发明自己的模板语言,而是使用真正好和成熟的Jinja2模板引擎 <http://jinja.pocoo.org/>。它不包含自己的markdown解析器,而是使用出色的、功能丰富且快速的markdown2 <https://github.com/trentm/python-markdown2>解析器。

它遵循以下理念——代码越少,错误越少。

安装

您可以使用pip获取blogit:

$ pip3 install blogit

入门

要使用blogit,您应该创建一个包含简单配置文件conf.py的空目录,该文件的内容如下:

        CONFIG = {
            'content_root': 'content',  # where the markdown files are
            'output_to': '.',
            'templates': 'templates',
            'http_port': 3030,
            'content_encoding': 'utf-8',
            'author': 'Oz Nahum Tiram',
            'ARCHIVE_SIZE': 10,
            'INDEX_SIZE': 10
            }

        GLOBAL_TEMPLATE_CONTEXT = {
            'media_base': '/media/',
            'media_url': '../media/',
            'site_url': 'http://oz123.github.com',
        }

就是这样。很明显,您需要在这里根据您的需求进行定制。Blogit配置是一个Python模块,包含两个字典。您不需要成为Python专家来修改此文件。这不是唯一选择这种配置样式的项目。其他知名项目,如sphinx或django,也选择Python代码作为配置语言,而不是选择ini、yaml格式或其他配置DSL。

接下来,您需要在模板目录中创建一些Jinja模板,在内容目录中创建一些markdown文件。完成后,您可以使用以下命令构建您的博客:

    $ blogit -b

您可以使用以下命令预览生成的HTML文件:

    $ blogit -p

就这样了。要了解更多,您可能需要了解一些Jinja2和HTML,以获得一个外观良好的网站。遗憾的是,您可以使用现有的blogit-mir主题快速开始。要使用此主题,有quick-start选项,只需创建一个目录,存放您的文件,然后运行:


    $ blogit --quick-start

此命令将在您的目录中创建以下结构:

        .
        ├── conf.py
        ├── content
        │   ├── pages
        │   │   └── about.md
        │   └── posts
        │       ├── 1865-11-26-down-the-rabbit-hole.md
        │       ├── 1871-03-18-looking-glass-house.md
        │       ├── 1912-07-24-out-to-sea.md
        │       ├── 1948-12-12-the-purpose-of-education.md
        │       ├── 1963-08-28-i-have-a-dream.md
        │       └── 2014-08-12-the-businessman-and-fisherman.md
        ├── media
        │   ├── css
        │   │   ├── bootstrap.min.css
        │   │   ├── bootstrap-theme.min.css
        │   │   ├── print.css
        │   │   ├── pygments_style.css
        │   │   ├── site.css
        │   │   ├── style.css
        │   │   └── tipsy.css
        │   ├── img
        │   │   ├── about.png
        │   │   ├── body_bg.png
        │   │   ├── code_top_bg.png
        │   │   ├── flickr.png
        │   │   ├── github.png
        │   │   ├── g+.png
        │   │   ├── home.png
        │   │   ├── in.png
        │   │   ├── noise.png
        │   │   ├── rss.png
        │   │   └── twitter.png
        │   └── js
        │       ├── bootstrap.min.js
        │       ├── googlefonts.js
        │       ├── highlight.pack.js
        │       ├── jquery.js
        │       ├── jquery.min.js
        │       ├── jquery.tipsy.js
        │       └── scripts.js
        ├── __pycache__
        │   └── conf.cpython-35.pyc
        ├── README.md
        └── templates
            ├── about.html
            ├── archive_index.html
            ├── atom.xml
            ├── base.html
            ├── discuss.html
            ├── entry.html
            ├── entry_index.html
            ├── explorer.html
            ├── google_analytics.html
            ├── sidebar.html
            └── tag_index.html

        9 directories, 46 files

现在,您可以通过一条命令构建示例博客并启动演示web服务器:

$ blogit -bp
Rendering website now...
entries:
posts/1963-08-28-i-have-a-dream.md
posts/2014-08-12-the-businessman-and-fisherman.md
posts/1948-12-12-the-purpose-of-education.md
posts/1912-07-24-out-to-sea.md
posts/1865-11-26-down-the-rabbit-hole.md
pages/about.md
updating tag speeches
updating tag  fiction
updating tag fiction
updating tag fables
Updating index
Updating archive
and ready to test at http://127.0.0.1:3030
Hit Ctrl+C to exit

下次您添加新帖子时,只有该帖子将被构建。其他将要更新的页面包括帖子标签、存档和主索引。其他一切保持不变。因此,构建时间加快。

关于blogit的渐进式构建方式有一个注意事项。目前,一旦构建了一个帖子,它将被存储在文件content_root/blogit.db中,而不会再次构建。blogit的未来版本将存储文件的最后修改时间,如果更改时间比数据库中存储的时间新,则会构建该文件。

如果您等不及了,您可以修改数据库,或者完全删除它。修改数据库很简单。它是一个简单的JSON文件。只需确保您在编辑文件时不要忘记关闭大括号即可。

贡献

欢迎在https://github.com/oz123/blogit提交错误报告和pull请求。如果您创建了新的主题,也可以提交。移植jekyll主题也不难。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分布

blogit-0.4.2.tar.gz (1.1 MB 查看哈希值)

上传时间

构建分布

blogit-0.4.2-py3-none-any.whl (210.0 kB 查看哈希值)

上传时间 Python 3

由以下支持