@docusaurus/utils 3.9.2 → 3.10.1

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.
Files changed (74) hide show
  1. package/lib/index.d.ts +5 -4
  2. package/lib/index.d.ts.map +1 -1
  3. package/lib/index.js +13 -11
  4. package/lib/index.js.map +1 -1
  5. package/lib/lastUpdateUtils.d.ts +2 -6
  6. package/lib/lastUpdateUtils.d.ts.map +1 -1
  7. package/lib/lastUpdateUtils.js +13 -60
  8. package/lib/lastUpdateUtils.js.map +1 -1
  9. package/lib/markdownHeadingIdUtils.d.ts +49 -0
  10. package/lib/markdownHeadingIdUtils.d.ts.map +1 -0
  11. package/lib/markdownHeadingIdUtils.js +148 -0
  12. package/lib/markdownHeadingIdUtils.js.map +1 -0
  13. package/lib/markdownUtils.d.ts +0 -31
  14. package/lib/markdownUtils.d.ts.map +1 -1
  15. package/lib/markdownUtils.js +0 -89
  16. package/lib/markdownUtils.js.map +1 -1
  17. package/lib/moduleUtils.d.ts.map +1 -1
  18. package/lib/moduleUtils.js +4 -4
  19. package/lib/moduleUtils.js.map +1 -1
  20. package/lib/{gitUtils.d.ts → vcs/gitUtils.d.ts} +18 -0
  21. package/lib/vcs/gitUtils.d.ts.map +1 -0
  22. package/lib/vcs/gitUtils.js +343 -0
  23. package/lib/vcs/gitUtils.js.map +1 -0
  24. package/lib/vcs/vcs.d.ts +19 -0
  25. package/lib/vcs/vcs.d.ts.map +1 -0
  26. package/lib/vcs/vcs.js +46 -0
  27. package/lib/vcs/vcs.js.map +1 -0
  28. package/lib/vcs/vcsDefaultV1.d.ts +13 -0
  29. package/lib/vcs/vcsDefaultV1.d.ts.map +1 -0
  30. package/lib/vcs/vcsDefaultV1.js +33 -0
  31. package/lib/vcs/vcsDefaultV1.js.map +1 -0
  32. package/lib/vcs/vcsDefaultV2.d.ts +13 -0
  33. package/lib/vcs/vcsDefaultV2.d.ts.map +1 -0
  34. package/lib/vcs/vcsDefaultV2.js +33 -0
  35. package/lib/vcs/vcsDefaultV2.js.map +1 -0
  36. package/lib/vcs/vcsDisabled.d.ts +12 -0
  37. package/lib/vcs/vcsDisabled.d.ts.map +1 -0
  38. package/lib/vcs/vcsDisabled.js +24 -0
  39. package/lib/vcs/vcsDisabled.js.map +1 -0
  40. package/lib/vcs/vcsGitAdHoc.d.ts +16 -0
  41. package/lib/vcs/vcsGitAdHoc.d.ts.map +1 -0
  42. package/lib/vcs/vcsGitAdHoc.js +29 -0
  43. package/lib/vcs/vcsGitAdHoc.js.map +1 -0
  44. package/lib/vcs/vcsGitEager.d.ts +10 -0
  45. package/lib/vcs/vcsGitEager.d.ts.map +1 -0
  46. package/lib/vcs/vcsGitEager.js +89 -0
  47. package/lib/vcs/vcsGitEager.js.map +1 -0
  48. package/lib/vcs/vcsHardcoded.d.ts +17 -0
  49. package/lib/vcs/vcsHardcoded.d.ts.map +1 -0
  50. package/lib/vcs/vcsHardcoded.js +41 -0
  51. package/lib/vcs/vcsHardcoded.js.map +1 -0
  52. package/package.json +7 -7
  53. package/src/index.ts +11 -8
  54. package/src/lastUpdateUtils.ts +18 -76
  55. package/src/markdownHeadingIdUtils.ts +209 -0
  56. package/src/markdownUtils.ts +0 -119
  57. package/src/moduleUtils.ts +6 -8
  58. package/src/vcs/gitUtils.ts +541 -0
  59. package/src/vcs/vcs.ts +54 -0
  60. package/src/vcs/vcsDefaultV1.ts +33 -0
  61. package/src/vcs/vcsDefaultV2.ts +33 -0
  62. package/src/vcs/vcsDisabled.ts +25 -0
  63. package/src/vcs/vcsGitAdHoc.ts +30 -0
  64. package/src/vcs/vcsGitEager.ts +135 -0
  65. package/src/vcs/vcsHardcoded.ts +45 -0
  66. package/lib/cliUtils.d.ts +0 -14
  67. package/lib/cliUtils.d.ts.map +0 -1
  68. package/lib/cliUtils.js +0 -49
  69. package/lib/cliUtils.js.map +0 -1
  70. package/lib/gitUtils.d.ts.map +0 -1
  71. package/lib/gitUtils.js +0 -103
  72. package/lib/gitUtils.js.map +0 -1
  73. package/src/cliUtils.ts +0 -65
  74. package/src/gitUtils.ts +0 -200
package/lib/index.d.ts CHANGED
@@ -6,13 +6,14 @@
6
6
  */
7
7
  export { NODE_MAJOR_VERSION, NODE_MINOR_VERSION, DOCUSAURUS_VERSION, DEFAULT_BUILD_DIR_NAME, DEFAULT_CONFIG_FILE_NAME, BABEL_CONFIG_FILE_NAME, GENERATED_FILES_DIR_NAME, SRC_DIR_NAME, DEFAULT_STATIC_DIR_NAME, OUTPUT_STATIC_ASSETS_DIR_NAME, THEME_PATH, DEFAULT_I18N_DIR_NAME, CODE_TRANSLATIONS_FILE_NAME, DEFAULT_PORT, DEFAULT_PLUGIN_ID, WEBPACK_URL_LOADER_LIMIT, } from './constants';
