公告横幅#
您可以添加一个公告横幅,以吸引读者更多关注。 它将显示在屏幕顶部,但在读者开始滚动时会消失。
要添加公告横幅,请使用 html_theme_options["announcement"]
配置。 有两种使用方式。
在主题中提供本地 HTML#
默认情况下,html_theme_options["announcement"]
的值将直接插入到公告横幅中,作为原始 HTML。
例如,以下配置添加了一个简单的公告。
html_theme_options = {
...
"announcement": "Here's a <a href='https://pydata.org'>PyData Announcement!</a>",
}
使用 JavaScript 插入远程 HTML#
您可以指定一个任意 URL,该 URL 将用作公告的 HTML 源。 页面加载时,JavaScript 将尝试获取此 HTML 并将其原样插入到公告横幅中。 这样,您可以定义一个唯一的 HTML 公告,并将其引入多个文档站点或版本。
如果 html_theme_options["announcement"]
的值以 http
开头,则它将被视为指向远程 HTML 的 URL。
例如,以下配置告诉主题从本文档的 GitHub 存储库加载 custom-template.html
示例
html_theme_options = {
...
"announcement": "https://github.com/pydata/pydata-sphinx-theme/raw/main/docs/_templates/custom-template.html",
}
更新或删除公告横幅#
如果您将 html_theme_options["announcement"]
设置为纯文本或 HTML,那么要更新公告横幅,您需要修改此字符串并重新构建文档页面。 要删除公告横幅,请将此值设置为一个空字符串并重新构建文档页面。
如果您将 html_theme_options["announcement"]
设置为 URL 字符串(以 http
开头),那么您可以编辑该 URL 所指向的文件来更新公告横幅。 在该 URL 上保存一个空文件将删除公告横幅。 这就是使用 URL 的主要优势——您可以更改公告横幅,而无需重新构建和重新部署所有文档页面。 例如,如果您将公告指向存储库中某个文件的 URL(就像我们在本文档站点上所做的那样,参见上一节),那么您可以编辑、保存并仅将更改推送到该文件(空文件 = 删除公告),而无需重新构建和重新部署所有文档。
版本警告横幅#
除了通用的公告横幅之外,主题还包含一个内置横幅,用于在用户查看文档的非最新稳定版本时向他们发出警告。 要使用此功能,请将以下内容添加到 conf.py
中
html_theme_options = {
...
"show_version_warning_banner": True,
}
重要
此功能依赖于 版本切换器 来确定最新稳定版本的版本号。 它将仅在以下情况下有效:您的版本切换器 .json
只有一个具有属性 "preferred": true
的条目,并且您的条目具有可由 compare-versions 节点模块 解析的 version
属性,例如
{
"name": "stable",
"version": "9.9.9",
"url": "https://anything",
"preferred": true
}
如果活动版本小于首选版本,则公告将通知用户他们正在查看文档的较旧版本,并提供指向首选版本的链接。 如果版本大于首选版本(或如果版本匹配包含字符串“dev”、“rc”或“pre”),则公告将说明他们正在查看不稳定的开发版本。
如果您希望对文档的较旧版本(即在 show_version_warning_banner
配置选项可用之前构建的版本)提供类似的功能,则可以通过将以下 HTML 预先添加到所有页面来手动添加横幅(确保将 URL_OF_STABLE_VERSION_OF_PROJECT
替换为有效的 URL,并根据需要调整样式)
<div style="background-color: rgb(248, 215, 218); color: rgb(114, 28, 36); text-align: center;">
<div>
<div>This is documentation for <strong>an old version</strong>.
<a href="{{ URL_OF_STABLE_VERSION_OF_PROJECT }}" style="background-color: rgb(220, 53, 69); color: rgb(255, 255, 255); margin: 1rem; padding: 0.375rem 0.75rem; border-radius: 4px; display: inline-block; text-align: center;">Switch to stable version</a>
</div>
</div>
</div>