使用相对路径生成文档
generate documentation with relative paths
我正在尝试设置 cabal 配置,以便它能够以我可以在本地或远程浏览的形式生成文档。所以要求之一是生成正确形式的 html,即相对路径。
我搜索了一下,好像选项的组合太多了,所以我觉得还是过来问一下,看看有没有人知道比较好。
我当前的配置:
documentation: True
其他选项无关紧要。编译器生成 links 类似于这个:
file:///home/hu/.cabal/share/doc/x86_64-linux-ghc-7.10.3/lens-4.14/html/Control-Lens.html
这让我只能在本地阅读文档。所以我希望在 html 中,它包含 link 作为:
lens-4.14/html/Control-Lens.html
这样在远程浏览器中,我可以看到 link 为:
http://linux/ghc-doc/lens-4.14/html/Control-Lens.html
希望这是有道理的。
有人知道我需要设置哪些选项才能启用此功能吗?
一种选择是使用 stack
——它会创建 HTML 带有您想要的相关链接的文档。
对于每个包,只需 运行:
stack build --haddock <package-name>
或
stack --resolver ... build --haddock <package-name>
使用特定的解析器。然后在$HOME/.stack/snapshots/<arch>/<resolver>/<ghc-version>/doc/
中查找
注意 - <package-name>
只是包名称 - 不包括版本。
需要注意的是,堆栈不会重建包 - 也许有一个标志 - 但你总是可以在开始之前删除你的快照目录。
也许你想要这个:http://documentup.com/feuerbach/standalone-haddock
引用:它生成文档...带有正确的链接:
- 此包集中标识符的链接是相对的
- 指向外部包标识符的链接导致黑客攻击
我真的找不到解决方案,所以我最终编写了自己的 cgi 脚本来帮助我进行转换。这是要点:
https://gist.github.com/HuStmpHrrr/b7de3c49f77a925dc6cf85da16a1d231
其中 pipeline
是将更正超链接的那个。由于这是一个快速而肮脏的脚本,如果有人能指出我可以从中改进什么,我们将不胜感激。
我们还需要设置 http 服务器(在我的例子中,它是 apache2):
启用cgi
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
将你的 apache 配置为 运行 cgi:
ScriptAlias /cgis/ $somepath/cgis/
<Directory "$somepath/cgis">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
</Directory>
然后把cgi文件放在那里。它应该能够做到这一点。
我正在尝试设置 cabal 配置,以便它能够以我可以在本地或远程浏览的形式生成文档。所以要求之一是生成正确形式的 html,即相对路径。
我搜索了一下,好像选项的组合太多了,所以我觉得还是过来问一下,看看有没有人知道比较好。
我当前的配置:
documentation: True
其他选项无关紧要。编译器生成 links 类似于这个:
file:///home/hu/.cabal/share/doc/x86_64-linux-ghc-7.10.3/lens-4.14/html/Control-Lens.html
这让我只能在本地阅读文档。所以我希望在 html 中,它包含 link 作为:
lens-4.14/html/Control-Lens.html
这样在远程浏览器中,我可以看到 link 为:
http://linux/ghc-doc/lens-4.14/html/Control-Lens.html
希望这是有道理的。
有人知道我需要设置哪些选项才能启用此功能吗?
一种选择是使用 stack
——它会创建 HTML 带有您想要的相关链接的文档。
对于每个包,只需 运行:
stack build --haddock <package-name>
或
stack --resolver ... build --haddock <package-name>
使用特定的解析器。然后在$HOME/.stack/snapshots/<arch>/<resolver>/<ghc-version>/doc/
注意 - <package-name>
只是包名称 - 不包括版本。
需要注意的是,堆栈不会重建包 - 也许有一个标志 - 但你总是可以在开始之前删除你的快照目录。
也许你想要这个:http://documentup.com/feuerbach/standalone-haddock
引用:它生成文档...带有正确的链接:
- 此包集中标识符的链接是相对的
- 指向外部包标识符的链接导致黑客攻击
我真的找不到解决方案,所以我最终编写了自己的 cgi 脚本来帮助我进行转换。这是要点:
https://gist.github.com/HuStmpHrrr/b7de3c49f77a925dc6cf85da16a1d231
其中 pipeline
是将更正超链接的那个。由于这是一个快速而肮脏的脚本,如果有人能指出我可以从中改进什么,我们将不胜感激。
我们还需要设置 http 服务器(在我的例子中,它是 apache2):
启用cgi
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so
将你的 apache 配置为 运行 cgi:
ScriptAlias /cgis/ $somepath/cgis/ <Directory "$somepath/cgis"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted </Directory>
然后把cgi文件放在那里。它应该能够做到这一点。