【问题标题】:Hosting raw HTML pages in a Pelican static website在 Pelican 静态网站中托管原始 HTML 页面
【发布时间】:2017-05-26 19:48:10
【问题描述】:

Pelican (Python) 静态站点生成器中是否有一种方法可以只传入一个原始 HTML 页面?目前,我正在尝试将 google-site-verification HTML 文件永久托管在根目录中。我也遇到过几次这个问题,与谷歌网站验证无关。

在理想情况下,我会将 HTML 文件放在 content 目录中,就像 rstmd 文件一样,然后将其拾取并放入 output 目录中。这显然不起作用,因此我在这里。

【问题讨论】:

    标签: python html pelican


    【解决方案1】:

    在输出中包含任意文件的最简单方法是使用EXTRA_PATH_METADATASTATIC_PATHS。比如来自my blog's config

    STATIC_PATHS = [
        'images',
        'extra',
    ]
    EXTRA_PATH_METADATA = {
        'extra/custom.css': {'path': 'custom.css'},
        'extra/robots.txt': {'path': 'robots.txt'},
        'extra/favicon.ico': {'path': 'favicon.ico'},
        'extra/CNAME': {'path': 'CNAME'},
        'extra/LICENSE': {'path': 'LICENSE'},
        'extra/README': {'path': 'README'},
    }
    

    这会从/content/extra 获取指定的文件并将它们放在/output 的根目录中。

    由于您的附加文件中有一个 HTML 文件,因此您还需要在 ARTICLE_EXCLUDES 中包含您的静态目录,以防止 Pelican 尝试处理该文件。

    【讨论】:

    • 这几乎可以工作,我将我的 html 文件放在静态目录中,但它失败了,因为它试图呈现 html 文件,这是我不想要的。一旦我在我的 pelicanconf.py 中使用了 ARTICLE_EXCLUDES = ['static'],它就可以工作了,它忽略了该目录进行渲染,这几乎就是我通常放在目录中的内容。
    • @DouglasKastle 好点,补充说;我那里没有任何 HTML 文件,所以 Pelican 没有任何东西可以尝试处理。
    • 非常感谢您的更正。我想这就是答案,只等魔法……
    【解决方案2】:

    accepted answer 帮助了我,但如果您想要呈现静态 HTML,则不需要此 comment

    这是来自pelicanconf.py 的sn-p 对我有用,它基于位于content/html/page_name.html 的html 文件添加了一个静态站点,此路径为http://localhost/page_name.html

    STATIC_PATHS = [
        'images',
        'extra',
        'html',
    ]
    EXTRA_PATH_METADATA = {
        'extra/custom.css': {'path': 'custom.css'},
        'extra/robots.txt': {'path': 'robots.txt'},
        'extra/favicon.ico': {'path': 'favicon.ico'},
        'extra/CNAME': {'path': 'CNAME'},
        'extra/LICENSE': {'path': 'LICENSE'},
        'extra/README': {'path': 'README'},
        'html/page_name.html' : {'path' : 'page_name.html'}
    }
    

    【讨论】:

      【解决方案3】:

      这些问题有几个解决方案。一是现场验证。您可以在推送生成的内容时手动添加验证文件,也可以在站点模板中添加<meta> 标签。您可以在此处阅读有关您的选项的更多信息:https://support.google.com/webmasters/answer/35179?hl=en

      至于将 HTML 嵌入到 pelican 站点中,您可以使用 reStructuredText (.rst) 而不是 Markdown (.md),然后您可以导入 html。在reddit上解释here

      【讨论】:

        猜你喜欢
        • 2016-08-15
        • 1970-01-01
        • 2017-02-28
        • 1970-01-01
        • 2018-09-14
        • 2017-01-12
        • 2017-05-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多