docsify - 无需构建快速生成文档网站

docsify

无需构建快速生成文档页

网站:https://github.com/qingwei-li...
文档:https://docsify.js.org/zh-cn

特性

  • 无需构建,写完 markdown 直接发布
  • 支持自定义主题
  • 容易使用并且轻量

快速上手

创建项目

新建一个空项目,接着创建一个 docs 目录并进入到 docs 目录下

mkdir my-project && cd my-project
mkdir docs && cd docs

创建入口文件

创建一个 404.html 文件,内容为

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" href="//unpkg.com/docsify/themes/vue.css">
</head>
<body>
  <div id="app"></div>
</body>
<script src="//unpkg.com/docsify"></script>
</html>

新建 README.md 文件,作为主页面

# Title

## balabala

部署!

将项目 push 到 GitHub 仓库后到设置页面开启 GitHub Pages 功能,选择 docs/ 选项

命令行工具

方便快速创建文档目录,会读取项目的 package.json 里的选项作为 docsify 的配置,支持本地预览。

安装

npm i docsify-cli -g

初始化文档

默认初始化在当前目录,推荐将文档放在 docs 目录下

docsify init docs

启动本地服务

启动一个 server 方便预览,打开 http://localhost:3000

docsify serve docs

更多选项参考 docsify-cli

主题

目前提供 vue.css 和 buble.css,直接修改 404.html 里的 cdn 地址即可

<link rel="stylesheet" href="//unpkg.com/docsify/themes/vue.css">
<link rel="stylesheet" href="//unpkg.com/docsify/themes/buble.css">

压缩版

<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/buble.css">

更多功能

多页面

README.md 作为主页面,如果需要其他页面,直接在文档目录下创建对应的 *.md 文件,例如创建一个 guide.md 那么对应的路由就是 /guide

导航

导航需要自己写在 404.html 文件里,效果参考本文档

<nav>
  <a href="/docsify/">En</a>
  <a href="/docsify/zh-cn">中文</a>
</nav>

配置参数

repo

参考本文档的右上角的 GitHub 图标,如果要开启的话,将 404.html 里的 script 改成

<script src="//unpkg.com/docsify" data-repo="your/repo"></script>

max-level

目录最大展开层级,默认值为 6

<script src="//unpkg.com/docsify" data-max-level="6"></script>

el

替换节点元素,默认为 #app

<script src="//unpkg.com/docsify" data-el="#app"></script>

sidebar-toggle

Sidebar 开关按钮

<script src="//unpkg.com/docsify" data-sidebar-toggle></script>

sidebar

设置后 TOC 功能将不可用,适合导航较多的文档,data-sidebar 传入全局变量名。

<script>
  window.sidebar = [
    { slug: ‘/‘, title: ‘Home‘ },
    {
      slug: ‘/pageA‘,
      title: ‘page A‘,
      children: [
        { slug: ‘/pageA/childrenB‘, title: ‘children B‘ }
      ]
    },
    { slug: ‘/PageC‘, title: ‘Page C‘ }
  ]
</script>
<script src="/lib/docsify.js" data-sidebar="sidebar"></script>

load-sidebar

读取侧边栏配置文件,如果配置,默认加载当前目录下的 _sidebar.md。如果文件不存在,会显示 TOC 作为侧边栏内容。如果你有二级目录,也应该放置一份配置文件。

<script src="/lib/docsify.js" data-load-sidebar></script>

你可以指定侧边栏文件名

<script src="/lib/docsify.js" data-load-sidebar="_sidebar.md"></script>

_sidebar.md 的内容可以是这样的

- [Home](/)
- [Installation](/installation)
- Essentials
  - [Getting Started](/getting-started)
  - [Dynamic Route Matching](/dynamic-matching)
  - [Nested Routes](/nested-routes)
  - [Programmatic Navigation](/navigation)
  - [Named Routes](/named-routes)
  - [Named Views](/named-views)
  - [Redirect and Alias](/redirect-and-alias)
  - [HTML5 History Mode](/history-mode)

load-navbar

读取导航配置文件,如果配置,默认加载当前目录下的 _navbar.md。如果文件不存在,会显示 html 里定义的导航栏。

<script src="/lib/docsify.js" data-load-navbar></script>

你可以指定导航栏文件名

<script src="/lib/docsify.js" data-load-navbar="_navbar.md"></script>

_navbar.md 的内容可以是这样

- [en](/)
- [中文](/zh-cn)

当然也支持二级列表,将生成一个下拉列表

- [download](/download)
- language
  - [en](/)
  - [中文](/zh-cn)

FAQ

为什么是 404.html 而不用 index.html

docsify 想要实现的是用最简单的方式 动态渲染内容

例如我有两个文档分别为 README.mdguide.md,如果我用 index.html 作为文件名,README.md 可以被正确的渲染因为我们已经规定它为首页文件,但是如果我们访问 my-domain.com/guide 想要得到的结果是 guide.md 的内容,它将无法工作,因为目录下并不存在一个 guide.html 的文件。

但是 GitHub Pages 服务器找不到资源, 就会回退并渲染 404.html 文件。?



网站:https://github.com/qingwei-li...
文档:https://docsify.js.org/zh-cn

本文转载于:猿2048?https://www.mk2048.com/blog/blog.php?id=hh10ijhihaa

