From 1c23f96902f0309b8036f679db00c2593925ab82 Mon Sep 17 00:00:00 2001 From: Nikolay Kostyurin Date: Mon, 11 Jun 2018 22:46:39 +0200 Subject: [PATCH] jsdoc md generator --- package-lock.json | 540 +++++++++++++++++++++++++++++++++++ package.json | 1 + packages/bbob-html/README.md | 4 +- packages/bbob-html/index.js | 65 ++++- 4 files changed, 600 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index cc3614f..4a81c4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -95,6 +95,15 @@ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, + "ansi-escape-sequences": { + "version": "4.0.0", + "resolved": "https://npm.wsmgroup.ru/ansi-escape-sequences/-/ansi-escape-sequences-4.0.0.tgz", + "integrity": "sha512-v+0wW9Wezwsyb0uF4aBVCjmSqit3Ru7PZFziGF0o2KwTvN2zWfTi3BRLq9EkJFdg3eBbyERXGTntVpBxH1J68Q==", + "dev": true, + "requires": { + "array-back": "^2.0.0" + } + }, "ansi-escapes": { "version": "3.1.0", "resolved": "https://npm.wsmgroup.ru/ansi-escapes/-/ansi-escapes-3.1.0.tgz", @@ -173,6 +182,16 @@ "sprintf-js": "~1.0.2" } }, + "argv-tools": { + "version": "0.1.1", + "resolved": "https://npm.wsmgroup.ru/argv-tools/-/argv-tools-0.1.1.tgz", + "integrity": "sha512-Cc0dBvx4dvrjjKpyDA6w8RlNAw8Su30NvZbWl/Tv9ZALEVlLVkWQiHMi84Q0xNfpVuSaiQbYkdmWK8g1PLGhKw==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "find-replace": "^2.0.1" + } + }, "aria-query": { "version": "0.7.1", "resolved": "https://npm.wsmgroup.ru/aria-query/-/aria-query-0.7.1.tgz", @@ -201,6 +220,15 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, + "array-back": { + "version": "2.0.0", + "resolved": "https://npm.wsmgroup.ru/array-back/-/array-back-2.0.0.tgz", + "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==", + "dev": true, + "requires": { + "typical": "^2.6.1" + } + }, "array-equal": { "version": "1.0.0", "resolved": "https://npm.wsmgroup.ru/array-equal/-/array-equal-1.0.0.tgz", @@ -653,6 +681,12 @@ "tweetnacl": "^0.14.3" } }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://npm.wsmgroup.ru/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://npm.wsmgroup.ru/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -745,6 +779,17 @@ "unset-value": "^1.0.0" } }, + "cache-point": { + "version": "0.4.1", + "resolved": "https://npm.wsmgroup.ru/cache-point/-/cache-point-0.4.1.tgz", + "integrity": "sha512-4TgWfe9SF+bUy5cCql8gWHqKNrviufNwSYxLjf2utB0pY4+bdcuFwMmY1hDB+67Gz/L1vmhFNhePAjJTFBtV+Q==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "fs-then-native": "^2.0.0", + "mkdirp2": "^1.0.3" + } + }, "caller-path": { "version": "0.1.0", "resolved": "https://npm.wsmgroup.ru/caller-path/-/caller-path-0.1.0.tgz", @@ -790,6 +835,15 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, + "catharsis": { + "version": "0.8.9", + "resolved": "https://npm.wsmgroup.ru/catharsis/-/catharsis-0.8.9.tgz", + "integrity": "sha1-mMyJDKZS3S7w5ws3klMQ/56Q/Is=", + "dev": true, + "requires": { + "underscore-contrib": "~0.3.0" + } + }, "center-align": { "version": "0.1.3", "resolved": "https://npm.wsmgroup.ru/center-align/-/center-align-0.1.3.tgz", @@ -901,6 +955,16 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "collect-all": { + "version": "1.0.3", + "resolved": "https://npm.wsmgroup.ru/collect-all/-/collect-all-1.0.3.tgz", + "integrity": "sha512-0y0rBgoX8IzIjBAUnO73SEtSb4Mhk3IoceWJq5zZSxb9mWORhWH8xLYo4EDSOE1jRBk1LhmfjqWFFt10h/+MEA==", + "dev": true, + "requires": { + "stream-connect": "^1.0.2", + "stream-via": "^1.0.4" + } + }, "collection-visit": { "version": "1.0.0", "resolved": "https://npm.wsmgroup.ru/collection-visit/-/collection-visit-1.0.0.tgz", @@ -935,12 +999,56 @@ "delayed-stream": "~1.0.0" } }, + "command-line-args": { + "version": "5.0.2", + "resolved": "https://npm.wsmgroup.ru/command-line-args/-/command-line-args-5.0.2.tgz", + "integrity": "sha512-/qPcbL8zpqg53x4rAaqMFlRV4opN3pbla7I7k9x8kyOBMQoGT6WltjN6sXZuxOXw6DgdK7Ad+ijYS5gjcr7vlA==", + "dev": true, + "requires": { + "argv-tools": "^0.1.1", + "array-back": "^2.0.0", + "find-replace": "^2.0.1", + "lodash.camelcase": "^4.3.0", + "typical": "^2.6.1" + } + }, + "command-line-tool": { + "version": "0.8.0", + "resolved": "https://npm.wsmgroup.ru/command-line-tool/-/command-line-tool-0.8.0.tgz", + "integrity": "sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "command-line-args": "^5.0.0", + "command-line-usage": "^4.1.0", + "typical": "^2.6.1" + } + }, + "command-line-usage": { + "version": "4.1.0", + "resolved": "https://npm.wsmgroup.ru/command-line-usage/-/command-line-usage-4.1.0.tgz", + "integrity": "sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==", + "dev": true, + "requires": { + "ansi-escape-sequences": "^4.0.0", + "array-back": "^2.0.0", + "table-layout": "^0.4.2", + "typical": "^2.6.1" + } + }, "commander": { "version": "2.15.1", "resolved": "https://npm.wsmgroup.ru/commander/-/commander-2.15.1.tgz", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, + "common-sequence": { + "version": "1.0.2", + "resolved": "https://npm.wsmgroup.ru/common-sequence/-/common-sequence-1.0.2.tgz", + "integrity": "sha1-MOB/P49vf5s97oVPILLTnu4Ibeg=", + "dev": true + }, "compare-versions": { "version": "3.3.0", "resolved": "https://npm.wsmgroup.ru/compare-versions/-/compare-versions-3.3.0.tgz", @@ -971,6 +1079,23 @@ "typedarray": "^0.0.6" } }, + "config-master": { + "version": "3.1.0", + "resolved": "https://npm.wsmgroup.ru/config-master/-/config-master-3.1.0.tgz", + "integrity": "sha1-ZnZjWQUFooO/JqSE1oSJ10xUhdo=", + "dev": true, + "requires": { + "walk-back": "^2.0.1" + }, + "dependencies": { + "walk-back": { + "version": "2.0.1", + "resolved": "https://npm.wsmgroup.ru/walk-back/-/walk-back-2.0.1.tgz", + "integrity": "sha1-VU4qnYdPrEeoywBr9EwvDEmYoKQ=", + "dev": true + } + } + }, "contains-path": { "version": "0.1.0", "resolved": "https://npm.wsmgroup.ru/contains-path/-/contains-path-0.1.0.tgz", @@ -1074,6 +1199,12 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://npm.wsmgroup.ru/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://npm.wsmgroup.ru/deep-is/-/deep-is-0.1.3.tgz", @@ -1188,6 +1319,26 @@ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, + "dmd": { + "version": "3.0.12", + "resolved": "https://npm.wsmgroup.ru/dmd/-/dmd-3.0.12.tgz", + "integrity": "sha512-79w644JdsB2TthYpVl2bDurX7i9Abaegg2E7X46Ajc135aASTMXxrHzJ9mOa5X5nbmnXwlBYiF68K+1baX+BzQ==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "cache-point": "^0.4.1", + "common-sequence": "^1.0.2", + "file-set": "^2.0.0", + "handlebars": "^4.0.11", + "marked": "^0.3.16", + "object-get": "^2.1.0", + "reduce-flatten": "^1.0.1", + "reduce-unique": "^1.0.0", + "reduce-without": "^1.0.1", + "test-value": "^3.0.0", + "walk-back": "^3.0.0" + } + }, "doctrine": { "version": "2.1.0", "resolved": "https://npm.wsmgroup.ru/doctrine/-/doctrine-2.1.0.tgz", @@ -1960,6 +2111,16 @@ "object-assign": "^4.0.1" } }, + "file-set": { + "version": "2.0.0", + "resolved": "https://npm.wsmgroup.ru/file-set/-/file-set-2.0.0.tgz", + "integrity": "sha512-cCWXfw+nrYoIoUVmEF7Xsw91lGWuObtSnTEZ7AmdvZou1A/6Xx237HfxdQyC/ayKRvQSMbNOBwg62OjN5JxbXw==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "glob": "^7.1.2" + } + }, "filename-regex": { "version": "2.0.1", "resolved": "https://npm.wsmgroup.ru/filename-regex/-/filename-regex-2.0.1.tgz", @@ -1999,6 +2160,16 @@ } } }, + "find-replace": { + "version": "2.0.1", + "resolved": "https://npm.wsmgroup.ru/find-replace/-/find-replace-2.0.1.tgz", + "integrity": "sha512-LzDo3Fpa30FLIBsh6DCDnMN1KW2g4QKkqKmejlImgWY67dDFPX/x9Kh/op/GK522DchQXEvDi/wD48HKW49XOQ==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "test-value": "^3.0.0" + } + }, "find-up": { "version": "2.1.0", "resolved": "https://npm.wsmgroup.ru/find-up/-/find-up-2.1.0.tgz", @@ -2067,6 +2238,12 @@ "map-cache": "^0.2.2" } }, + "fs-then-native": { + "version": "2.0.0", + "resolved": "https://npm.wsmgroup.ru/fs-then-native/-/fs-then-native-2.0.0.tgz", + "integrity": "sha1-GaEk2U2QwiyOBF8ujdbr6jbUjGc=", + "dev": true + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://npm.wsmgroup.ru/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -3728,6 +3905,15 @@ "esprima": "^4.0.0" } }, + "js2xmlparser": { + "version": "3.0.0", + "resolved": "https://npm.wsmgroup.ru/js2xmlparser/-/js2xmlparser-3.0.0.tgz", + "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", + "dev": true, + "requires": { + "xmlcreate": "^1.0.1" + } + }, "jsbn": { "version": "0.1.1", "resolved": "https://npm.wsmgroup.ru/jsbn/-/jsbn-0.1.1.tgz", @@ -3735,6 +3921,80 @@ "dev": true, "optional": true }, + "jsdoc": { + "version": "3.5.5", + "resolved": "https://npm.wsmgroup.ru/jsdoc/-/jsdoc-3.5.5.tgz", + "integrity": "sha512-6PxB65TAU4WO0Wzyr/4/YhlGovXl0EVYfpKbpSroSj0qBxT4/xod/l40Opkm38dRHRdQgdeY836M0uVnJQG7kg==", + "dev": true, + "requires": { + "babylon": "7.0.0-beta.19", + "bluebird": "~3.5.0", + "catharsis": "~0.8.9", + "escape-string-regexp": "~1.0.5", + "js2xmlparser": "~3.0.0", + "klaw": "~2.0.0", + "marked": "~0.3.6", + "mkdirp": "~0.5.1", + "requizzle": "~0.2.1", + "strip-json-comments": "~2.0.1", + "taffydb": "2.6.2", + "underscore": "~1.8.3" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.19", + "resolved": "https://npm.wsmgroup.ru/babylon/-/babylon-7.0.0-beta.19.tgz", + "integrity": "sha512-Vg0C9s/REX6/WIXN37UKpv5ZhRi6A4pjHlpkE34+8/a6c2W1Q692n3hmc+SZG5lKRnaExLUbxtJ1SVT+KaCQ/A==", + "dev": true + } + } + }, + "jsdoc-api": { + "version": "4.0.3", + "resolved": "https://npm.wsmgroup.ru/jsdoc-api/-/jsdoc-api-4.0.3.tgz", + "integrity": "sha512-dfYq9JgB+XahY0XfSEw93PmXmocjwYcvJ5aMuQUJ/OdDRGWamf2SSOk3W06Bsj8qdjp/UdefzqpP/mpwsvHuvA==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "cache-point": "^0.4.1", + "collect-all": "^1.0.3", + "file-set": "^2.0.0", + "fs-then-native": "^2.0.0", + "jsdoc": "~3.5.5", + "object-to-spawn-args": "^1.1.1", + "temp-path": "^1.0.0", + "walk-back": "^3.0.0" + } + }, + "jsdoc-parse": { + "version": "3.0.1", + "resolved": "https://npm.wsmgroup.ru/jsdoc-parse/-/jsdoc-parse-3.0.1.tgz", + "integrity": "sha512-btZLp4wYl90vcAfgk4hoGQbO17iBVrhh3LJRMKZNtZgniO3F8H2CjxXld0owBIB1XxN+j3bAcWZnZKMnSj3iMA==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "lodash.omit": "^4.5.0", + "lodash.pick": "^4.4.0", + "reduce-extract": "^1.0.0", + "sort-array": "^2.0.0", + "test-value": "^3.0.0" + } + }, + "jsdoc-to-markdown": { + "version": "4.0.1", + "resolved": "https://npm.wsmgroup.ru/jsdoc-to-markdown/-/jsdoc-to-markdown-4.0.1.tgz", + "integrity": "sha512-LHJRoLoLyDdxNcColgkLoB/rFG5iRP+PNJjMILI0x+95IdEAtyjSt0wJ6ZlKxRpkhBYtQXTQQ119hMqPIUZzTQ==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "command-line-tool": "^0.8.0", + "config-master": "^3.1.0", + "dmd": "^3.0.10", + "jsdoc-api": "^4.0.1", + "jsdoc-parse": "^3.0.1", + "walk-back": "^3.0.0" + } + }, "jsdom": { "version": "11.11.0", "resolved": "https://npm.wsmgroup.ru/jsdom/-/jsdom-11.11.0.tgz", @@ -3835,6 +4095,15 @@ "is-buffer": "^1.1.5" } }, + "klaw": { + "version": "2.0.0", + "resolved": "https://npm.wsmgroup.ru/klaw/-/klaw-2.0.0.tgz", + "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, "lazy-cache": { "version": "1.0.4", "resolved": "https://npm.wsmgroup.ru/lazy-cache/-/lazy-cache-1.0.4.tgz", @@ -3902,6 +4171,30 @@ "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://npm.wsmgroup.ru/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.omit": { + "version": "4.5.0", + "resolved": "https://npm.wsmgroup.ru/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", + "dev": true + }, + "lodash.padend": { + "version": "4.6.1", + "resolved": "https://npm.wsmgroup.ru/lodash.padend/-/lodash.padend-4.6.1.tgz", + "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://npm.wsmgroup.ru/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://npm.wsmgroup.ru/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -3957,6 +4250,12 @@ "object-visit": "^1.0.0" } }, + "marked": { + "version": "0.3.19", + "resolved": "https://npm.wsmgroup.ru/marked/-/marked-0.3.19.tgz", + "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", + "dev": true + }, "math-random": { "version": "1.0.1", "resolved": "https://npm.wsmgroup.ru/math-random/-/math-random-1.0.1.tgz", @@ -4120,6 +4419,12 @@ "minimist": "0.0.8" } }, + "mkdirp2": { + "version": "1.0.4", + "resolved": "https://npm.wsmgroup.ru/mkdirp2/-/mkdirp2-1.0.4.tgz", + "integrity": "sha512-Q2PKB4ZR4UPtjLl76JfzlgSCUZhSV1AXQgAZa1qt5RiaALFjP/CDrGvFBrOz7Ck6McPcwMAxTsJvWOUjOU8XMw==", + "dev": true + }, "ms": { "version": "2.0.0", "resolved": "https://npm.wsmgroup.ru/ms/-/ms-2.0.0.tgz", @@ -4277,12 +4582,24 @@ } } }, + "object-get": { + "version": "2.1.0", + "resolved": "https://npm.wsmgroup.ru/object-get/-/object-get-2.1.0.tgz", + "integrity": "sha1-ciu9tgA576R8rTxtws5RqFwCxa4=", + "dev": true + }, "object-keys": { "version": "1.0.11", "resolved": "https://npm.wsmgroup.ru/object-keys/-/object-keys-1.0.11.tgz", "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", "dev": true }, + "object-to-spawn-args": { + "version": "1.1.1", + "resolved": "https://npm.wsmgroup.ru/object-to-spawn-args/-/object-to-spawn-args-1.1.1.tgz", + "integrity": "sha1-d9qIJ/Bz0BHJ4bFz+JV4FHAkZ4U=", + "dev": true + }, "object-visit": { "version": "1.0.1", "resolved": "https://npm.wsmgroup.ru/object-visit/-/object-visit-1.0.1.tgz", @@ -4735,6 +5052,78 @@ "util.promisify": "^1.0.0" } }, + "reduce-extract": { + "version": "1.0.0", + "resolved": "https://npm.wsmgroup.ru/reduce-extract/-/reduce-extract-1.0.0.tgz", + "integrity": "sha1-Z/I4W+2mUGG19fQxJmLosIDKFSU=", + "dev": true, + "requires": { + "test-value": "^1.0.1" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://npm.wsmgroup.ru/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + }, + "test-value": { + "version": "1.1.0", + "resolved": "https://npm.wsmgroup.ru/test-value/-/test-value-1.1.0.tgz", + "integrity": "sha1-oJE29y7AQ9J8iTcHwrFZv6196T8=", + "dev": true, + "requires": { + "array-back": "^1.0.2", + "typical": "^2.4.2" + } + } + } + }, + "reduce-flatten": { + "version": "1.0.1", + "resolved": "https://npm.wsmgroup.ru/reduce-flatten/-/reduce-flatten-1.0.1.tgz", + "integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc=", + "dev": true + }, + "reduce-unique": { + "version": "1.0.0", + "resolved": "https://npm.wsmgroup.ru/reduce-unique/-/reduce-unique-1.0.0.tgz", + "integrity": "sha1-flhrz4ek4ytter2Cd/rWzeyfSAM=", + "dev": true + }, + "reduce-without": { + "version": "1.0.1", + "resolved": "https://npm.wsmgroup.ru/reduce-without/-/reduce-without-1.0.1.tgz", + "integrity": "sha1-aK0OrRGFXJo31OglbBW7+Hly/Iw=", + "dev": true, + "requires": { + "test-value": "^2.0.0" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://npm.wsmgroup.ru/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + }, + "test-value": { + "version": "2.1.0", + "resolved": "https://npm.wsmgroup.ru/test-value/-/test-value-2.1.0.tgz", + "integrity": "sha1-Edpv9nDzRxpztiXKTz/c97t0gpE=", + "dev": true, + "requires": { + "array-back": "^1.0.3", + "typical": "^2.6.0" + } + } + } + }, "regenerator-runtime": { "version": "0.11.1", "resolved": "https://npm.wsmgroup.ru/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", @@ -4888,6 +5277,23 @@ } } }, + "requizzle": { + "version": "0.2.1", + "resolved": "https://npm.wsmgroup.ru/requizzle/-/requizzle-0.2.1.tgz", + "integrity": "sha1-aUPDUwxNmn5G8c3dUcFY/GcM294=", + "dev": true, + "requires": { + "underscore": "~1.6.0" + }, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://npm.wsmgroup.ru/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } + } + }, "resolve": { "version": "1.1.7", "resolved": "https://npm.wsmgroup.ru/resolve/-/resolve-1.1.7.tgz", @@ -5253,6 +5659,28 @@ "kind-of": "^3.2.0" } }, + "sort-array": { + "version": "2.0.0", + "resolved": "https://npm.wsmgroup.ru/sort-array/-/sort-array-2.0.0.tgz", + "integrity": "sha1-OKnG2if9fRR7QuYFVPKBGHtN9HI=", + "dev": true, + "requires": { + "array-back": "^1.0.4", + "object-get": "^2.1.0", + "typical": "^2.6.0" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://npm.wsmgroup.ru/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + } + } + }, "source-map": { "version": "0.5.7", "resolved": "https://npm.wsmgroup.ru/source-map/-/source-map-0.5.7.tgz", @@ -5384,6 +5812,32 @@ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", "dev": true }, + "stream-connect": { + "version": "1.0.2", + "resolved": "https://npm.wsmgroup.ru/stream-connect/-/stream-connect-1.0.2.tgz", + "integrity": "sha1-GLyB8u2zW4tdmoAJIAqYUxRCipc=", + "dev": true, + "requires": { + "array-back": "^1.0.2" + }, + "dependencies": { + "array-back": { + "version": "1.0.4", + "resolved": "https://npm.wsmgroup.ru/array-back/-/array-back-1.0.4.tgz", + "integrity": "sha1-ZEun8JX3/898Q7Xw3DnTwfA8Bjs=", + "dev": true, + "requires": { + "typical": "^2.6.0" + } + } + } + }, + "stream-via": { + "version": "1.0.4", + "resolved": "https://npm.wsmgroup.ru/stream-via/-/stream-via-1.0.4.tgz", + "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==", + "dev": true + }, "string-length": { "version": "2.0.0", "resolved": "https://npm.wsmgroup.ru/string-length/-/string-length-2.0.0.tgz", @@ -5480,6 +5934,31 @@ "string-width": "^2.1.1" } }, + "table-layout": { + "version": "0.4.4", + "resolved": "https://npm.wsmgroup.ru/table-layout/-/table-layout-0.4.4.tgz", + "integrity": "sha512-uNaR3SRMJwfdp9OUr36eyEi6LLsbcTqTO/hfTsNviKsNeyMBPICJCC7QXRF3+07bAP6FRwA8rczJPBqXDc0CkQ==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "deep-extend": "~0.6.0", + "lodash.padend": "^4.6.1", + "typical": "^2.6.1", + "wordwrapjs": "^3.0.0" + } + }, + "taffydb": { + "version": "2.6.2", + "resolved": "https://npm.wsmgroup.ru/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", + "dev": true + }, + "temp-path": { + "version": "1.0.0", + "resolved": "https://npm.wsmgroup.ru/temp-path/-/temp-path-1.0.0.tgz", + "integrity": "sha1-JLFUOXOrRCiW2a02fdnL2/r+kYs=", + "dev": true + }, "test-exclude": { "version": "4.2.1", "resolved": "https://npm.wsmgroup.ru/test-exclude/-/test-exclude-4.2.1.tgz", @@ -5522,6 +6001,16 @@ } } }, + "test-value": { + "version": "3.0.0", + "resolved": "https://npm.wsmgroup.ru/test-value/-/test-value-3.0.0.tgz", + "integrity": "sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==", + "dev": true, + "requires": { + "array-back": "^2.0.0", + "typical": "^2.6.1" + } + }, "text-table": { "version": "0.2.0", "resolved": "https://npm.wsmgroup.ru/text-table/-/text-table-0.2.0.tgz", @@ -5656,6 +6145,12 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typical": { + "version": "2.6.1", + "resolved": "https://npm.wsmgroup.ru/typical/-/typical-2.6.1.tgz", + "integrity": "sha1-XAgOXWYcu+OCWdLnCjxyU+hziB0=", + "dev": true + }, "ua-parser-js": { "version": "0.7.18", "resolved": "https://npm.wsmgroup.ru/ua-parser-js/-/ua-parser-js-0.7.18.tgz", @@ -5696,6 +6191,29 @@ "dev": true, "optional": true }, + "underscore": { + "version": "1.8.3", + "resolved": "https://npm.wsmgroup.ru/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", + "dev": true + }, + "underscore-contrib": { + "version": "0.3.0", + "resolved": "https://npm.wsmgroup.ru/underscore-contrib/-/underscore-contrib-0.3.0.tgz", + "integrity": "sha1-ZltmwkeD+PorGMn4y7Dix9SMJsc=", + "dev": true, + "requires": { + "underscore": "1.6.0" + }, + "dependencies": { + "underscore": { + "version": "1.6.0", + "resolved": "https://npm.wsmgroup.ru/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + } + } + }, "union-value": { "version": "1.0.0", "resolved": "https://npm.wsmgroup.ru/union-value/-/union-value-1.0.0.tgz", @@ -5846,6 +6364,12 @@ "browser-process-hrtime": "^0.1.2" } }, + "walk-back": { + "version": "3.0.0", + "resolved": "https://npm.wsmgroup.ru/walk-back/-/walk-back-3.0.0.tgz", + "integrity": "sha1-I1h4ejXakQMtrV6S+AsSNw2HlcU=", + "dev": true + }, "walker": { "version": "1.0.7", "resolved": "https://npm.wsmgroup.ru/walker/-/walker-1.0.7.tgz", @@ -5939,6 +6463,16 @@ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, + "wordwrapjs": { + "version": "3.0.0", + "resolved": "https://npm.wsmgroup.ru/wordwrapjs/-/wordwrapjs-3.0.0.tgz", + "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==", + "dev": true, + "requires": { + "reduce-flatten": "^1.0.1", + "typical": "^2.6.1" + } + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://npm.wsmgroup.ru/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -6028,6 +6562,12 @@ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, + "xmlcreate": { + "version": "1.0.2", + "resolved": "https://npm.wsmgroup.ru/xmlcreate/-/xmlcreate-1.0.2.tgz", + "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", + "dev": true + }, "y18n": { "version": "3.2.1", "resolved": "https://npm.wsmgroup.ru/y18n/-/y18n-3.2.1.tgz", diff --git a/package.json b/package.json index a8a6a9b..1ffc179 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "eslint-plugin-jsx-a11y": "^6.0.3", "eslint-plugin-react": "^7.9.1", "jest": "^23.1.0", + "jsdoc-to-markdown": "^4.0.1", "lerna": "^2.11.0", "xbbcode-parser": "^0.1.2" } diff --git a/packages/bbob-html/README.md b/packages/bbob-html/README.md index 5bdd07e..ace42ae 100644 --- a/packages/bbob-html/README.md +++ b/packages/bbob-html/README.md @@ -1,2 +1,2 @@ -# bbob-render -Converts bbob-parser AST tree to html \ No newline at end of file +# bbob-html +Converts bbob-parser AST tree to html diff --git a/packages/bbob-html/index.js b/packages/bbob-html/index.js index 6e22926..350bb02 100644 --- a/packages/bbob-html/index.js +++ b/packages/bbob-html/index.js @@ -1,6 +1,3 @@ -function render(tree, options) { - -} function attrs(obj) { let attr = ''; @@ -20,16 +17,68 @@ function attrs(obj) { function traverse(tree, cb) { if (Array.isArray(tree)) { - let i = 0, - length = tree.length; - for (; i < length; i++) { + tree.forEach((_, i) => { traverse(cb(tree[i]), cb); - } - } else if (typeof tree === 'object' && tree.hasOwnProperty('content')) { + }); + } else if (typeof tree === 'object' && tree.content) { traverse(tree.content, cb); } return tree; } +function render(tree, options) { + return html(tree); + + function html(tree) { + let result = ''; + + traverse([].concat(tree), (node) => { + if (!node) return; + + if (typeof node === 'string' || typeof node === 'number') { + result += node; + + return; + } + + if (typeof node.tag === 'boolean' && !node.tag) { + typeof node.content !== 'object' && (result += node.content); + + return node.content; + } + + // treat as new root tree if node is an array + if (Array.isArray(node)) { + result += html(node); + + return; + } + + const tag = node.tag || 'div'; + + if (isSingleTag(tag, singleTags, singleRegExp)) { + result += `<${tag}${attrs(node.attrs)}`; + + switch (closingSingleTag) { + case 'tag': + result += `>`; + + break; + case 'slash': + result += ' />'; + + break; + default: + result += '>'; + } + } else { + result += `<${tag}${node.attrs ? attrs(node.attrs) : ''}>${node.content ? html(node.content) : ''}`; + } + }); + + return result; + } +} + module.exports = render;