当前位置: 首页 > 知识库问答 >
问题:

我可以在readthedocs.org上的MkDocs中使用外部主题吗?

潘辰龙
2023-03-14

我为我的项目从包含的ReadtheDocs主题切换到bootswatch United主题。我为这个主题做了一个pip install mkdocs-bootswatch,并在我的mkdocs.yml文件中将主题:readthedocs更改为主题:联合

然而,尽管项目在Read the Docs中成功构建,文档仍然保留了标准的readthedocs主题。当我在本地运行它(使用< code>mkdocs serve)时,它正确地显示了United主题。

是否还有其他代码行我应该在某处调整?我应该添加的需求文件?如何使外部主题正确地显示在ReadtheDocs中……或者,我甚至可以在ReadtheDocs.org上使用外部主题?

注意:我问过MkDocs的人,他们说这是一个ReadTheDocs限制,所以如果有什么需要做的话,看起来这将是一个与ReadTheDocs相关的解决方案。否则,我可能不得不切换到GitHub页面或类似的页面。

共有1个答案

贝成业
2023-03-14

我看了一下ReadtheDocs的源代码,看起来它们实际上覆盖了你的设置配置,并强制使用它们自己的模板。据我所知,他们这样做是因为他们将特定于ReadtheDocs的JavaScript和导航内容注入到您的页面中,并且通过使用已知的主题,他们可以确保注入是正确的。也就是说,不应该有任何技术上的原因来解释为什么不能使用相同的HTML作为readthedocs主题,但是可以使用不同的CSS来改变页面的外观/样式。只是ReadtheDocs似乎没有明确支持这一点。

也就是说,我确实注意到,只有当“theme_dir”不在user_config和self.use_theme时,模板覆盖才会发生。这为您提供了两种可能的路径来避免覆盖。请注意,无法保证注入的东西会正常工作,因此请小心行事。

>

  • theme_dir是一个Mkdocs设置。您可以将主题文件复制到<code>docs_dir。

    也许作为一种不太激进的方法,您可以设置< code>theme: readthedocs,然后使用< code>theme_dir来只提供您自己的CSS文件,这些文件将覆盖/替换内置readthedocs主题提供的CSS。这样应该对ReadtheDocs注射的敌意小一点,给你一个你喜欢的样子。然而,这可能需要更多的工作来做好,因为你被限制在现有主题的HTML,并需要创作自己的CSS(不使用已经建立的主题)。

    为此,您可以将< code>theme设置为您想要的任何主题,然后将< code>theme_dir指向一个空目录。看起来ReadtheDocs只检查了< code>theme_dir的设置,并不关心目录中实际存在什么。

    注意:我没有测试过这些建议中的任何一个,也不能确定它们是否有效。新浪网.

    另外,关于这一切是如何工作的MkdDocs文档(在< code>theme和< code>theme_dir设置之间的交互)现在严重缺乏。然而,当MkDocs的下一个版本(0.16)发布时,一些最新的添加将会生效。

    <code>use_theme</code>似乎专门用于读取文档,并在内部进行硬编码。我猜这不会被用户覆盖。需要对代码进行更深入的调查,以确定这提供了哪些选项(如果有的话)。

  •  类似资料:
    • 我目前是一名学生,在我们的移动计算主题上,我们被要求安装Flutter。我在2015年初使用MacBook Pro,当我运行flutter doctor时,它显示我需要安装Xcode,然而,我选择的IDE是Vscode。 我的问题是,是否可以在安装在外部硬盘驱动器中的Xcode中使用flutter?这是因为Xcode正在吞噬我的大部分空闲空间。如果可能的话,它的利弊是什么?

    • 我有一个假客户端,它从微服务请求令牌。由于我正在进行多次调用,我希望缓存从外部客户端收到的响应并使用Spring Guava缓存,但它似乎不起作用。我所拥有的只是外部客户端上的配置类和注释。 我在堆栈溢出的某个地方读到,Fegn可能不支持@Cacheable注释。这是真的吗?

    • 问题内容: 有什么办法在外面使用吗? 这是我使用的代码的一部分: 更新 没有办法使响应在全球范围内可用吗? 问题答案: 没有; 异步执行,因此当您调用时,AJAX请求仍在运行,尚未产生响应。这是回调函数的目的:提供请求完成 后 要运行的代码。如果进入回调函数,它应该可以工作: 更新: 如果您希望响应数据在全球范围内可用,则可以在全局范围内声明变量,如下所示: 当然,唯一可以确保实际填充值的上下文是

    • 问题内容: 我是React的新手,我看过许多指南,人们在这些指南中教您如何在数字海洋,heroku,GitHub Pages,aws等服务上部署React应用。但是我想知道我是否可以部署仅由前端服务(如000webhost或Ipage)组成的React应用(create- react-app)?因为有人要我设计一个网站,所以他说他已经在lpage中拥有域名和主机服务。 提前致谢 问题答案: 我使用

    • 这是正确的吗? 如果是这样,考虑到这是一场战争,我如何将这些属性注入我的Spring Boot应用程序?

    • 我认为使用lambda来消费到达AWS MSK Kafka集群中某个主题的消息很简单,但我无法从AWS文档中找到这样做的方法。在某种程度上可能吗?