@@ -30,10 +30,8 @@ function transformImage(src, cls, alt, sizes, widths = ["500", "700", "auto"]) {
30
30
}
31
31
32
32
function getAnchorLink ( filePath , linkTitle ) {
33
- const { attributes, innerHTML } = getAnchorAttributes ( filePath , linkTitle ) ;
34
- return `<a ${ Object . keys ( attributes )
35
- . map ( ( key ) => `${ key } ="${ attributes [ key ] } "` )
36
- . join ( " " ) } >${ innerHTML } </a>`;
33
+ const { attributes, innerHTML} = getAnchorAttributes ( filePath , linkTitle ) ;
34
+ return `<a ${ Object . keys ( attributes ) . map ( key => `${ key } ="${ attributes [ key ] } "` ) . join ( " " ) } >${ innerHTML } </a>` ;
37
35
}
38
36
39
37
function getAnchorAttributes ( filePath , linkTitle ) {
@@ -75,22 +73,22 @@ function getAnchorAttributes(filePath, linkTitle) {
75
73
if ( deadLink ) {
76
74
return {
77
75
attributes : {
78
- class : "internal-link is-unresolved" ,
79
- href : "/404" ,
80
- target : "" ,
76
+ " class" : "internal-link is-unresolved" ,
77
+ " href" : "/404" ,
78
+ " target" : "" ,
81
79
} ,
82
80
innerHTML : title ,
83
- } ;
81
+ }
84
82
}
85
83
return {
86
84
attributes : {
87
- class : "internal-link" ,
88
- target : "" ,
85
+ " class" : "internal-link" ,
86
+ " target" : "" ,
89
87
"data-note-icon" : noteIcon ,
90
- href : `${ permalink } ${ headerLinkPath } ` ,
88
+ " href" : `${ permalink } ${ headerLinkPath } ` ,
91
89
} ,
92
90
innerHTML : title ,
93
- } ;
91
+ }
94
92
}
95
93
96
94
const tagRegex = / ( ^ | \s | \> ) ( # [ ^ \s ! @ # $ % ^ & * ( ) = + \. , \[ { \] } ; : ' " ? > < ] + ) (? ! ( [ ^ < ] * > ) ) / g;
@@ -155,28 +153,28 @@ module.exports = function (eleventyConfig) {
155
153
}
156
154
if ( token . info . startsWith ( "ad-" ) ) {
157
155
const code = token . content . trim ( ) ;
158
- const parts = code . split ( "\n" ) ;
156
+ const parts = code . split ( "\n" )
159
157
let titleLine ;
160
158
let collapse ;
161
- let collapsible = false ;
162
- let collapsed = true ;
159
+ let collapsible = false
160
+ let collapsed = true
163
161
let icon ;
164
162
let color ;
165
- let nbLinesToSkip = 0 ;
163
+ let nbLinesToSkip = 0
166
164
for ( let i = 0 ; i < 4 ; i ++ ) {
167
165
if ( parts [ i ] && parts [ i ] . trim ( ) ) {
168
- let line = parts [ i ] && parts [ i ] . trim ( ) . toLowerCase ( ) ;
166
+ let line = parts [ i ] && parts [ i ] . trim ( ) . toLowerCase ( )
169
167
if ( line . startsWith ( "title:" ) ) {
170
168
titleLine = line . substring ( 6 ) ;
171
169
nbLinesToSkip ++ ;
172
170
} else if ( line . startsWith ( "icon:" ) ) {
173
171
icon = line . substring ( 5 ) ;
174
172
nbLinesToSkip ++ ;
175
173
} else if ( line . startsWith ( "collapse:" ) ) {
176
- collapsible = true ;
174
+ collapsible = true
177
175
collapse = line . substring ( 9 ) ;
178
- if ( collapse && collapse . trim ( ) . toLowerCase ( ) == " open" ) {
179
- collapsed = false ;
176
+ if ( collapse && collapse . trim ( ) . toLowerCase ( ) == ' open' ) {
177
+ collapsed = false
180
178
}
181
179
nbLinesToSkip ++ ;
182
180
} else if ( line . startsWith ( "color:" ) ) {
@@ -185,28 +183,24 @@ module.exports = function (eleventyConfig) {
185
183
}
186
184
}
187
185
}
188
- const foldDiv = collapsible
189
- ? `<div class="callout-fold">
186
+ const foldDiv = collapsible ? `<div class="callout-fold">
190
187
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svg-icon lucide-chevron-down">
191
188
<polyline points="6 9 12 15 18 9"></polyline>
192
189
</svg>
193
- </div>`
194
- : "" ;
190
+ </div>` : "" ;
195
191
const titleDiv = titleLine
196
192
? `<div class="callout-title"><div class="callout-title-inner">${ titleLine } </div>${ foldDiv } </div>`
197
193
: "" ;
198
- let collapseClasses =
199
- titleLine && collapsible ? "is-collapsible" : "" ;
194
+ let collapseClasses = titleLine && collapsible ? 'is-collapsible' : ''
200
195
if ( collapsible && collapsed ) {
201
- collapseClasses += " is-collapsed" ;
196
+ collapseClasses += " is-collapsed"
202
197
}
203
198
204
- let res = `<div data-callout-metadata class="callout ${ collapseClasses } " data-callout="${ token . info . substring (
205
- 3 ,
206
- ) } ">${ titleDiv } \n<div class="callout-content">${ md . render (
207
- parts . slice ( nbLinesToSkip ) . join ( "\n" ) ,
208
- ) } </div></div>`;
209
- return res ;
199
+ let res = `<div data-callout-metadata class="callout ${ collapseClasses } " data-callout="${ token . info . substring ( 3 )
200
+ } ">${ titleDiv } \n<div class="callout-content">${ md . render (
201
+ parts . slice ( nbLinesToSkip ) . join ( "\n" )
202
+ ) } </div></div>`;
203
+ return res
210
204
}
211
205
212
206
// Other languages
@@ -228,9 +222,7 @@ module.exports = function (eleventyConfig) {
228
222
229
223
let metaData = "" ;
230
224
if ( widthAndMetaData . length > 1 ) {
231
- metaData = widthAndMetaData
232
- . slice ( 0 , widthAndMetaData . length - 1 )
233
- . join ( " " ) ;
225
+ metaData = widthAndMetaData . slice ( 0 , widthAndMetaData . length - 1 ) . join ( " " ) ;
234
226
}
235
227
236
228
if ( ! lastValueIsNumber ) {
@@ -334,12 +326,10 @@ module.exports = function (eleventyConfig) {
334
326
335
327
eleventyConfig . addTransform ( "dataview-js-links" , function ( str ) {
336
328
const parsed = parse ( str ) ;
337
- for ( const dataViewJsLink of parsed . querySelectorAll (
338
- "a[data-href].internal-link" ,
339
- ) ) {
329
+ for ( const dataViewJsLink of parsed . querySelectorAll ( "a[data-href].internal-link" ) ) {
340
330
const notePath = dataViewJsLink . getAttribute ( "data-href" ) ;
341
331
const title = dataViewJsLink . innerHTML ;
342
- const { attributes, innerHTML } = getAnchorAttributes ( notePath , title ) ;
332
+ const { attributes, innerHTML} = getAnchorAttributes ( notePath , title ) ;
343
333
for ( const key in attributes ) {
344
334
dataViewJsLink . setAttribute ( key , attributes [ key ] ) ;
345
335
}
@@ -353,7 +343,7 @@ module.exports = function (eleventyConfig) {
353
343
const parsed = parse ( str ) ;
354
344
355
345
const transformCalloutBlocks = (
356
- blockquotes = parsed . querySelectorAll ( "blockquote" ) ,
346
+ blockquotes = parsed . querySelectorAll ( "blockquote" )
357
347
) => {
358
348
for ( const blockquote of blockquotes ) {
359
349
transformCalloutBlocks ( blockquote . querySelectorAll ( "blockquote" ) ) ;
@@ -378,8 +368,8 @@ module.exports = function (eleventyConfig) {
378
368
const titleText = title . replace ( / ( < \/ { 0 , 1 } \w + > ) / , "" )
379
369
? title
380
370
: `${ callout . charAt ( 0 ) . toUpperCase ( ) } ${ callout
381
- . substring ( 1 )
382
- . toLowerCase ( ) } `;
371
+ . substring ( 1 )
372
+ . toLowerCase ( ) } `;
383
373
const fold = isCollapsable
384
374
? `<div class="callout-fold"><i icon-name="chevron-down"></i></div>`
385
375
: `` ;
@@ -388,7 +378,7 @@ module.exports = function (eleventyConfig) {
388
378
calloutMetaData = metaData ;
389
379
titleDiv = `<div class="callout-title"><div class="callout-title-inner">${ titleText } </div>${ fold } </div>` ;
390
380
return "" ;
391
- } ,
381
+ }
392
382
) ;
393
383
394
384
/* Hacky fix for callouts with only a title:
@@ -402,17 +392,14 @@ module.exports = function (eleventyConfig) {
402
392
if ( content === "\n<p>\n" ) {
403
393
content = "" ;
404
394
}
405
- let contentDiv = content
406
- ? `\n<div class="callout-content">${ content } </div>`
407
- : "" ;
395
+ let contentDiv = content ? `\n<div class="callout-content">${ content } </div>` : "" ;
408
396
409
397
blockquote . tagName = "div" ;
410
398
blockquote . classList . add ( "callout" ) ;
411
399
blockquote . classList . add ( isCollapsable ? "is-collapsible" : "" ) ;
412
400
blockquote . classList . add ( isCollapsed ? "is-collapsed" : "" ) ;
413
401
blockquote . setAttribute ( "data-callout" , calloutType . toLowerCase ( ) ) ;
414
- calloutMetaData &&
415
- blockquote . setAttribute ( "data-callout-metadata" , calloutMetaData ) ;
402
+ calloutMetaData && blockquote . setAttribute ( "data-callout-metadata" , calloutMetaData ) ;
416
403
blockquote . innerHTML = `${ titleDiv } ${ contentDiv } ` ;
417
404
}
418
405
} ;
@@ -433,19 +420,19 @@ module.exports = function (eleventyConfig) {
433
420
media="(max-width:480px)"
434
421
srcset="${ meta . jpeg [ 0 ] . url } "
435
422
/>
436
- ` ;
423
+ `
437
424
if ( meta . webp && meta . webp [ 1 ] && meta . webp [ 1 ] . url ) {
438
425
html += `<source
439
426
media="(max-width:1920px)"
440
427
srcset="${ meta . webp [ 1 ] . url } "
441
428
type="image/webp"
442
- />` ;
429
+ />`
443
430
}
444
431
if ( meta . jpeg && meta . jpeg [ 1 ] && meta . jpeg [ 1 ] . url ) {
445
432
html += `<source
446
433
media="(max-width:1920px)"
447
434
srcset="${ meta . jpeg [ 1 ] . url } "
448
- />` ;
435
+ />`
449
436
}
450
437
html += `<img
451
438
class="${ cls . toString ( ) } "
@@ -456,8 +443,9 @@ module.exports = function (eleventyConfig) {
456
443
imageTag . innerHTML = html ;
457
444
}
458
445
446
+
459
447
eleventyConfig . addTransform ( "picture" , function ( str ) {
460
- if ( process . env . USE_FULL_RESOLUTION_IMAGES === "true" ) {
448
+ if ( process . env . USE_FULL_RESOLUTION_IMAGES === "true" ) {
461
449
return str ;
462
450
}
463
451
const parsed = parse ( str ) ;
@@ -466,14 +454,14 @@ module.exports = function (eleventyConfig) {
466
454
if ( src && src . startsWith ( "/" ) && ! src . endsWith ( ".svg" ) ) {
467
455
const cls = imageTag . classList . value ;
468
456
const alt = imageTag . getAttribute ( "alt" ) ;
469
- const width = imageTag . getAttribute ( "width" ) || "" ;
457
+ const width = imageTag . getAttribute ( "width" ) || '' ;
470
458
471
459
try {
472
460
const meta = transformImage (
473
461
"./src/site" + decodeURI ( imageTag . getAttribute ( "src" ) ) ,
474
462
cls . toString ( ) ,
475
463
alt ,
476
- [ "(max-width: 480px)" , "(max-width: 1024px)" ] ,
464
+ [ "(max-width: 480px)" , "(max-width: 1024px)" ]
477
465
) ;
478
466
479
467
if ( meta ) {
@@ -497,7 +485,7 @@ module.exports = function (eleventyConfig) {
497
485
}
498
486
499
487
for ( const t of parsed . querySelectorAll (
500
- ".cm-s-obsidian > .block-language-dataview > table" ,
488
+ ".cm-s-obsidian > .block-language-dataview > table"
501
489
) ) {
502
490
t . classList . add ( "dataview" ) ;
503
491
t . classList . add ( "table-view-table" ) ;
@@ -515,8 +503,7 @@ module.exports = function (eleventyConfig) {
515
503
516
504
eleventyConfig . addTransform ( "htmlMinifier" , ( content , outputPath ) => {
517
505
if (
518
- ( process . env . NODE_ENV === "production" ||
519
- process . env . ELEVENTY_ENV === "prod" ) &&
506
+ ( process . env . NODE_ENV === "production" || process . env . ELEVENTY_ENV === "prod" ) &&
520
507
outputPath &&
521
508
outputPath . endsWith ( ".html" )
522
509
) {
@@ -543,14 +530,15 @@ module.exports = function (eleventyConfig) {
543
530
tags : [ "h1" , "h2" , "h3" , "h4" , "h5" , "h6" ] ,
544
531
} ) ;
545
532
533
+
546
534
eleventyConfig . addFilter ( "dateToZulu" , function ( date ) {
547
535
try {
548
536
return new Date ( date ) . toISOString ( "dd-MM-yyyyTHH:mm:ssZ" ) ;
549
537
} catch {
550
538
return "" ;
551
539
}
552
540
} ) ;
553
-
541
+
554
542
eleventyConfig . addFilter ( "jsonify" , function ( variable ) {
555
543
return JSON . stringify ( variable ) || '""' ;
556
544
} ) ;
@@ -571,12 +559,6 @@ module.exports = function (eleventyConfig) {
571
559
} ,
572
560
} ) ;
573
561
574
- eleventyConfig . addCollection ( "footerPages" , function ( collectionApi ) {
575
- return collectionApi . getAll ( ) . filter ( function ( item ) {
576
- return item . data [ "dg-footer" ] === true ;
577
- } ) ;
578
- } ) ;
579
-
580
562
userEleventySetup ( eleventyConfig ) ;
581
563
582
564
return {
0 commit comments