The fifth version of chriskrycho.com, built in Eleventy.

build: switch to Biome

+9 -15
.nova/Configuration.json
··· 1 1 { 2 - "index.ignored_file_patterns" : [ 3 - "node_modules", 4 - "public", 5 - "site\/_styles", 6 - ".jj" 7 - ], 8 - "todo.workspace-ignore-paths" : [ 9 - "public" 10 - ], 11 - "workspace.color" : 8, 12 - "workspace.name" : "Sympolymathesy", 13 - "workspace.preview_append_paths" : true, 14 - "workspace.preview_root" : "site", 15 - "workspace.preview_type" : "custom", 16 - "workspace.preview_url" : "http:\/\/localhost:8080\/" 2 + "index.ignored_file_patterns": ["node_modules", "public", "site/_styles", ".jj"], 3 + "prettier.format-on-save": "Disable", 4 + "todo.workspace-ignore-paths": ["public"], 5 + "workspace.color": 8, 6 + "workspace.name": "Sympolymathesy", 7 + "workspace.preview_append_paths": true, 8 + "workspace.preview_root": "site", 9 + "workspace.preview_type": "custom", 10 + "workspace.preview_url": "http://localhost:8080/" 17 11 }
+10 -10
.nova/Tasks/Serve.json
··· 1 1 { 2 - "actions" : { 3 - "clean" : { 4 - "enabled" : true, 5 - "script" : "yarn clean" 6 - }, 7 - "run" : { 8 - "enabled" : true, 9 - "script" : "yarn serve" 10 - } 11 - } 2 + "actions": { 3 + "clean": { 4 + "enabled": true, 5 + "script": "yarn clean" 6 + }, 7 + "run": { 8 + "enabled": true, 9 + "script": "yarn serve" 10 + } 11 + } 12 12 }
+2 -4
.vscode/settings.json
··· 2 2 "files.associations": { 3 3 "*.html": "jinja-html" 4 4 }, 5 - "editor.rulers": [ 6 - 90 7 - ], 5 + "editor.rulers": [90], 8 6 "files.exclude": { 9 7 "**/.git": true, 10 8 "**/.svn": true, ··· 15 13 }, 16 14 "typescript.tsdk": "node_modules/typescript/lib", 17 15 "sarif-viewer.connectToGithubCodeScanning": "off" 18 - } 16 + }
base.tsconfig.json base.tsconfig.jsonc
+32
biome.jsonc
··· 1 + { 2 + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", 3 + "vcs": { "enabled": false, "clientKind": "git", "useIgnoreFile": false }, 4 + "files": { "ignoreUnknown": false, "ignore": [] }, 5 + "formatter": { 6 + "enabled": true, 7 + "useEditorconfig": true, 8 + "formatWithErrors": false, 9 + "indentStyle": "space", 10 + "indentWidth": 3, 11 + "lineEnding": "lf", 12 + "lineWidth": 90, 13 + "attributePosition": "auto", 14 + "bracketSpacing": true, 15 + "ignore": ["**/*.md", "**/*.yaml"] 16 + }, 17 + "organizeImports": { "enabled": true }, 18 + "linter": { "enabled": false }, 19 + "javascript": { 20 + "formatter": { 21 + "jsxQuoteStyle": "double", 22 + "quoteProperties": "asNeeded", 23 + "trailingCommas": "all", 24 + "semicolons": "always", 25 + "arrowParentheses": "always", 26 + "bracketSameLine": false, 27 + "quoteStyle": "single", 28 + "attributePosition": "auto", 29 + "bracketSpacing": true 30 + } 31 + } 32 + }
+4 -1
eleventy/config.ts
··· 37 37 38 38 type Not = <A extends unknown[]>(fn: (...args: A) => boolean) => (...args: A) => boolean; 39 39 // prettier-ignore 40 - const not: Not = (fn) => (...args) => !fn(...args); 40 + const not: Not = 41 + (fn) => 42 + (...args) => 43 + !fn(...args); 41 44 42 45 type Filter = <T>(pred: (t: T) => boolean) => (values: T[]) => T[]; 43 46 const filter: Filter = (pred) => (values) => values.filter(pred);
+1 -7
package.json
··· 13 13 "packageManager": "pnpm@9.4.0", 14 14 "devDependencies": { 15 15 "@11ty/eleventy": "^2.0.1", 16 + "@biomejs/biome": "1.9.4", 16 17 "@rollup/plugin-node-resolve": "^15.3.0", 17 18 "@rollup/plugin-strip": "^3.0.4", 18 19 "@rollup/plugin-terser": "^0.4.4", ··· 43 44 "markdown-it-implicit-figures": "^0.10.0", 44 45 "markdown-it-mark": "^3.0.1", 45 46 "markdown-it-sup": "^1.0.0", 46 - "prettier": "^2.8.8", 47 47 "rollup": "^3.29.5", 48 48 "sass": "^1.81.0", 49 49 "striptags": "^3.2.0", ··· 53 53 "typescript": "^5.6.3", 54 54 "typeset": "^0.3.4", 55 55 "uslug": "^1.0.4" 56 - }, 57 - "prettier": { 58 - "singleQuote": true, 59 - "printWidth": 90, 60 - "trailingComma": "all", 61 - "tabWidth": 3 62 56 }, 63 57 "scripts": { 64 58 "build:styles": "gulp all",
+91 -10
pnpm-lock.yaml
··· 11 11 '@11ty/eleventy': 12 12 specifier: ^2.0.1 13 13 version: 2.0.1 14 + '@biomejs/biome': 15 + specifier: 1.9.4 16 + version: 1.9.4 14 17 '@rollup/plugin-node-resolve': 15 18 specifier: ^15.3.0 16 19 version: 15.3.0(rollup@3.29.5) ··· 101 104 markdown-it-sup: 102 105 specifier: ^1.0.0 103 106 version: 1.0.0 104 - prettier: 105 - specifier: ^2.8.8 106 - version: 2.8.8 107 107 rollup: 108 108 specifier: ^3.29.5 109 109 version: 3.29.5 ··· 172 172 resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} 173 173 engines: {node: '>=6.9.0'} 174 174 175 + '@biomejs/biome@1.9.4': 176 + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} 177 + engines: {node: '>=14.21.3'} 178 + hasBin: true 179 + 180 + '@biomejs/cli-darwin-arm64@1.9.4': 181 + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} 182 + engines: {node: '>=14.21.3'} 183 + cpu: [arm64] 184 + os: [darwin] 185 + 186 + '@biomejs/cli-darwin-x64@1.9.4': 187 + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} 188 + engines: {node: '>=14.21.3'} 189 + cpu: [x64] 190 + os: [darwin] 191 + 192 + '@biomejs/cli-linux-arm64-musl@1.9.4': 193 + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} 194 + engines: {node: '>=14.21.3'} 195 + cpu: [arm64] 196 + os: [linux] 197 + 198 + '@biomejs/cli-linux-arm64@1.9.4': 199 + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} 200 + engines: {node: '>=14.21.3'} 201 + cpu: [arm64] 202 + os: [linux] 203 + 204 + '@biomejs/cli-linux-x64-musl@1.9.4': 205 + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} 206 + engines: {node: '>=14.21.3'} 207 + cpu: [x64] 208 + os: [linux] 209 + 210 + '@biomejs/cli-linux-x64@1.9.4': 211 + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} 212 + engines: {node: '>=14.21.3'} 213 + cpu: [x64] 214 + os: [linux] 215 + 216 + '@biomejs/cli-win32-arm64@1.9.4': 217 + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} 218 + engines: {node: '>=14.21.3'} 219 + cpu: [arm64] 220 + os: [win32] 221 + 222 + '@biomejs/cli-win32-x64@1.9.4': 223 + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} 224 + engines: {node: '>=14.21.3'} 225 + cpu: [x64] 226 + os: [win32] 227 + 175 228 '@cspotcode/source-map-support@0.8.1': 176 229 resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 177 230 engines: {node: '>=12'} ··· 2449 2502 resolution: {integrity: sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==} 2450 2503 engines: {node: '>=12.0.0'} 2451 2504 2452 - prettier@2.8.8: 2453 - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 2454 - engines: {node: '>=10.13.0'} 2455 - hasBin: true 2456 - 2457 2505 pretty-hrtime@1.0.3: 2458 2506 resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} 2459 2507 engines: {node: '>= 0.8'} ··· 3383 3431 '@babel/helper-string-parser': 7.25.9 3384 3432 '@babel/helper-validator-identifier': 7.25.9 3385 3433 3434 + '@biomejs/biome@1.9.4': 3435 + optionalDependencies: 3436 + '@biomejs/cli-darwin-arm64': 1.9.4 3437 + '@biomejs/cli-darwin-x64': 1.9.4 3438 + '@biomejs/cli-linux-arm64': 1.9.4 3439 + '@biomejs/cli-linux-arm64-musl': 1.9.4 3440 + '@biomejs/cli-linux-x64': 1.9.4 3441 + '@biomejs/cli-linux-x64-musl': 1.9.4 3442 + '@biomejs/cli-win32-arm64': 1.9.4 3443 + '@biomejs/cli-win32-x64': 1.9.4 3444 + 3445 + '@biomejs/cli-darwin-arm64@1.9.4': 3446 + optional: true 3447 + 3448 + '@biomejs/cli-darwin-x64@1.9.4': 3449 + optional: true 3450 + 3451 + '@biomejs/cli-linux-arm64-musl@1.9.4': 3452 + optional: true 3453 + 3454 + '@biomejs/cli-linux-arm64@1.9.4': 3455 + optional: true 3456 + 3457 + '@biomejs/cli-linux-x64-musl@1.9.4': 3458 + optional: true 3459 + 3460 + '@biomejs/cli-linux-x64@1.9.4': 3461 + optional: true 3462 + 3463 + '@biomejs/cli-win32-arm64@1.9.4': 3464 + optional: true 3465 + 3466 + '@biomejs/cli-win32-x64@1.9.4': 3467 + optional: true 3468 + 3386 3469 '@cspotcode/source-map-support@0.8.1': 3387 3470 dependencies: 3388 3471 '@jridgewell/trace-mapping': 0.3.9 ··· 5788 5871 dependencies: 5789 5872 posthtml-parser: 0.11.0 5790 5873 posthtml-render: 3.0.0 5791 - 5792 - prettier@2.8.8: {} 5793 5874 5794 5875 pretty-hrtime@1.0.3: {} 5795 5876
+1 -1
scripts/tsconfig.json
··· 1 1 { 2 - "extends": "../base.tsconfig.json", 2 + "extends": "../base.tsconfig.jsonc", 3 3 "compilerOptions": { 4 4 "removeComments": true, 5 5 "lib": ["dom", "es2019"],
+1 -1
site/journal/Read the Manual/Read the Manual.11tydata.json
··· 3 3 "permalink": "/journal/read-the-manual/{{tool | slug}}/index.html", 4 4 "tags": ["software development", "command line tools"], 5 5 "qualifiers": { 6 - "audience": "People interested in learning how the command lines tools on their computer work." 6 + "audience": "People interested in learning how the command lines tools on their computer work." 7 7 } 8 8 }
+1 -1
tsconfig.json
··· 1 1 { 2 - "extends": "./base.tsconfig.json", 2 + "extends": "./base.tsconfig.jsonc", 3 3 "compilerOptions": { 4 4 "noEmit": true /* Do not emit outputs. (BECAUSE WE'RE USING TS-NODE!) */ 5 5 },