@ng-doc/builder 16.5.1 → 16.6.0

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.
@@ -35,6 +35,6 @@ var CachePage = {
35
35
  title: `Cache`,
36
36
  mdFile: "./index.md",
37
37
  category: ng_doc_category_default,
38
- order: 1
38
+ order: 2
39
39
  };
40
40
  var ng_doc_page_default = CachePage;
@@ -36,6 +36,6 @@ var KeywordsPage = {
36
36
  mdFile: "./index.md",
37
37
  category: ng_doc_category_default,
38
38
  keyword: "FeaturesKeywords",
39
- order: 2
39
+ order: 3
40
40
  };
41
41
  var ng_doc_page_default = KeywordsPage;
@@ -36,6 +36,6 @@ var KeywordsLoadersPage = {
36
36
  mdFile: "./index.md",
37
37
  category: ng_doc_category_default,
38
38
  keyword: "FeaturesKeywordsLoaders",
39
- order: 3
39
+ order: 4
40
40
  };
41
41
  var ng_doc_page_default = KeywordsLoadersPage;
@@ -0,0 +1,41 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // apps/ng-doc/src/app/pages/docs/features/markdown/apps/ng-doc/src/app/pages/docs/features/markdown/ng-doc.page.ts
20
+ var ng_doc_page_exports = {};
21
+ __export(ng_doc_page_exports, {
22
+ default: () => ng_doc_page_default
23
+ });
24
+ module.exports = __toCommonJS(ng_doc_page_exports);
25
+
26
+ // apps/ng-doc/src/app/pages/docs/features/ng-doc.category.ts
27
+ var FeaturesCategory = {
28
+ title: "Features",
29
+ order: 5
30
+ };
31
+ var ng_doc_category_default = FeaturesCategory;
32
+
33
+ // apps/ng-doc/src/app/pages/docs/features/markdown/apps/ng-doc/src/app/pages/docs/features/markdown/ng-doc.page.ts
34
+ var MarkdownPage = {
35
+ title: `Markdown`,
36
+ mdFile: "./index.md",
37
+ category: ng_doc_category_default,
38
+ order: 1,
39
+ keyword: "FeaturesMarkdown"
40
+ };
41
+ var ng_doc_page_default = MarkdownPage;
@@ -13,16 +13,16 @@ const load_config_1 = require("./load-config");
13
13
  * @param project
14
14
  */
