55const fs = require ( "fs" ) ;
66const path = require ( "path" ) ;
77const rimraf = require ( "rimraf" ) ;
8+ const semver = require ( "semver" ) ;
89
910const changelogUnreleasedDir = path . join ( __dirname , "../changelog_unreleased" ) ;
1011const blogDir = path . join ( __dirname , "../website/blog" ) ;
1112const introFile = path . join ( changelogUnreleasedDir , "blog-post-intro.md" ) ;
13+ const previousVersion = require ( "prettier/package.json" ) . version ;
1214const version = require ( "../package.json" ) . version . replace ( / - .+ / , "" ) ;
1315const postGlob = path . join ( blogDir , `????-??-??-${ version } .md` ) ;
1416const postFile = path . join (
@@ -80,22 +82,24 @@ rimraf.sync(postGlob);
8082
8183fs . writeFileSync (
8284 postFile ,
83- [
84- fs . readFileSync ( introFile , "utf8" ) . trim ( ) ,
85- "<!--truncate-->" ,
86- ...printEntries ( {
87- title : "Highlights" ,
88- filter : ( entry ) => entry . highlight ,
89- } ) ,
90- ...printEntries ( {
91- title : "Breaking changes" ,
92- filter : ( entry ) => entry . breaking && ! entry . highlight ,
93- } ) ,
94- ...printEntries ( {
95- title : "Other changes" ,
96- filter : ( entry ) => ! entry . breaking && ! entry . highlight ,
97- } ) ,
98- ] . join ( "\n\n" ) + "\n"
85+ replaceVersions (
86+ [
87+ fs . readFileSync ( introFile , "utf8" ) . trim ( ) ,
88+ "<!--truncate-->" ,
89+ ...printEntries ( {
90+ title : "Highlights" ,
91+ filter : ( entry ) => entry . highlight ,
92+ } ) ,
93+ ...printEntries ( {
94+ title : "Breaking changes" ,
95+ filter : ( entry ) => entry . breaking && ! entry . highlight ,
96+ } ) ,
97+ ...printEntries ( {
98+ title : "Other changes" ,
99+ filter : ( entry ) => ! entry . breaking && ! entry . highlight ,
100+ } ) ,
101+ ] . join ( "\n\n" ) + "\n"
102+ )
99103) ;
100104
101105function printEntries ( { title, filter } ) {
@@ -115,3 +119,13 @@ function printEntries({ title, filter }) {
115119
116120 return result ;
117121}
122+
123+ function formatVersion ( version ) {
124+ return `${ semver . major ( version ) } .${ semver . minor ( version ) } ` ;
125+ }
126+
127+ function replaceVersions ( data ) {
128+ return data
129+ . replace ( / p r e t t i e r s t a b l e / gi, `Prettier ${ formatVersion ( previousVersion ) } ` )
130+ . replace ( / p r e t t i e r m a s t e r / gi, `Prettier ${ formatVersion ( version ) } ` ) ;
131+ }
0 commit comments