zhangdocs 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.bin/zhangdocs.js CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
 
3
3
  var commander = require('commander');
4
4
  var appInfo = require('../package');
package/README.md CHANGED
@@ -1,69 +1,40 @@
1
+ # 测试文档
1
2
 
2
- # AIP文档生成工具
3
+ 这是一个测试文档,用于验证 highlight.js 是否正常工作。
3
4
 
4
- 简单的文档生成工具!
5
+ ## JavaScript 代码示例
5
6
 
6
- # 全局安装
7
-
8
- ```bash
9
- $ sudo npm install zhangdocs -g
7
+ ```js
8
+ function hello() {
9
+ console.log("Hello, World!");
10
+ return "success";
11
+ }
10
12
  ```
11
13
 
12
- # 命令使用
13
-
14
- 命令使用帮助。
15
-
16
-
17
- ```sh
18
- Usage: zhangdocs [options]
14
+ ## JSON 代码示例
19
15
 
20
- Simple document generation tool!
21
-
22
- Options:
23
-
24
- -h, --help output usage information
25
- -V, --version output the version number
26
- -C, --Create <file> Select Directory Makefile.
27
- -v App version information.
28
- -i, init Init a documentation.
29
- -b, build Markdown produces static pages document.
30
- -w, watch Listener "md" file is automatically generated pages.
31
- -s, server Open local static html server.
32
- -c, clean Clear the generate static files.
33
- -t, theme Choose a theme.
34
- -d, deploy Publish to a gh-pages branch on GitHub.
16
+ ```json
17
+ {
18
+ "name": "test",
19
+ "version": "1.0.0",
20
+ "dependencies": {
21
+ "highlight.js": "^11.11.1"
22
+ }
23
+ }
24
+ ```
35
25
 
36
- Examples:
26
+ ## Diff 代码示例
37
27
 
38
- $ zhangdocs init
39
- $ zhangdocs init [path]
40
- $ zhangdocs init [path] -C ~/zhangdocs/
41
- $ zhangdocs watch
42
- $ zhangdocs server
43
- $ zhangdocs clean
44
- $ zhangdocs deploy
45
- $ zhangdocs theme
46
- $ zhangdocs -t ~/git/zhangdocs-theme-slate/
28
+ ```diff
29
+ + 这是新增的行
30
+ - 这是删除的行
31
+ 这是未修改的行
47
32
  ```
48
33
 
34
+ ## 数学公式
35
+
36
+ 这是一个行内公式:$E = mc^2$
49
37
 
50
- # TODO
38
+ 这是一个块级公式:
51
39
 
