跳转到主要内容

一个模块,它尝试直接从URL加载相应的模板,而无需为每个URL编写视图。

项目描述

TemplateFinder

TemplateFinderTemplateView的扩展,它尝试直接从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 (7.6 kB 查看哈希值)

上传时间

构建分布

canonicalwebteam.templatefinder-1.0.0-py3-none-any.whl (8.5 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面