Docsify介绍—md文件直接生成网页的工具

news2024/11/27 5:36:00

Markdown是一种轻量级标记语言,它使用易读易写的纯文本格式,用于编写文档,如README,wiki,博客文章等。Markdown语言最初由约翰·格鲁伯(John Gruber)和亚伦·斯沃茨(Aaron Swartz)在2004年创建,并且得到了广泛的应用。Markdown以简洁的语法约定和易于阅读的格式,使得文档具有良好的可读性和可移植性,并且可以轻松地转换为HTML等其他格式。
Markdown创建的文件的后缀名是 .md , 在项目中经常使用 README.md 来对项目进行一些描述, 这样在GitHub 直接可以很容易的查看。在大多数的IDE中都提供了Markdown语言的编写和Preview 的效果。
比如Eclipse:
在这里插入图片描述

比如VS Code:
在这里插入图片描述

相对在IDE中, 在Web中Markdown显示的效果更为美观, 而且对于项目来说, 将md文件转换为Wed端浏览的网页对于文档的阅读和维护都比较有益, 于是有了Docsify 这样的工具。

Docsify 是什么

Docsify 是一个基于JavaScript的文档网站生成器,可以速轻松地搭建基于文本文档的静态网站。它没有预设的主题,所有的网站样式都由Markdown文件生成,可以自由定制。docsify的优点是简单易用,不需要复杂的配置,文档可以直接写在Markdown文件中,支持插件扩展和多语言支持。
Docsify 直接将 Markdown 文件解析成 HTML,并且无需预先构建,只需部署文档的 Markdown 文件即可。这使得 docsify 非常轻便,可以直接运行在 GitHub Pages 上。

Docsify 的主要特征

  • 无需构建:只需要创建 markdown 文件,然后通过 docsify 初始化项目后即可预览你的网站。这意味着你在创建文档或添加新部分时无须等待编译过程。

  • 自定义主题:Docsify 提供了一些内置的主题可以使用,并且你可以通过覆盖默认样式自定义主题。

  • 多种插件:Docsify 提供了强大的插件API,这个比其他静态站点生成器更加具有弹性和易扩展性。

  • 全文搜索:Docsify 的搜索插件可以为你的文档站点提供快速的全文搜索。

  • 提供丰富的 API 和全局 CLI 工具:你可以通过编程方式控制 docsify,或者在任何地方使用 CLI 工具来管理你的文档网站。

  • 适合有版本需求的文档:你可以为你的文档创建不同的版本,并且通过 dropdown menu(下拉菜单)方便的进行切换。

Docsify 的快速使用

Docsify 是基于Node.js 的, 所以需要先安装Node.js环境, 具体步骤如下:

  1. 安装Node.js, 需要 7.6.0之上的版本, 这里安装的是目前最新的长期支持版本 node-v18.18.0
    下载地址: https://nodejs.org/dist/v18.18.0/node-v18.18.0-x64.msi
  2. 全局安装 docsify
    在命令含输入:
npm i docsify-cli -g

安装完成的效果如下:
在这里插入图片描述

  1. 初始化docsify项目
    创建一个项目的目录, 这里是 D:\devworkspace\nodejs\docsify,命名行切换到该目录下, 执行
docsify init ./docs

改命令会产生 docs 目录和三个文件
在这里插入图片描述

  • index.html 入口文件
  • README.md 主页面
  • .nojekyll 阻止GitHub忽略下划线开头的文件
  1. 本地预览网站,将在 3000 端口启动,你可以在浏览器中通过 localhost:3000 进行访问
    命令行输入:
docsify serve docs

成功启动如下显示
在这里插入图片描述

  1. 在浏览器输入 http://localhost:3000/#/
    在这里插入图片描述

问题解决之— node_modules\docsify-cli\node_modules\update-notifier\index.js:103

在使用 docsify 启动服务的时候, 有时候会遇到如下问题:

node_modules\docsify-cli\node_modules\update-notifier\index.js:103
        async fetchInfo() {
              ^^^^^^^^^

SyntaxError: Unexpected identifier
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:549:28)

遇到的这个错误是由于你在执行docsify命令的时候,Node.js版本太低,无法识别或执行fetchInfo()这个async函数。

async/await是Node.js 7.6.0以后的版本开始支持的特性。需要升级Node.js到最新的稳定版本(比如 Node.js 14 或者 16 版本)来解决该问题。

以下是升级Node.js的步骤:

  1. 首先确认当前Node.js的版本,可以在终端中输入以下命令:
node -v
  1. 如果版本低于7.6.0,你需要更新Node.js。你可以从Node.js官网下载和安装最新版本。

  2. 安装完毕后,重新在终端中输入以下命令,确认Node.js是否已经更新:

