从YAML文件引用sphinx生成的Python文档

时间:2014-11-24 22:42:30

标签: python-sphinx

我们有一个使用Sphinx记录的内部python API。系统的一部分使用YAML作为配置文件,其中包含对使用API​​的py文件的引用。我被要求查看是否有办法使用sphinx将YAML配置文件链接到相应的API文档。我一直在谷歌,这里和狮身人面像网站上做研究,看起来我可以使用intersphinx,但我不清楚如何在两者之间建立联系。

所以例如:这是yaml配置文件:

HALT_LEVEL: Any
SUITE: "Checkin Tests"
DESCRIPTION: "checkin test suite"

TESTLIST:
    - TESTCASE: install stuff
      DESC: "Installs RPM"
      TESTGROUP: sprint_0
      TESTFILE: install_stuff.py   # I would like to turn this into a link to our sphinx docs
                                   # for this. This file is already part of sphinx docs"

那么当有人查看上述文件的html / sphinx版本时,他们可以点击install_stuff.py并将它们带到现有的文档中

这可能吗?

提前谢谢, 格雷格。

1 个答案:

答案 0 :(得分:1)

仅限那些可能感兴趣的人。我能够做到这一点但不使用Sphinx。我使用pyyaml来读取文件和pygments以生成html,然后攻击生成的html。

由于pygments似乎不允许使用实时href链接添加它们的内容

# create a yaml string using pyyaml and then modify the string.
href = '[ahref="%s"]%s[/a]' % (hrefData, hrefString)
yamldata['KEYWORD'][idx]['HOST'] = href

这会将引用的yaml更改为类似'[ahref="http://example.com"]Example.com[/a]'的字符串。生成html后,括号使更容易更改。在代码中,我使用pygments生成html

htmlpage = highlight(yamldata,lexer, HtmlFormatter(full=True, title=yamldata['TITLE']))

现在我将上面创建的href转换为真正的href:

webpage = htmlpage.replace('&#39;', '').replace('ahref', 'a href').replace('[','<').replace(']','>').replace('&quot;','"')