未提供项目描述
项目描述
blogit
一个基于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主题也不难。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。