11import marked from 'marked' ;
22
3- // Source: https://github.com/markedjs/marked/issues/339
4- // 
5- // 
6- // 
7-
3+ // Original source: https://github.com/markedjs/marked/issues/339
4+ // our version:
5+ // 
86export function changeImgCreation ( renderer : marked . Renderer ) {
97 renderer . image = ( src : string | null , title : string | null , alt : string ) => {
10- const exec = / = \s * ( \d * (?: p x | e m | e x | c h | r e m | v w | v h | v m i n | v m a x | % ) ) \s * , * \s * ( \d * (?: p x | e m | e x | c h | r e m | v w | v h | v m i n | v m a x | % ) ) * \s * $ / . exec ( title ) ;
11-
12- let style : string = '' ;
13- if ( exec ) {
14- if ( exec [ 1 ] ) {
15- style += `--deckgo-lazy-img-width: ${ exec [ 1 ] . replace ( ',' , '' ) } ;` ;
16- }
17-
18- if ( exec [ 2 ] ) {
19- style += `--deckgo-lazy-img-height: ${ exec [ 2 ] . replace ( ',' , '' ) } ;` ;
20- }
21- }
22-
8+ const style : string = checkForWidthAndHeight ( title ) ;
239 return `<deckgo-lazy-img img-src="${ sanitize ( src ) } " img-alt="${ sanitize ( alt ) } " style="${ style } "></deckgo-lazy-img>` ;
2410 } ;
2511}
@@ -31,3 +17,22 @@ function sanitize(str: string) {
3117 return '"' ;
3218 } ) ;
3319}
20+
21+ function checkForWidthAndHeight ( title ) : string {
22+ const isWidthSet : RegExpExecArray | null = / w i d t h : \d + (?: p x | e m | e x | c h | r e m | v w | v h | v m i n | v m a x | % ) / . exec ( title ) ;
23+ const isHeightSet : RegExpExecArray | null = / h e i g h t : \d + (?: p x | e m | e x | c h | r e m | v w | v h | v m i n | v m a x | % ) / . exec ( title ) ;
24+
25+ let style : string = '' ;
26+
27+ if ( isWidthSet ) {
28+ const width = / \d + (?: p x | e m | e x | c h | r e m | v w | v h | v m i n | v m a x | % ) / . exec ( isWidthSet [ 0 ] ) [ 0 ] ;
29+ style += `--deckgo-lazy-img-width: ${ width } ;` ;
30+ }
31+
32+ if ( isHeightSet ) {
33+ const height = / \d + (?: p x | e m | e x | c h | r e m | v w | v h | v m i n | v m a x | % ) / . exec ( isHeightSet [ 0 ] ) [ 0 ] ;
34+ style += `--deckgo-lazy-img-height: ${ height } ;` ;
35+ }
36+
37+ return style ;
38+ }
0 commit comments