8
8
  export { generate, readOutputHTMLFile } from './emitUtils';
9
- export { getFileCommitDate, FileNotTrackedError, GitNotFoundError, } from './gitUtils';
9
+ export { getFileCommitDate, FileNotTrackedError, GitNotFoundError, } from './vcs/gitUtils';
10
10
  export { mergeTranslations, updateTranslationFileMessages, getPluginI18nPath, getLocaleConfig, } from './i18nUtils';
11
11
  export { mapAsyncSequential, findAsyncSequential } from './jsUtils';
12
12
  export { normalizeUrl, getEditUrl, fileToPath, encodePath, isValidPathname, resolvePathname, parseURLPath, parseLocalURLPath, parseURLOrPath, toURLPath, serializeURLPath, hasSSHProtocol, buildHttpsUrl, buildSshUrl, } from './urlUtils';
13
13
  export type { URLPath } from './urlUtils';
14
14
  export { type Tag, type TagsFile, type TagsFileInput, type TagMetadata, type TagsListItem, type TagModule, type FrontMatterTag, type TagsPluginOptions, groupTaggedItems, getTagVisibility, } from './tags';
15
- export { parseMarkdownHeadingId, escapeMarkdownHeadingIds, unwrapMdxCodeBlocks, admonitionTitleToDirectiveLabel, createExcerpt, DEFAULT_PARSE_FRONT_MATTER, parseMarkdownContentTitle, parseMarkdownFile, writeMarkdownHeadingId, type WriteHeadingIDOptions, } from './markdownUtils';
15
+ export { unwrapMdxCodeBlocks, admonitionTitleToDirectiveLabel, createExcerpt, DEFAULT_PARSE_FRONT_MATTER, parseMarkdownContentTitle, parseMarkdownFile, } from './markdownUtils';
16
+ export { parseMarkdownHeadingId, escapeMarkdownHeadingIds, writeMarkdownHeadingId, type HeadingIdSyntax, type WriteHeadingIDOptions, } from './markdownHeadingIdUtils';
16
17
  export { type ContentPaths, type SourceToPermalink, resolveMarkdownLinkPathname, } from './markdownLinks';
17
18
  export { type SluggerOptions, type Slugger, createSlugger } from './slugger';
18
19
  export { isNameTooLong, shortName, posixPath, toMessageRelativeFilePath, aliasedSitePath, aliasedSitePathToRelativePath, escapePath, addTrailingPathSeparator, } from './pathUtils';
@@ -23,8 +24,8 @@ export { loadFreshModule } from './moduleUtils';
23
24
  export { getDataFilePath, readDataFile, getContentPathList, findFolderContainingFile, getFolderContainingFile, } from './dataFileUtils';
24
25
  export { isDraft, isUnlisted } from './contentVisibilityUtils';
25
26
  export { escapeRegexp } from './regExpUtils';
26
- export { askPreferredLanguage } from './cliUtils';
27
27
  export { flattenRoutes } from './routeUtils';
28
- export { getGitLastUpdate, getLastUpdate, readLastUpdateData, LAST_UPDATE_FALLBACK, type LastUpdateData, type FrontMatterLastUpdate, } from './lastUpdateUtils';
28
+ export { readLastUpdateData, type LastUpdateData, type FrontMatterLastUpdate, } from './lastUpdateUtils';
29
+ export { VcsPresetNames, getVcsPreset, TEST_VCS } from './vcs/vcs';
29
30
  export { normalizeTags, reportInlineTags } from './tags';
