From e82b5c58bcb3eb28c2492f69e24b269ac94cacae Mon Sep 17 00:00:00 2001 From: "qingwei.li" Date: Sun, 20 Nov 2016 22:29:36 +0800 Subject: [PATCH] Add vue theme --- build/build.js | 24 ++ docs/README.md | 2 +- lib/docsify.js | 142 +++++++- lib/docsify.min.js | 2 +- lib/plugins/nav.js | 18 + package.json | 6 +- rollup.config.js | 13 - src/bind-event.js | 59 ++++ src/docsify.js | 59 ++++ src/gen-toc.js | 39 +++ src/index.js | 35 -- src/plugins/nav.js | 10 + src/render.js | 21 +- themes/vue.css => src/themes/buble.css | 0 src/themes/vue.css | 437 +++++++++++++++++++++++++ test/404.html | 8 +- test/README.md | 28 +- test/theme.md | 1 - test/themes | 2 +- 19 files changed, 802 insertions(+), 104 deletions(-) create mode 100644 build/build.js mode change 100644 => 120000 docs/README.md create mode 100644 lib/plugins/nav.js delete mode 100644 rollup.config.js create mode 100644 src/bind-event.js create mode 100644 src/docsify.js create mode 100644 src/gen-toc.js delete mode 100644 src/index.js create mode 100644 src/plugins/nav.js rename themes/vue.css => src/themes/buble.css (100%) create mode 100644 src/themes/vue.css mode change 100644 => 120000 test/README.md delete mode 100644 test/theme.md diff --git a/build/build.js b/build/build.js new file mode 100644 index 00000000..c46343e8 --- /dev/null +++ b/build/build.js @@ -0,0 +1,24 @@ +var rollup = require('rollup') +var buble = require('rollup-plugin-buble') + +var build = function (entry, moduleName) { + rollup + .rollup({ + entry: 'src/' + entry, + plugins: [buble()] + }) + .then(function (bundle) { + bundle.write({ + globals: { + marked: 'marked', + prismjs: 'Prism' + }, + format: 'umd', + moduleName: moduleName, + dest: 'lib/' + entry + }) + }) +} + +build('docsify.js', 'Docsify') +build('plugins/nav.js', 'Docsify.Nav') diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index b6ba9f29..00000000 --- a/docs/README.md +++ /dev/null @@ -1 +0,0 @@ -# ahhh \ No newline at end of file diff --git a/docs/README.md b/docs/README.md new file mode 120000 index 00000000..32d46ee8 --- /dev/null +++ b/docs/README.md @@ -0,0 +1 @@ +../README.md \ No newline at end of file diff --git a/lib/docsify.js b/lib/docsify.js index a6360d98..2022c7d4 100644 --- a/lib/docsify.js +++ b/lib/docsify.js @@ -20,6 +20,49 @@ var ajax = function (url, options) { } }; +/** + * @link from https://github.com/killercup/grock/blob/5280ae63e16c5739e9233d9009bc235ed7d79a50/styles/solarized/assets/js/behavior.coffee#L54-L81 + */ +var tocToTree = function (toc) { + var headlines = []; + var last = {}; + + toc.forEach(function (headline) { + var level = headline.level || 1; + var len = level - 1; + + if (last[len]) { + last[len].children = last[len].children || []; + last[len].children.push(headline); + } else { + headlines.push(headline); + last[level] = headline; + } + }); + + return headlines +}; + +var buildHeadlinesTree = function (tree, tpl) { + if ( tpl === void 0 ) tpl = ''; + + if (!tree || !tree.length) { return '' } + + tree.forEach(function (node) { + tpl += "
  • " + (node.title) + "
  • "; + if (node.children) { + tpl += "
  • ' +}; + +var genToc = function (toc) { + return buildHeadlinesTree(tocToTree(toc), '