Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何通过readthedocs构建中的脚本修改用斯芬克斯构建的文档

如何通过readthedocs构建中的脚本修改用斯芬克斯构建的文档
EN

Stack Overflow用户
提问于 2022-08-23 00:22:24
回答 1查看 115关注 0票数 1

我正在尝试运行一个脚本来修改由Read托管的sphinx构建的文档(因为有些链接没有得到正确的处理)。当我试图在本地构建脚本时,脚本可以工作,但在读取文档生成时失败,或者更改不会传播到网站。

我试图运行的脚本非常简单,它替换了一些没有被sphinx标记表正确转换的html链接:

代码语言:javascript
运行
AI代码解释
复制
#!/bin/bash
# fix_table_links.sh
FILE="_build/html/api_reference.html"
if [[ "$1" != "" ]]; then
  FILE="$1"
fi
sed -E 's/a href="(.*)\.md"/a href="\1\.html"/g' -i ${FILE}

我的readthedocs.yml看起来像这样:

代码语言:javascript
运行
AI代码解释
复制
# Required
version: 2

# Build documentation in the docs/ directory with Sphinx
sphinx:
  configuration: docs/conf.py

# Optionally build your docs in additional formats such as PDF and ePub
formats: all

# Optionally set the version of Python and requirements required to build your docs
python:
  install:
    - requirements: docs/requirements.readthedocs.txt

build:
  os: ubuntu-20.04
  tools:
    python: "3.8"
  jobs:
    post_build:
      - echo "Running post-build commands."
      - bash docs/fix_table_links.sh _readthedocs/html/api_reference.html

有两种情况:

案例1)使用readthedocs.yml,构建失败,因为_readthedocs/html/api_reference.html不存在,尽管这个目录是文档声明将从这里上传的地方。此运行的一个示例失败是这里

Case 2)如果我将readthedocs.yml的最终结果更改为bash docs/fix_table_links.sh docs/_build/html/api_reference.html,那么构建就会通过(例如这里)。但是这些链接并没有在rather站点上更新:它们仍然指向标记页面,而不是相应的HTML页面,所以它不能是上传到Read网站的版本。

仔细阅读文档,我不知道如何做到这一点。以前是否有人这样做过,或者更好地掌握了文档构建工作的读取方式?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-09-04 16:22:41

如果您愿意将脚本重写为Python函数,那么通过将脚本作为事件的事件处理程序进行连接,可以非常容易地做到这一点。

我做了一些类似的在我自己的一次回复中,除了我后处理一个.rst文件。它实际上并没有在RTD上使用,但我可以看到它在构建日志中有效。因此,它也可以对HTML文件进行后置处理,因为build-finished事件将在生成后发生。

首先,将脚本定义为conf.py中的一个函数。它需要有appexception作为参数。

代码语言:javascript
运行
AI代码解释
复制
def replace_html_links(app, exception):
    with open(FILE, 'r') as f:
        html = f.read()
    # stuff to edit and save the html

然后定义或添加到setup函数中:

代码语言:javascript
运行
AI代码解释
复制
def setup(app):
    app.connect('build-finished', replace_html_links)

就这样!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73455350