52
- - [x] zhangdocs 基本命令定义
53
- - [x] 添加 build 命令,markdown生成静态页面
54
- - [x] 添加 watch 命令,监控markdown文件自动生成HMTL页面
55
- - [x] 默认模板制作
56
- - [x] 树形菜单生成
57
- - [x] 添加 server 命令,预览生成的静态页面
58
- - [x] 添加多页面导航菜单
59
- - [x] 添加 clean 命令
60
- - [x] 静态资源相对路径引用
61
- - [x] github 连接地址添加
62
- - [x] `zhangdocs deploy` === `git push -f origin gh-pages`
63
- - [ ] 配置文件配置下载 md 文件
64
- - [x] 解决server 端口冲突
65
- - [ ] 判断是否存在markdown树形导航菜单
66
- - [x] 第二个模板制作
67
- - [x] 模板切换命令
68
- - [ ] api 检索功能
69
- - [x] 兼容windows路径(cmd工具冒得问题嘞)
40
+ $$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$
package/index.html ADDED
@@ -0,0 +1,152 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <title>
8
+ zhangdocs
9
+ </title>
10
+
11
+ <link rel="stylesheet" type="text/css" href="static/css/main.css">
12
+ <!-- 添加MathJax支持 -->
13
+ <script type="text/javascript" id="MathJax-script" async
14
+ src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js">
15
+ </script>
16
+ <script type="text/javascript">
17
+ window.MathJax = {
18
+ tex: {
19
+ inlineMath: [['$', '$'], ['\\(', '\\)'], ['(', ')']],
20
+ displayMath: [['$$', '$$'], ['\\[', '\\]']],
21
+ processEscapes: true,
22
+ processEnvironments: true,
23
+ packages: ['base', 'ams', 'noerrors', 'noundefined']
24
+ },
25
+ options: {
26
+ skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'],
27
+ ignoreHtmlClass: 'tex2jax_ignore',
28
+ processHtmlClass: 'tex2jax_process'
29
+ },
30
+ svg: {
31
+ fontCache: 'global'
32
+ },
33
+ chtml: {
34
+ scale: 1,
35
+ minScale: .5,
36
+ mtextInheritFont: true,
37
+ merrorInheritFont: true
38
+ }
39
+ };
40
+ </script>
41
+ <script src="https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.min.js"></script>
42
+ <script>
43
+ document.addEventListener('DOMContentLoaded', function () {
44
+ mermaid.initialize({
45
+ startOnLoad: true,
46
+ theme: 'default',
47
+ themeVariables: {
48
+ primaryColor: '#ff6b6b',
49
+ primaryTextColor: '#333',
50
+ primaryBorderColor: '#ff6b6b',
51
+ lineColor: '#333',
52
+ secondaryColor: '#f8f9fa',
53
+ tertiaryColor: '#fff'
54
+ }
55
+ });
56
+ });
57
+ </script>
58
+ </head>
59
+
60
+ <body>
61
+ <div class="navbar ">
62
+ <div class="container">
63
+ <div class="logo">
64
+
65
+ zhangdocs
66
+
67
+ </div>
68
+ <input type="checkbox" id="zhangdocs_nav" />
69
+ <div class="menu_tree">
70
+ <ul><li class="active"><a href="index.html">README</a></li></ul>
71
+ </div>
72
+
73
+
74
+ <div class="forkgithub"><a target="_blank" href="https://github.com/jaywcjlove/zhangdocs.git">fork on github</a></div>
75
+
76
+
77
+ <section class="zhangdocs_nav_btn">
78
+ <label for="zhangdocs_nav"><span></span></label>
79
+ </section>
80
+ </div>
81
+
82
+ </div>
83
+
84
+
85
+
86
+ <div class="bs-docs-header">
87
+ <div class="container">
88
+ <h1>
89
+ zhangdocs
90
+ </h1>
91
+ <p>
92
+ Simple document generation tool. Dependence Node.js run.
93
+ </p>
94
+ </div>
95
+ </div>
96
+
97
+
98
+ <div class="container" id="main-container" style="display: none;">
99
+
100
+ <div class="page-toc">
101
+ <ul><li><a href="#t0测试文档">测试文档</a><ul><li><a href="#t1JavaScript 代码示例">JavaScript 代码示例</a></li><li><a href="#t2JSON 代码示例">JSON 代码示例</a></li><li><a href="#t3Diff 代码示例">Diff 代码示例</a></li><li><a href="#t4数学公式">数学公式</a></li></ul></li></ul>
102
+ </div>
103
+
104
+ <div class="content markdown-body">
105
+ <h1 id="t0&#x6D4B;&#x8BD5;&#x6587;&#x6863;">&#x6D4B;&#x8BD5;&#x6587;&#x6863; <a href="#t0&#x6D4B;&#x8BD5;&#x6587;&#x6863;"> # </a></h1>
106
+ <p>&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x6D4B;&#x8BD5;&#x6587;&#x6863;&#xFF0C;&#x7528;&#x4E8E;&#x9A8C;&#x8BC1; highlight.js &#x662F;&#x5426;&#x6B63;&#x5E38;&#x5DE5;&#x4F5C;&#x3002;</p>
107
+ <h2 id="t1JavaScript &#x4EE3;&#x7801;&#x793A;&#x4F8B;">JavaScript &#x4EE3;&#x7801;&#x793A;&#x4F8B; <a href="#t1JavaScript &#x4EE3;&#x7801;&#x793A;&#x4F8B;"> # </a></h2>
108
+ <pre><code class="hljs js"><span class="hljs-keyword">function</span> <span class="hljs-title function_">hello</span>(<span class="hljs-params"></span>) {
109
+ <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">&quot;Hello, World!&quot;</span>);
110
+ <span class="hljs-keyword">return</span> <span class="hljs-string">&quot;success&quot;</span>;
111
+ }</code></pre><h2 id="t2JSON &#x4EE3;&#x7801;&#x793A;&#x4F8B;">JSON &#x4EE3;&#x7801;&#x793A;&#x4F8B; <a href="#t2JSON &#x4EE3;&#x7801;&#x793A;&#x4F8B;"> # </a></h2>
112
+ <pre><code class="hljs json"><span class="hljs-punctuation">{</span>
113
+ <span class="hljs-attr">&quot;name&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;test&quot;</span><span class="hljs-punctuation">,</span>
114
+ <span class="hljs-attr">&quot;version&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;1.0.0&quot;</span><span class="hljs-punctuation">,</span>
115
+ <span class="hljs-attr">&quot;dependencies&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
116
+ <span class="hljs-attr">&quot;highlight.js&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;^11.11.1&quot;</span>
117
+ <span class="hljs-punctuation">}</span>
118
+ <span class="hljs-punctuation">}</span></code></pre><h2 id="t3Diff &#x4EE3;&#x7801;&#x793A;&#x4F8B;">Diff &#x4EE3;&#x7801;&#x793A;&#x4F8B; <a href="#t3Diff &#x4EE3;&#x7801;&#x793A;&#x4F8B;"> # </a></h2>
119
+ <pre><code class="hljs diff"><span class="hljs-addition">+ &#x8FD9;&#x662F;&#x65B0;&#x589E;&#x7684;&#x884C;</span>
120
+ <span class="hljs-deletion">- &#x8FD9;&#x662F;&#x5220;&#x9664;&#x7684;&#x884C;</span>
121
+ &#x8FD9;&#x662F;&#x672A;&#x4FEE;&#x6539;&#x7684;&#x884C;</code></pre><h2 id="t4&#x6570;&#x5B66;&#x516C;&#x5F0F;">&#x6570;&#x5B66;&#x516C;&#x5F0F; <a href="#t4&#x6570;&#x5B66;&#x516C;&#x5F0F;"> # </a></h2>
122
+ <p>&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x884C;&#x5185;&#x516C;&#x5F0F;&#xFF1A;$E = mc^2$</p>
123
+ <p>&#x8FD9;&#x662F;&#x4E00;&#x4E2A;&#x5757;&#x7EA7;&#x516C;&#x5F0F;&#xFF1A;</p>
124
+ <p>$$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$</p>
125
+
126
+ <div class="copyright">Powered by <a href="https://github.com/jaywcjlove/zhangdocs"
127
+ target="_blank">zhangdocs</a>. Dependence <a href="https://nodejs.org">Node.js</a> run.</div>
128
+ </div>
129
+
130
+ </div>
131
+
132
+ <script>
133
+ document.addEventListener('DOMContentLoaded', function () {
134
+ // 检查localStorage中的token
135
+ const token = localStorage.getItem('token');
136
+ const expectedToken = 'A3F78D1E4C9B2A5F0E6D7C8B5A4F3E2D1C0B9A8F7E6D5C4B3A2F1E0D9C8B7A6F5E4';
137
+
138
+ const mainContainer = document.getElementById('main-container');
139
+
140
+ if (token === expectedToken) {
141
+ // 权限验证通过,显示内容
142
+ mainContainer.style.display = 'block';
143
+ } else {
144
+ // 权限验证失败,保持隐藏状态(显示空白)
145
+ mainContainer.style.display = 'none';
146
+ }
147
+ });
148
+ </script>
149
+
150
+
151
+ </body>
152
+ </html>
package/lib/build.js CHANGED
@@ -10,6 +10,17 @@ var nav = require('./nav');
10
10
  var imgPath = require('./imgPath');
