我们有一个使用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并将它们带到现有的文档中
这可能吗?
提前谢谢, 格雷格。答案 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(''', '').replace('ahref', 'a href').replace('[','<').replace(']','>').replace('"','"')