11function updateChangelog ( changelog ) {
2- changelog = addHeader ( changelog ) ;
2+ changelog = addFrontmatter ( changelog ) ;
33 changelog = pushHeadings ( changelog ) ;
4- changelog = linkUsers ( changelog ) ;
5- changelog = linkPRs ( changelog ) ;
4+ changelog = fixUserLinks ( changelog ) ;
5+ changelog = fixPRLinks ( changelog ) ;
6+ changelog = escapeMDXCharacters ( changelog ) ;
67 return changelog ;
78}
89
9- function addHeader ( changelog , header = 'Changelog' ) {
10+ function addFrontmatter ( changelog , header = 'Changelog' ) {
1011 return `---
1112title: ${ header }
1213sidebar_label: ${ header }
@@ -19,14 +20,22 @@ function pushHeadings(changelog) {
1920 return changelog . replaceAll ( / \n # [ ^ # ] / g, '\n## ' ) ;
2021}
2122
22- function linkUsers ( changelog ) {
23+ function fixUserLinks ( changelog ) {
2324 return changelog . replaceAll ( / b y @ ( [ a - z A - Z 0 - 9 - ] + ) / g, 'by [@$1](https://github.com/$1)' ) ;
2425}
2526
26- function linkPRs ( changelog ) {
27+ function fixPRLinks ( changelog ) {
2728 return changelog . replaceAll ( / ( ( ( h t t p s ? : \/ \/ ) ? ( w w w .) ? ) ? g i t h u b .c o m \/ [ ^ \s ] * ?\/ p u l l \/ ( [ 0 - 9 ] + ) ) / g, '[#$5]($1)' ) ;
2829}
2930
31+ function escapeMDXCharacters ( changelog ) {
32+ return changelog . replaceAll ( / < | > / g, ( match ) => {
33+ return match === '<' ? '<' : '>' ;
34+ } ) . replaceAll ( / \{ | \} / g, ( match ) => {
35+ return match === '{' ? '{' : '}' ;
36+ } ) ;
37+ }
38+
3039module . exports = {
3140 updateChangelog,
3241} ;
0 commit comments