30
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -6,8 +6,8 @@
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.parseMarkdownContentTitle = exports.DEFAULT_PARSE_FRONT_MATTER = exports.createExcerpt = exports.admonitionTitleToDirectiveLabel = exports.unwrapMdxCodeBlocks = exports.escapeMarkdownHeadingIds = exports.parseMarkdownHeadingId = exports.getTagVisibility = exports.groupTaggedItems = exports.buildSshUrl = exports.buildHttpsUrl = exports.hasSSHProtocol = exports.serializeURLPath = exports.toURLPath = exports.parseURLOrPath = exports.parseLocalURLPath = exports.parseURLPath = exports.resolvePathname = exports.isValidPathname = exports.encodePath = exports.fileToPath = exports.getEditUrl = exports.normalizeUrl = exports.findAsyncSequential = exports.mapAsyncSequential = exports.getLocaleConfig = exports.getPluginI18nPath = exports.updateTranslationFileMessages = exports.mergeTranslations = exports.GitNotFoundError = exports.FileNotTrackedError = exports.getFileCommitDate = exports.readOutputHTMLFile = exports.generate = exports.WEBPACK_URL_LOADER_LIMIT = exports.DEFAULT_PLUGIN_ID = exports.DEFAULT_PORT = exports.CODE_TRANSLATIONS_FILE_NAME = exports.DEFAULT_I18N_DIR_NAME = exports.THEME_PATH = exports.OUTPUT_STATIC_ASSETS_DIR_NAME = exports.DEFAULT_STATIC_DIR_NAME = exports.SRC_DIR_NAME = exports.GENERATED_FILES_DIR_NAME = exports.BABEL_CONFIG_FILE_NAME = exports.DEFAULT_CONFIG_FILE_NAME = exports.DEFAULT_BUILD_DIR_NAME = exports.DOCUSAURUS_VERSION = exports.NODE_MINOR_VERSION = exports.NODE_MAJOR_VERSION = void 0;
10
- exports.reportInlineTags = exports.normalizeTags = exports.LAST_UPDATE_FALLBACK = exports.readLastUpdateData = exports.getLastUpdate = exports.getGitLastUpdate = exports.flattenRoutes = exports.askPreferredLanguage = exports.escapeRegexp = exports.isUnlisted = exports.isDraft = exports.getFolderContainingFile = exports.findFolderContainingFile = exports.getContentPathList = exports.readDataFile = exports.getDataFilePath = exports.loadFreshModule = exports.getWebpackLoaderCompilerName = exports.getFileLoaderUtils = exports.createAbsoluteFilePathMatcher = exports.createMatcher = exports.globTranslatableSourceFiles = exports.safeGlobby = exports.GlobExcludeDefault = exports.Globby = exports.docuHash = exports.simpleHash = exports.md5Hash = exports.addTrailingPathSeparator = exports.escapePath = exports.aliasedSitePathToRelativePath = exports.aliasedSitePath = exports.toMessageRelativeFilePath = exports.posixPath = exports.shortName = exports.isNameTooLong = exports.createSlugger = exports.resolveMarkdownLinkPathname = exports.writeMarkdownHeadingId = exports.parseMarkdownFile = void 0;
9
+ exports.parseMarkdownHeadingId = exports.parseMarkdownFile = exports.parseMarkdownContentTitle = exports.DEFAULT_PARSE_FRONT_MATTER = exports.createExcerpt = exports.admonitionTitleToDirectiveLabel = exports.unwrapMdxCodeBlocks = exports.getTagVisibility = exports.groupTaggedItems = exports.buildSshUrl = exports.buildHttpsUrl = exports.hasSSHProtocol = exports.serializeURLPath = exports.toURLPath = exports.parseURLOrPath = exports.parseLocalURLPath = exports.parseURLPath = exports.resolvePathname = exports.isValidPathname = exports.encodePath = exports.fileToPath = exports.getEditUrl = exports.normalizeUrl = exports.findAsyncSequential = exports.mapAsyncSequential = exports.getLocaleConfig = exports.getPluginI18nPath = exports.updateTranslationFileMessages = exports.mergeTranslations = exports.GitNotFoundError = exports.FileNotTrackedError = exports.getFileCommitDate = exports.readOutputHTMLFile = exports.generate = exports.WEBPACK_URL_LOADER_LIMIT = exports.DEFAULT_PLUGIN_ID = exports.DEFAULT_PORT = exports.CODE_TRANSLATIONS_FILE_NAME = exports.DEFAULT_I18N_DIR_NAME = exports.THEME_PATH = exports.OUTPUT_STATIC_ASSETS_DIR_NAME = exports.DEFAULT_STATIC_DIR_NAME = exports.SRC_DIR_NAME = exports.GENERATED_FILES_DIR_NAME = exports.BABEL_CONFIG_FILE_NAME = exports.DEFAULT_CONFIG_FILE_NAME = exports.DEFAULT_BUILD_DIR_NAME = exports.DOCUSAURUS_VERSION = exports.NODE_MINOR_VERSION = exports.NODE_MAJOR_VERSION = void 0;
10
+ exports.reportInlineTags = exports.normalizeTags = exports.TEST_VCS = exports.getVcsPreset = exports.VcsPresetNames = exports.readLastUpdateData = exports.flattenRoutes = exports.escapeRegexp = exports.isUnlisted = exports.isDraft = exports.getFolderContainingFile = exports.findFolderContainingFile = exports.getContentPathList = exports.readDataFile = exports.getDataFilePath = exports.loadFreshModule = exports.getWebpackLoaderCompilerName = exports.getFileLoaderUtils = exports.createAbsoluteFilePathMatcher = exports.createMatcher = exports.globTranslatableSourceFiles = exports.safeGlobby = exports.GlobExcludeDefault = exports.Globby = exports.docuHash = exports.simpleHash = exports.md5Hash = exports.addTrailingPathSeparator = exports.escapePath = exports.aliasedSitePathToRelativePath = exports.aliasedSitePath = exports.toMessageRelativeFilePath = exports.posixPath = exports.shortName = exports.isNameTooLong = exports.createSlugger = exports.resolveMarkdownLinkPathname = exports.writeMarkdownHeadingId = exports.escapeMarkdownHeadingIds = void 0;
11
11
  var constants_1 = require("./constants");
12
12
  Object.defineProperty(exports, "NODE_MAJOR_VERSION", { enumerable: true, get: function () { return constants_1.NODE_MAJOR_VERSION; } });
13
13
  Object.defineProperty(exports, "NODE_MINOR_VERSION", { enumerable: true, get: function () { return constants_1.NODE_MINOR_VERSION; } });
