diff options
Diffstat (limited to 'src/scripts/link-readme.js')
-rw-r--r-- | src/scripts/link-readme.js | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/src/scripts/link-readme.js b/src/scripts/link-readme.js index 223451d84..694b89700 100644 --- a/src/scripts/link-readme.js +++ b/src/scripts/link-readme.js | |||
@@ -18,26 +18,36 @@ let readme = fs.readFileSync(readmepath, 'utf-8'); | |||
18 | 18 | ||
19 | let replacements = 0; | 19 | let replacements = 0; |
20 | 20 | ||
21 | // Replace Ferdi issues | ||
22 | // Regex matches strings that don't begin with a "[", i.e. are not already linked and | ||
23 | // don't begin with "franz", i.e. are not Franz issues, followed by a "#" and 3 digits to indicate | ||
24 | // a GitHub issue, and not ending with a "]" | ||
25 | readme = readme.replace(/(?<!\[|franz)#\d{3}(?!\])/gi, (match) => { | ||
26 | const issueNr = match.replace('#', ''); | ||
27 | replacements += 1; | ||
28 | return `[#${issueNr}](https://github.com/getferdi/ferdi/issues/${issueNr})`; | ||
29 | }); | ||
30 | |||
31 | // Replace Franz issues | 21 | // Replace Franz issues |
32 | // Regex matches strings that don't begin with a "[", i.e. are not already linked | 22 | // Regex matches strings that don't begin with a "[", i.e. are not already linked |
33 | // followed by a "franz#" and 3 digits to indicate | 23 | // followed by a "franz#" and digits to indicate |
34 | // a GitHub issue, and not ending with a "]" | 24 | // a GitHub issue, and not ending with a "]" |
35 | readme = readme.replace(/(?<!\[)franz#\d{3,}(?!\])/gi, (match) => { | 25 | readme = readme.replace(/(?<!\[)franz#\d{1,}(?![\]\d])/gi, (match) => { |
36 | const issueNr = match.replace('franz#', ''); | 26 | const issueNr = match.replace('franz#', ''); |
37 | replacements += 1; | 27 | replacements += 1; |
38 | return `[franz#${issueNr}](https://github.com/meetfranz/franz/issues/${issueNr})`; | 28 | return `[franz#${issueNr}](https://github.com/meetfranz/franz/issues/${issueNr})`; |
39 | }); | 29 | }); |
40 | 30 | ||
31 | // Replace external issues | ||
32 | // Regex matches strings that don't begin with a "[", followed a repo name in the format "user/repo" | ||
33 | // followed by a "#" and digits to indicate a GitHub issue, and not ending with a "]" | ||
34 | readme = readme.replace(/(?<!\[)\w+\/\w+#\d{1,}(?![\]\d])/gi, (match) => { | ||
35 | const issueNr = match.replace(/\D/g, ''); | ||
36 | const repo = match.replace(/#\d+/g, ''); | ||
37 | replacements += 1; | ||
38 | return `[${repo}#${issueNr}](https://github.com/${repo}/issues/${issueNr})`; | ||
39 | }); | ||
40 | |||
41 | // Replace Ferdi issues | ||
42 | // Regex matches strings that don't begin with a "[", i.e. are not already linked and | ||
43 | // don't begin with "franz", i.e. are not Franz issues, followed by a "#" and digits to indicate | ||
44 | // a GitHub issue, and not ending with a "]" | ||
45 | readme = readme.replace(/(?<!\[|franz)#\d{1,}(?![\]\d])/gi, (match) => { | ||
46 | const issueNr = match.replace('#', ''); | ||
47 | replacements += 1; | ||
48 | return `[#${issueNr}](https://github.com/getferdi/ferdi/issues/${issueNr})`; | ||
49 | }); | ||
50 | |||
41 | // Link GitHub users | 51 | // Link GitHub users |
42 | // Regex matches strings that don't begin with a "[", i.e. are not already linked | 52 | // Regex matches strings that don't begin with a "[", i.e. are not already linked |
43 | // followed by a "@" and at least one word character and not ending with a "]" | 53 | // followed by a "@" and at least one word character and not ending with a "]" |