一个模块,它尝试直接从URL加载相应的模板,而无需为每个URL编写视图。
项目描述
TemplateFinder
TemplateFinder
是TemplateView
的扩展,它尝试直接从URL加载相应的模板,而无需为每个URL编写视图。
它可以直接加载HTML模板,也可以解析包含“wrapper_template”frontmatter键的Markdown文件。
使用方法
要将模板查找器注册到您的Flask应用程序中,您需要在应用程序配置中注册模板文件夹,并指定哪些路由应由它处理。以下示例将使用templatefinder处理所有内容
from canonicalwebteam.templatefinder import TemplateFinder
TEMPLATE_FOLDER =
app = Flask(
template_folder="templates",
static_folder="static",
)
app.config["TEMPLATE_FOLDER"] = "templates"
template_finder_view = TemplateFinder.as_view("template_finder")
app.add_url_rule("/", view_fun c=template_finder_view)
app.add_url_rule("/<path:subpath>", view_func=template_finder_view)
模板匹配
templatefinder可用于自动将.html
和.md
文件映射到网站上的URL。当包含查找器时,它将在指定的模板目录中搜索给定URL的文件。
例如 localhost/pages/test
将按以下顺序查找以下文件:
$TEMPLATE_FOLDER/pages/test.html
$TEMPLATE_FOLDER/pages/test/index.html
$TEMPLATE_FOLDER/pages/test.md
$TEMPLATE_FOLDER/pages/test/index.md
Markdown 解析
如果 TemplateFinder
遇到 Markdown 文件(以 .md
结尾),它将在 YAML 前置内容中查找以下键:
wrapper_template
必选:(例如:wrapper_template: includes/markdown-wrapper.html
)放置已解析 Markdown 内容的 HTML 模板的路径。此路径必须是 Flask 的template_folder
根目录的相对路径。context
可选:(例如:context: {title: "Welcome", description: "A welcome page"}
)要传递到模板上下文中的额外键/值对的字典。markdown_includes
可选:(例如:markdown_includes: {nav: }
)键名到模板路径的映射,这些路径指向要包含的 Markdown 文件。每个模板路径将被解析,生成的 HTML 将作为相关键传递到模板上下文中。路径必须是 Flask 的template_folder
根目录的相对路径。
以下是一个 Markdown 文件示例
---
wrapper_template: "includes/markdown-wrapper.html"
markdown_includes:
nav: "includes/nav.md"
context:
title: "Welcome"
description: "A welcome page"
---
Welcome to my website.
## GitHub
I also have [a GitHub page](https://github.com/me).
测试
可以使用 pytest 运行测试
pip3 install -r requirements.txt
python3 -m pytest test
项目详情
关闭
canonicalwebteam.templatefinder-1.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5bb51a04aeb6f2a3f7298bb1439c31c52636cc8d5f507d7e440618d2c06ba829 |
|
MD5 | b9d9ce6d61d91210de0b7965246510e4 |
|
BLAKE2b-256 | 63f93943d05dbacc44e4b376339fa55c74dffee4fc6177553f87ba846c80e088 |
关闭
canonicalwebteam.templatefinder-1.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f9226bf00b378e2b8be1c09ab31c2aeebc97b6af53016464497e6bcc636a3a90 |
|
MD5 | 2f53e842d45fd4ea6aa86afa13f030c5 |
|
BLAKE2b-256 | 2d9967439d1d9e8ac1cced42d48189f2a7046794bc0af17e486000725fe141f1 |