@@ -28,7 +28,9 @@ Object.defineProperty(exports, "WEBPACK_URL_LOADER_LIMIT", { enumerable: true, g
28
28
  var emitUtils_1 = require("./emitUtils");
29
29
  Object.defineProperty(exports, "generate", { enumerable: true, get: function () { return emitUtils_1.generate; } });
30
30
  Object.defineProperty(exports, "readOutputHTMLFile", { enumerable: true, get: function () { return emitUtils_1.readOutputHTMLFile; } });
31
- var gitUtils_1 = require("./gitUtils");
31
+ var gitUtils_1 = require("./vcs/gitUtils");
32
+ // TODO Docusaurus v4: remove these legacy exports,
33
+ // they are only kept for retro-compatibility
32
34
  Object.defineProperty(exports, "getFileCommitDate", { enumerable: true, get: function () { return gitUtils_1.getFileCommitDate; } });
33
35
  Object.defineProperty(exports, "FileNotTrackedError", { enumerable: true, get: function () { return gitUtils_1.FileNotTrackedError; } });
34
36
  Object.defineProperty(exports, "GitNotFoundError", { enumerable: true, get: function () { return gitUtils_1.GitNotFoundError; } });
@@ -59,15 +61,16 @@ var tags_1 = require("./tags");
59
61
  Object.defineProperty(exports, "groupTaggedItems", { enumerable: true, get: function () { return tags_1.groupTaggedItems; } });
60
62
  Object.defineProperty(exports, "getTagVisibility", { enumerable: true, get: function () { return tags_1.getTagVisibility; } });
61
63
  var markdownUtils_1 = require("./markdownUtils");
62
- Object.defineProperty(exports, "parseMarkdownHeadingId", { enumerable: true, get: function () { return markdownUtils_1.parseMarkdownHeadingId; } });
63
- Object.defineProperty(exports, "escapeMarkdownHeadingIds", { enumerable: true, get: function () { return markdownUtils_1.escapeMarkdownHeadingIds; } });
64
64
  Object.defineProperty(exports, "unwrapMdxCodeBlocks", { enumerable: true, get: function () { return markdownUtils_1.unwrapMdxCodeBlocks; } });
65
65
  Object.defineProperty(exports, "admonitionTitleToDirectiveLabel", { enumerable: true, get: function () { return markdownUtils_1.admonitionTitleToDirectiveLabel; } });
66
66
  Object.defineProperty(exports, "createExcerpt", { enumerable: true, get: function () { return markdownUtils_1.createExcerpt; } });
67
67
  Object.defineProperty(exports, "DEFAULT_PARSE_FRONT_MATTER", { enumerable: true, get: function () { return markdownUtils_1.DEFAULT_PARSE_FRONT_MATTER; } });
68
68
  Object.defineProperty(exports, "parseMarkdownContentTitle", { enumerable: true, get: function () { return markdownUtils_1.parseMarkdownContentTitle; } });
69
69
  Object.defineProperty(exports, "parseMarkdownFile", { enumerable: true, get: function () { return markdownUtils_1.parseMarkdownFile; } });
70
- Object.defineProperty(exports, "writeMarkdownHeadingId", { enumerable: true, get: function () { return markdownUtils_1.writeMarkdownHeadingId; } });
70
+ var markdownHeadingIdUtils_1 = require("./markdownHeadingIdUtils");
71
+ Object.defineProperty(exports, "parseMarkdownHeadingId", { enumerable: true, get: function () { return markdownHeadingIdUtils_1.parseMarkdownHeadingId; } });
72
+ Object.defineProperty(exports, "escapeMarkdownHeadingIds", { enumerable: true, get: function () { return markdownHeadingIdUtils_1.escapeMarkdownHeadingIds; } });
73
+ Object.defineProperty(exports, "writeMarkdownHeadingId", { enumerable: true, get: function () { return markdownHeadingIdUtils_1.writeMarkdownHeadingId; } });
71
74
  var markdownLinks_1 = require("./markdownLinks");
72
75
  Object.defineProperty(exports, "resolveMarkdownLinkPathname", { enumerable: true, get: function () { return markdownLinks_1.resolveMarkdownLinkPathname; } });
73
76
  var slugger_1 = require("./slugger");
@@ -108,15 +111,14 @@ Object.defineProperty(exports, "isDraft", { enumerable: true, get: function () {
108
111
  Object.defineProperty(exports, "isUnlisted", { enumerable: true, get: function () { return contentVisibilityUtils_1.isUnlisted; } });
109
112
  var regExpUtils_1 = require("./regExpUtils");
110
113
  Object.defineProperty(exports, "escapeRegexp", { enumerable: true, get: function () { return regExpUtils_1.escapeRegexp; } });
111
- var cliUtils_1 = require("./cliUtils");
112
- Object.defineProperty(exports, "askPreferredLanguage", { enumerable: true, get: function () { return cliUtils_1.askPreferredLanguage; } });
113
114
  var routeUtils_1 = require("./routeUtils");
114
115
  Object.defineProperty(exports, "flattenRoutes", { enumerable: true, get: function () { return routeUtils_1.flattenRoutes; } });
115
116
  var lastUpdateUtils_1 = require("./lastUpdateUtils");
116
- Object.defineProperty(exports, "getGitLastUpdate", { enumerable: true, get: function () { return lastUpdateUtils_1.getGitLastUpdate; } });
117
- Object.defineProperty(exports, "getLastUpdate", { enumerable: true, get: function () { return lastUpdateUtils_1.getLastUpdate; } });
118
117
  Object.defineProperty(exports, "readLastUpdateData", { enumerable: true, get: function () { return lastUpdateUtils_1.readLastUpdateData; } });
119
- Object.defineProperty(exports, "LAST_UPDATE_FALLBACK", { enumerable: true, get: function () { return lastUpdateUtils_1.LAST_UPDATE_FALLBACK; } });
118
+ var vcs_1 = require("./vcs/vcs");
119
+ Object.defineProperty(exports, "VcsPresetNames", { enumerable: true, get: function () { return vcs_1.VcsPresetNames; } });
120
+ Object.defineProperty(exports, "getVcsPreset", { enumerable: true, get: function () { return vcs_1.getVcsPreset; } });
121
+ Object.defineProperty(exports, "TEST_VCS", { enumerable: true, get: function () { return vcs_1.TEST_VCS; } });
120
122
  var tags_2 = require("./tags");
121
123
  Object.defineProperty(exports, "normalizeTags", { enumerable: true, get: function () { return tags_2.normalizeTags; } });
122
124
  Object.defineProperty(exports, "reportInlineTags", { enumerable: true, get: function () { return tags_2.reportInlineTags; } });
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import type { PluginOptions } from '@docusaurus/types';
7
+ import type { PluginOptions, VcsConfig } from '@docusaurus/types';
8
8
  export type LastUpdateData = {
9
9
  /**
10
10
  * A timestamp in **milliseconds**, usually read from `git log`
@@ -19,10 +19,6 @@ export type LastUpdateData = {
19
19
  */
20
20
  lastUpdatedBy: string | undefined | null;
21
21
  };
22
- export declare function getGitLastUpdate(filePath: string): Promise<LastUpdateData | null>;
23
- export declare const LAST_UPDATE_FALLBACK: LastUpdateData;
24
- export declare const LAST_UPDATE_UNTRACKED_GIT_FILEPATH: string;
25
- export declare function getLastUpdate(filePath: string): Promise<LastUpdateData | null>;
26
22
  type LastUpdateOptions = Pick<PluginOptions, 'showLastUpdateAuthor' | 'showLastUpdateTime'>;
27
23
  export type FrontMatterLastUpdate = {
28
24
  author?: string;
@@ -32,6 +28,6 @@ export type FrontMatterLastUpdate = {
32
28
  */
33
29
  date?: Date | string;
34
30
  };
35
- export declare function readLastUpdateData(filePath: string, options: LastUpdateOptions, lastUpdateFrontMatter: FrontMatterLastUpdate | undefined): Promise<LastUpdateData>;
31
+ export declare function readLastUpdateData(filePath: string, options: LastUpdateOptions, lastUpdateFrontMatter: FrontMatterLastUpdate | undefined, vcsParam: Pick<VcsConfig, 'getFileLastUpdateInfo'>): Promise<LastUpdateData>;
36
32
  export {};
37
33
  //# sourceMappingURL=lastUpdateUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lastUpdateUtils.d.ts","sourceRoot":"","sources":["../src/lastUpdateUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CAC1C,CAAC;AAKF,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAmChC;AAED,eAAO,MAAM,oBAAoB,EAAE,cAGlC,CAAC;AAGF,eAAO,MAAM,kCAAkC,QAAmC,CAAC;AAEnF,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAYhC;AAED,KAAK,iBAAiB,GAAG,IAAI,CAC3B,aAAa,EACb,sBAAsB,GAAG,oBAAoB,CAC9C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,EAC1B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,GACvD,OAAO,CAAC,cAAc,CAAC,CA6CzB"}
1
+ {"version":3,"file":"lastUpdateUtils.d.ts","sourceRoot":"","sources":["../src/lastUpdateUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAC,aAAa,EAAE,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF,KAAK,iBAAiB,GAAG,IAAI,CAC3B,aAAa,EACb,sBAAsB,GAAG,oBAAoB,CAC9C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;CACtB,CAAC;AAIF,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,EAC1B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,EACxD,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,GACjD,OAAO,CAAC,cAAc,CAAC,CAsDzB"}
@@ -6,66 +6,19 @@
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.LAST_UPDATE_UNTRACKED_GIT_FILEPATH = exports.LAST_UPDATE_FALLBACK = void 0;
10
- exports.getGitLastUpdate = getGitLastUpdate;
11
- exports.getLastUpdate = getLastUpdate;
12
9
  exports.readLastUpdateData = readLastUpdateData;
13
10
  const tslib_1 = require("tslib");
14
11
  const lodash_1 = tslib_1.__importDefault(require("lodash"));
15
- const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
16
- const gitUtils_1 = require("./gitUtils");
17
- let showedGitRequirementError = false;
18
- let showedFileNotTrackedError = false;
19
- async function getGitLastUpdate(filePath) {
20
- if (!filePath) {
21
- return null;
22
- }
23
- // Wrap in try/catch in case the shell commands fail
24
- // (e.g. project doesn't use Git, etc).
25
- try {
26
- const result = await (0, gitUtils_1.getFileCommitDate)(filePath, {
27
- age: 'newest',
28
- includeAuthor: true,
29
- });
30
- return { lastUpdatedAt: result.timestamp, lastUpdatedBy: result.author };
31
- }
32
- catch (err) {
33
- if (err instanceof gitUtils_1.GitNotFoundError) {
34
- if (!showedGitRequirementError) {
35
- logger_1.default.warn('Sorry, the last update options require Git.');
36
- showedGitRequirementError = true;
37
- }
38
- }
39
- else if (err instanceof gitUtils_1.FileNotTrackedError) {
40
- if (!showedFileNotTrackedError) {
41
- logger_1.default.warn('Cannot infer the update date for some files, as they are not tracked by git.');
42
- showedFileNotTrackedError = true;
43
- }
44
- }
45
- else {
46
- throw new Error(`An error occurred when trying to get the last update date`, { cause: err });
47
- }
48
- return null;
49
- }
50
- }
51
- exports.LAST_UPDATE_FALLBACK = {
52
- lastUpdatedAt: 1539502055000,
53
- lastUpdatedBy: 'Author',
54
- };
55
- // Not proud of this, but convenient for tests :/
56
- exports.LAST_UPDATE_UNTRACKED_GIT_FILEPATH = `file/path/${Math.random()}.mdx`;
57
- async function getLastUpdate(filePath) {
58
- if (filePath === exports.LAST_UPDATE_UNTRACKED_GIT_FILEPATH) {
59
- return null;
60
- }
61
- if (process.env.NODE_ENV !== 'production' ||
62
- process.env.DOCUSAURUS_DISABLE_LAST_UPDATE === 'true') {
63
- // Use fake data in dev/test for faster development.
64
- return exports.LAST_UPDATE_FALLBACK;
65
- }
66
- return getGitLastUpdate(filePath);
67
- }
68
- async function readLastUpdateData(filePath, options, lastUpdateFrontMatter) {
12
+ const vcs_1 = require("./vcs/vcs");
13
+ // TODO Docusaurus v4: refactor/rename, make it clear this fn is only
14
+ // for Markdown files with front matter shared by content plugin
15
+ async function readLastUpdateData(filePath, options, lastUpdateFrontMatter, vcsParam) {
16
+ // We fallback to the default VSC config at runtime on purpose
17
+ // It preserves retro-compatibility if a third-party plugin imports it
18
+ // This also ensures unit tests keep working without extra setup
19
+ // We still want to ensure type safety by requiring the VCS param
20
+ // TODO Docusaurus v4: refactor all these Git read APIs
21
+ const vcs = vcsParam ?? (0, vcs_1.getVcsPreset)('default-v1');
69
22
  const { showLastUpdateAuthor, showLastUpdateTime } = options;
70
23
  if (!showLastUpdateAuthor && !showLastUpdateTime) {
71
24
  return { lastUpdatedBy: undefined, lastUpdatedAt: undefined };
@@ -77,20 +30,20 @@ async function readLastUpdateData(filePath, options, lastUpdateFrontMatter) {
77
30
  // We try to minimize git last update calls
78
31
  // We call it at most once
79
32
  // If all the data is provided as front matter, we do not call it
80
- const getLastUpdateMemoized = lodash_1.default.memoize(() => getLastUpdate(filePath));
33
+ const getLastUpdateMemoized = lodash_1.default.memoize(() => vcs.getFileLastUpdateInfo(filePath));
81
34
  const getLastUpdateBy = () => getLastUpdateMemoized().then((update) => {
82
35
  // Important, see https://github.com/facebook/docusaurus/pull/11211
83
36
  if (update === null) {
84
37
  return null;
85
38
  }
86
- return update?.lastUpdatedBy;
39
+ return update?.author;
87
40
  });
88
41
  const getLastUpdateAt = () => getLastUpdateMemoized().then((update) => {
89
42
  // Important, see https://github.com/facebook/docusaurus/pull/11211
90
43
  if (update === null) {
91
44
  return null;
92
45
  }
93
- return update?.lastUpdatedAt;
46
+ return update?.timestamp;
94
47
  });
95
48
  const lastUpdatedBy = showLastUpdateAuthor
96
49
  ? frontMatterAuthor ?? (await getLastUpdateBy())
@@ -1 +1 @@
1
- {"version":3,"file":"lastUpdateUtils.js","sourceRoot":"","sources":["../src/lastUpdateUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lastUpdateUtils.js","sourceRoot":"","sources":["../src/lastUpdateUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAsCH,gDA2DC;;AA/FD,4DAAuB;AACvB,mCAAuC;AAiCvC,qEAAqE;AACrE,iEAAiE;AAC1D,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,OAA0B,EAC1B,qBAAwD,EACxD,QAAkD;IAElD,8DAA8D;IAC9D,sEAAsE;IACtE,gEAAgE;IAChE,iEAAiE;IACjE,uDAAuD;IACvD,MAAM,GAAG,GAAG,QAAQ,IAAI,IAAA,kBAAY,EAAC,YAAY,CAAC,CAAC;IAEnD,MAAM,EAAC,oBAAoB,EAAE,kBAAkB,EAAC,GAAG,OAAO,CAAC;IAE3D,IAAI,CAAC,oBAAoB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,OAAO,EAAC,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAC,CAAC;IAC9D,CAAC;IAED,MAAM,iBAAiB,GAAG,qBAAqB,EAAE,MAAM,CAAC;IACxD,MAAM,oBAAoB,GAAG,qBAAqB,EAAE,IAAI;QACtD,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;QAChD,CAAC,CAAC,SAAS,CAAC;IAEd,2CAA2C;IAC3C,0BAA0B;IAC1B,iEAAiE;IACjE,MAAM,qBAAqB,GAAG,gBAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAC3C,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CACpC,CAAC;IACF,MAAM,eAAe,GAAG,GAAG,EAAE,CAC3B,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACtC,mEAAmE;QACnE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,EAAE,MAAM,CAAC;IACxB,CAAC,CAAC,CAAC;IACL,MAAM,eAAe,GAAG,GAAG,EAAE,CAC3B,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACtC,mEAAmE;QACnE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,EAAE,SAAS,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEL,MAAM,aAAa,GAAG,oBAAoB;QACxC,CAAC,CAAC,iBAAiB,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC;QAChD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,aAAa,GAAG,kBAAkB;QACtC,CAAC,CAAC,oBAAoB,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC;QACnD,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,aAAa;QACb,aAAa;KACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { type SluggerOptions } from './slugger';
8
+ /**
9
+ * The syntax to use for heading IDs.
10
+ * - `classic` => `{#id}` (invalid MDX, but commonly supported)
11
+ * - `mdx-comment` => `{/* #id * /}` (valid MDX)
12
+ */
13
+ export type HeadingIdSyntax = 'classic' | 'mdx-comment';
14
+ /**
15
+ * Parses custom ID from a heading. The ID can contain any characters except
16
+ * `{#` and `}`.
17
+ *
18
+ * @param heading e.g. `## Some heading {#some-heading}` where the last
19
+ * character must be `}` for the ID to be recognized
20
+ * @param syntax which heading ID syntax to recognize
21
+ */
22
+ export declare function parseMarkdownHeadingId(heading: string, syntax?: HeadingIdSyntax): {
23
+ /**
24
+ * The heading content sans the ID part, right-trimmed. e.g. `## Some heading`
25
+ */
26
+ text: string;
27
+ /** The heading ID. e.g. `some-heading` */
28
+ id: string | undefined;
29
+ };
30
+ /**
31
+ * For our classic syntax, MDX v2+ now requires escaping { to compile: \{#id}.
32
+ * See https://mdxjs.com/docs/troubleshooting-mdx/#could-not-parse-expression-with-acorn-error
33
+ */
34
+ export declare function escapeMarkdownHeadingIds(content: string): string;
35
+ export type WriteHeadingIDOptions = SluggerOptions & {
36
+ /** The target syntax to use for heading IDs. */
37
+ syntax?: HeadingIdSyntax;
38
+ /** Migrate the existing heading IDs to the target syntax */
39
+ migrate?: boolean;
40
+ /** Overwrite existing heading IDs by re-generating them from the text. */
41
+ overwrite?: boolean;
42
+ };
43
+ /**
44
+ * Takes Markdown content, returns new content with heading IDs written.
45
+ * Respects existing IDs (unless `overwrite=true`) and never generates colliding
46
+ * IDs (through the slugger).
47
+ */
48
+ export declare function writeMarkdownHeadingId(content: string, options?: WriteHeadingIDOptions): string;
49
+ //# sourceMappingURL=markdownHeadingIdUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdownHeadingIdUtils.d.ts","sourceRoot":"","sources":["../src/markdownHeadingIdUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAA8B,KAAK,cAAc,EAAC,MAAM,WAAW,CAAC;AAE3E;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,aAAa,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,eAA2B,GAClC;IACD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;CACxB,CA8BA;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAShE;AAyCD,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG;IACnD,gDAAgD;IAChD,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,qBAA0B,GAClC,MAAM,CAuER"}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Facebook, Inc. and its affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.parseMarkdownHeadingId = parseMarkdownHeadingId;
10
+ exports.escapeMarkdownHeadingIds = escapeMarkdownHeadingIds;
11
+ exports.writeMarkdownHeadingId = writeMarkdownHeadingId;
12
+ const slugger_1 = require("./slugger");
13
+ /**
14
+ * Parses custom ID from a heading. The ID can contain any characters except
15
+ * `{#` and `}`.
16
+ *
17
+ * @param heading e.g. `## Some heading {#some-heading}` where the last
18
+ * character must be `}` for the ID to be recognized
19
+ * @param syntax which heading ID syntax to recognize
20
+ */
21
+ function parseMarkdownHeadingId(heading, syntax = 'classic') {
22
+ // Classic syntax: {#my-id}
23
+ if (syntax === 'classic') {
24
+ const customHeadingIdRegex = /\s*\{#(?<id>(?:.(?!\{#|\}))*.)\}$/;
25
+ const matches = customHeadingIdRegex.exec(heading);
26
+ if (matches) {
27
+ return {
28
+ text: heading.replace(matches[0], ''),
29
+ id: matches.groups.id.trim(),
30
+ };
31
+ }
32
+ }
33
+ // MDX comment syntax: {/* #my-id */}
34
+ // Note: this is only used for the "write-heading-ids" CLI
35
+ // The mdx loader is using a real MDX parser to find these comments
36
+ else if (syntax === 'mdx-comment') {
37
+ const mdxCommentHeadingIdRegex = /\s*\{\/\*\s*#(?<id>\S+)\s*\*\/\}$/;
38
+ const mdxMatches = mdxCommentHeadingIdRegex.exec(heading);
39
+ if (mdxMatches) {
40
+ return {
41
+ text: heading.replace(mdxMatches[0], ''),
42
+ id: mdxMatches.groups.id.trim(),
43
+ };
44
+ }
45
+ }
46
+ // Unhandled cases, shouldn't happen
47
+ else {
48
+ throw new Error(`unknown heading id syntax '${syntax}'`);
49
+ }
50
+ return { text: heading, id: undefined };
51
+ }
52
+ /**
53
+ * For our classic syntax, MDX v2+ now requires escaping { to compile: \{#id}.
54
+ * See https://mdxjs.com/docs/troubleshooting-mdx/#could-not-parse-expression-with-acorn-error
55
+ */
56
+ function escapeMarkdownHeadingIds(content) {
57
+ const markdownHeadingRegexp = /(?:^|\n)#{1,6}(?!#).*/g;
58
+ return content.replaceAll(markdownHeadingRegexp, (substring) =>
59
+ // TODO probably not the most efficient impl...
60
+ substring
61
+ .replace('{#', '\\{#')
62
+ // prevent duplicate escaping
63
+ .replace('\\\\{#', '\\{#'));
64
+ }
65
+ function addHeadingId(line, slugger, maintainCase, syntax, headingId) {
66
+ let headingLevel = 0;
67
+ while (line.charAt(headingLevel) === '#') {
68
+ headingLevel += 1;
69
+ }
70
+ const headingHashes = line.slice(0, headingLevel);
71
+ const headingContent = line.slice(headingLevel).trimEnd();
72
+ function getHeadingId() {
73
+ if (headingId) {
74
+ return headingId;
75
+ }
76
+ // Unwrap links
77
+ // "[ Hello](https://example.com) World " => "Hello world"
78
+ const headingText = headingContent
79
+ .replace(/\[(?<alt>[^\]]+)\]\([^)]+\)/g, (_match, p1) => p1)
80
+ .trim();
81
+ return slugger.slug(headingText, {
82
+ maintainCase,
83
+ });
84
+ }
85
+ const headingIdSuffix = syntax === 'mdx-comment'
86
+ ? `{/* #${getHeadingId()} */}`
87
+ : `{#${getHeadingId()}}`;
88
+ return `${headingHashes}${headingContent} ${headingIdSuffix}`;
89
+ }
90
+ /**
91
+ * Takes Markdown content, returns new content with heading IDs written.
92
+ * Respects existing IDs (unless `overwrite=true`) and never generates colliding
93
+ * IDs (through the slugger).
94
+ */
95
+ function writeMarkdownHeadingId(content, options = {}) {
96
+ const { syntax = 'classic', // Maybe we'll want to change this default later?
97
+ overwrite = false, migrate = false, maintainCase = false, } = options;
98
+ // For now, we have 2 booleans (retro compatible)
99
+ // but it could be useful to have a "mode" enum instead?
100
+ if (overwrite && migrate) {
101
+ throw new Error('Heading ids can either be overwritten or migrated, not both at the same time');
102
+ }
103
+ const lines = content.split('\n');
104
+ const slugger = (0, slugger_1.createSlugger)();
105
+ // Parse heading ID trying both syntaxes (classic first, then mdx-comment)
106
+ function parseHeadingIdAnySyntax(heading) {
107
+ const classic = parseMarkdownHeadingId(heading, 'classic');
108
+ if (classic.id) {
109
+ return classic;
110
+ }
111
+ return parseMarkdownHeadingId(heading, 'mdx-comment');
112
+ }
113
+ // If we can't overwrite existing slugs, make sure other headings don't
114
+ // generate colliding slugs by first marking these slugs as occupied
115
+ if (!overwrite) {
116
+ lines.forEach((line) => {
117
+ const parsedHeading = parseHeadingIdAnySyntax(line);
118
+ if (parsedHeading.id) {
119
+ slugger.slug(parsedHeading.id);
120
+ }
121
+ });
122
+ }
123
+ let inCode = false;
124
+ return lines
125
+ .map((line) => {
126
+ if (line.startsWith('```')) {
127
+ inCode = !inCode;
128
+ return line;
129
+ }
130
+ // Ignore h1 headings, as we don't create anchor links for those
131
+ if (inCode || !line.startsWith('##')) {
132
+ return line;
133
+ }
134
+ const parsedHeading = parseHeadingIdAnySyntax(line);
135
+ // Preserve the line if id is already there, unless we migrate/overwrite
136
+ if (parsedHeading.id && !overwrite && !migrate) {
137
+ return line;
138
+ }
139
+ const headingId = overwrite
140
+ ? undefined
141
+ : migrate
142
+ ? parsedHeading.id
143
+ : undefined;
144
+ return addHeadingId(parsedHeading.text, slugger, maintainCase, syntax, headingId);
145
+ })
146
+ .join('\n');
147
+ }
148
+ //# sourceMappingURL=markdownHeadingIdUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdownHeadingIdUtils.js","sourceRoot":"","sources":["../src/markdownHeadingIdUtils.ts"],"names":[],"mappings":"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"}
@@ -4,28 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
- import { type SluggerOptions } from './slugger';
8
7
  import type { ParseFrontMatter, DefaultParseFrontMatter } from '@docusaurus/types';
9
- /**
10
- * Parses custom ID from a heading. The ID can contain any characters except
11
- * `{#` and `}`.
12
- *
13
- * @param heading e.g. `## Some heading {#some-heading}` where the last
14
- * character must be `}` for the ID to be recognized
15
- */
16
- export declare function parseMarkdownHeadingId(heading: string): {
17
- /**
18
- * The heading content sans the ID part, right-trimmed. e.g. `## Some heading`
19
- */
20
- text: string;
21
- /** The heading ID. e.g. `some-heading` */
22
- id: string | undefined;
23
- };
24
- /**
25
- * MDX 2 requires escaping { with a \ so our anchor syntax need that now.
26
- * See https://mdxjs.com/docs/troubleshooting-mdx/#could-not-parse-expression-with-acorn-error
27
- */
28
- export declare function escapeMarkdownHeadingIds(content: string): string;
29
8
  /**
30
9
  * Hacky temporary escape hatch for Crowdin bad MDX support
31
10
  * See https://docusaurus.io/docs/i18n/crowdin#mdx
@@ -129,15 +108,5 @@ export declare function parseMarkdownFile({ filePath, fileContent, parseFrontMat
129
108
  */
130
109
  content: string;
131
110
  }>;
132
- export type WriteHeadingIDOptions = SluggerOptions & {
133
- /** Overwrite existing heading IDs. */
134
- overwrite?: boolean;
135
- };
136
- /**
137
- * Takes Markdown content, returns new content with heading IDs written.
138
- * Respects existing IDs (unless `overwrite=true`) and never generates colliding
139
- * IDs (through the slugger).
140
- */
141
- export declare function writeMarkdownHeadingId(content: string, options?: WriteHeadingIDOptions): string;
142
111
  export {};
143
112
  //# sourceMappingURL=markdownUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdownUtils.d.ts","sourceRoot":"","sources":["../src/markdownUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAA8B,KAAK,cAAc,EAAC,MAAM,WAAW,CAAC;AAC3E,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAM3B;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG;IACvD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;CACxB,CAUA;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAShE;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAc3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,6BAA6B,EAAE,MAAM,EAAE,GACtC,MAAM,CAiBR;AAID;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA8EpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG;IAChE,6CAA6C;IAC7C,WAAW,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IACtC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB,CAuBA;AAED,eAAO,MAAM,0BAA0B,EAAE,uBAEW,CAAC;AAMrD,KAAK,gCAAgC,GAAG;IACtC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE,gCAAgC,GACzC;IACD,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAyCA;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,kBAAkB,GACnB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,GAAG,gCAAgC,GAAG,OAAO,CAAC;IAC7C,oCAAoC;IACpC,WAAW,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IACtC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CA2BD;AA4BD,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG;IACnD,sCAAsC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,qBAA+D,GACvE,MAAM,CAoCR"}
1
+ {"version":3,"file":"markdownUtils.d.ts","sourceRoot":"","sources":["../src/markdownUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAM3B;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAc3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,6BAA6B,EAAE,MAAM,EAAE,GACtC,MAAM,CAiBR;AAID;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA8EpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG;IAChE,6CAA6C;IAC7C,WAAW,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IACtC,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB,CAuBA;AAED,eAAO,MAAM,0BAA0B,EAAE,uBAEW,CAAC;AAMrD,KAAK,gCAAgC,GAAG;IACtC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE,gCAAgC,GACzC;IACD,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAyCA;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,kBAAkB,GACnB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,GAAG,gCAAgC,GAAG,OAAO,CAAC;IAC7C,oCAAoC;IACpC,WAAW,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IACtC,6CAA6C;IAC7C,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CA2BD"}