演示: docsascode.codeandmedia.com
我的灵感来自于 Linode 的方法 来创建和管理文档。他们称之为 文档即代码方法。 因此,我的目标是制作一种简单高效的方法,通过 Markdown、Git 和可选的 Docker/k8s 处理任何类型的文档和文章。
该仓库包含一个 Zola(我见过的最好的静态站点生成器)主题和一个用于构建 Nginx-alpine Docker 镜像的 dockerfile。你可以将一个 带有演示内容的镜像 拉取到你的 Docker 中
codeandmedia/docsascode-theme:latest
如果你在 MacBook M1 处理器 \ Raspberry Pi4 64bit \ Amazon Graviton 或其他 ARM64 上使用 Docker - 只需 fork ARM64 分支或 push
codeandmedia/docsascode-theme-arm64:latest但是,zola 是令人惊叹的静态站点生成器,所以你可以随意
Zola 支持 Netlify 和其他类似服务,或者你可以决定创建自己的 CI/CD 流程。
你所有的文章都应该在 content 文件夹内。任何图片、视频、其他静态文件都应该在 static 内。
每个文件夹都应该包含 _index.md,像这样
+++
title = "Docsascode title"
description = "Description is optional"
sort_by = "date" # sort by weight or date
insert_anchor_links = "right" # if you want § next to headers
+++
每个文件夹都是网站的一个版块,这意味着如果你创建文件夹 foo,它将被视为 yoursitedomain.com/foo
该主题支持文件夹中的文件夹以及一个文件夹中的文章 + 文件夹(参见 content 中的示例)。所以你可以在文件夹内存储其他文件夹并在 index 中描述一些具体细节。
一个页面应该开始于
+++
title = "File and folders in folder"
date = 2020-01-18 # or weight
description = "Description"
insert_anchor_links = "right"
[taxonomies] #all taxonomies is optional
tags = ["newtag"]
authors = ["John Doe"]
+++
Zola 允许创建草稿:
draft = true
此外,默认情况下你有两个分类法:tags 和 authors。它是可选的,不一定需要在所有页面上使用。你可以添加你自己的分类法:
{%/* if page.taxonomies.yourtaxonomynameplural */%}
<ul>
{%/* for tag in page.taxonomies.yourtaxonomynameplural */%}
<li><a href="{{/* get_taxonomy_url(kind="yourtaxonomynameplural", name=yourtaxonomyname) | safe */}}" >{{/* yourtaxonomyname */}}</a></li>
{%/* endfor */%}
</ul>
{%/* endif */%}
完成。我告诉过你 Zola 很棒 :)
无论如何,你可以根据自己的意愿用 Zola 重写主题(文档链接)