复制
相关文章
人工智能的“斯芬克斯之谜”
在希腊神话中,赫拉派斯芬克斯坐在忒拜城附近的悬崖上,拦住过往的路人,用缪斯所传授的谜语问他们,猜不中者就会被它吃掉,这个谜语是:“什么动物早晨用四条腿走路,中午用两条腿走路,晚上用三条腿走路?”
用户7699929
2020/08/27
6070
人工智能的“斯芬克斯之谜”
普罗米修斯 软件_Prometheus普罗米修斯
Prometheus普罗米修斯是一款针对苹果用户专属打造的苹果手机系统降级工具。很多的果粉更新了ios10以后觉得系统无比的卡,觉得部分功能比较之前的系统差的太多了,就用Prometheus普罗米修斯工具进行系统降级,从而获得更好的使用体验。感兴趣的欢迎到西西下载。
全栈程序员站长
2022/09/09
9660
普罗米修斯
Prometheus(普罗米修斯)是一套开源的监控系统,其基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,不需要任何 SDK 或者其他的集成过程,其架构如图:
六个核弹
2022/12/23
2.8K0
普罗米修斯
普罗米修斯java_springboot集成普罗米修斯
Prometheus 是一套开源的系统监控报警框架。它由工作在 SoundCloud 的 员工创建,并在 2015 年正式发布的开源项目。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,非常的受欢迎。
全栈程序员站长
2022/09/09
1.8K0
普罗米修斯java_springboot集成普罗米修斯
模型压缩与蒸馏!BERT的忒修斯船
最近遇到一个需要对算法加速的场景,了解到了一个比较简洁实用的方法:Bert-of-theseus[1], 了解了原理后参考代码实验后,验证了其有效性,总结一下。
NewBeeNLP
2021/03/03
6860
模型压缩与蒸馏!BERT的忒修斯船
普罗米修斯的完整的示例项目
Luc Perkins刚在GitHub发布了“普罗米修斯游乐场”(The Prometheus Playground),一系列Docker Compose启动的完整的Prometheus示例项目,包括Alertmanager、cAdvisor、nginx、HAProxy等等。
CNCF
2019/12/06
6330
springboot集成普罗米修斯
Prometheus 是一套开源的系统监控报警框架。它由工作在 SoundCloud 的 员工创建,并在 2015 年正式发布的开源项目。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,非常的受欢迎。
方志朋
2022/01/06
1.8K0
springboot集成普罗米修斯
普罗米修斯 -- 初识 PromQL
之前讲过普罗米修斯自己就是一个时序数据库, 它从 exporter 拉取的数据都会按时间戳保存到对应的文件里,这个时序数据库默认会保存 14 天的数据。 而它自己也开发了一套名为 PromQL 的类 SQL 的查询语言用来从各种维度让用户来查询并计算监控的数据。 我们先来看一下我自己编写的 exporter 的接口, 看看它向普罗米修斯的主服务返回的监控数据是什么样的。
TesterHome小助手
2022/01/12
1.8K0
普罗米修斯 -- 基本使用
普罗米修斯是用 go 语言编写的软件并且利用了 go 语言的交叉编译特性编译成了纯二进制文件, 运行的时候不需要额外安装依赖。 直接从官网上下载就可以。 下载地址: https://prometheus.io/download/ 这里面除了普罗米修斯的主程序意外, 一些 额外的组件,比如 pushgateway, alertmanager 以及各种官方 exporter 的下载包都可以在这里找到。 由于我们现在部署普罗米修斯都是容器化部署的, 所以这里我选择用 docker 进行部署。
TesterHome小助手
2022/01/11
1.3K0
普罗米修斯监控openGauss
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161777.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/09
1.4K0
普罗米修斯监控openGauss
Prometheus 普罗米修斯 安装
注意 端口是 9090 可在Linux:curl 127.0.0.1:9090 可输出:
收心
2022/04/28
3230
普罗米修斯 -- PromQL 进阶
作者 | 孙高飞 理解 instant 类型和 range 类型 在 PromQL 中我们可以使用很多的操作符和内置函数来计算我们的监控数据, 而这些操作符和内置函数在计算的 时候要求输入的参数是有类
TesterHome小助手
2022/01/12
2.1K0
雷军的最后一次创业:从雷布斯到雷斯克!
“我决定亲自带队,这将是我人生中最后一次重大创业项目!我愿意押上我人生所有积累的战绩和声誉,为小米汽车而战!”,30日,雷军宣布了一个激动人心的消息,小米正式进军智能电动汽车领域!他亲自带队负责该项目,为小米汽车而战!
终码一生
2022/04/14
6810
雷军的最后一次创业:从雷布斯到雷斯克!
解读施帝芬.密斯考特的2021年10大编码原则
StudioWeb.com网站发起人、1995年入行的骨灰级程序和教育家施帝芬.密斯考特(Stefan Mischook)
老九君
2021/05/31
3570
普罗米修斯Prometheus监控神器
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161742.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/09
2K0
普罗米修斯の初体験
为什么我会选择普罗米修斯(Prometheus)?Prometheus 是按照 Google SRE 运维之道的理念构建的,具有实用性和前瞻性。同时也是基于 Go 语言开发的,性能好,安装部署也简单,甚至跨平台(包括 arm 平台)。作为对服务基础和业务监控,Prometheus 是一个非常好的选择。
Bess Croft
2021/12/24
5250
普罗米修斯の初体験
马斯克和贝索斯的“星球大战”
商业太空计划已经蓬勃发展了十年。在这个领域中,最雄心勃勃的两家公司当属Blue Origin(蓝色起源)和SpaceX(太空探索技术公司),而它们之间的竞争一直是众人的焦点。
大数据文摘
2019/01/23
6010
马斯克和贝索斯的“星球大战”
点击加载更多

相似问题

Readthedocs试图用斯芬克斯构建mkdocs项目。

17

认为斯芬克斯找不到斯芬克斯

22

斯芬克斯代码块的readthedocs.io语法突出显示

12

思考斯芬克斯3和斯芬克斯2.1.1-β不是开始

14

斯芬克斯隐形航向

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文