node -v
  1. 更新 Node.js 后,可能还需要重新安装 docsify-cli ,确保它在新版本的环境下运行:
npm uninstall -g docsify-cli
npm install -g docsify-cli

完成上述步骤后,你应该可以成功执行docsify命令了。

.nojekyll 文件的作用

.nojekyll 是一个用于 GitHub Pages 服务的特殊文件。当 GitHub Pages 看到你的仓库中有这个文件时,它就会跳过 Jekyll 构建过程。

Jekyll 是一个静态网站生成器,它是 GitHub Pages 的默认构建工具。在正常情况下,当你推送文件到 GitHub Pages 的仓库时,Jekyll 会自动对你的文件进行处理,包括解析 Markdown 文件,处理 Liquid 模板标签,等等。

然而,有时候你可能并不想使用 Jekyll 对你的网站进行构建。比如说,你的网站可能已经是静态的 HTML/CSS/JavaScript 文件,或者你使用其他的工具自己进行构建。在这些情况下,在你的仓库根目录添加一个名为 .nojekyll 的文件(无需任何内容)会告诉 GitHub Pages 跳过 Jekyll 构建。

此外,如果你的站点包含下划线(_)开头的文件或文件夹,那么默认情况下 Jekyll 会忽略它们。如果你有这样的文件需要被 GitHub Pages 发布,那么你需要添加 .nojekyll 文件来跳过 Jekyll 的处理。

Docsify的功能和应用场景

使用 Docsify 可以实现以下功能:

  1. 构建技术文档:使用 Docsify 可以方便地构建技术文档,为用户提供高质量的技术文档。
  2. 搭建博客:使用 Docsify 可以快速搭建一款简洁美观的个人博客。
  3. 建立个人主页:使用 Docsify 可以建立一个个性化的个人主页,向他人展示自己的能力和成果。

Docsify的应用场景包括:

  1. 文档管理:Docsify可以帮助团队更好地管理和共享文档,可以在文档中加入标签、注释等功能以便于搜索和整理。
  2. 客户支持:Docsify可以用来管理客户支持文档,例如FAQ、教程、指南等,方便客户快速找到需要的信息。
  3. 销售资料:销售人员可以使用Docsify来管理销售资料,例如销售演示文档、客户案例等。
  4. 项目管理:Docsify可以用来组织项目文档、会议记录、进度报告等,方便团队协作和沟通。
  5. 培训资料:Docsify可以用来做培训文档,例如培训材料、课程大纲、考试题目等。

总之,Docsify适用于任何需要管理和共享文档的场景,可以帮助团队更好地管理信息、提高工作效率和合作能力。

参考

  • 官方站点:https://docsify.js.org


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1023461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ssm637教材管理系统+vue

项目介绍 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前学校对于教材信息的管理和控制,采用人工登记的方式保存相关数据,这种以人力为主的管理模式已然落后。本…

YOLO系列

一、YOLOv1 Bbox使用开根号的原因: 小目标与大目标偏移相同尺度时,小目标检测效果差,那么公式中使用根号就会让小目标损失值更大了 V1网络的一些问题: 小目标检测效果差,当目标出现新配置也不行,目标定位…

红黑树插入的实现

红黑树: 1.概念: 红黑树的性质: 红黑树的插入操作: 其前面的插入和二叉搜索树的一模一样,只是后面需要判断是否满足红黑树的性质: 具体分为三种情况: 1.uncle节点存在且为红色的&#xff1a…

芯科蓝牙BG27开发笔记9-资料整理

SSV5中的例程 在ssv5中有少量开箱即用的例程,第一篇笔记就是从这里开始的: 然而,仅仅这些代码吗?其他例程代码在何处? Software Developer Docs - Silicon Labs 所有内容都可以在官网文档找到。 之前是从ssv5直接开…

Bard人工智能9月19日重大更新

1、巴德现在可以回复来自谷歌地图、航班、酒店和YouTube的实时信息,因此您可以在一个地方完成更多工作。 2、Bard 可能会与其他服务共享您的部分对话和其他相关信息,例如您的位置。这些服务可能会使用该信息进行改进,即使您以后删除了您的 Ba…

python基础语法(四)

感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒个人主页 🥸🥸🥸C语言 🐿️🐿️🐿️C语言例题 🐣🐓🏀python 这…

day50:QTday3,对话框补充、事件处理机制

一、完成文本编辑器的保存工作 widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QFontDialog> //字体对话框 #include<QFont> //字体类 #include<QMessageBox> //消息对话框 #…

springboot配置注入增强(三)自定义数据源/自定义解析方法