11
11
  var log = console.log;
12
12
  var highlight = require('highlight.js');
13
+ // 注册常用的语言模块
14
+ highlight.registerLanguage('javascript', require('highlight.js/lib/languages/javascript'));
15
+ highlight.registerLanguage('js', require('highlight.js/lib/languages/javascript'));
16
+ highlight.registerLanguage('json', require('highlight.js/lib/languages/json'));
17
+ highlight.registerLanguage('diff', require('highlight.js/lib/languages/diff'));
18
+ highlight.registerLanguage('xml', require('highlight.js/lib/languages/xml'));
19
+ highlight.registerLanguage('html', require('highlight.js/lib/languages/xml'));
20
+ highlight.registerLanguage('css', require('highlight.js/lib/languages/css'));
21
+ highlight.registerLanguage('python', require('highlight.js/lib/languages/python'));
22
+ highlight.registerLanguage('bash', require('highlight.js/lib/languages/bash'));
23
+ highlight.registerLanguage('shell', require('highlight.js/lib/languages/bash'));
13
24
  var ejs = require('ejs');
14
25
  var autoprefixer = require('autoprefixer-stylus');
15
26
  var cheerio = require('cheerio');
@@ -25,7 +36,7 @@ renderer.code = function (code, lang) {
25
36
  } else {
26
37
  // 对于其他语言,使用默认的高亮处理
27
38
  if (lang && highlight.getLanguage(lang)) {
28
- return '<pre><code class="hljs ' + lang + '">' + highlight.highlight(lang, code).value + '</code></pre>';
39
+ return '<pre><code class="hljs ' + lang + '">' + highlight.highlight(code, { language: lang }).value + '</code></pre>';
29
40
  } else {
30
41
  return '<pre><code class="hljs">' + highlight.highlightAuto(code).value + '</code></pre>';
31
42
  }
@@ -57,7 +68,7 @@ function build(commander, changeFile) {
57
68
  if (commander.theme && commander.args.length > 0) template = commander.args[0];
58
69
  else {
59
70
  // 模板目录
60
- template = path.dirname(__dirname) + '/theme/' + pkg.theme;
71
+ template = path.dirname(__dirname) + '/theme/' + pkg.zhangdocs.theme;
61
72
  }
62
73
  // 皮肤目录不存在判断
63
74
  if (!file.isDir(template)) return log(color.red('\nTheme directory does not exist.!\n'))
package/lib/toc.js CHANGED
@@ -1,5 +1,16 @@
1
1
  var cheerio = require('cheerio');
2
2
  var hljs = require("highlight.js");
3
+ // 注册常用的语言模块
4
+ hljs.registerLanguage('javascript', require('highlight.js/lib/languages/javascript'));
5
+ hljs.registerLanguage('js', require('highlight.js/lib/languages/javascript'));
6
+ hljs.registerLanguage('json', require('highlight.js/lib/languages/json'));
7
+ hljs.registerLanguage('diff', require('highlight.js/lib/languages/diff'));
8
+ hljs.registerLanguage('xml', require('highlight.js/lib/languages/xml'));
9
+ hljs.registerLanguage('html', require('highlight.js/lib/languages/xml'));
10
+ hljs.registerLanguage('css', require('highlight.js/lib/languages/css'));
11
+ hljs.registerLanguage('python', require('highlight.js/lib/languages/python'));
12
+ hljs.registerLanguage('bash', require('highlight.js/lib/languages/bash'));
13
+ hljs.registerLanguage('shell', require('highlight.js/lib/languages/bash'));
3
14
  var log = console.log;
4
15
 
5
16
  module.exports = toc
@@ -14,10 +25,17 @@ function toc(str,cb){
14
25
  // 官网 https://highlightjs.org/
15
26
  $('pre code').each(function(i, e) {
16
27
  var htstr,el = $(this),lang = el.attr('class');
17
- lang = lang?lang.replace('lang-',''):'';
28
+ // 处理 hljs 类名格式
29
+ if(lang && lang.indexOf('hljs ') === 0){
30
+ lang = lang.replace('hljs ','');
31
+ } else if(lang){
32
+ lang = lang.replace('lang-','');
33
+ } else {
34
+ lang = '';
35
+ }
18
36
  if(lang){
19
37
  try{
20
- htstr = hljs.highlight(lang,$(this).text()).value;
38
+ htstr = hljs.highlight($(this).text(), { language: lang }).value;
21
39
  }catch(e){
22
40
  htstr = $(this).text();
23
41
  }
package/md/README.md ADDED
@@ -0,0 +1,40 @@
1
+ # 测试文档
2
+
3
+ 这是一个测试文档,用于验证 highlight.js 是否正常工作。
4
+
5
+ ## JavaScript 代码示例
6
+
7
+ ```js
8
+ function hello() {
9
+ console.log("Hello, World!");
10
+ return "success";
11
+ }
12
+ ```
13
+
14
+ ## JSON 代码示例
15
+
16
+ ```json
17
+ {
18
+ "name": "test",
19
+ "version": "1.0.0",
20
+ "dependencies": {
21
+ "highlight.js": "^11.11.1"
22
+ }
23
+ }
24
+ ```
25
+
26
+ ## Diff 代码示例
27
+
28
+ ```diff
29
+ + 这是新增的行
30
+ - 这是删除的行
31
+ 这是未修改的行
32
+ ```
33
+
34
+ ## 数学公式
35
+
36
+ 这是一个行内公式:$E = mc^2$
37
+
38
+ 这是一个块级公式:
39
+
40
+ $$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$
package/package.json CHANGED
@@ -1,41 +1,47 @@
1
- {
2
- "name": "zhangdocs",
3
- "version": "1.1.2",
4
- "description": "Simple document generation tool. Dependence Node.js run.",
5
- "repository": {
6
- "type": "git",
7
- "url": "https://github.com/jaywcjlove/zhangdocs.git"
8
- },
9
- "main": "index.js",
10
- "bin": {
11
- "zhangdocs": ".bin/zhangdocs.js"
12
- },
13
- "keywords": [
14
- "zhangdocs",
15
- "markdown",
16
- "api",
17
- "document",
18
- "tool"
19
- ],
20
- "scripts": {
21
- "test": "echo \"Error: no test specified\" && exit 1"
22
- },
23
- "author": "kenny wang <wowohoo@qq.com>",
24
- "license": "MIT",
25
- "dependencies": {
26
- "autoprefixer-stylus": "^0.13.0",
27
- "cheerio": "^0.22.0",
28
- "chokidar": "^1.6.1",
29
- "colors-cli": "^1.0.7",
30
- "commander": "^2.9.0",
31
- "ejs": "^2.5.6",
32
- "highlight.js": "^9.9.0",
33
- "inquirer": "^3.0.5",
34
- "marked": "^0.3.6",
35
- "semver": "^5.3.0",
36
- "shelljs": "0.6.0",
37
- "ssr": "^1.0.15",
38
- "stylus": "^0.54.5",
39
- "underscore": "^1.8.3"
40
- }
1
+ {
2
+ "name": "zhangdocs",
3
+ "version": "1.1.4",
4
+ "description": "Simple document generation tool. Dependence Node.js run.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/jaywcjlove/zhangdocs.git"
8
+ },
9
+ "main": "index.js",
10
+ "bin": {
11
+ "zhangdocs": ".bin/zhangdocs.js"
12
+ },
13
+ "keywords": [
14
+ "zhangdocs",
15
+ "markdown",
16
+ "api",
17
+ "document",
18
+ "tool"
19
+ ],
20
+ "scripts": {
21
+ "test": "echo \"Error: no test specified\" && exit 1"
22
+ },
23
+ "author": "kenny wang <wowohoo@qq.com>",
24
+ "license": "MIT",
25
+ "dependencies": {
26
+ "autoprefixer-stylus": "^0.13.0",
27
+ "cheerio": "^0.22.0",
28
+ "chokidar": "^1.6.1",
29
+ "colors-cli": "^1.0.7",
30
+ "commander": "^2.9.0",
31
+ "ejs": "^2.5.6",
32
+ "highlight.js": "^11.11.1",
33
+ "inquirer": "^3.0.5",
34
+ "marked": "^0.3.6",
35
+ "semver": "^5.3.0",
36
+ "shelljs": "0.6.0",
37
+ "ssr": "^1.0.15",
38
+ "stylus": "^0.54.5",
39
+ "underscore": "^1.8.3"
40
+ },
41
+ "zhangdocs": {
42
+ "theme": "default",
43
+ "md": [
44
+ "README.md"
45
+ ]
46
+ }
41
47
  }