Skip to content

Commit d907c13

Browse files
authored
feat(dgeni,docs-utils): centralize paths for different doc kinds (#2950)
1 parent c02a02e commit d907c13

File tree

5 files changed

+31
-19
lines changed

5 files changed

+31
-19
lines changed

libs/docs-utils/src/kind/enum.ts

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export enum DaffDocKind {
2+
GUIDE = 'GUIDE',
3+
EXPLANATION = 'EXPLANATION',
4+
PACKAGE = 'PACKAGE',
5+
API = 'API',
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { DaffDocKind } from './enum';
2+
3+
export const DAFF_DOC_KIND_PATH_SEGMENT_MAP = <const>{
4+
[DaffDocKind.GUIDE]: 'guides',
5+
[DaffDocKind.EXPLANATION]: 'explanations',
6+
[DaffDocKind.PACKAGE]: 'packages',
7+
[DaffDocKind.API]: 'api',
8+
};
+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './enum';
2+
export * from './path-segment-map';

libs/docs-utils/src/public_api.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export { crossOsFilename } from './cross-os-filename';
2+
export * from './kind/public_api';

tools/dgeni/src/processors/markdown.ts

+14-19
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ import { slugify } from 'markdown-toc';
1212
import { marked } from 'marked';
1313
import { markedHighlight } from 'marked-highlight';
1414

15+
import {
16+
DAFF_DOC_KIND_PATH_SEGMENT_MAP,
17+
DaffDocKind,
18+
} from '@daffodil/docs-utils';
19+
1520
hljs.registerLanguage('typescript', typescript);
1621
hljs.registerLanguage('ts', typescript);
1722
hljs.registerLanguage('xml', xml);
@@ -20,17 +25,11 @@ hljs.registerLanguage('bash', bash);
2025
hljs.registerLanguage('graphql', graphql);
2126
hljs.registerLanguage('gql', graphql);
2227

23-
enum DocKind {
24-
GUIDE = 'GUIDE',
25-
EXPLANATION = 'EXPLANATION',
26-
PACKAGE = 'PACKAGE',
27-
API = 'API',
28-
}
2928
const DOC_KIND_REGEX = {
30-
[DocKind.GUIDE]: /\/docs\/guides\/(?<path>.+)\.md/,
31-
[DocKind.EXPLANATION]: /\/docs\/explanations\/(?<path>.+)\.md/,
32-
[DocKind.PACKAGE]: /\/libs\/(?<path>.+)\.md/,
33-
[DocKind.API]: /\/libs\/(?<path>.+)\.ts/,
29+
[DaffDocKind.GUIDE]: /\/docs\/guides\/(?<path>.+)\.md/,
30+
[DaffDocKind.EXPLANATION]: /\/docs\/explanations\/(?<path>.+)\.md/,
31+
[DaffDocKind.PACKAGE]: /\/libs\/(?<path>.+)\.md/,
32+
[DaffDocKind.API]: /\/libs\/(?<path>.+)\.ts/,
3433
};
3534
const getLinkUrl = (path: string): string => {
3635
const kind = (<Array<keyof typeof DOC_KIND_REGEX>>Object.keys(DOC_KIND_REGEX)).find((k) => DOC_KIND_REGEX[k].test(path));
@@ -41,18 +40,14 @@ const getLinkUrl = (path: string): string => {
4140
}
4241

4342
switch (kind) {
44-
case DocKind.GUIDE:
45-
return `/docs/guides/${match.groups.path}`;
43+
case DaffDocKind.GUIDE:
44+
case DaffDocKind.EXPLANATION:
45+
case DaffDocKind.API:
46+
return `/docs/${DAFF_DOC_KIND_PATH_SEGMENT_MAP[kind]}/${match.groups.path}`;
4647

47-
case DocKind.EXPLANATION:
48-
return `/docs/explanations/${match.groups.path}`;
49-
50-
case DocKind.PACKAGE:
48+
case DaffDocKind.PACKAGE:
5149
return `/docs/packages/${match.groups.path}`.replaceAll(/\/(?:readme|src|guides)/gi, '');
5250

53-
case DocKind.API:
54-
return `/docs/api/${match.groups.path}`;
55-
5651
default:
5752
return path;
5853
}

0 commit comments

Comments
 (0)