这是一个Sphinx的常见问题列表。欢迎随时提出新的问题!
你可以定制化 layout.html 模版,像这样:
{% extends "!layout.html" %}
{%- block extrahead %}
{{ super() }}
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'XXX account number XXX']);
_gaq.push(['_trackPageview']);
</script>
{% endblock %}
{% block footer %}
{{ super() }}
<div class="footer">This page uses <a href="http://analytics.google.com/">
Google Analytics</a> to collect statistics. You can disable it by blocking
the JavaScript coming from www.google-analytics.com.
<script type="text/javascript">
(function() {
var ga = document.createElement('script');
ga.src = ('https:' == document.location.protocol ?
'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
ga.setAttribute('async', 'true');
document.documentElement.firstChild.appendChild(ga);
})();
</script>
</div>
{% endblock %}
epub生成器目前正处于测试阶段。仅仅完成与Sphinx文档本身的测试。如果你想要创建epubs,下面是一些提示:
把文本分割到多个文件中。单个的HTML文件越长,ebook阅读器处理的时间就越长。在极端情况下,阅读器需要花费一分钟来渲染。
应尽量减少的标记。这也花费的渲染时间。
对于一些阅读器,你可以使用内嵌或者外部的字体使用 CSS @font-face 指令(标识符)。 这对于代码是 极其 有用,它们经常被右边缘给截断。默认的Courier字体是相当的宽,一行只能显示60个字符。如果你用一个更窄的字体来替代的话,一行能够显示更多的字符。 你可能甚至使用 FontForge 以及创建些免费字体的窄变体。以我的情况,一行能够显示70个字符。
您可能需要试验一下,直到你得到合理的结果。
测试所创建的ePub文件。可以有多种选择。我所知道的一种是 Epubcheck, Calibre, FBreader (虽然不支持CSS), 以及 Bookworm。你可以下载 http://code.google.com/p/threepress/,在自己的服务器上运行。
大型浮动的div显示不正确。如果覆盖多个页面,只显示在第一页的div。 这种情况,你可以从 sphinx/themes/epub/static/ 拷贝 epub.css 到你本地的 _static/ 目录,并且删除浮动设置。
在 toctree 指令(标识符)外的文件需要手动导入。有时候这也适用于附录,例如词汇表。你也可以添加它们在 epub_post_files 选项。
Texinfo生成器目前处于试验阶段,但已成功地用于构建Sphinx和Python的文档。此生成器的设计用途是生成信息文件,然后将其加工成的Texinfo。
有两个主要的程序读取信息的文件:info 和GNU Emacs。info 特点不多,但是适用大多数的Unix环境,并从终端可以快速访问。Emacs提供了更好的字体和颜色显示,并支持广泛的定制(当然)。
如果你需要创建Texinfo文件,下面这些提示也许是有帮助的:
每个部分对应于不同节点。
冒号(:)不能正确被转义在菜单项和交叉引用中。它们将被用分号替换。
在HTML和Tex的输出,see 会自动插入到所有的交叉引用的前面。
外部信息文件的链接可以使用的一些官方的URI方案 info。例如:
将会:
行内标记会显示如下信息:
可以使用Texinfo命令行 @definfoenclose 来改变这种行为。例如,为了使行内标记更接近reST,增加如下内容到 conf.py:
texinfo_elements = {'preamble': """\
@definfoenclose strong,**,**
@definfoenclose emph,*,*
@definfoenclose code,`@w{}`,`@w{}`
"""}