跳转至

为什么使用 MkDocs

我想使用GitHub部署一个类似docs或者wiki的个人知识沉淀的网站,有没有相关的框架?支持markdown语法的,不需要服务器和数据库的

GitHub提供了一个名为GitHub Pages的功能,可以用来托管静态网站。对于您想要创建的类似docs或wiki的个人知识沉淀网站,有几个流行的静态网站生成器可以满足您的需求,它们支持Markdown语法,并且不需要服务器和数据库:

  1. Jekyll:是最为广泛使用的静态网站生成器之一,与GitHub Pages有非常好的集成。您可以直接将Jekyll网站源代码托管在GitHub仓库中,GitHub会自动将其生成为静态网站。

  2. Hugo:这是一个用Go编写的开源静态网站生成器。它以快速的页面生成速度而闻名,同时拥有丰富的主题和插件。您可以在本地生成站点,然后将生成的静态文件推送到GitHub Pages。

  3. MkDocs:这是一个专门为文档项目打造的静态网站生成器。如果你的重点是创建技术文档、个人笔记或wiki,MkDocs是一个很好的选择。它使用一个简单的目录结构和一个配置文件来生成静态网站。

  4. Docusaurus:是Facebook团队开源的一个项目,专门用来构建、部署和维护开源项目文档的网站。它也支持Markdown,可以轻松地生成搜索引擎优化(SEO)友好的文档网站,并且支持文档版本管理。

  5. VuePress:如果你熟悉Vue.js,VuePress是一个很好的选择。它是一个基于Vue的静态网站生成器,专门为技术文档而设计。VuePress网站可以轻易地部署在GitHub Pages上。

要使用GitHub Pages部署这些静态网站,您需要:

  • 创建一个GitHub仓库。
  • 选择一个静态网站生成器并根据其文档创建您的站点。
  • 将生成的静态文件推送到GitHub仓库的特定分支(通常是gh-pages分支)。
  • 在仓库的设置中启用GitHub Pages服务,并选择相应的分支和目录。

每个生成器都有其详细的文档来指导您如何创建和部署网站,您可以根据个人喜好和技术栈选择最适合您的工具。

为什么不推荐hexo?他有什么不足吗

抱歉,我没有在之前的回答中提及Hexo。实际上,Hexo 也是一个非常流行且优秀的静态网站生成器,它特别受到许多博客和个人网站创建者的喜爱。Hexo 使用 Node.js 构建,支持 Markdown 格式的文档,并且拥有大量的主题和插件可以使用。

Hexo 的一些特点包括:

  • 快速的生成速度。
  • 支持Markdown和多种渲染引擎。
  • 丰富的插件系统,可以扩展网站的功能。
  • 简单易用,配置灵活,适合个人博客和文档网站。
  • 可以很容易地与GitHub Pages集成,自动部署。

Hexo 并没有特别的不足,它是否适合您主要取决于您的个人需求和对技术栈的偏好。如果您熟悉Node.js环境,并且喜欢Hexo提供的功能和生态系统,它绝对是一个不错的选择。

选择静态网站生成器时,您可能需要考虑以下因素:

  • 你是否已经熟悉该工具的技术栈(比如 Node.js, Ruby, Go 等)。
  • 生成器是否有活跃的社区和足够的维护支持。
  • 是否有满足您需求的主题和插件。
  • 生成器是否易于学习和使用。
  • 生成的网站是否满足您对性能和SEO的要求。

综合考虑上述因素后,您可以选择一个最适合您项目需求的静态网站生成器,不论是Hexo还是其他的生成器。

你推荐的这些哪个方便与GitHub自动部署结合

所有我之前提到的静态网站生成器都可以方便地与GitHub自动部署结合。GitHub Pages 与这些静态网站生成器协同工作的方式大致相似,它们都可以通过GitHub的持续集成/持续部署(CI/CD)服务,如GitHub Actions,来自动化部署流程。

以下是这些生成器的简要说明以及它们如何与GitHub自动部署结合:

  1. Jekyll: 由于是GitHub Pages官方支持的生成器,与GitHub的集成是最无缝的。只需将源文件推送到特定的GitHub仓库分支,GitHub Pages就会自动构建并部署您的网站。

  2. Hugo: 虽然不是GitHub官方支持的生成器,但是通过GitHub Actions,您可以很容易地设置自动化脚本来构建和部署您的Hugo网站。

  3. MkDocs: 通过使用GitHub Actions,您可以编写工作流程文件来安装MkDocs及其依赖项,构建网站,并将生成的站点推送到GitHub Pages分支。

  4. Docusaurus: 与MkDocs类似,您可以利用GitHub Actions来执行构建和部署流程,自动将Docusaurus生成的静态文件部署到GitHub Pages。

  5. VuePress: 由于VuePress是基于Vue.js的,如果您的项目已经在使用Vue.js,那么VuePress会是一个很好的补充。通过GitHub Actions,您可以轻松地设置自动部署到GitHub Pages。

  6. Hexo: 与上述生成器一样,您可以通过GitHub Actions来自动化Hexo网站的构建和部署过程。

