Skip to content

Commit 48a67e2

Browse files
committed
Updates various libs and moves to ESM modules
1 parent 8b9f8ec commit 48a67e2

22 files changed

+11601
-22387
lines changed

.eleventy.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
'use strict'
1+
import allPlugins from './_11ty/allPlugins.js'
22

3-
const allPlugins = require('./_11ty/allPlugins')
4-
5-
module.exports = function (config) {
3+
export default function (config) {
64
config.addPlugin(allPlugins)
75

86
return {

.github/workflows/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ jobs:
1010
- name: Begin CI...
1111
uses: actions/checkout@v2
1212

13-
- name: Use Node 14
13+
- name: Use Node 20
1414
uses: actions/setup-node@v1
1515
with:
16-
node-version: 14.x
16+
node-version: 20.x
1717

1818
- name: Use cached node_modules
1919
uses: actions/cache@v1

_11ty/allPlugins.js

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
1-
'use strict'
1+
import rss from '@11ty/eleventy-plugin-rss'
2+
import syntaxHighlight from '@11ty/eleventy-plugin-syntaxhighlight'
3+
import copyStaticFiles from './copyStaticFiles.js'
4+
import configureMarkdown from './configureMarkdown.js'
5+
import toc from './toc.js'
6+
import purifycss from './purifycss.js'
7+
import minifyhtml from './minifyhtml.js'
8+
import nunjucksFilters from './nunjucksFilters.js'
9+
import shareImage from './shareImage.js'
10+
import responsiveImage from './responsiveImage.js'
11+
import image from './image.js'
212

3-
const rss = require('@11ty/eleventy-plugin-rss')
4-
const syntaxHighlight = require('@11ty/eleventy-plugin-syntaxhighlight')
5-
const copyStaticFiles = require('./copyStaticFiles')
6-
const configureMarkdown = require('./configureMarkdown')
7-
const toc = require('./toc')
8-
const purifycss = require('./purifycss')
9-
const minifyhtml = require('./minifyhtml')
10-
const nunjucksFilters = require('./nunjucksFilters')
11-
const shareImage = require('./shareImage')
12-
const responsiveImage = require('./responsiveImage')
13-
const image = require('./image')
14-
15-
module.exports = function allPlugins (config) {
13+
export default function allPlugins (config) {
1614
config.setUseGitIgnore(false)
17-
1815
config.addPlugin(rss)
1916
config.addPlugin(syntaxHighlight)
2017
config.addPlugin(copyStaticFiles)

_11ty/configureMarkdown.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
1-
'use strict'
1+
import markdownIt from 'markdown-it'
2+
import markdownItAnchor from 'markdown-it-anchor'
3+
import markdownItClass from '@toycode/markdown-it-class'
24

3-
const markdownIt = require('markdown-it')
4-
const markdownItAnchor = require('markdown-it-anchor')
5-
const markdownItClass = require('@toycode/markdown-it-class')
6-
7-
module.exports = function configureMarkdown (config) {
5+
export default function configureMarkdown (config) {
86
// configure markdown
97
const mdClassesMapping = {
108
h2: ['title', 'is-2'],

_11ty/copyStaticFiles.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
'use strict'
2-
3-
module.exports = function copyStaticFiles (config) {
1+
export default function copyStaticFiles (config) {
42
// Pass-through files
53
config.addPassthroughCopy('src/CNAME')
64
config.addPassthroughCopy({ 'src/static/*': '.' })

_11ty/image.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
'use strict'
1+
import { join, extname, basename } from 'node:path'
2+
import { createReadStream, createWriteStream } from 'node:fs'
3+
import { access } from 'node:fs/promises'
4+
import { createHash } from 'node:crypto'
5+
import * as url from 'node:url'
26

3-
const { join, extname, basename } = require('path')
4-
const { createReadStream, createWriteStream } = require('fs')
5-
const { access } = require('fs').promises
6-
const { createHash } = require('crypto')
7+
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
78

89
function hashFile (fileStream) {
910
return new Promise((resolve, reject) => {
@@ -26,7 +27,7 @@ function copyFile (fileStream, dest) {
2627
})
2728
}
2829

29-
module.exports = function image (config) {
30+
export default function image (config) {
3031
config.addNunjucksAsyncShortcode('image', async function (src, alt, options) {
3132
if (typeof alt === 'undefined') {
3233
throw new Error(`Missing \`alt\` on image from: ${src}`)

_11ty/minifyhtml.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
'use strict'
2-
3-
const htmlmin = require('html-minifier')
1+
import htmlmin from 'html-minifier'
42

53
const banner = `<!--
64
888b 888 888 d8b 8888888b. d8b 8888888b. 888 888
@@ -24,7 +22,7 @@ const banner = `<!--
2422
2523
-->`
2624

27-
module.exports = function minifyhtml (config) {
25+
export default function minifyhtml (config) {
2826
// Add HTML minification transform
2927
config.addTransform('htmlmin', function (content, outputPath) {
3028
if (outputPath.endsWith('.html')) {

_11ty/nunjucksFilters.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
'use strict'
1+
import format from 'date-fns/format'
2+
import markdownIt from 'markdown-it'
23

3-
const format = require('date-fns/format')
4-
const markdownIt = require('markdown-it')
5-
6-
module.exports = function nunjucksFilters (config) {
4+
export default function nunjucksFilters (config) {
75
// Add is_array filter
86
config.addFilter('is_array', function (value) {
97
return Array.isArray(value)

_11ty/purifycss.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
'use strict'
1+
import { join } from 'node:path'
2+
import { readFile } from 'node:fs/promises'
3+
import * as url from 'node:url'
4+
import { PurgeCSS } from 'purgecss'
5+
import { minify } from 'csso'
26

3-
const { join } = require('path')
4-
const { readFile } = require('fs').promises
5-
const PurgeCSS = require('purgecss').PurgeCSS
6-
const csso = require('csso')
7+
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
78

8-
module.exports = function purifycss (config) {
9+
export default function purifycss (config) {
910
// optimize css - removes unused css and inlines css
1011
config.addTransform('purifyCss', async function (content, outputPath) {
1112
if (outputPath.endsWith('.html')) {
@@ -35,7 +36,7 @@ module.exports = function purifycss (config) {
3536
variables: true
3637
})
3738

38-
const after = csso.minify(purged[0].css).css
39+
const after = minify(purged[0].css).css
3940
newContent = newContent.replace(match, `<style>${after}</style>`)
4041
}
4142

_11ty/responsiveImage.js

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
'use strict'
22

3-
const { cpus } = require('os')
4-
const { join, extname, basename } = require('path')
5-
const { access } = require('fs').promises
6-
const Image = require('@11ty/eleventy-img')
3+
import { cpus } from 'node:os'
4+
import { join, extname, basename } from 'node:path'
5+
import { access } from 'node:fs/promises'
6+
import * as url from 'node:url'
7+
import Image from '@11ty/eleventy-img'
78

9+
const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
810
Image.concurrency = (cpus()).length
911

10-
module.exports = function responsiveImage (config) {
12+
export default function responsiveImage (config) {
1113
// Add responsive image helper
1214
config.addNunjucksAsyncShortcode('responsiveImage', async function (src, alt, options = {}) {
1315
if (typeof alt === 'undefined') {
@@ -45,8 +47,8 @@ module.exports = function responsiveImage (config) {
4547
const html = `<span style="position: relative; display: block; margin-left: auto; margin-right: auto; max-width: ${maxWidth}px; ">
4648
<picture>
4749
${Object.values(stats).map(imageFormat => {
48-
return `<source type="image/${imageFormat[0].format}" srcset="${imageFormat.map(entry => `${entry.url} ${entry.width}w`).join(', ')}" sizes="${sizes}">`
49-
}).join('\n')}
50+
return `<source type="image/${imageFormat[0].format}" srcset="${imageFormat.map(entry => `${entry.url} ${entry.width}w`).join(', ')}" sizes="${sizes}">`
51+
}).join('\n')}
5052
<img loading="lazy" decoding="async" style="max-width: 100%; width: 100%; margin: 0px; vertical-align: middle;" ${options.class ? `class="${options.class}"` : ''} alt="${alt}" src="${lowestSrc.url}" width="${lowestSrc.width}" height="${lowestSrc.height}">
5153
</picture>
5254
</span>`

0 commit comments

Comments
 (0)