@@ -15,12 +15,33 @@ import { existsSync, readFileSync } from 'fs';
1515import { homedir } from 'os' ;
1616import path from 'path' ;
1717
18- const warnAndFallback = ( message : string ) : string => {
19- return `<script>console.warn("${ message } ");</script>${ fallbackIcon } ` ;
18+ const githubAlertsIcons : Record < string , string > = {
19+ note : 'info' ,
20+ tip : 'light-bulb' ,
21+ important : 'report' ,
22+ warning : 'alert' ,
23+ caution : 'stop' ,
24+ } ;
25+ const mergedIcons = {
26+ ...githubAlertsIcons ,
27+ ...config . alertsOptions ?. icons ,
2028} ;
2129
30+ const fallbackIconOpt = config . alertsOptions ?. fallbackIcon ?? mergedIcons [ 'note' ] ;
31+ const fallbackIcon = resolveIcon ( fallbackIconOpt ) ;
32+ const resolvedIcons : Record < string , string > = { } ;
33+ const titles = config . alertsOptions ?. titles ?? { } ;
34+
35+ for ( const marker in mergedIcons ) {
36+ resolvedIcons [ marker ] = resolveIcon ( mergedIcons [ marker ] ) ;
37+ }
38+
39+ function warnAndFallback ( message : string ) : string {
40+ return `<script>console.warn("${ message } ");</script>${ fallbackIcon } ` ;
41+ }
42+
2243// Resolve option from alertsOptions.icons into raw svg tag
23- const resolveIcon = ( iconOpt : string ) : string => {
44+ function resolveIcon ( iconOpt : string ) : string {
2445 // Case 1: already a raw svg tag
2546 if ( iconOpt . startsWith ( '<svg' ) ) {
2647 return iconOpt ;
@@ -54,29 +75,10 @@ const resolveIcon = (iconOpt: string): string => {
5475 return warnAndFallback ( `Not a known octicon name: ${ iconOpt } ` ) ;
5576 }
5677 return octicon ;
57- } ;
58-
59- const titles = config . alertsOptions ?. titles ?? { } ;
60-
61- const githubAlertsIcons : Record < string , string > = {
62- note : 'info' ,
63- tip : 'light-bulb' ,
64- important : 'report' ,
65- warning : 'alert' ,
66- caution : 'stop' ,
67- } ;
68- const mergedIcons = {
69- ...githubAlertsIcons ,
70- ...config . alertsOptions ?. icons ,
71- } ;
72-
73- const fallbackIconOpt = config . alertsOptions ?. fallbackIcon ?? mergedIcons [ 'note' ] ;
74- const fallbackIcon = resolveIcon ( fallbackIconOpt ) ;
75-
76- const resolvedIcons : Record < string , string > = { } ;
78+ }
7779
78- for ( const marker in mergedIcons ) {
79- resolvedIcons [ marker ] = resolveIcon ( mergedIcons [ marker ] ) ;
80+ function capitalize ( str : string ) : string {
81+ return str . charAt ( 0 ) . toUpperCase ( ) + str . slice ( 1 ) ;
8082}
8183
8284const MarkdownItAlerts = ( md : MarkdownIt ) => {
@@ -124,9 +126,5 @@ const MarkdownItAlerts = (md: MarkdownIt) => {
124126 } ;
125127} ;
126128
127- const capitalize = ( str : string ) => {
128- return str . charAt ( 0 ) . toUpperCase ( ) + str . slice ( 1 ) ;
129- } ;
130-
131129export default MarkdownItAlerts ;
132130export { resolveIcon } ; // Exported for unit test
0 commit comments