11import fs from "fs" ;
22import YAML from "yaml" ;
3+ import { marked } from "marked" ;
34
45const tracks = [ "windows/ga" , "windows/beta" , "macos/ga" , "macos/beta" ] ;
56
7+ const linesToRemove = [
8+ "For related Cloudflare for Teams documentation please see: https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp" ,
9+ "For Zero Trust documentation please see: https://developers.cloudflare.com/cloudflare-one/connections/connect-devices/warp" ,
10+ "For related Consumer documentation please see: https://developers.cloudflare.com/warp-client/" ,
11+ "For Consumer documentation please see: https://developers.cloudflare.com/warp-client/" ,
12+ ] ;
13+
614for ( const track of tracks ) {
715 fetch ( `https://downloads.cloudflareclient.com/v1/update/json/${ track } ` )
816 . then ( ( res ) => res . json ( ) )
@@ -17,15 +25,35 @@ for (const track of tracks) {
1725
1826 console . log ( `Saving ${ track } ${ item . version } .` ) ;
1927
20- const platformName = data . platformName ;
21- const releaseNotes = item . releaseNotes . replace ( / \r \n / g, "\n" ) ;
28+ let markdown = item . releaseNotes ;
29+
30+ markdown . replace ( / \r \n / g, "\n" ) ;
31+
32+ for ( const line of linesToRemove ) {
33+ markdown = markdown . replace ( line , "" ) ;
34+ }
35+
36+ markdown = markdown . trim ( ) ;
37+
38+ const tokens = marked . lexer ( markdown ) ;
39+
40+ marked . walkTokens ( tokens , ( token ) => {
41+ if ( token . type === "heading" ) {
42+ token . type = "strong" ;
43+ token . raw = `**${ token . text } **\n` ;
44+
45+ delete token . depth ;
46+ }
47+ } ) ;
48+
49+ const releaseNotes = tokens . reduce ( ( s , t ) => s + t . raw , "" ) ;
2250
2351 fs . writeFileSync (
2452 `./src/content/warp-releases/${ track } /${ item . version } .yaml` ,
2553 YAML . stringify ( {
2654 ...item ,
2755 releaseNotes,
28- platformName,
56+ platformName : data . platformName ,
2957 } ) ,
3058 "utf-8" ,
3159 ) ;
0 commit comments