我们回忆下上一篇文章的内容&#xff0c;属性注入的关键节点是PropertySourcesPlaceholderConfigurer的BeanFactory后置处理器org.springframework.context.support.PropertySourcesPlaceholderConfigurer#postProcessBeanFactory&#xff0c;只有在执行这个方法前设置到Enviro…

竞赛 基于深度学习的中文情感分类 - 卷积神经网络 情感分类 情感分析 情感识别 评论情感分类

文章目录 1 前言2 情感文本分类2.1 参考论文2.2 输入层2.3 第一层卷积层&#xff1a;2.4 池化层&#xff1a;2.5 全连接softmax层&#xff1a;2.6 训练方案 3 实现3.1 sentence部分3.2 filters部分3.3 featuremaps部分3.4 1max部分3.5 concat1max部分3.6 关键代码 4 实现效果4.…

平均精度(AP)

什么是平均精度(AP) 平均精度 (AP)并不是精度 (P)的平均值。 平均精度 (AP) 是按类别计算的。 mAP&#xff08;mean average precision&#xff09;是一个平均值&#xff0c;常用作目标检测中的检测精度指标mAP 指标通过对于一个平均目标来检测任务中多个目标所对应不同 AP&a…

9.19号作业

2> 完成文本编辑器的保存工作 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QFontDialog> #include <QFont> #include <QMessageBox> #include <QDebug> #include <QColorDialog> #include <QColor&g…

Centos安装显卡

1、安装基础环境 yum -y install epel-release yum -y install gcc kernel-devel kernel-headers 2.对应内核版本 yum info kernel-devel kernel-headers Cat /proc/version 3、yum安装版本不对应。则去官网手动下载 离线安装对应的rpm&#xff1a; https://pkgs.org/dow…

电脑桌面的复选框如何取消

电脑桌面图标的复选框如何取消 1. 概述2. 去掉图标的复选框方法结束语 1. 概述 当你拿到新的电脑开机后&#xff0c;发现桌面上软件应用的图标左上角有个小框&#xff0c;每次点击图标都会显示&#xff0c;并且点击图标时&#xff0c;小框还会打上√&#xff1b; 这个小框的…

移动端APP测试-如何指定测试策略、测试标准?

制定项目的测试策略是一个重要的步骤&#xff0c;可以帮助测试团队明确测试目标、测试范围、测试方法、测试资源、测试风险等&#xff0c;从而提高测试效率和质量。本篇是一些经验总结&#xff0c;理论分享。并不是绝对正确的&#xff0c;也欢迎大家一起讨论。 文章目录 一、测…

activiti7的数据表和字段的解释

activiti7的数据表和字段的解释 activiti7版本有25张表&#xff0c;而activiti6有28张表&#xff0c;activiti5有27张表&#xff0c;绝大部分的表和字段的含义都是一样的&#xff0c;所以本次整理的activiti7数据表和字段的解释&#xff0c;也同样适用于activiti6和5。 1、总览…

higher-order function in functional programming (JS)

1 functional programming该怎么理解&#xff1f; functions就是values&#xff0c;就像String or Numbers那样&#xff0c;可以构造匿名函数&#xff0c;并把函数赋给某个变量 或者 传递给其他函数&#xff08;higher-order function&#xff09; 2 higher-order function有…

B树的定义和特点

1.多叉查找树的效率 策略1:m叉查找树中&#xff0c;规定除了根节点外&#xff0c;任何结点至少有[m/2]个分叉&#xff0c;即至少含有[m/2]-1个关键字。策略2:m叉查找树中&#xff0c;规定对于任何一个结点&#xff0c;其所有子树的高度都要相同。 而满足以上两种策略的树被称…

新手怎样快速上手接口测试?掌握这几个知识点直接起飞!

接口测试是测试系统组件间接口的一种方式&#xff0c;接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的增删改查操作&#xff0c;以及系统之间的逻辑关系等。 接口的几种类型 接口的类型包括&#xff1a;post &#xff0c;get&…

Postman应用——控制台调试

当你在测试脚本中遇到错误或意外行为时&#xff0c;Postman控制台可以帮助你识别&#xff0c;通过将console.log调试语句与你的测试断言相结合&#xff0c;你可以检查http请求和响应的内容&#xff0c;以及变量之类的。 通常可以使用控制台日志来标记代码执行&#xff0c;有时…

Golang gorm 一对一关系

一对一关系 一对一关系比较少&#xff0c;一般用于表的扩展例如一张用户表&#xff0c;有很多字段那么就可以把它拆分为两张表&#xff0c;常用的字段放主表&#xff0c;不常用的字段放详情表。 针对用户表来说可以通过user去点出userinfo。 创建表和插入数据 package mainimp…