当前位置:  开发笔记 > 编程语言 > 正文

Gitweb:如何像github一样自动以html格式显示markdown文件

如何解决《Gitweb:如何像github一样自动以html格式显示markdown文件》经验,为你挑选了2个好方法。

Markdown对于文档很重要,很高兴看到README.md可以在github中以html格式自动显示,如https://github.com/twitter/bootstrap/blob/master/README.md

gitweb是用perl脚本编写的,perl中有markdown插件.

我想检查是否有插件/解决方案让gitweb自动显示标记格式的html文件.



1> 小智..:

我在我的远程存储库中使用以下post-receive hook,它可以使用gitweb进行浏览.

#!/bin/sh
#
# Post-receive hook script which generates README.html to git-dir from
# README.md found at the head of master branch in repository.
#
# Gitweb can read the README.html and embed it to the project summary page.

git cat-file blob HEAD:README.md | markdown > $GIT_DIR/README.html

当我将提交从我的本地工作存储库推送到远程裸存储库时,该脚本就会运行.根据您的工作流程/设置,您可以使用它或类似的东西.

有关git hooks的更多信息:http://book.git-scm.com/5_git_hooks.html



2> eriksensei..:

这是你可以sub git_summary在你gitweb.perl或你的某个地方坚持的东西gitweb.cgi.请注意,它取决于外部markdown可执行文件.

if (!$prevent_xss) {
    $file_name = "README.md";
    my $proj_head_hash = git_get_head_hash($project);
    my $readme_blob_hash = git_get_hash_by_path($proj_head_hash, "README.md", "blob");

    if ($readme_blob_hash) { # if README.md exists                                                                                                                                                      
        print "
readme
\n"; print "
"; # TODO find/create a better CSS class than page_body my $cmd_markdownify = $GIT . " " . git_cmd() . " cat-file blob " . $readme_blob_hash . " | markdown |"; open FOO, $cmd_markdownify or die_error(500, "Open git-cat-file blob '$hash' failed"); while () { print $_; } close(FOO); print "
"; } }

我真的不知道Perl,所以这是一个肮脏的黑客,但它确实有效.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有