首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将文档与Github页面同步?

如何将文档与Github页面同步?
EN

Stack Overflow用户
提问于 2013-03-05 02:26:31
回答 10查看 10.1K关注 0票数 81

我和几个人一起有一个项目,我们有一个README.md文件,其中有一堆GitHub风味的Markdown,呈现在我们的GitHub页面上。我们还设置了一个GitHub页面分支,它托管在GitHub组织的子域中,并在创建页面时使用自动页面生成器简单地加载到我们的README.md文件中。但是,我注意到,当我更新我们的README.md文件时,它不会更新项目页面。相反,我们必须转到GitHub设置选项卡,重新创建项目页面,重新加载README.md文件。

另外,在阅读了关于相对链接在GitHub项目目录页上的文档文件之间工作的信息之后。我非常喜欢这个标记,因为它节省了大量的时间,无需为文档手工编写所有HTML。然而,我想要的是能够有一个README.md文件,它能够包含指向位于docs/*.md的其他文档文件的相对链接。我希望有一个简单的解决方案,以便我的其他文档文件也可以包含在我的gh页面分支中,并托管在我的GitHub页面子域下,并呈现和/或主题化。

换句话说,我的问题是:

  • 有什么方法可以让我的README.md文件在我的Github页面子域上自动更新吗?
    • 编辑:如果使用自动页面生成器, No似乎是答案。您必须转到回购的设置页面,并在每次发生更改时重新加载它,以便更新它。

  • 有没有一种方法可以让我的相对链接到我的README.md文件工作的我的/docs/*.md文件工作在我的Github页面,也许我的可能是我的/docs/*.md同步到我的Github页面,并以某种方式呈现和/或主题它们?
    • 编辑:从我写这个问题以来学到的知识来看,这似乎只有在GitHub页面上才有可能,比如使用ruby gem 杰基尔之类的静态场地发生器,以及下面的注释中提到的GitHub支持的webhooks的一些用途。我目前正试图找到一个最佳的解决方案。

  • 更好的是,是否有一种更简单的方法可以做到这一点,也许只有一份我的README.md和文档在gh页面和我的主要分支中使用,使一切变得更简单?
    • 编辑:,看上去这个几乎肯定是否定的。我在考虑是否可能在GitHub中内置了一些东西来允许这样做。看起来,对这类事情的更好的支持可能会在未来的GitHub页面中构建,或者至少我绝对希望它会被支持。

EN

Stack Overflow用户

发布于 2016-10-14 14:54:07

这不是硬的,两个拷贝和粘贴到终端,你们都准备好了。

Jekyll允许您导入您的标记文件,然后它将负责将它们转换为HTML。诀窍是使用README.md将您的index.md文件导入{% include_relative README.md %}。以下是我们如何做到这一点:

值得查看github网站 (它只是两个文件!)

设置

只需运行此一次安装(将整个代码块复制到终端中),您就可以复制这两个文件并使您的页面与当前的自述文件保持一致:

代码语言:javascript
运行
复制
# Copy our two files to the gh-pages branch
git checkout -b gh-pages &&
wget https://raw.githubusercontent.com/lazamar/barebones-jekyll-project-readme/master/_config.yml &&
wget https://raw.githubusercontent.com/lazamar/barebones-jekyll-project-readme/master/index.md &&
#
# Commit and publish our page on github
git add -A && git commit -m "Create project github page" &&
git push --set-upstream origin gh-pages |
#
git checkout master # go back to master branch

自动化

然后,我们只需要在每次推送之前自动完成将所有更改从master复制到gh-pages分支的任务。我们可以通过运行这个脚本来做到这一点(您可以复制并粘贴到终端中)

代码语言:javascript
运行
复制
$(cat > .git/hooks/pre-push << EOF
#!/bin/sh
we_are_in_gh_pages="\$(git branch | grep -G "* gh-pages")"

if [ ! "\$we_are_in_gh_pages" ];
  then
    git checkout gh-pages &&
    git rebase master &&
    git push -f &&
    git checkout master # go back to master branch
fi
EOF
) && chmod 775 .git/hooks/pre-push

它将创建一个推钩子,它将在每次运行master时将所有更改从gh-pages分支复制到git push

就这样。完成。

票数 0
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15214762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档