对于所有这些生成器,您只需要在仓库中创建一个.github/workflows目录,并在该目录下创建一个YAML格式的GitHub Actions工作流程文件。在这个文件中,您可以定义如何安装依赖项、构建网站以及将构建产物推送到GitHub Pages分支的步骤。

举例来说,一个基本的GitHub Actions工作流程文件可能包含以下步骤:

  1. 检出源代码。
  2. 安装依赖项和构建工具。
  3. 运行构建命令生成静态文件。
  4. 将静态文件推送到GitHub Pages分支。

选择哪个生成器结合GitHub自动部署,取决于您对生成器本身的喜好以及您项目的特定需求。

他们各自的优缺点

下面是一些静态网站生成器的优缺点,用以帮助您选择最适合您需求的工具:

  1. Jekyll

    • 优点:与GitHub Pages集成最为紧密,设置简单;拥有丰富的插件和主题;大型社区支持。
    • 缺点:Ruby环境可能对某些用户不够友好;构建速度相比一些其他生成器较慢;插件系统不支持Windows。
    • Hugo

    • 优点:极快的构建速度;不依赖于外部环境,单个可执行文件运行;有活跃的社区。

    • 缺点:主题和插件较Jekyll少;学习曲线可能相对陡峭;模板语法和配置较为复杂。
    • MkDocs

    • 优点:专为文档而设计;简单易用,配置直观;Markdown友好。

    • 缺点:功能相对简单,主要针对文档类站点;主题和插件较少。
    • Docusaurus

    • 优点:支持文档版本管理;集成了翻译功能;支持React,方便定制和扩展。

    • 缺点:相对较新,社区和插件生态可能不如Jekyll或Hugo丰富;主要适用于文档站点而不是博客。
    • VuePress

    • 优点:Vue驱动,适合Vue开发者;优秀的默认主题和布局;容易扩展和自定义。

    • 缺点:集中于技术文档;插件和主题生态系统在成长中,还不如Jekyll或Hugo丰富。
    • Hexo

    • 优点:Node.js环境下的快速构建;插件和主题丰富;社区活跃;适合博客。

    • 缺点:可能存在一些性能问题;文档和国际化支持不如其他生成器;插件质量参差不齐。

在选择时,您应该考虑到以下几点:

  • 您熟悉的技术栈:选择一个与您现有技能相匹配的生成器会更容易上手。
  • 网站目的:不同的生成器可能针对不同的用途,比如博客、文档或一般用途的网站,选择最适合您网站目的的。
  • 社区和支持:一个活跃的社区和良好的文档支持有助于您解决问题并学习最佳实践。
  • 扩展性和定制性:如果您需要特定的功能或者想要对网站有更深层次的定制,选择一个插件丰富或易于定制的生成器会更合适。
  • 构建和部署的便捷性:考虑到生成器与GitHub Pages的集成程度和构建部署的便捷性。

最终的决策应基于您的具体需求、技术偏好以及对未来可能的扩展性的考虑。

我的电脑是mac我如果使用MkDocs,需要做哪些准备

要在Mac上使用MkDocs进行文档网站的开发,您需要按照以下步骤准备环境:

  1. 安装Python
    MkDocs 是用Python编写的,因此需要Python环境。Mac通常自带Python,但是可能是Python 2.x版本。MkDocs 需要 Python 3.5 以上版本。您可以使用Homebrew来安装最新的Python 3,如果还没有安装Homebrew,可以在终端执行以下命令来安装它:

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
    

    安装好Homebrew后,使用以下命令安装Python 3:

    brew install python
    
  2. 安装MkDocs
    使用Python的包管理器pip来安装MkDocs。在终端执行以下命令:

    pip install mkdocs
    

    如果您的系统中同时存在Python 2和Python 3,可能需要使用pip3来代替pip

  3. 创建新项目
    创建一个新的MkDocs项目,执行以下命令:

    mkdocs new my-project
    

    该命令会创建一个名为my-project的新文件夹,里面包含MkDocs的配置文件mkdocs.yml以及一个名为docs的文档目录。

  4. 运行MkDocs服务器
    切换到项目目录,并启动MkDocs内置的开发服务器:

    cd my-project
    mkdocs serve
    

    这个命令会启动一个本地服务器,默认情况下您可以通过浏览器访问http://127.0.0.1:8000来查看您的文档。

  5. 编写文档
    docs文件夹中使用Markdown格式编写您的文档。MkDocs会实时监控这些文件的变化,并自动重新构建网站。

  6. 构建静态网站
    当您准备好将您的文档发布到Web服务器或GitHub Pages时,使用以下命令构建静态网站:

    mkdocs build
    

    该命令会在site文件夹中生成静态内容,您可以将这些内容部署到任何支持静态文件托管的服务上。

  7. 部署到GitHub Pages
    如果您想要将网站部署到GitHub Pages,MkDocs提供了一个简单的命令来帮助您完成这一过程:

    mkdocs gh-deploy
    mkdocs gh-deploy
    

    这个命令会将构建好的网站推送到您的GitHub仓库的gh-pages分支,GitHub会自动将其发布到GitHub Pages。

以上就是在Mac上使用MkDocs的基本准备工作。记得在编辑文档时定期保存您的更改,并且定期将您的更改提交到版本控制系统中以避免数据丢失。