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存储库中,那么使用起来很方便)。

我更新了我的模板或css,但更改没有反映在新的构建中。为什么?

默认情况下,BSW不会覆盖生成文件夹中的现有文件。这是为了 避免在包含大量静态内容的站点上可能更长的构建时间(对于 例如,大图像或下载)。尝试运行bsw --clean或手动 删除要重新生成的生成文件。

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

推荐PyPI第三方库


热门话题
java调用Python函数作为TEID中的UDF   java Android。支持v4导入不工作   java如何影响具有静态属性的类   java如何在从glTexImage2D()分配后编辑纹理的像素颜色   javaspringboot+rediscache+@Cacheable适用于某些方法,而不适用于其他方法   java无法将动态Web模块方面从3.0更改为2.5   java如何在新选项卡中显示打印的文档?   java Google Cloud Endpoints API方法仅在删除用户参数时成功调用   java为什么我可以使用Stack<Double>但不能使用Stack<Double>?   java JDBC PreparedStatement似乎忽略了占位符   java如何设置JInternalFrame的标准图标化位置?   Java文件。copy()不复制文件   基于另一个类的java显示arraylist?   java Android Studio:错误:非法字符:'\u2028'   对象(Java)无法实例化类型映像?   javascript错误:飞行前响应的HTTP状态代码401无效   java确保泛型vararg参数具有相同的类型