My blog
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

update lume config

dish 4f34bffd 9110836b

+141 -94
+141 -94
_config.ts
··· 1 1 import lume from "lume/mod.ts"; 2 2 import brotli from "lume/plugins/brotli.ts"; 3 + import date from "lume/plugins/date.ts"; 3 4 import feed from "lume/plugins/feed.ts"; 4 - import lightningcss from "lume/plugins/lightningcss.ts"; 5 5 import metas from "lume/plugins/metas.ts"; 6 - import nav from "lume/plugins/nav.ts"; 7 6 import picture from "lume/plugins/picture.ts"; 8 - import postcss from "lume/plugins/postcss.ts"; 9 - import purgecss from "lume/plugins/purgecss.ts"; 10 7 import relations from "lume/plugins/relations.ts"; 11 8 import robots from "lume/plugins/robots.ts"; 12 9 import sitemap from "lume/plugins/sitemap.ts"; 13 10 import slugify_urls from "lume/plugins/slugify_urls.ts"; 14 11 import source_maps from "lume/plugins/source_maps.ts"; 15 12 import svgo from "lume/plugins/svgo.ts"; 16 - import tailwindcss from "lume/plugins/tailwindcss.ts"; 17 13 import toml from "lume/plugins/toml.ts"; 18 14 import transform_images from "lume/plugins/transform_images.ts"; 19 15 16 + // Markdown-it plugins 17 + import md_linenums from "npm:markdown-it-inject-linenumbers@0.3.0"; 18 + 19 + // CSS 20 + // // Base dependencies 21 + import tailwindcss from "lume/plugins/tailwindcss.ts"; 22 + import postcss from "lume/plugins/postcss.ts"; 20 23 import catppuccin from "npm:@catppuccin/tailwindcss"; 24 + // // Fonts 25 + import googleFonts from "lume/plugins/google_fonts.ts"; 26 + // // Optimization 27 + import lightningcss from "lume/plugins/lightningcss.ts"; 28 + import purgecss from "lume/plugins/purgecss.ts"; 21 29 22 30 // Disabled Plugins: 23 31 // import minify_html from "lume/plugins/minify_html.ts"; 24 32 // import og_images from "lume/plugins/og_images.ts"; 25 33 // import pagefind from "lume/plugins/pagefind.ts"; 26 34 // import sri from "lume/plugins/sri.ts"; 35 + // import nav from "lume/plugins/nav.ts"; 27 36 28 37 // To Add: 29 38 // https://deno.land/x/lume_markdown_plugins@v0.8.0 (toc and footnotes plugins) 30 39 // https://deno.land/x/lume_shiki@0.0.16 31 40 32 - const site = lume({ 33 - src: "./src", 34 - location: new URL("https://blog.pyrox.dev"), 35 - }); 41 + const mdConfig = { 42 + plugins: [md_linenums], 43 + }; 44 + 45 + const site = lume( 46 + { 47 + src: "./src", 48 + location: new URL("https://blog.pyrox.dev"), 49 + }, 50 + { mdConfig }, 51 + ); 36 52 37 53 site.loadAssets([".css"]); 38 54 site.copy([".woff2"]); ··· 44 60 // keep_spaces_between_attributes: true 45 61 // } 46 62 // })); 47 - site.use(nav()); 48 63 site.use(picture()); 49 64 site.use(transform_images()); 50 65 site.use(relations()); ··· 52 67 site.use(slugify_urls()); 53 68 site.use(svgo()); 54 69 site.use(toml()); 70 + site.use( 71 + date({ 72 + formats: { 73 + SHORT_DATE: "yyyy-MM-dd", 74 + POST_DATE: "dd MMM, yyyy", 75 + }, 76 + }), 77 + ); 55 78 56 79 // Tailwind CSS 57 - site.use(tailwindcss({ 58 - extensions: [".html", ".vto"], 59 - options: { 60 - plugins: [catppuccin], 61 - safelist: ['latte'] 62 - } 63 - })) 64 - site.use(postcss()) 80 + site.use( 81 + tailwindcss({ 82 + options: { 83 + plugins: [catppuccin], 84 + theme: { 85 + fontFamily: { 86 + sans: ["Inter", "ui-sans-serif", "system-ui", "sans-serif"], 87 + serif: ["IBM Plex Serif", "ui-serif", "serif"], 88 + }, 89 + }, 90 + }, 91 + }), 92 + ); 93 + site.use(postcss()); 94 + 95 + // Fonts 96 + site.use( 97 + googleFonts({ 98 + subsets: ["latin", "latin-ext"], 99 + folder: "/static/fonts/", 100 + cssFile: "/static/fonts.css", 101 + fonts: 102 + "https://fonts.googleapis.com/css2?family=IBM+Plex+Serif:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900", 103 + }), 104 + ); 65 105 66 106 // RSS/JSON Feed Generation 67 - site.use(feed({ 68 - output: ["/blog.rss", "/blog.json"], 69 - query: "type=blog", 70 - sort: "date=desc", 71 - info: { 72 - title: "dish blog", 73 - description: "dish's thoughts on many things", 74 - published: new Date(), 75 - lang: "en", 76 - generator: true, 77 - authorName: "dish", 78 - authorUrl: "https://blog.pyrox.dev", 79 - }, 80 - items: { 81 - title: "=title", 82 - description: "=summary", 83 - published: "=published", 84 - updated: "=updated || undefined", 85 - content: "=children", 86 - lang: "=lang", 87 - image: "=banner", 88 - authorName: "=author.name", 89 - authorUrl: "=author.url", 90 - }, 91 - })); 107 + site.use( 108 + feed({ 109 + output: ["/blog.rss", "/blog.json"], 110 + query: "category=blog", 111 + info: { 112 + title: "dish blog", 113 + description: "dish's thoughts on many things", 114 + published: new Date(), 115 + lang: "en", 116 + generator: true, 117 + authorName: "dish", 118 + authorUrl: "https://blog.pyrox.dev", 119 + }, 120 + items: { 121 + title: "=title", 122 + description: "=summary", 123 + published: "=published", 124 + updated: "=updated", 125 + content: "$.e-content", 126 + lang: "=lang", 127 + image: "=banner", 128 + authorName: "=author.name", 129 + authorUrl: "=author.url", 130 + }, 131 + }), 132 + ); 92 133 93 134 // CSS postprocessing 94 - site.use(purgecss()) 95 - site.use(lightningcss({ 96 - options: { 97 - minify: true, 98 - bundle: false, 99 - } 100 - })); 135 + site.use(purgecss()); 136 + site.use( 137 + lightningcss({ 138 + options: { 139 + minify: true, 140 + bundle: false, 141 + }, 142 + }), 143 + ); 101 144 102 145 // Source Map Generation 103 146 site.use(source_maps()); 104 147 105 148 // Compress everything with Brotli 106 - site.use(brotli({ 107 - extensions: [ 108 - ".html", 109 - ".css", 110 - ".js", 111 - ".mjs", 112 - ".svg", 113 - ".json", 114 - ".xml", 115 - ".txt", 116 - ".rss", 117 - ".map" 118 - ] 119 - })); 149 + site.use( 150 + brotli({ 151 + extensions: [ 152 + ".html", 153 + ".css", 154 + ".js", 155 + ".mjs", 156 + ".svg", 157 + ".json", 158 + ".xml", 159 + ".txt", 160 + ".rss", 161 + ".map", 162 + ], 163 + }), 164 + ); 120 165 121 166 // robots.txt generation 122 - site.use(robots({ 123 - disallow: [ 124 - "AI2Bot", 125 - "Amazonbot", 126 - "Applebot-Extended", 127 - "Bytespider", 128 - "ChatGPT-User", 129 - "ClaudeBot", 130 - "Diffbot", 131 - "DuckAssistBot", 132 - "FacebookBot", 133 - "GPTBot", 134 - "Google-Extended", 135 - "Meta-ExternalAgent", 136 - "Meta-ExternalFetcher", 137 - "OAI-SearchBot", 138 - "Operator", 139 - "PanguBot", 140 - "PerplexityBot", 141 - "SemrushBot", 142 - "SemrushBot-OCOB", 143 - "Timpibot", 144 - "Webzio-Extended", 145 - "YouBot", 146 - "cohere-training-data-crawler", 147 - "omgili", 148 - "t3versions", 149 - ] 150 - })); 167 + site.use( 168 + robots({ 169 + disallow: [ 170 + "AI2Bot", 171 + "Amazonbot", 172 + "Applebot-Extended", 173 + "Bytespider", 174 + "ChatGPT-User", 175 + "ClaudeBot", 176 + "Diffbot", 177 + "DuckAssistBot", 178 + "FacebookBot", 179 + "GPTBot", 180 + "Google-Extended", 181 + "Meta-ExternalAgent", 182 + "Meta-ExternalFetcher", 183 + "OAI-SearchBot", 184 + "Operator", 185 + "PanguBot", 186 + "PerplexityBot", 187 + "SemrushBot", 188 + "SemrushBot-OCOB", 189 + "Timpibot", 190 + "Webzio-Extended", 191 + "YouBot", 192 + "cohere-training-data-crawler", 193 + "omgili", 194 + "t3versions", 195 + ], 196 + }), 197 + ); 151 198 152 199 // Copy .well-known to site root 153 - site.copy("static/.well-known", ".well-known") 200 + site.copy("static/.well-known", ".well-known"); 154 201 155 202 // Get current commit as a version number 156 203 // Taken from https://github.com/pixeldesu/pixelde.su/blob/main/_config.ts