15
15
  function createBuilderContext(targetOptions, options, context) {
16
- var _a, _b, _c, _d, _e;
17
- const buildPath = path.join(context.workspaceRoot, '.ng-doc', (_b = (_a = context.target) === null || _a === void 0 ? void 0 : _a.project) !== null && _b !== void 0 ? _b : 'app');
16
+ var _a, _b, _c, _d, _e, _f;
18
17
  const projectRoot = path.dirname(targetOptions['main']);
19
18
  const [configPath, config] = (0, load_config_1.loadConfig)(projectRoot);
19
+ const buildPath = path.join(context.workspaceRoot, (_a = config.outDir) !== null && _a !== void 0 ? _a : '', '.ng-doc', (_c = (_b = context.target) === null || _b === void 0 ? void 0 : _b.project) !== null && _c !== void 0 ? _c : 'app');
20
20
  return {
21
- tsConfig: (_c = config === null || config === void 0 ? void 0 : config.tsConfig) !== null && _c !== void 0 ? _c : String(targetOptions['tsConfig']),
21
+ tsConfig: (_d = config === null || config === void 0 ? void 0 : config.tsConfig) !== null && _d !== void 0 ? _d : String(targetOptions['tsConfig']),
22
22
  config,
23
23
  context,
24
- inlineStyleLanguage: (_d = targetOptions === null || targetOptions === void 0 ? void 0 : targetOptions['inlineStyleLanguage']) !== null && _d !== void 0 ? _d : 'CSS',
25
- pagesPaths: ((_e = config.pages) === null || _e === void 0 ? void 0 : _e.length) ? (0, core_1.asArray)(config.pages) : [projectRoot],
24
+ inlineStyleLanguage: (_e = targetOptions === null || targetOptions === void 0 ? void 0 : targetOptions['inlineStyleLanguage']) !== null && _e !== void 0 ? _e : 'CSS',
25
+ pagesPaths: ((_f = config.pages) === null || _f === void 0 ? void 0 : _f.length) ? (0, core_1.asArray)(config.pages) : [projectRoot],
26
26
  assetsPath: path.join(buildPath, 'assets'),
27
27
  cachedFiles: [configPath],
28
28
  buildPath,
@@ -1 +1 @@
1
- {"version":3,"file":"create-builder-context.js","sourceRoot":"","sources":["../../../../libs/builder/helpers/create-builder-context.ts"],"names":[],"mappings":";;;;AAEA,uCAAqD;AACrD,mDAA6B;AAG7B,+CAAyC;AAEzC;;;;;;GAMG;AACH,SAAgB,oBAAoB,CACnC,aAA8B,EAC9B,OAAoB,EACpB,OAAuB;;IAEvB,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,MAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,OAAO,mCAAI,KAAK,CAAC,CAAC;IACxG,MAAM,WAAW,GAAW,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAW,CAAC,CAAC;IAE1E,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAiC,IAAA,wBAAU,EAAC,WAAW,CAAC,CAAC;IAEnF,OAAO;QACN,QAAQ,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,mCAAI,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM;QACN,OAAO;QACP,mBAAmB,EAAE,MAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,qBAAqB,CAAoB,mCAAI,KAAK;QACxF,UAAU,EAAE,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,EAAC,CAAC,CAAC,IAAA,cAAO,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACxE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC1C,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,SAAS;QACT,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;QACpC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;KAC1C,CAAC;AACH,CAAC;AAtBD,oDAsBC"}
1
+ {"version":3,"file":"create-builder-context.js","sourceRoot":"","sources":["../../../../libs/builder/helpers/create-builder-context.ts"],"names":[],"mappings":";;;;AAEA,uCAAqD;AACrD,mDAA6B;AAG7B,+CAAyC;AAEzC;;;;;;GAMG;AACH,SAAgB,oBAAoB,CACnC,aAA8B,EAC9B,OAAoB,EACpB,OAAuB;;IAEvB,MAAM,WAAW,GAAW,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAW,CAAC,CAAC;IAC1E,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAiC,IAAA,wBAAU,EAAC,WAAW,CAAC,CAAC;IACnF,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAA,MAAM,CAAC,MAAM,mCAAI,EAAE,EAAE,SAAS,EAAE,MAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,OAAO,mCAAI,KAAK,CAAC,CAAC;IAE7H,OAAO;QACN,QAAQ,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,mCAAI,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC/D,MAAM;QACN,OAAO;QACP,mBAAmB,EAAE,MAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,qBAAqB,CAAoB,mCAAI,KAAK;QACxF,UAAU,EAAE,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,EAAC,CAAC,CAAC,IAAA,cAAO,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACxE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;QAC1C,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,SAAS;QACT,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;QACpC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;KAC1C,CAAC;AACH,CAAC;AArBD,oDAqBC"}
@@ -8,10 +8,10 @@ exports.formatCode = void 0;
8
8
  * @param {NgDocCodeType} codeType Type of code
9
9
  * @returns {string} Formatted code
10
10
  */
11
- function formatCode(code, codeType = "TypeScript") {
11
+ function formatCode(code, codeType = 'TypeScript') {
12
12
  try {
13
13
  const parser = getPrettierParserFromCodeType(codeType);
14
- return require('prettier').format(code, parser ? { parser } : {});
14
+ return require('prettier').format(code, { parser });
15
15
  }
16
16
  catch (e) {
17
17
  return code;
@@ -1 +1 @@
1
- {"version":3,"file":"format-code.js","sourceRoot":"","sources":["../../../../libs/builder/helpers/format-code.ts"],"names":[],"mappings":";;;AAGA;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,IAAY,EAAE,WAA0B,YAAY;IAC9E,IAAI;QACH,MAAM,MAAM,GAAkC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAEtF,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAChE;IAAC,OAAO,CAAC,EAAE;QACX,OAAO,IAAI,CAAC;KACZ;AACF,CAAC;AARD,gCAQC;AAED;;;;;GAKG;AACH,SAAS,6BAA6B,CAAC,QAAuB;IAC7D,QAAQ,QAAQ,EAAE;QACjB,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACV,OAAO,KAAK,CAAC;QACd;YACC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC/B;AACF,CAAC"}
1
+ {"version":3,"file":"format-code.js","sourceRoot":"","sources":["../../../../libs/builder/helpers/format-code.ts"],"names":[],"mappings":";;;AAGA;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,IAAY,EAAE,WAA0B,YAAY;IAC9E,IAAI;QACH,MAAM,MAAM,GAAkC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAEtF,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;KAClD;IAAC,OAAO,CAAC,EAAE;QACX,OAAO,IAAI,CAAC;KACZ;AACF,CAAC;AARD,gCAQC;AAED;;;;;GAKG;AACH,SAAS,6BAA6B,CAAC,QAAuB;IAC7D,QAAQ,QAAQ,EAAE;QACjB,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACV,OAAO,KAAK,CAAC;QACd;YACC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC/B;AACF,CAAC"}
@@ -34,7 +34,7 @@ function getComponentAsset(classDeclaration, inlineStyleLang, outDir) {
34
34
  return {
35
35
  [(_a = classDeclaration.getName()) !== null && _a !== void 0 ? _a : '']: assets.map((asset, i) => {
36
36
  var _a;
37
- const code = (0, format_code_1.formatCode)(asset.output, asset.type);
37
+ const code = (0, format_code_1.formatCode)(asset.output, asset.type).trim();
38
38
  return Object.assign(Object.assign({}, asset), { code, output: (0, nunjucks_1.renderTemplate)('./code.html.nunj', {
39
39
  context: {
40
40
  code,
@@ -1 +1 @@
1
- {"version":3,"file":"get-component-asset.js","sourceRoot":"","sources":["../../../../libs/builder/helpers/get-component-asset.ts"],"names":[],"mappings":";;;;AACA,uCAAqD;AACrD,mDAA6B;AAG7B,iDAAkD;AAGlD,uCAAgD;AAChD,iDAA2C;AAC3C,+CAAyC;AACzC,mCAA8B;AAE9B;;;;;GAKG;AACH,SAAgB,iBAAiB,CAChC,gBAAkC,EAClC,eAA+B,EAC/B,MAAc;;IAEd,MAAM,aAAa,GAA0B,IAAA,+BAAqB,EAAC,gBAAgB,CAAC,CAAC;IAErF,IAAI,aAAa,EAAE;QAClB,MAAM,QAAQ,GAAW,gBAAgB,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,CAAC;QACxE,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/C,MAAM,MAAM,GAA0C;YACrD,oCAAoC;YACpC,GAAG,IAAA,0BAAW,EAAC,QAAQ,EAAE,eAAe,CAAC;YACzC,gDAAgD;YAChD,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,0BAAW,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjH,+CAA+C;YAC/C,GAAG,IAAA,cAAO,EAAC,aAAa,CAAC,SAAS,CAAC;iBACjC,GAAG,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAA,0BAAW,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;iBACrF,IAAI,EAAE;SACR,CAAC;QAEF,OAAO;YACN,CAAC,MAAA,gBAAgB,CAAC,OAAO,EAAE,mCAAI,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAqC,EAAE,CAAS,EAAE,EAAE;;gBACnG,MAAM,IAAI,GAAW,IAAA,wBAAU,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE1D,uCACI,KAAK,KACR,IAAI,EACJ,MAAM,EAAE,IAAA,yBAAc,EAAC,kBAAkB,EAAE;wBAC1C,OAAO,EAAE;4BACR,IAAI;4BACJ,IAAI,EAAE,KAAK,CAAC,IAAI;yBAChB;qBACD,CAAC,CAAC,IAAI,EAAE,EACT,UAAU,EAAE,IAAA,aAAK,EAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAA,gBAAgB,CAAC,OAAO,EAAE,mCAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAC3G;YACH,CAAC,CAAC;SACF,CAAC;KACF;IAED,OAAO,EAAE,CAAC;AACX,CAAC;AA1CD,8CA0CC"}
1
+ {"version":3,"file":"get-component-asset.js","sourceRoot":"","sources":["../../../../libs/builder/helpers/get-component-asset.ts"],"names":[],"mappings":";;;;AACA,uCAAqD;AACrD,mDAA6B;AAG7B,iDAAkD;AAGlD,uCAAgD;AAChD,iDAA2C;AAC3C,+CAAyC;AACzC,mCAA8B;AAE9B;;;;;GAKG;AACH,SAAgB,iBAAiB,CAChC,gBAAkC,EAClC,eAA+B,EAC/B,MAAc;;IAEd,MAAM,aAAa,GAA0B,IAAA,+BAAqB,EAAC,gBAAgB,CAAC,CAAC;IAErF,IAAI,aAAa,EAAE;QAClB,MAAM,QAAQ,GAAW,gBAAgB,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE,CAAC;QACxE,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/C,MAAM,MAAM,GAA0C;YACrD,oCAAoC;YACpC,GAAG,IAAA,0BAAW,EAAC,QAAQ,EAAE,eAAe,CAAC;YACzC,gDAAgD;YAChD,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,0BAAW,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjH,+CAA+C;YAC/C,GAAG,IAAA,cAAO,EAAC,aAAa,CAAC,SAAS,CAAC;iBACjC,GAAG,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,IAAA,0BAAW,EAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;iBACrF,IAAI,EAAE;SACR,CAAC;QAEF,OAAO;YACN,CAAC,MAAA,gBAAgB,CAAC,OAAO,EAAE,mCAAI,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAqC,EAAE,CAAS,EAAE,EAAE;;gBACnG,MAAM,IAAI,GAAW,IAAA,wBAAU,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAEjE,uCACI,KAAK,KACR,IAAI,EACJ,MAAM,EAAE,IAAA,yBAAc,EAAC,kBAAkB,EAAE;wBAC1C,OAAO,EAAE;4BACR,IAAI;4BACJ,IAAI,EAAE,KAAK,CAAC,IAAI;yBAChB;qBACD,CAAC,CAAC,IAAI,EAAE,EACT,UAAU,EAAE,IAAA,aAAK,EAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAA,gBAAgB,CAAC,OAAO,EAAE,mCAAI,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAC3G;YACH,CAAC,CAAC;SACF,CAAC;KACF;IAED,OAAO,EAAE,CAAC;AACX,CAAC;AA1CD,8CA0CC"}
package/helpers/marked.js CHANGED
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.marked = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ const builder_1 = require("@ng-doc/builder");
5
6
  const core_1 = require("@ng-doc/core");
6
7
  const fs = tslib_1.__importStar(require("fs"));
7
8
  const marked_1 = require("marked");
@@ -18,19 +19,24 @@ const WARNING_ANCHOR = '<p><strong>Warning</strong>';
18
19
  */
19
20
  function marked(markdown, page) {
20
21
  const renderer = {
21
- code(code, language) {
22
- var _a, _b, _c, _d, _e;
23
- const parameters = (_a = language === null || language === void 0 ? void 0 : language.match(/(?:[^\s"]+|"[^"]*")+/g)) !== null && _a !== void 0 ? _a : [];
24
- const fileParameter = parameters.find((parameter) => parameter.startsWith('file='));
25
- const lang = (_b = parameters[0]) !== null && _b !== void 0 ? _b : 'typescript';
26
- const fileName = (_e = (_d = (_c = parameters
27
- .find((parameter) => parameter.startsWith('fileName='))) === null || _c === void 0 ? void 0 : _c.replace(/"/g, '')) === null || _d === void 0 ? void 0 : _d.replace(/^fileName=/, '')) !== null && _e !== void 0 ? _e : '';
28
- if (fileParameter && page) {
29
- const result = loadFile(fileParameter, page.mdFolder);
30
- page.dependencies.add(result[0]);
31
- code = result[1];
22
+ code(code, lang) {
23
+ var _a;
24
+ const { language, file, fileName, highlightedLines, fileLineStart, fileLineEnd } = (0, builder_1.parseCodeBlockParams)((_a = lang === null || lang === void 0 ? void 0 : lang.trim()) !== null && _a !== void 0 ? _a : 'typescript');
25
+ // file path regexp
26
+ if (file && page) {
27
+ const relativeFilePath = path.join(page.mdFolder, file);
28
+ const fileContent = fs
29
+ .readFileSync(relativeFilePath !== null && relativeFilePath !== void 0 ? relativeFilePath : '', 'utf8')
30
+ .split(node_os_1.EOL)
31
+ .slice(fileLineStart, fileLineEnd)
32
+ .join(node_os_1.EOL);
33
+ page.dependencies.add(relativeFilePath);
34
+ code = fileContent;
32
35
  }
33
- return `<pre><code class="language-${lang}" lang="${lang}" fileName="${fileName}">${(0, core_1.escapeHtml)(code)}</code></pre>`;
36
+ return `<pre><code class="language-${language !== null && language !== void 0 ? language : 'ts'}"
37
+ lang="${language}"
38
+ fileName="${fileName !== null && fileName !== void 0 ? fileName : ''}"
39
+ highlightedLines="${JSON.stringify(highlightedLines !== null && highlightedLines !== void 0 ? highlightedLines : [])}">${(0, core_1.escapeHtml)(code)}</code></pre>`;
34
40
  },
35
41
  blockquote(quote) {
36
42
  if (new RegExp(`^${NOTE_ANCHOR}`).test(quote)) {
@@ -46,30 +52,4 @@ function marked(markdown, page) {
46
52
  return marked_1.marked.parse(markdown, { headerIds: false });
47
53
  }
48
54
  exports.marked = marked;
49
- /**
50
- *
51
- * @param str
52
- * @param contextFolder
53
- */
54
- function loadFile(str, contextFolder) {
55
- var _a;
56
- const res = /^file=(?<path>.+?)(?:(?:#(?:L(?<from>\d+)(?<dash>-)?)?)(?:L(?<to>\d+))?)?$/.exec(str);
57
- if (!res || !res.groups || !res.groups['path']) {
58
- throw new Error(`Unable to parse file path ${str}`);
59
- }
60
- const groupPath = res.groups['path'].replace(/"/g, '');
61
- const relativeFilePath = path.join(contextFolder, groupPath);
62
- const file = fs.readFileSync(relativeFilePath !== null && relativeFilePath !== void 0 ? relativeFilePath : '', 'utf8');
63
- const fileLines = file.split(node_os_1.EOL);
64
- const fromLine = res.groups['from'] ? parseInt(res.groups['from'], 10) : 1;
65
- const hasDash = (_a = !!res.groups['dash']) !== null && _a !== void 0 ? _a : false;
66
- let toLine = fileLines.length;
67
- if (res.groups['to']) {
68
- toLine = parseInt(res.groups['to'], 10);
69
- }
70
- if (!hasDash && res.groups['from']) {
71
- toLine = fromLine;
72
- }
73
- return [relativeFilePath, fileLines.slice(fromLine - 1, toLine).join(node_os_1.EOL)];
74
- }
75
55
  //# sourceMappingURL=marked.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"marked.js","sourceRoot":"","sources":["../../../../libs/builder/helpers/marked.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marked.js","sourceRoot":"","sources":["../../../../libs/builder/helpers/marked.ts"],"names":[],"mappings":";;;;AAAA,6CAA2E;AAC3E,uCAAwC;AACxC,+CAAyB;AACzB,mCAA8C;AAC9C,qCAA4B;AAC5B,mDAA6B;AAI7B,MAAM,WAAW,GAAW,0BAA0B,CAAC;AACvD,MAAM,cAAc,GAAW,6BAA6B,CAAC;AAE7D;;;;;;GAMG;AACH,SAAgB,MAAM,CAAC,QAAgB,EAAE,IAAsB;IAC9D,MAAM,QAAQ,GAAgC;QAC7C,IAAI,CAAC,IAAY,EAAE,IAAwB;;YAC1C,MAAM,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAC,GAC7E,IAAA,8BAAoB,EAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,mCAAI,YAAY,CAAC,CAAC;YAEpD,mBAAmB;YAEnB,IAAI,IAAI,IAAI,IAAI,EAAE;gBACjB,MAAM,gBAAgB,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAChE,MAAM,WAAW,GAAW,EAAE;qBAC5B,YAAY,CAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,EAAE,MAAM,CAAC;qBAC5C,KAAK,CAAC,aAAG,CAAC;qBACV,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC;qBACjC,IAAI,CAAC,aAAG,CAAC,CAAC;gBAEZ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAExC,IAAI,GAAG,WAAW,CAAC;aACnB;YAED,OAAO,8BAA8B,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,IAAI;eACzC,QAAQ;mBACJ,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE;2BACN,IAAI,CAAC,SAAS,CAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,CAAC,KAAK,IAAA,iBAAU,EAAC,IAAI,CAAC,eAAe,CAAC;QACpG,CAAC;QACD,UAAU,CAAC,KAAa;YACvB,IAAI,IAAI,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC9C,OAAO,kCAAkC,KAAK,CAAC,OAAO,CACrD,IAAI,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,EACjC,KAAK,CACL,sBAAsB,CAAC;aACxB;YAED,IAAI,IAAI,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACjD,OAAO,qCAAqC,KAAK,CAAC,OAAO,CACxD,IAAI,MAAM,CAAC,IAAI,cAAc,MAAM,CAAC,EACpC,KAAK,CACL,sBAAsB,CAAC;aACxB;YAED,OAAO,sBAAsB,KAAK,sBAAsB,CAAC;QAC1D,CAAC;KACD,CAAC;IAEF,eAAY,CAAC,GAAG,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC;IAE7B,OAAO,eAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAC,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;AACzD,CAAC;AAhDD,wBAgDC"}
package/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export * from './browser';
2
2
  export * from './dev-server';
3
3
  export * from './engine';
4
4
  export * from './interfaces';
5
+ export * from './parsers';
5
6
  export * from './types';
package/index.js CHANGED
@@ -5,5 +5,6 @@ tslib_1.__exportStar(require("./browser"), exports);
5
5
  tslib_1.__exportStar(require("./dev-server"), exports);
6
6
  tslib_1.__exportStar(require("./engine"), exports);
7
7
  tslib_1.__exportStar(require("./interfaces"), exports);
8
+ tslib_1.__exportStar(require("./parsers"), exports);
8
9
  tslib_1.__exportStar(require("./types"), exports);
9
10
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/builder/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,uDAA6B;AAC7B,mDAAyB;AACzB,uDAA6B;AAC7B,kDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/builder/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,uDAA6B;AAC7B,mDAAyB;AACzB,uDAA6B;AAC7B,oDAA0B;AAC1B,kDAAwB"}
@@ -0,0 +1,9 @@
1
+ export interface NgDocCodeBlockParams {
2
+ language?: string;
3
+ lineNumbers?: boolean;
4
+ fileName?: string;
5
+ file?: string;
6
+ fileLineStart?: number;
7
+ fileLineEnd?: number;
8
+ highlightedLines?: number[];
9
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=code-block-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block-options.js","sourceRoot":"","sources":["../../../../libs/builder/interfaces/code-block-options.ts"],"names":[],"mappings":""}
@@ -18,6 +18,14 @@ export interface NgDocConfiguration {
18
18
  * List of paths to your documentation location (e.g. "src/app")
19
19
  */
20
20
  pages?: string | string[];
21
+ /**
22
+ * The path to the output directory, where the documentation will be generated. (e.g. 'src')
23
+ *
24
+ * Remember that if you change this path, you also need to change the following:
25
+ * - Change the path to the `@ng-doc/generated` directory in `tsconfig.json`
26
+ * - Change the path to the `.ng-doc/app-name/assets` folder in `angular.json`
27
+ */
28
+ outDir?: string;
21
29
  /**
22
30
  * Route prefix uses to add some additional route segment before documentation pages,
23
31
  * you can use it e.g. to wrap documentation with additional route like "docs".
@@ -1,6 +1,7 @@
1
1
  export * from './action-output';
2
2
  export * from './asset';
3
3
  export * from './builder-context';
4
+ export * from './code-block-options';
4
5
  export * from './configuration';
5
6
  export * from './entity-keyword';
6
7
  export * from './output';
@@ -4,6 +4,7 @@ const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./action-output"), exports);
5
5
  tslib_1.__exportStar(require("./asset"), exports);
6
6
  tslib_1.__exportStar(require("./builder-context"), exports);
7
+ tslib_1.__exportStar(require("./code-block-options"), exports);
7
8
  tslib_1.__exportStar(require("./configuration"), exports);
8
9
  tslib_1.__exportStar(require("./entity-keyword"), exports);
9
10
  tslib_1.__exportStar(require("./output"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/builder/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,kDAAwB;AACxB,4DAAkC;AAClC,0DAAgC;AAChC,2DAAiC;AACjC,mDAAyB;AACzB,wDAA8B;AAC9B,gEAAsC;AACtC,6DAAmC;AACnC,wDAA8B;AAC9B,mDAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/builder/interfaces/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,kDAAwB;AACxB,4DAAkC;AAClC,+DAAqC;AACrC,0DAAgC;AAChC,2DAAiC;AACjC,mDAAyB;AACzB,wDAA8B;AAC9B,gEAAsC;AACtC,6DAAmC;AACnC,wDAA8B;AAC9B,mDAAyB"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@ng-doc/builder",
3
- "version": "16.5.1",
3
+ "version": "16.6.0",
4
4
  "type": "commonjs",
5
5
  "builders": "./builders.json",
6
6
  "schematics": "./schematics/collection.json",
7
7
  "dependencies": {
8
- "@ng-doc/core": "16.5.1",
9
- "@ng-doc/utils": "16.5.1",
8
+ "@ng-doc/core": "16.6.0",
9
+ "@ng-doc/utils": "16.6.0",
10
10
  "@angular-devkit/architect": ">=0.1600.0",
11
11
  "chokidar": "3.5.3",
12
12
  "minimatch": "9.0.1",
@@ -0,0 +1 @@
1
+ export * from './parse-code-block-params';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./parse-code-block-params"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/builder/parsers/index.ts"],"names":[],"mappings":";;;AAAA,oEAA0C"}
@@ -0,0 +1,7 @@
1
+ import { NgDocCodeBlockParams } from '../interfaces';
2
+ /**
3
+ * Code block options parser
4
+ *
5
+ * @param options - Options string to parse
6
+ */
7
+ export declare function parseCodeBlockParams(options: string): NgDocCodeBlockParams;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseCodeBlockParams = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const P = tslib_1.__importStar(require("parsimmon"));
6
+ /**
7
+ * Code block options parser
8
+ *
9
+ * @param options - Options string to parse
10
+ */
11
+ function parseCodeBlockParams(options) {
12
+ const parser = P.createLanguage({
13
+ language: () => P.regexp(/[a-zA-Z]+/)
14
+ .skip(P.optWhitespace)
15
+ .map((language) => ({ language })),
16
+ content: () => P.regexp(/[a-zA-Z0-9\\./\-_]+/).wrap(P.string('"'), P.string('"')),
17
+ number: () => P.digits.map(Number),
18
+ // File Parsers
19
+ fileLineNumber: () => P.string('L').then(P.digits).map(Number),
20
+ fileLineRange: (p) => P.seqMap(P.string('#')
21
+ .then(p['fileLineNumber'])
22
+ .map((num) => num - 1), P.string('-').then(p['fileLineNumber'].fallback(undefined)), (fileLineStart, fileLineEnd) => ({ fileLineStart, fileLineEnd })),
23
+ fileLineStart: (p) => P.string('#')
24
+ .then(p['fileLineNumber'])
25
+ .map((num) => num - 1)
26
+ .map((fileLineStart) => ({ fileLineStart, fileLineEnd: fileLineStart + 1 })),
27
+ lineParams: (p) => p['fileLineRange'].or(p['fileLineStart']).fallback({}),
28
+ filePath: (p) => P.string('file')
29
+ .then(P.string('='))
30
+ .then(p['content'])
31
+ .map((file) => ({ file })),
32
+ highlightedLinesRange: (p) => P.seqMap(p['number'].skip(P.string('-')), p['number'], (start, end) => [...Array(end + 1).keys()].slice(start - end - 1)),
33
+ // Main Parsers
34
+ lineNumbers: () => P.string('lineNumbers').map(() => ({ lineNumbers: true })),
35
+ fileName: (p) => P.string('fileName')
36
+ .then(P.string('='))
37
+ .then(p['content'])
38
+ .map((fileName) => ({ fileName })),
39
+ file: (p) => P.seq(p['filePath'], p['lineParams'].map(({ fileLineStart, fileLineEnd }) => ({ fileLineStart, fileLineEnd }))).map(([file, lineParams]) => (Object.assign(Object.assign({}, file), lineParams))),
40
+ highlightedLines: (p) => p['highlightedLinesRange']
41
+ .or(p['number'])
42
+ .sepBy(P.string(',').then(P.optWhitespace))
43
+ .wrap(P.string('{'), P.string('}'))
44
+ .map((a) => Array.from(new Set(a.flat())))
45
+ .map((highlightedLines) => ({ highlightedLines })),
46
+ // Combined Parsers
47
+ paramsParser: (p) => p['lineNumbers'].or(p['fileName']).or(p['file']).or(p['highlightedLines']).sepBy(P.whitespace),
48
+ languageWithParamsParser: (p) => P.seq(p['language'], p['paramsParser']).map((v) => v.flat()),
49
+ });
50
+ let result = parser['paramsParser'].parse(options);
51
+ if (result.status) {
52
+ return result.value.reduce((acc, cur) => (Object.assign(Object.assign({}, acc), cur)), {});
53
+ }
54
+ result = parser['languageWithParamsParser'].parse(options);
55
+ if (result.status) {
56
+ return result.value.reduce((acc, cur) => (Object.assign(Object.assign({}, acc), cur)), {});
57
+ }
58
+ throw new Error(`Unable to parse code block options: "${options}"`);
59
+ }
60
+ exports.parseCodeBlockParams = parseCodeBlockParams;
61
+ //# sourceMappingURL=parse-code-block-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-code-block-params.js","sourceRoot":"","sources":["../../../../libs/builder/parsers/parse-code-block-params.ts"],"names":[],"mappings":"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"}