add nonfunctional validateCSS plugin

pyrox.dev c8828f26 0cedf211

verified
+1
deno.json
···
"imports": {
"@img/sharp-wasm32": "npm:@img/sharp-wasm32@0.33.5",
"@nolebase/markdown-it-bi-directional-links": "npm:@nolebase/markdown-it-bi-directional-links@^2.15.0",
+
"csstree-validator": "npm:csstree-validator@^4.0.1",
"lume/": "https://cdn.jsdelivr.net/gh/lumeland/lume@f6e8b76726f84055e7d56f201bad44ab4162ed9c/",
"markdown-it-obsidian-callouts": "npm:markdown-it-obsidian-callouts@^0.3.1",
"html-validate": "npm:html-validate@9.4.0"
+42
deno.lock
···
"npm:@tailwindcss/oxide@4.0.3": "4.0.3",
"npm:@tailwindcss/oxide@4.0.6": "4.0.6",
"npm:@types/estree@1.0.6": "1.0.6",
+
"npm:csstree-validator@^4.0.1": "4.0.1",
"npm:date-fns@4.1.0": "4.1.0",
"npm:estree-walker@3.0.3": "3.0.3",
"npm:html-validate@9.4.0": "9.4.0_ajv@8.17.1",
···
"require-from-string"
]
},
+
"ansi-colors@4.1.3": {
+
"integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="
+
},
"ansi-regex@5.0.1": {
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
···
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dependencies": [
"balanced-match"
+
]
+
},
+
"clap@3.1.1": {
+
"integrity": "sha512-vp42956Ax06WwaaheYEqEOgXZ3VKJxgccZ0gJL0HpyiupkIS9RVJFo5eDU1BPeQAOqz+cclndZg4DCqG1sJReQ==",
+
"dependencies": [
+
"ansi-colors"
]
},
"color-convert@2.0.1": {
···
"source-map-js"
]
},
+
"css-tree@3.1.0": {
+
"integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==",
+
"dependencies": [
+
"mdn-data@2.12.2",
+
"source-map-js"
+
]
+
},
"css-what@6.1.0": {
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
},
···
"css-tree@2.2.1"
]
},
+
"csstree-validator@4.0.1": {
+
"integrity": "sha512-ywwDonvo6BuhXkrNSCAW4JLxsNd8HzpOtVVv22W5BNtZNeviZORSOLb7CLskeaKnL9jjvi24kL7UNh5m52ygpw==",
+
"dependencies": [
+
"clap",
+
"css-tree@3.1.0",
+
"enhanced-resolve"
+
]
+
},
"date-fns@4.1.0": {
"integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg=="
},
···
},
"emoji-regex@9.2.2": {
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
+
},
+
"enhanced-resolve@5.18.1": {
+
"integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
+
"dependencies": [
+
"graceful-fs",
+
"tapable"
+
]
},
"entities@4.5.0": {
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
···
"path-scurry"
]
},
+
"graceful-fs@4.2.11": {
+
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
+
},
"html-validate@9.4.0_ajv@8.17.1": {
"integrity": "sha512-Io8vjeAf2JJJTHJDGvozVB6Vv/IZRkNRruSENg9lmLzE1gUcr77sIdtE2rzwLkBsCESDv5+nAAtk2TCer78jxA==",
"dependencies": [
···
},
"mdn-data@2.0.30": {
"integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="
+
},
+
"mdn-data@2.12.2": {
+
"integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA=="
},
"mdurl@2.0.0": {
"integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="
···
},
"tailwindcss@4.0.6": {
"integrity": "sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw=="
+
},
+
"tapable@2.2.1": {
+
"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
},
"tinyglobby@0.2.12_picomatch@4.0.2": {
"integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
···
"dependencies": [
"npm:@img/sharp-wasm32@0.33.5",
"npm:@nolebase/markdown-it-bi-directional-links@^2.15.0",
+
"npm:csstree-validator@^4.0.1",
"npm:html-validate@9.4.0",
"npm:markdown-it-obsidian-callouts@~0.3.1"
+20
plugins/validateCSS.ts
···
+
import { validate } from "csstree-validator";
+
import "lume/types.ts";
+
import { log } from "lume/core/utils/log.ts";
+
+
// CSS Validation Plugin, by dish
+
// version 1.0.0
+
+
export default function () {
+
return (site: Lume.Site) => {
+
site.process([".css"], validateStylesheets);
+
+
function validateStylesheets(pages: Lume.Page[]) {
+
for (const page of pages) {
+
// const report = validate(page.content, page.sourcePath);
+
log.info(page.content as string);
+
log.error(validate(page.content as string, page.sourcePath));
+
}
+
}
+
};
+
}
+1 -1
plugins/validateHTML.ts
···
import { merge } from "lume/core/utils/object.ts";
import { log } from "lume/core/utils/log.ts";
-
// validateHTML Plugin, by dish
+
// HTML Validation Plugin, by dish
// version 1.0.1
export const defaults: ConfigData = {