【发布时间】:2018-12-13 00:44:27
【问题描述】:
我想在无法访问互联网的计算机上将 MathJax 与 Mkdocs 一起使用,因此我不能只调用 Mathjax CDN。
配置
mkdocs.yml:
site_name: My Docs
extra_javascript:
- 'javascripts/MathJax-2.7.5/MathJax.js'
- 'javascripts/MathJax-2.7.5/extensions/MathMenu.js'
markdown_extensions:
- pymdownx.arithmatex
文件结构
project/
docs/
javascripts/
MathJax-2.7.5/
...
mkdocs.yml
在Mathjax's documentation 之后,文件夹/MathJax-2.7.5/ 包含整个未压缩的存档。
问题
运行mkdocs serve我得到以下错误:
[E 181003 11:32:04 web:1591] Uncaught exception GET /javascripts/MathJax-2.7.5/extensions/MathMenu.js (127.0.0.1)
HTTPServerRequest(protocol='http', host='127.0.0.1:8000', method='GET', uri='/javascripts/MathJax-2.7.5/extensions/MathMenu.js', version='HTTP/1.1', remote_ip='127.0.0.1', headers={'Host': '127.0.0.1:8000', 'Connection': 'keep-alive', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', 'Dnt': '1', 'Accept': '*/*', 'Referer': 'http://127.0.0.1:8000/', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7'})
Traceback (most recent call last):
File "/Users/victor/.pyenv/versions/3.6.4/lib/python3.6/site-packages/tornado/web.py", line 1512, in _execute
result = yield result
File "/Users/victor/.pyenv/versions/3.6.4/lib/python3.6/site-packages/tornado/gen.py", line 1055, in run
value = future.result()
File "/Users/victor/.pyenv/versions/3.6.4/lib/python3.6/site-packages/tornado/concurrent.py", line 238, in result
raise_exc_info(self._exc_info)
File "<string>", line 4, in raise_exc_info
File "/Users/victor/.pyenv/versions/3.6.4/lib/python3.6/site-packages/tornado/gen.py", line 307, in wrapper
yielded = next(result)
File "/Users/victor/.pyenv/versions/3.6.4/lib/python3.6/site-packages/tornado/web.py", line 2422, in get
yield self.flush()
File "/Users/victor/.pyenv/versions/3.6.4/lib/python3.6/site-packages/tornado/web.py", line 947, in flush
start_line, self._headers, chunk, callback=callback)
File "/Users/victor/.pyenv/versions/3.6.4/lib/python3.6/site-packages/tornado/http1connection.py", line 400, in write_headers
data += self._format_chunk(chunk)
File "/Users/victor/.pyenv/versions/3.6.4/lib/python3.6/site-packages/tornado/http1connection.py", line 412, in _format_chunk
"Tried to write more data than Content-Length")
tornado.httputil.HTTPOutputError: Tried to write more data than Content-Length
[E 181003 11:32:04 web:1016] Cannot send error response after headers written
这两个错误反复出现,直到我停止服务器。
使用--no-livereload 防止问题,服务器返回:
INFO - Building documentation...
INFO - Cleaning site directory
INFO - Building documentation to directory: /var/folders/qw/6ccdf6w14k354611cpl0x99h0000gn/T/tmpqlulnc9t
INFO - Running at: http://127.0.0.1:8000/
INFO - Hold ctrl+c to quit.
但数学不呈现:
$$
\frac{n!}{k!(n-k)!} = \binom{n}{k}
$$
【问题讨论】:
-
--no-livereload导致 MkDocs 使用不同的服务器,该服务器可能以不同的方式处理相同的错误。你说数学没有渲染。为什么不?您的浏览器报告了哪些错误? -
我发现this bug report 可能是相关的。不幸的是,没有足够的信息可以确定。而且我不确定这是否是 Livereload 或 Tornado 中的错误。如果 Tornado 中存在错误,那么它会影响两个服务器。
-
浏览器控制台没有记录错误...
-
抱歉,我没办法了。我建议联系
pymdownx.arithmatex的开发人员。我知道他使用 MkDocs 的扩展,他可能会更好地提供帮助。
标签: javascript python mathjax mkdocs