原文地址:https://www.cnblogs.com/homehtml/p/12579490.html

时间: 2024-10-18 11:24:50

docsify - 无需构建快速生成文档网站的相关文章

xcode快速生成文档

首先是转载内容: 一.自动生成注释代码 添加一个快捷键,生成 注释代码 ThisService 下载连接:http://wafflesoftware.net/thisservice/ Doxygen.rb 下载连接:http://www.brokenrul.es/blog/wp-content/uploads/2011/03/Doxygen.rb_.zip 1.打开ThisService,进行以下配置 Name:右键菜单中的名字 Script:将Doxygen.rb拖拽到这里 2.打开系统偏好设

利用 Gitbook 生成文档中心站点

利用 Gitbook 生成文档中心站点 经过一个多月,Bugtags 最近上线了自己的文档站点(docs.bugtags.com),在这里你可以找到 Bugtags 集成.使用相关的绝大部分问题. 在这之前我们使用的是第三方提供的帮助中心产品服务,在他们网站后台上面编辑文档内容,建立自己的文档体系的:但是用久了发现还是用很多不爽的地方,起码是不符合我们的习惯: 比如:该产品文档是使用富文本形式编辑和存储在数据库的:而我们自己都非常喜欢于用 Markdown 格式编写文档:而数据库保存也注定无法使

使用 Swagger 自动生成 ASP.NET Core Web API 的文档、在线帮助测试文档(ASP.NET Core Web API 自动生成文档)

对于开发人员来说,构建一个消费应用程序时去了解各种各样的 API 是一个巨大的挑战.在你的 Web API 项目中使用 Swagger 的 .NET Core 封装 Swashbuckle 可以帮助你创建良好的文档和帮助页面. Swashbuckle 可以通过修改 Startup.cs 作为一组 NuGet 包方便的加入项目.Swashbuckle 是一个开源项目,为使用 ASP.NET Core MVC 构建的 Web APIs 生成 Swagger 文档.Swagger 是一个机器可读的 R

使用DocFX生成文档

使用DocFX命令行生成文档 使用docfx 命令 1.下载 https://github.com/dotnet/docfx/releases 2.使用 创建初始项目 docfx init -q 此命令生成一个名为docfx_project的默认项目. 3.生成网站 docfx docfx_project\docfx.json --serve 现在你可以访问http://localhost:8080查看生成的网站.使用 -p 端口 可以指定端口. API文档 将编写的项目复制到docfx_pro

XCode生成文档

在写代码的时候,如果按照一定的规范在头文件里写上注释的话, 就可以利用Xcode的文档自动输出功能生成一份完整的HTML项目文档. 生成的格式和Apple Developer网站上的API文档几乎是一样的. 我们来看看如何利用Xcode生成项目文档.步骤:1. 在XCode里点击Project,然后点Add Target给项目添加一个TARGET 2. 在添加Target的弹出对话框里,选择Aggregate,点击Next,输入一个你喜欢的名字,点击Finish 3. 你会发现TARGETS下面

API Studio 5.1.2 版本更新:加入全局搜索、支持批量测试API测试用例、读取代码注解生成文档支持Github与码云等

最近在EOLINKER的开发任务繁重,许久在博客园没有更新产品动态了,经过这些日子,EOLINKER又有了长足的进步,增加了更多易用的功能,比如加入全局搜索.支持批量测试API测试用例.读取代码注解生成文档支持Github与码云等.接下来我们来看看刚刚更新API Studio 5.1.2 版本有什么内容吧!开发不易,熬夜熬得我头发都掉得更快了! 1.读取代码注解生成文档新增对Github.码云的支持 支持通过Github.Gitlab.码云等代码仓库来读取代码的注解并自动生成API文档,支持Ja

Flutter 中文文档网站 flutter.cn 正式发布!

在通常的对 Flutter 介绍中,最耳熟能详的是下面四个特点: 精美 (Beautiful):充分的赋予和发挥设计师的创造力和想象力,让你真正掌控屏幕上的每一个像素. ** 极速 (Fast)**:基于 Skia 的硬件加速图形引擎,帮助你媲美原生应用的速度. 高效 (Productive):Flutter 的 Stateful Hot Reload (热重载) 特性帮助你实时看到应用修改的结果. 开放 (Open):不管是 Flutter 引擎还是 Dart 开发语言,甚至是工程团队的工作空

使用 Hexo 创建项目文档网站

当我们发布一个开源项目的时候,最重要的事情之一就是要创建项目文档.对使用项目的用户来说,文档是非常有必要的,通常我们可以使用下面这些方式来创建文档: GitHub Wiki:在 Github 上我们可以为每个项目都创建一个 wiki.Wiki 是由一系列的 Markdown 文件组成,所以我们可以用 wiki 来做项目文档.但这种方案也有一些缺点:wiki 的贡献者不会出现在项目贡献者列表中:文档的结构和布局都是有限制的,只能是 Github Wikis 的样式:文档存储在第三方平台上. REA

doc2vec 利用gensim 生成文档向量

利用gensim 直接生成文档向量 def gen_d2v_corpus(self, lines): with open("./data/ques2_result.txt", "wb") as fw: for line in lines: fw.write(" ".join(jieba.lcut(line)) + "\n") sents = doc2vec.TaggedLineDocument("./data/que