php markdown 接口文档生成工具 SummerDoc
2017年9月18日 19:20:22 星期一
因工作需要, 用PHP写了一个管理接口文档的小工具, 下边介绍一下:
浏览器展示的效果:

例子(http://doc.hearu.top/)
项目模块说明:
- 左侧目录树: dtree.js 不依赖其他js
- Markdown转html: segmentfault社区开发的PHP工具 parsedown (一个国外的PHP类)
- 遍历md文件生成左侧目录树所需的数据: 利用树的后根序遍历算法读取文件夹的PHP类(自己开发, 暂未发现bug)
特点描述:
- 左侧目录会根据当前页面的不同, 自动展开并高亮
- 目录是根据文件夹/文件名自动生成的, 无需另外编写
- 使用markdown编写, 只用编写主体内容
- 风格类似github, 鼠标放在表格的行上时会高亮
- 若表格内换行需要手动写 <br>
- 文档的最下边显示最后编辑时间
- 手机(自测用的4.7寸浏览器)可自适应缩小
使用说明:
- 需要安装 PHP 最好是7.1+以上的版本
- 将md文件放入src目录里, 按照自己的项目命名文件和文件夹(这些名字就是最终生成的左侧树形目录的名字)
- 进入根目录, 运行命令: php compile.php 之后就可以在_book目录里看到编译好的html文件了
- 在web服务器中搭建一个虚拟机(比如: doc.abc.com), 并将根目录设置为 _book, 重启后在浏览器里访问
注意:
- _book目录里的dtree目录是事先写好的css和js, 对dtree的源文件有一些简单的改动,
- 如果不小心删掉了, 可以到根目录里解压dtree.zip, 复制到_book文件夹中
- 如果想重新编译所有文件, 可以删掉根目录下的 last_compile_time.log 文件, 不然, 程序只会编译最新修改的文件
小技巧:
如果不想每次提交前都手动执行 `php compile.php` 命令去编译md文件, 可以利用 Git 或 SVN 的 hook 功能去自动执行这个命令:
下边以 小海龟git为例, 给git加hook脚本:

2018-2-10 15:51:28 星期六 更新
nginx 服务器虚拟机配置:
server {
listen ;
server_name www.markdown.com;
autoindex on;
location / {
root E:\virtualbox\PHP-Summer-Doc\_book;
fastcgi_index index.html;
}
}
2018-2-9 15:32:18 星期五 更新
因为sf出的md解析器在处理单行多个 <br> 的时候会间隔处理, 所以替换了另一款解析器类 parsedown.php
这个比较快, 但他官方说明没有进行安全校验, 如果担心安全问题要使用其他插件帮助处理一下, 以下是官方说明
Security
Parsedown does not sanitize the HTML that it generates. When you deal with untrusted content (ex: user comments) you should also use a HTML sanitizer like HTML Purifier.
php markdown 接口文档生成工具 SummerDoc的更多相关文章
- 一款对Postman支持较好的接口文档生成工具
最近要编写接口文档给测试和前端看,通过网上查阅资料,也认识了很多款接口文档生成工具,比如易文档.ApiPost.ShowDoc.YApi.EoLinker.DOClever.apizza等,通过对这几 ...
- 【转载】Java Restful API 文档生成工具 smart-doc
谁说生成api文档就必须要定义注解? 谁说生成接口请求和返回示例必须要在线? 用代码去探路,不断尝试更多文档交付的可能性. 如果代码有生命,为什么不换种方式和它对话! 一.背景 没有背景.就自己做自己 ...
- Markdown 文档生成工具
之前用了很多Markdown 文档生成工具,发现有几个挺好用的,现在整理出来,方便大家快速学习. loppo: 非常简单的静态站点生成器 idoc:简单的文档生成工具 gitbook:大名鼎鼎的文档协 ...
- 接口文档管理工具rap
git地址: https://github.com/thx/RAP wiki : https://github.com/thx/RAP/wiki/home_cn 视频教程: http://thx.g ...
- Api接口文档管理工具,你知道哪些呢?
上周看到有人在我的Github开源项目中提了个issue,说是否考虑接入swagger.那今天我就用swagger与其他接口文档工具做对比,同时说说Api接口文档工具的那点事.如今,在前后端分离开发的 ...
- 【C#附源码】数据库文档生成工具支持(Excel+Html)
[2015] 很多时候,我们在生成数据库文档时,使用某些工具,可效果总不理想,不是内容不详细,就是表现效果一般般.很多还是word.html的.看着真是别扭.本人习惯用Excel,所以闲暇时,就简单的 ...
- 微软开源全新的文档生成工具DocFX
微软放弃Sandcastle有些年头了,微软最近开源了全新的文档生成工具DocFX,目前支持C#和VB,类似JSDoc或Sphinx,可以从源代码中提取注释生成文档之外,而且还有语法支持你加入其他的文 ...
- 文档生成工具doxygen+图像生成工具GraphViz
文档生成工具doxygen+图像生成工具GraphViz 虽然jdk自带的javadoc也很好用,不过使用doxygen+GraphViz 的组合可以生成许多强大的图(类图.协作图.文件包含/被包含图 ...
- Java 的 Api 文档生成工具 JApiDocs 程序文档工具
JApiDocs 详细介绍 简介 JApiDocs 是一个符合 Java 编程习惯的 Api 文档生成工具.最大程度地利用 Java 的语法特性,你只管用心设计好接口,添加必要的注释,JApiDocs ...
随机推荐
- 028、限制容器对CPU的使用(2019-01-23 周三)
参考https://www.cnblogs.com/CloudMan6/p/7003199.html 默认情况下,所有容器都可以平等的使用host cpu资源,没有限制 docker 可以通过 ...
- IScroll基本用法
一.为了防止手机上卡顿:1.从新设置一下焦点.2. <script>try { window.PointerEvent = undefined; } catch (e) { } </ ...
- 微信小程序 TOP100 榜单
8 月 12 日,阿拉丁数据统计平台发布了国内第一份小程序 TOP100 榜单,摩拜单车成为全榜第一! 该榜单数据来源于阿拉丁小程序统计平台检测.合作.如有赞等,并经过企业电话调研和实地走访企业等校准 ...
- 阻塞式I/O实现简单TCP通信
一.技术简介 (1)服务端打开两个端口9999和6666监听外来连接: (2)服务端的子进程通过端口9999监听外来消息,通过端口6666发送消息: (3)客户端的子进程处理外来消息,父进程发送消息 ...
- NSScanner类的基本用法
NSScanner是一个类,用于在字符串中扫描指定的字符,尤其是把它们翻译/转换为数字和别的字符串.可以在创建NSScaner时指定它的string属性,然后scanner会按照你的要求从头到尾地扫描 ...
- Rootkit介绍
Rootkit 是一种特殊类型的 malware(恶意软件). Rootkit 之所以特殊是因为您不知道它们在做什么事情.Rootkit 基本上是无法检测到的,而且几乎不能删除它们. 虽然检测工具在不 ...
- ubuntu18.04下安装mysql后无法用mysqlworkbench访问
问题描述:我在ubuntu18.04下执行以下命令安装mysql时遇到了mysqlworkbench无法连接root用户的问题.ubuntu18.04下默认安装mysql时是5.7版本的,但是5.7版 ...
- cpp函数回调
typedef void (PM::*E)(int c); typedef void (*EE)(); //typedef void *EE() = typedef void* EE(); 所以要加( ...
- mui卡片视图的制作
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- MySql数据库学习笔记(2)
DELETE 语法:delete from 表名 [where condition] delete from grade; TRUNCATE 用于完全清空表数据,但表结构.索引.约束不变: 语法: t ...