1
0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-02-21 07:29:37 +01:00

fix: markdown anchor links in package readme.md broken #2712

This commit is contained in:
coolsp 2021-12-01 23:33:25 +01:00 committed by GitHub
parent 60cd25ce4f
commit 820c9d5db2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 44 additions and 39 deletions

70
.pnp.js generated

@ -79,7 +79,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@verdaccio/commons-api", "npm:10.0.2"],
["@verdaccio/eslint-config", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:8.5.0"],
["@verdaccio/local-storage", "npm:10.0.8"],
["@verdaccio/readme", "npm:10.0.1"],
["@verdaccio/readme", "npm:10.1.0"],
["@verdaccio/streams", "npm:10.0.1"],
["@verdaccio/types", "npm:9.7.2"],
["@verdaccio/ui-theme", "npm:3.2.1"],
@ -5343,12 +5343,12 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]
]],
["@verdaccio/readme", [
["npm:10.0.1", {
"packageLocation": "./.yarn/cache/@verdaccio-readme-npm-10.0.1-dd3c1c7def-fa9671f10d.zip/node_modules/@verdaccio/readme/",
["npm:10.1.0", {
"packageLocation": "./.yarn/cache/@verdaccio-readme-npm-10.1.0-b5e92d038e-0d116bbd32.zip/node_modules/@verdaccio/readme/",
"packageDependencies": [
["@verdaccio/readme", "npm:10.0.1"],
["@verdaccio/readme", "npm:10.1.0"],
["dompurify", "npm:2.2.6"],
["jsdom", "virtual:dd3c1c7def4024f56fab8b4ec20b487d806a013b875c2d34ca74e96fa913bba7daeeb0d2d11d0a1f42ddab4332f7951d13f48296b7a75aa30b83af0eb7fe1fed#npm:15.2.1"],
["jsdom", "virtual:b5e92d038e9f5a217411989447802564dd37e172be2844c3100f02d2b11f16c5c5caf4f497085e26650bb5559c3775b2b2b97ea683a2712c5f23b768f8bda9ff#npm:15.2.1"],
["marked", "npm:2.0.1"]
],
"linkType": "HARD",
@ -11798,10 +11798,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],
"linkType": "SOFT",
}],
["virtual:dd3c1c7def4024f56fab8b4ec20b487d806a013b875c2d34ca74e96fa913bba7daeeb0d2d11d0a1f42ddab4332f7951d13f48296b7a75aa30b83af0eb7fe1fed#npm:15.2.1", {
"packageLocation": "./.yarn/$$virtual/jsdom-virtual-2e80ddf178/0/cache/jsdom-npm-15.2.1-9f569ec90b-706d227c37.zip/node_modules/jsdom/",
["virtual:b5e92d038e9f5a217411989447802564dd37e172be2844c3100f02d2b11f16c5c5caf4f497085e26650bb5559c3775b2b2b97ea683a2712c5f23b768f8bda9ff#npm:15.2.1", {
"packageLocation": "./.yarn/$$virtual/jsdom-virtual-d30df9df72/0/cache/jsdom-npm-15.2.1-9f569ec90b-706d227c37.zip/node_modules/jsdom/",
"packageDependencies": [
["jsdom", "virtual:dd3c1c7def4024f56fab8b4ec20b487d806a013b875c2d34ca74e96fa913bba7daeeb0d2d11d0a1f42ddab4332f7951d13f48296b7a75aa30b83af0eb7fe1fed#npm:15.2.1"],
["jsdom", "virtual:b5e92d038e9f5a217411989447802564dd37e172be2844c3100f02d2b11f16c5c5caf4f497085e26650bb5559c3775b2b2b97ea683a2712c5f23b768f8bda9ff#npm:15.2.1"],
["@types/canvas", null],
["abab", "npm:2.0.3"],
["acorn", "npm:7.1.1"],
@ -11818,7 +11818,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["parse5", "npm:5.1.0"],
["pn", "npm:1.1.0"],
["request", "npm:2.88.2"],
["request-promise-native", "virtual:2e80ddf1782ae7934273073b0793840427ae9c20d5230635d07dfae6bfd92cd23329b59bbd7f9e956628815d4628e1880f21edb0c5de29ce9cb068478d0d473c#npm:1.0.8"],
["request-promise-native", "virtual:d30df9df72d558393724afee36d27357ee84aefe65825fa8da510d64e83cf0e8cfc95b1b03dec016901a080eaab201d0d71ba8d4d3a57c3e60be4d9d6c233d63#npm:1.0.8"],
["saxes", "npm:3.1.11"],
["symbol-tree", "npm:3.2.4"],
["tough-cookie", "npm:3.0.1"],
@ -11828,7 +11828,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["whatwg-encoding", "npm:1.0.5"],
["whatwg-mimetype", "npm:2.3.0"],
["whatwg-url", "npm:7.1.0"],
["ws", "virtual:2e80ddf1782ae7934273073b0793840427ae9c20d5230635d07dfae6bfd92cd23329b59bbd7f9e956628815d4628e1880f21edb0c5de29ce9cb068478d0d473c#npm:7.2.1"],
["ws", "virtual:d30df9df72d558393724afee36d27357ee84aefe65825fa8da510d64e83cf0e8cfc95b1b03dec016901a080eaab201d0d71ba8d4d3a57c3e60be4d9d6c233d63#npm:7.2.1"],
["xml-name-validator", "npm:3.0.0"]
],
"packagePeers": [
@ -14909,10 +14909,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],
"linkType": "SOFT",
}],
["virtual:bee6e6a7e293e6cae2dfa18fb670bbdefccfa592866997dbf1f1f3b9d5c04e9905d816f013deb61be485fc53854631d57dcdaa9bfbbf966811b6b72b8e3191fa#npm:1.1.3", {
"packageLocation": "./.yarn/$$virtual/request-promise-core-virtual-18ff3beb43/0/cache/request-promise-core-npm-1.1.3-1b898b5c44-1235a6071b.zip/node_modules/request-promise-core/",
["virtual:59de9ecd79b31f9d6c77dd85f26d9908b701d11d4860a3be6ba801ac361751e32ead7d4b646d3a1112f9f53b1ba8aadaf5fff177b5b02838bf30ffba3e272423#npm:1.1.3", {
"packageLocation": "./.yarn/$$virtual/request-promise-core-virtual-60224830f4/0/cache/request-promise-core-npm-1.1.3-1b898b5c44-1235a6071b.zip/node_modules/request-promise-core/",
"packageDependencies": [
["request-promise-core", "virtual:bee6e6a7e293e6cae2dfa18fb670bbdefccfa592866997dbf1f1f3b9d5c04e9905d816f013deb61be485fc53854631d57dcdaa9bfbbf966811b6b72b8e3191fa#npm:1.1.3"],
["request-promise-core", "virtual:59de9ecd79b31f9d6c77dd85f26d9908b701d11d4860a3be6ba801ac361751e32ead7d4b646d3a1112f9f53b1ba8aadaf5fff177b5b02838bf30ffba3e272423#npm:1.1.3"],
["@types/request", null],
["lodash", "npm:4.17.19"],
["request", "npm:2.88.2"]
@ -14932,13 +14932,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],
"linkType": "SOFT",
}],
["virtual:2e80ddf1782ae7934273073b0793840427ae9c20d5230635d07dfae6bfd92cd23329b59bbd7f9e956628815d4628e1880f21edb0c5de29ce9cb068478d0d473c#npm:1.0.8", {
"packageLocation": "./.yarn/$$virtual/request-promise-native-virtual-bee6e6a7e2/0/cache/request-promise-native-npm-1.0.8-45c7cbe307-29986fe3cc.zip/node_modules/request-promise-native/",
["virtual:d30df9df72d558393724afee36d27357ee84aefe65825fa8da510d64e83cf0e8cfc95b1b03dec016901a080eaab201d0d71ba8d4d3a57c3e60be4d9d6c233d63#npm:1.0.8", {
"packageLocation": "./.yarn/$$virtual/request-promise-native-virtual-59de9ecd79/0/cache/request-promise-native-npm-1.0.8-45c7cbe307-29986fe3cc.zip/node_modules/request-promise-native/",
"packageDependencies": [
["request-promise-native", "virtual:2e80ddf1782ae7934273073b0793840427ae9c20d5230635d07dfae6bfd92cd23329b59bbd7f9e956628815d4628e1880f21edb0c5de29ce9cb068478d0d473c#npm:1.0.8"],
["request-promise-native", "virtual:d30df9df72d558393724afee36d27357ee84aefe65825fa8da510d64e83cf0e8cfc95b1b03dec016901a080eaab201d0d71ba8d4d3a57c3e60be4d9d6c233d63#npm:1.0.8"],
["@types/request", null],
["request", "npm:2.88.2"],
["request-promise-core", "virtual:bee6e6a7e293e6cae2dfa18fb670bbdefccfa592866997dbf1f1f3b9d5c04e9905d816f013deb61be485fc53854631d57dcdaa9bfbbf966811b6b72b8e3191fa#npm:1.1.3"],
["request-promise-core", "virtual:59de9ecd79b31f9d6c77dd85f26d9908b701d11d4860a3be6ba801ac361751e32ead7d4b646d3a1112f9f53b1ba8aadaf5fff177b5b02838bf30ffba3e272423#npm:1.1.3"],
["stealthy-require", "npm:1.1.1"],
["tough-cookie", "npm:2.5.0"]
],
@ -17032,7 +17032,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@verdaccio/commons-api", "npm:10.0.2"],
["@verdaccio/eslint-config", "virtual:7f7b3df50ee4b7b1719ad19fad11505dc2788f3227a7e5cc9ca19f71d8cb309c9d33b532ea2b2b60ab65abf6cc12153df4643c5e6e17d01ea0ae0492723bb4b4#npm:8.5.0"],
["@verdaccio/local-storage", "npm:10.0.8"],
["@verdaccio/readme", "npm:10.0.1"],
["@verdaccio/readme", "npm:10.1.0"],
["@verdaccio/streams", "npm:10.0.1"],
["@verdaccio/types", "npm:9.7.2"],
["@verdaccio/ui-theme", "npm:3.2.1"],
@ -17437,23 +17437,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],
"linkType": "SOFT",
}],
["virtual:2e80ddf1782ae7934273073b0793840427ae9c20d5230635d07dfae6bfd92cd23329b59bbd7f9e956628815d4628e1880f21edb0c5de29ce9cb068478d0d473c#npm:7.2.1", {
"packageLocation": "./.yarn/$$virtual/ws-virtual-15eb6cf224/0/cache/ws-npm-7.2.1-6a11e4a4b3-097beba4b2.zip/node_modules/ws/",
"packageDependencies": [
["ws", "virtual:2e80ddf1782ae7934273073b0793840427ae9c20d5230635d07dfae6bfd92cd23329b59bbd7f9e956628815d4628e1880f21edb0c5de29ce9cb068478d0d473c#npm:7.2.1"],
["@types/bufferutil", null],
["@types/utf-8-validate", null],
["bufferutil", null],
["utf-8-validate", null]
],
"packagePeers": [
"@types/bufferutil",
"@types/utf-8-validate",
"bufferutil",
"utf-8-validate"
],
"linkType": "HARD",
}],
["virtual:5d97c1964f47c97510019e8e1ca12c073edbd7f16b511e7ceee55b6129c48784db6a804ce3b47d654660f50f8f4d1ab075b879abda7a62ddc6511583371ef9b5#npm:7.4.6", {
"packageLocation": "./.yarn/$$virtual/ws-virtual-f18bd5ad7c/0/cache/ws-npm-7.4.6-9c9a725604-ffeb626d92.zip/node_modules/ws/",
"packageDependencies": [
@ -17487,6 +17470,23 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"utf-8-validate"
],
"linkType": "HARD",
}],
["virtual:d30df9df72d558393724afee36d27357ee84aefe65825fa8da510d64e83cf0e8cfc95b1b03dec016901a080eaab201d0d71ba8d4d3a57c3e60be4d9d6c233d63#npm:7.2.1", {
"packageLocation": "./.yarn/$$virtual/ws-virtual-9560c285e9/0/cache/ws-npm-7.2.1-6a11e4a4b3-097beba4b2.zip/node_modules/ws/",
"packageDependencies": [
["ws", "virtual:d30df9df72d558393724afee36d27357ee84aefe65825fa8da510d64e83cf0e8cfc95b1b03dec016901a080eaab201d0d71ba8d4d3a57c3e60be4d9d6c233d63#npm:7.2.1"],
["@types/bufferutil", null],
["@types/utf-8-validate", null],
["bufferutil", null],
["utf-8-validate", null]
],
"packagePeers": [
"@types/bufferutil",
"@types/utf-8-validate",
"bufferutil",
"utf-8-validate"
],
"linkType": "HARD",
}]
]],
["xml", [

Binary file not shown.

@ -20,7 +20,7 @@
"dependencies": {
"@verdaccio/commons-api": "10.0.2",
"@verdaccio/local-storage": "10.0.8",
"@verdaccio/readme": "10.0.1",
"@verdaccio/readme": "10.1.0",
"@verdaccio/streams": "10.0.1",
"@verdaccio/ui-theme": "3.2.1",
"JSONStream": "1.3.5",

@ -100,7 +100,9 @@ function addPackageWebApi(route: Router, storage: IStorageHandler, auth: IAuth,
}
res.set(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN);
next(parseReadme(info.name, info.readme));
const referer = req.get('Referer');
const pathname = referer ? (new URL(referer)).pathname : undefined;
next(parseReadme(info.name, info.readme, {pathname}));
},
});
});

@ -489,11 +489,14 @@ export function addGravatarSupport(pkgInfo: Package, online = true): AuthorAvata
* parse package readme - markdown/ascii
* @param {String} packageName name of package
* @param {String} readme package readme
* @param {Object} options sanitizyReadme options
* @return {String} converted html template
*/
export function parseReadme(packageName: string, readme: string): string | void {
export function parseReadme(packageName: string,
readme: string,
options: { pathname?: string | void } = {}): string | void {
if (_.isEmpty(readme) === false) {
return sanitizyReadme(readme);
return sanitizyReadme(readme, options);
}
// logs readme not found error

BIN
yarn.lock

Binary file not shown.