bsw-构建静态web,一个简单的静态网站生成器。
bsw的Python项目详细描述
bsw
建立静态网站,一个简单的静态网站生成器。
用法(简称)
usage: bsw_run.py [-h] [-C] [-s] [--init [PATH]] [--template TEMPLATE] bsw - build static website optional arguments: -h, --help show this help message and exit -C, --clean remove existing build folder before building -s, --serve serve content after build (default port 8000) --init [PATH] initialise a new bsw site as the specified path --template TEMPLATE built-in template to use with --init
又好又简单。
开始
bsw在当前目录下工作,并希望有几个文件夹 存在:
- 页数
- 模板
要开始,我们需要创建这些文件夹并添加一个基 模板(主站点模板)到templates文件夹。
$ bsw --init mynewsite $ cd mynewsite $ bsw --serve
打开http://localhost:8000/about<;/a>; 在你的浏览器中,你会看到你的新网站,准备好了。
bsw将读取页面目录中的所有*.html和*.htm文件 (递归)并使用模板文件夹中的模板呈现它们 (如果页面没有模板指令,则默认使用base.html)。 然后,呈现的页面将保存到build文件夹中(该文件夹将 根据需要创建)。
页面中的变量(例如<!-- page_title = "my page title" -->)被放置 进入占位符处的模板(例如$page_title)。很容易 添加您自己的,您可以在示例博客中看到一个很好的例子 模板和博客文章。
学习语法的最好方法是看一下示例页面 和模板。他们故意很简单,应该很容易 拿起。
静态含量
bsw将把static/和templates/static/中的任何文件复制到 组合的build/static/文件夹 由页面或模板内容引用。例如,引用 templates/static/logo.png模板或页面上的文件: <img src="/static/logo.png">。
静态文件夹是完全可选的,模板和站点都是 静态是从同一个组合文件夹访问的。
包括
通过使用include指令,可以包含可重用的标记片段。
您必须将所有include放入templates/includes/。
例如,让我们创建一个包含到bsw项目的链接的include github上的存储库:
$ mkdir templates/includes $ echo <<EOF > templates/include/github_links.html > <p> > <a href="https://github.com/davb5/bsw">github.com/davb5/bsw</a> > </p> > EOF
我们现在可以从任何页面或模板文件中引用此包含内容 向页面标记添加以下指令:
<!-- include("github_links.html") -->
常见问题解答
为什么有两个静态文件夹?
bsw查找两个静态文件夹:
- 静态/
- 模板/静态/
这允许您将模板静态文件与 页面静态文件,使模板更容易在其他 地点。
但是,使用其中一个(或两个)静态文件夹是完全的 可选。
如何创建模板?
模板在文本上很简单。任何页面的默认模板 未显式指定模板为templates/base.html。
它只需要一个标签:
$page_content
将pages/中每个.html或.htm文件的内容插入 位于$page_content标记处的基模板。
页面还可以将值传递给模板,例如 可能包含以下内容:
<head> <title>My Example Blog | $page_title</title> </head>
您可以通过声明 它在页面标记的注释中,如下所示:
<!-- page_title = "My first blog post! -->
唯一需要的模板标记是`$page\u content``标记。
如何使用多个模板?
可以在templates文件夹中创建其他模板,然后 使用特殊的templatepage变量作为 所以:<!-- template = "my_special_case_template.html" -->
<!-- template ... -->变量可以出现在页面的任何位置 内容(不需要放在文件的顶部)。
任何未显式指定模板的页面都将使用base 模板templates/base.html。
如何部署我的站点?
您的宿主环境将有所不同,但部署就像复制一样简单 生成文件夹到某处访问的内容在你的网络服务器上。
流行的工作流包括使用rsync(仅复制有更改的文件) 或者git(如果您已经将站点源内容保存在git存储库中,那么使用起来很方便)。