内置隐私插件¶
隐私插件为自动自托管提供了一个简化的解决方案 外部资产。只需一行配置,插件就可以 自动识别和下载外部资产,使GDPR合规 尽可能轻松。
Objective¶
工作原理¶
该插件扫描生成的HTML以查找外部资源,即脚本、样式 工作表、图像和web字体,下载并存储在 [site
目录][mkdocs.site_dir],并将所有引用替换为指向的链接 下载的副本可以轻松地进行自托管。例如:
下载此外部脚本后,链接将替换为:
当然,脚本和样式表可以引用其他外部资产, 这就是为什么这个过程会递归重复,直到没有进一步的外部 检测到资产:
- 扫描脚本以获取更多脚本、样式表和JSON文件
- 扫描样式表以查找图像和web字体
此外,在以下情况下,使用`preconnect等提示来减少延迟 请求的外部资产将从输出中删除,因为它们不是 自托管时需要。插件完成工作后,您的项目 将无需请求外部服务。
有一些[限制]。
何时使用¶
该插件的开发是为了符合2018年欧洲 __《通用数据保护条例》(GDPR)尽可能简单,同时 保持Material for MkDocs提供的灵活性和强大功能,如 例如,它与[谷歌字体]的紧密集成。
但是,这只是开始。例如,如果你的项目包括很多 图像,启用插件可以将它们移出存储库,如 插件将自动下载并将其存储在['site`目录]中 [构建项目]时使用[mkdocs.site_dir]。
更有趣的是,该插件可以与其他内置插件结合使用 MkDocs提供的材料,用于创建复杂的构建 为您的项目量身定制的管道:
-
优化插件允许优化所有下载的外部资产 隐私插件通过压缩和转换检测 技术。
外部媒体文件会自动下载和优化
-
离线插件增加了对构建[离线功能文档]的支持, 因此,您可以将[
site
目录][mkdocs.site_dir]作为.zip分发
可以下载的文件。
您的文档可以在没有连接到互联网的情况下工作
配置¶
与所有[内置插件]一样,开始使用隐私插件是 直截了当。只需将以下行添加到mkdocs.yml
中,然后开始 轻松自托管外部资产:
隐私插件内置于MkDocs的Material中,不需要 安装。
一般的¶
以下设置可用:
¶
使用此设置可在[构建项目]时启用或禁用插件。 如果你想禁用插件,例如,对于本地构建,你可以使用 mkdocs.yml
中的[环境变量][mkdocs.env]:
此配置仅在持续集成(CI)期间启用插件。
¶
有了更多的CPU可用,插件可以并行执行更多的工作,因此 更快地完成外部资产的处理。如果你想禁用并发 完全处理,使用:
默认情况下,该插件使用所有可用的CPU-1,最小值为1。
缓存¶
该插件实现了[智能缓存]机制,确保外部 只有当资产尚未包含在缓存中时,才会下载它们。 虽然初始构建可能需要一些时间,但使用缓存是个好主意, 因为它将加速连续构建。
以下设置可用于缓存:
¶
使用此设置指示插件绕过缓存,以便 重新安排所有外部资产的下载,即使缓存可能不是 陈腐。通常不需要指定此设置,除非 调试插件本身。可以通过以下方式禁用缓存:
¶
通常不需要指定此设置,除非您需要 更改根目录中下载副本的路径 缓存。如果你想更改它,请使用:
如果你正在使用该插件的[多个实例],这可能是一个好主意 为两个实例设置不同的缓存目录,这样它们就不会相互干扰 彼此。
登录中¶
以下设置可用于日志记录:
¶
使用此设置可控制插件在以下情况下是否应显示日志消息 构建您的网站。虽然不建议使用,但您可以通过以下方式禁用日志记录:
¶
使用此设置控制插件在以下情况下应采用的日志级别 遇到错误,这要求[log
][config.log]设置为 启用。以下日志级别可用:
报告错误和警告,终止内置程序 [严格][mkdocs.strict]模式。这包括符号链接无法执行时的警告 由于在Windows系统上缺乏权限而创建(#6550)。
外部资产¶
以下设置可用于外部资产:
¶
使用此设置控制插件是否应下载外部 资产。如果你只想让插件处理[外部链接],你可以禁用 通过以下方式处理外部资产:
¶
使用此设置控制插件是应该下载还是只报告 当遇到外部资产时。如果您已经自行托管所有外部 资产,此设置可用作检测外部链接的安全网 作者在页面中放置的资产:
¶
通常不需要指定此设置,除非您需要 更改[site
目录][mkdocs.site_dir]中的路径,其中 存储外部资产。如果你想更改它,请使用:
此配置将下载的副本存储在“my/custom/dir”中 [站点目录][mkdocs.site_dir]。
¶
使用此设置启用特定来源的外部资产下载, 例如,当使用插件的[多个实例]来微调处理时 不同来源的外部资产:
¶
使用此设置可禁用下载特定来源的外部资源, 例如,当使用插件的[多个实例]来微调处理时 不同来源的外部资产:
-
MathJax加载用于数学内容排版的web字体 通过相对URL,因此不能由 隐私插件。[MathJax可以自托管]。
我们建议将Giscus]用作[评论系统],它使用了一种技术 称为代码拆分,只加载必要的代码 通过相对URL实现。Giscus也可以自托管。
外部链接¶
以下设置可用于外部链接:
¶
使用此设置指示插件解析和处理外部链接 对它们进行注释以[提高安全性],或自动添加其他 外部链接的属性。如果你想禁用外部处理 链接,使用:
¶
使用此设置指定应添加到的其他属性 例如,外部链接,将target=“_blank”
添加到所有外部链接中 因此,它们在一个新选项卡中打开:
¶
通常不建议更改此设置,因为它会自动更改 使用rel=“noopener”
为在新窗口中打开的外部链接添加注释 [提高安全性]:
局限性¶
简化动态网址¶
未检测到作为脚本一部分的动态创建的URL,因此无法 自动下载,因为插件不执行脚本——它只检测用于下载和替换的完全合格的URL。简而言之,不要这样做:
相反,请始终使用完全限定的URL:
嵌入HTML¶
默认情况下,不会扫描嵌入的HTML文件(例如iframe中的文件)以查找外部 资产。这是MkDocs的一个局限性,因为它认为“.html”文件是 模板,必须明确列在 [`extra_templates][mkdocs.extra_template]。因此,自行托管外部资产 嵌入式HTML文件:
请注意,iframe.html
的路径是相对于 [docs_dir
][mkdocs.docs_dir]目录。