From 922c7296fd5e02093694a7893ef0d49524ab9d24 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 17 Jul 2020 10:38:29 +0200 Subject: [PATCH] docgen: use github-slugger to generate better slugs --- packages/docgen/package.json | 6 ++++-- .../docgen/src/docgen/GitHubMarkdownPrinter.ts | 3 ++- yarn.lock | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/packages/docgen/package.json b/packages/docgen/package.json index eafddbdda3..6e73dfeda5 100644 --- a/packages/docgen/package.json +++ b/packages/docgen/package.json @@ -29,11 +29,13 @@ "chalk": "^4.0.0", "commander": "^4.1.1", "fs-extra": "^9.0.0", - "typescript": "^3.9.3", - "ts-node": "^8.6.2" + "github-slugger": "^1.3.0", + "ts-node": "^8.6.2", + "typescript": "^3.9.3" }, "devDependencies": { "@types/fs-extra": "^9.0.1", + "@types/github-slugger": "^1.3.0", "@types/node": "^13.7.2", "nodemon": "^2.0.2" }, diff --git a/packages/docgen/src/docgen/GitHubMarkdownPrinter.ts b/packages/docgen/src/docgen/GitHubMarkdownPrinter.ts index fd82e023d3..64d38d8b15 100644 --- a/packages/docgen/src/docgen/GitHubMarkdownPrinter.ts +++ b/packages/docgen/src/docgen/GitHubMarkdownPrinter.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import GithubSlugger from 'github-slugger'; import sortSelector from './sortSelector'; import { MarkdownPrinter, TypeLink } from './types'; import { execSync } from 'child_process'; @@ -46,7 +47,7 @@ export default class GithubMarkdownPrinter implements MarkdownPrinter { } headerLink(heading: string): string { - const slug = heading.replace(/[^a-z0-9]/gi, '-').toLowerCase(); + const slug = GithubSlugger.slug(heading); return `#${slug}`; } diff --git a/yarn.lock b/yarn.lock index 6c0ff99388..75746071c8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3545,6 +3545,11 @@ resolved "https://registry.npmjs.org/@types/git-url-parse/-/git-url-parse-9.0.0.tgz#aac1315a44fa4ed5a52c3820f6c3c2fb79cbd12d" integrity sha512-kA2RxBT/r/ZuDDKwMl+vFWn1Z0lfm1/Ik6Qb91wnSzyzCDa/fkM8gIOq6ruB7xfr37n6Mj5dyivileUVKsidlg== +"@types/github-slugger@^1.3.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@types/github-slugger/-/github-slugger-1.3.0.tgz#16ab393b30d8ae2a111ac748a015ac05a1fc5524" + integrity sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g== + "@types/glob@^7.1.1": version "7.1.1" resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" @@ -7889,6 +7894,11 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +"emoji-regex@>=6.0.0 <=6.1.1": + version "6.1.1" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz#c6cd0ec1b0642e2a3c67a1137efc5e796da4f88e" + integrity sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4= + emoji-regex@^7.0.1, emoji-regex@^7.0.2: version "7.0.3" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -9435,6 +9445,13 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" +github-slugger@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz#9bd0a95c5efdfc46005e82a906ef8e2a059124c9" + integrity sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q== + dependencies: + emoji-regex ">=6.0.0 <=6.1.1" + glob-base@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"