this repo has no description

port to zine

altagos.dev 6295544d 40b82314

verified
+1514 -23
+3 -1
build.zig
··· 10 10 "sass", 11 11 "--no-source-map", 12 12 "--no-color", 13 - "style/index.scss", 13 + "--load-path=./style", 14 + "./style/index.scss", 14 15 }); 15 16 const compile_stylesheet_cmd = b.addWriteFile("altagos.css", compile_stylesheet_cmd_out); 16 17 const install_stylesheet = b.addInstallDirectory(.{ ··· 31 32 const website = zine.website(b, .{ 32 33 .output_path = "website", 33 34 .build_assets = &.{stylesheet}, 35 + .force = true, 34 36 }); 35 37 website.step.dependOn(compile_stylesheet); 36 38 b.getInstallStep().dependOn(&website.step);
+2 -2
build.zig.zon
··· 5 5 .minimum_zig_version = "0.15.0-dev.1149+4e6a04929", 6 6 .dependencies = .{ 7 7 .zine = .{ 8 - .url = "git+https://github.com/kristoff-it/zine?ref=v0.11.0#50f35be00e33ea91c9c62c4579616602228c7137", 9 - .hash = "zine-0.11.0-ou6nIBuYFgBXdDp2FtTSMZdFHSrLdlgOuXOWLaEQwNgo", 8 + .url = "git+https://github.com/kristoff-it/zine?ref=main#d87290eff8d42580f92444334a1de3640fb67bda", 9 + .hash = "zine-0.11.0-ou6nIAqaFgACa6oCBi9kCQGBHKfw6X6qBMANoZxBBtUW", 10 10 }, 11 11 }, 12 12 .paths = .{
+286
build.zig.zon.nix
··· 1 + # generated by zon2nix (https://github.com/Cloudef/zig2nix) 2 + 3 + { 4 + lib, 5 + linkFarm, 6 + fetchurl, 7 + fetchgit, 8 + runCommandLocal, 9 + zig, 10 + name ? "zig-packages", 11 + }: 12 + 13 + with builtins; 14 + with lib; 15 + 16 + let 17 + unpackZigArtifact = 18 + { name, artifact }: 19 + runCommandLocal name { nativeBuildInputs = [ zig ]; } '' 20 + hash="$(zig fetch --global-cache-dir "$TMPDIR" ${artifact})" 21 + mv "$TMPDIR/p/$hash" "$out" 22 + chmod 755 "$out" 23 + ''; 24 + 25 + fetchZig = 26 + { 27 + name, 28 + url, 29 + hash, 30 + }: 31 + let 32 + artifact = fetchurl { inherit url hash; }; 33 + in 34 + unpackZigArtifact { inherit name artifact; }; 35 + 36 + fetchGitZig = 37 + { 38 + name, 39 + url, 40 + hash, 41 + rev ? throw "rev is required, remove and regenerate the zon2json-lock file", 42 + }: 43 + let 44 + parts = splitString "#" url; 45 + url_base = elemAt parts 0; 46 + url_without_query = elemAt (splitString "?" url_base) 0; 47 + in 48 + fetchgit { 49 + inherit name rev hash; 50 + url = url_without_query; 51 + deepClone = false; 52 + }; 53 + 54 + fetchZigArtifact = 55 + { 56 + name, 57 + url, 58 + hash, 59 + ... 60 + }@args: 61 + let 62 + parts = splitString "://" url; 63 + proto = elemAt parts 0; 64 + path = elemAt parts 1; 65 + fetcher = { 66 + "git+http" = fetchGitZig ( 67 + args 68 + // { 69 + url = "http://${path}"; 70 + } 71 + ); 72 + "git+https" = fetchGitZig ( 73 + args 74 + // { 75 + url = "https://${path}"; 76 + } 77 + ); 78 + http = fetchZig { 79 + inherit name hash; 80 + url = "http://${path}"; 81 + }; 82 + https = fetchZig { 83 + inherit name hash; 84 + url = "https://${path}"; 85 + }; 86 + }; 87 + in 88 + fetcher.${proto}; 89 + in 90 + linkFarm name [ 91 + { 92 + name = "zine-0.11.0-ou6nIAqaFgACa6oCBi9kCQGBHKfw6X6qBMANoZxBBtUW"; 93 + path = fetchZigArtifact { 94 + name = "zine"; 95 + url = "git+https://github.com/kristoff-it/zine?ref=main#d87290eff8d42580f92444334a1de3640fb67bda"; 96 + hash = "sha256-nlRIXZWjprQlvRjnCMSu3JO1cZMPfr8S0fw2Z8UH9mw="; 97 + rev = "d87290eff8d42580f92444334a1de3640fb67bda"; 98 + }; 99 + } 100 + { 101 + name = "afl_kit-0.1.0-NdJ3cvscAACLEvjZTB017IAks_Uq5ux1qpA-klDe384Y"; 102 + path = fetchZigArtifact { 103 + name = "afl_kit"; 104 + url = "git+https://github.com/kristoff-it/zig-afl-kit#8ef04d1db48650345dca68da1e1b8f2615125c40"; 105 + hash = "sha256-J0xbmsokjlhOav9KLlH2y4qiSgBit4nS+x6Q10L2OSA="; 106 + rev = "8ef04d1db48650345dca68da1e1b8f2615125c40"; 107 + }; 108 + } 109 + { 110 + name = "AFLplusplus-4.21.0-aA1y4UtxAABpnSIF7ARSYDMRyqNcI-2Rwa5UeSsuw70v"; 111 + path = fetchZigArtifact { 112 + name = "AFLplusplus"; 113 + url = "git+https://github.com/allyourcodebase/AFLplusplus#a52f1376e2d49720c39e4abf4aa4944afbf82191"; 114 + hash = "sha256-AlkULC20/RTGMTPk2xWcdXCQlWn3sY3VrD0NRRoTZqY="; 115 + rev = "a52f1376e2d49720c39e4abf4aa4944afbf82191"; 116 + }; 117 + } 118 + { 119 + name = "N-V-__8AAKE4uAAJZgEcPdaXnWqoj-IwYf3G2h9YSm-x92gg"; 120 + path = fetchZigArtifact { 121 + name = "AFLplusplus"; 122 + url = "https://github.com/AFLplusplus/AFLplusplus/archive/v4.21c.tar.gz"; 123 + hash = "sha256-EffHfTfP9uf2WsfMVbq3kB4MYgjoRaOHZDlNBO1WezA="; 124 + }; 125 + } 126 + { 127 + name = "lsp_kit-0.1.0-bi_PL18tCgAMyrZ0tgn_0PXnGEvxGWeNkkRygfe9pX9u"; 128 + path = fetchZigArtifact { 129 + name = "lsp_kit"; 130 + url = "git+https://github.com/zigtools/lsp-kit#4835b9d3d3cf732fe1830189d81f331c68fb3e77"; 131 + hash = "sha256-PqTlZcOow9vGLzI40zvqDI18OhJKzMg8RFLxB4x88/c="; 132 + rev = "4835b9d3d3cf732fe1830189d81f331c68fb3e77"; 133 + }; 134 + } 135 + { 136 + name = "scripty-0.1.0-LKK5O2zEAADkO2rJa_QbMWwC_YmFnUKC384wwMeBGOQv"; 137 + path = fetchZigArtifact { 138 + name = "scripty"; 139 + url = "git+https://github.com/kristoff-it/scripty#3d56bb62a1aec0b07b634aea42ec46e72e017e33"; 140 + hash = "sha256-4BAcj6UU1BpKrcmM3zGwyV5Lxah9wL8esUSucfmlHzs="; 141 + rev = "3d56bb62a1aec0b07b634aea42ec46e72e017e33"; 142 + }; 143 + } 144 + { 145 + name = "tracy-0.0.0-4Xw-1pwwAABTfMgoDP1unCbZDZhJEfict7XCBGF6IdIn"; 146 + path = fetchZigArtifact { 147 + name = "tracy"; 148 + url = "git+https://github.com/kristoff-it/tracy#67d2d89e351048c76fc6d161e0ac09d8a831dc60"; 149 + hash = "sha256-BKo1bhua/u+f5Z//ailur5aSHZWp3GiC0iwmVLrGZkE="; 150 + rev = "67d2d89e351048c76fc6d161e0ac09d8a831dc60"; 151 + }; 152 + } 153 + { 154 + name = "mime-3.0.0-zwmL--0gAAByELrj57sRm2EFBRzjKLFrMgHQcs7sFZev"; 155 + path = fetchZigArtifact { 156 + name = "mime"; 157 + url = "git+https://github.com/kristoff-it/mime#a2ed0cba3b1463217168034ffed8c1604e72598d"; 158 + hash = "sha256-j/O/6pJg0hj3ytAMVBQwGjCRtaR+GYy8X7oqfIpuRi8="; 159 + rev = "a2ed0cba3b1463217168034ffed8c1604e72598d"; 160 + }; 161 + } 162 + { 163 + name = "wuffs-0.4.0-alpha.9+3837.20240914-3CHJgcMFAACyPvxsC7b48pJv9dPkPa4pSrB2VFbCXTfK"; 164 + path = fetchZigArtifact { 165 + name = "wuffs"; 166 + url = "git+https://github.com/allyourcodebase/wuffs#5822dc06c75b30d53082debf68c90193cb2b2608"; 167 + hash = "sha256-Ung7shyFg+/I5Po393tWMp6Jb0Ia14pRJOUF36fr71c="; 168 + rev = "5822dc06c75b30d53082debf68c90193cb2b2608"; 169 + }; 170 + } 171 + { 172 + name = "N-V-__8AANEmUgA6aZZZKbfNMv6DSs5In7CDFU6nInu_Y6aY"; 173 + path = fetchZigArtifact { 174 + name = "wuffs"; 175 + url = "https://github.com/google/wuffs-mirror-release-c/archive/90e4d81a6a8b7b601e8e568da32a105d7f7705e5.tar.gz"; 176 + hash = "sha256-3b68j7dAXnqRd+/fvfDfGK0CtgcxHZ5gSVnHwPYjavQ="; 177 + }; 178 + } 179 + { 180 + name = "N-V-__8AALShqgXkvqYU6f__FrA22SMWmi2TXCJjNTO1m8XJ"; 181 + path = fetchZigArtifact { 182 + name = "frameworks"; 183 + url = "git+https://github.com/hexops/xcode-frameworks.git#8a1cfb373587ea4c9bb1468b7c986462d8d4e10e"; 184 + hash = "sha256-b1Ay3GfBHwubnrGi4lflPiaqGfzWtABEbEiE8+ZTL90="; 185 + rev = "8a1cfb373587ea4c9bb1468b7c986462d8d4e10e"; 186 + }; 187 + } 188 + { 189 + name = "superhtml-0.4.0-Y7MdPIiGDQCtVmQuV56farDTjm2AB_GyzQbM9gwJhNTL"; 190 + path = fetchZigArtifact { 191 + name = "superhtml"; 192 + url = "git+https://github.com/kristoff-it/superhtml#8bb212b1044b4740c14bc73b649adab58a0cb481"; 193 + hash = "sha256-G7yC+YmDZsIvLW6EmeaqQlpLWhcQuHg/DiljxB2vV4Q="; 194 + rev = "8bb212b1044b4740c14bc73b649adab58a0cb481"; 195 + }; 196 + } 197 + { 198 + name = "known_folders-0.0.0-Fy-PJtLDAADGDOwYwMkVydMSTp_aN-nfjCZw6qPQ2ECL"; 199 + path = fetchZigArtifact { 200 + name = "known_folders"; 201 + url = "git+https://github.com/ziglibs/known-folders#aa24df42183ad415d10bc0a33e6238c437fc0f59"; 202 + hash = "sha256-YiJ2lfG1xsGFMO6flk/BMhCqJ3kB3MnOX5fnfDEcmMY="; 203 + rev = "aa24df42183ad415d10bc0a33e6238c437fc0f59"; 204 + }; 205 + } 206 + { 207 + name = "zeit-0.6.0-5I6bkyJ8AgAS1_0NDvfxmFsBDTOxkZXtLUHrmPjcmt-K"; 208 + path = fetchZigArtifact { 209 + name = "zeit"; 210 + url = "git+https://github.com/kristoff-it/zeit?ref=writergate#06ec40445cc477fea5a8369f1ba3881e2a3c00eb"; 211 + hash = "sha256-3zhZrL1g7sIox+7+trc7dVs4Cf7SBmJM0zJy861aYuw="; 212 + rev = "06ec40445cc477fea5a8369f1ba3881e2a3c00eb"; 213 + }; 214 + } 215 + { 216 + name = "flow_syntax-0.1.0-X8jOoSUNAQD_lAmm4kWMCsqYGQNUBP6qGldpxR_6D7GC"; 217 + path = fetchZigArtifact { 218 + name = "flow_syntax"; 219 + url = "git+https://github.com/kristoff-it/flow-syntax?ref=writergate#727dfa247d6cfe99939c98e5bcb440dfeefc261d"; 220 + hash = "sha256-x/z/xey2RAd6n3uqlBWuoAtpzR9Fkkh9jhhK+ijJ4h0="; 221 + rev = "727dfa247d6cfe99939c98e5bcb440dfeefc261d"; 222 + }; 223 + } 224 + { 225 + name = "tree_sitter-0.22.4-150-g7e3f5726-z0LhyN88UicDHlr22vQnOZ3DW9NWN1gOhDwLuCRXvrh2"; 226 + path = fetchZigArtifact { 227 + name = "tree_sitter"; 228 + url = "https://github.com/neurocyte/tree-sitter/releases/download/master-f1f032d24f621e2ee4deab1c424d3bf9fb809f6e/source.tar.gz"; 229 + hash = "sha256-w0164ZvB2jHRRlumkwGsROZHInHj5z+Ny4e/x0tPrtU="; 230 + }; 231 + } 232 + { 233 + name = "cbor-1.0.0-RcQE_N3yAADXjbyvhsmTQ6lf22l1nYgePq5FT8NaC4ic"; 234 + path = fetchZigArtifact { 235 + name = "cbor"; 236 + url = "git+https://github.com/neurocyte/cbor#6eccce0b984296e7d05c20d83933cb31530e4fac"; 237 + hash = "sha256-bEaRaqXT4bhVp4XV1DLRwUVVo9NesKpi8qGEF1nEMO4="; 238 + rev = "6eccce0b984296e7d05c20d83933cb31530e4fac"; 239 + }; 240 + } 241 + { 242 + name = "ziggy-0.1.0-kTg8v0NABgAXpvuVY5f4frwE7xvH44KnARR0q6QB1_1a"; 243 + path = fetchZigArtifact { 244 + name = "ziggy"; 245 + url = "git+https://github.com/kristoff-it/ziggy#e95c85cb58773c43e9d94c0b9422ae84697e68a1"; 246 + hash = "sha256-6vqUPY/fpGuM1K4HfgpL/dRy7Na6fJ/t+Pe/12b1wqE="; 247 + rev = "e95c85cb58773c43e9d94c0b9422ae84697e68a1"; 248 + }; 249 + } 250 + { 251 + name = "supermd-0.1.0-3Mco3GeSWACjTJjWf3XRGAUOHVS-MZPei9wAXY4c1KNI"; 252 + path = fetchZigArtifact { 253 + name = "supermd"; 254 + url = "git+https://github.com/kristoff-it/supermd#a2e77c355df79c6991d13cd56904d2b7562597ef"; 255 + hash = "sha256-Yd1JxCDXdOvGG8hSOfzz/BZYPcCrQDsyoEbGjv9HypY="; 256 + rev = "a2e77c355df79c6991d13cd56904d2b7562597ef"; 257 + }; 258 + } 259 + { 260 + name = "cmark_gfm-0.1.0-uQgTK6WZFwCG9y7_Z0IkCINtmMTwvEZTyVh_6nsaMVPq"; 261 + path = fetchZigArtifact { 262 + name = "gfm"; 263 + url = "git+https://github.com/kristoff-it/cmark-gfm#b96c27a5152b9124d657dee7fb1186d0a13c1fe4"; 264 + hash = "sha256-NlTZ5if3h1zZjJs0JTMB8SsvTQM+4OSsScvFUbfq9nQ="; 265 + rev = "b96c27a5152b9124d657dee7fb1186d0a13c1fe4"; 266 + }; 267 + } 268 + { 269 + name = "ziggy-0.1.0-kTg8v9g9BgB0Tdid89m2yC7a-LtZB8sD3v4pWzHCp7MO"; 270 + path = fetchZigArtifact { 271 + name = "ziggy"; 272 + url = "git+https://github.com/kristoff-it/ziggy#f3dcc37beab34478a67aa9680f581edb0bc4d482"; 273 + hash = "sha256-7vfUkgaPdM3GNaQ6Sy6PC4P/AOyBncTJC1v0p46f0is="; 274 + rev = "f3dcc37beab34478a67aa9680f581edb0bc4d482"; 275 + }; 276 + } 277 + { 278 + name = "lsp_kit-0.1.0-bi_PL5IyCgCh6ZNq1VaDklFqV0u23xNSXONjfDpYceJr"; 279 + path = fetchZigArtifact { 280 + name = "lsp_kit"; 281 + url = "git+https://github.com/zigtools/lsp-kit#e58d398b4058eea09d984d5d039eddd243e535ad"; 282 + hash = "sha256-0q1l1zAUC/9/bSvj0ziheVMQmsTVUPPYR3RHS+FeEs0="; 283 + rev = "e58d398b4058eea09d984d5d039eddd243e535ad"; 284 + }; 285 + } 286 + ]
+131
build.zig.zon2json-lock
··· 1 + { 2 + "zine-0.11.0-ou6nIAqaFgACa6oCBi9kCQGBHKfw6X6qBMANoZxBBtUW": { 3 + "name": "zine", 4 + "url": "git+https://github.com/kristoff-it/zine?ref=main#d87290eff8d42580f92444334a1de3640fb67bda", 5 + "hash": "sha256-nlRIXZWjprQlvRjnCMSu3JO1cZMPfr8S0fw2Z8UH9mw=", 6 + "rev": "d87290eff8d42580f92444334a1de3640fb67bda" 7 + }, 8 + "afl_kit-0.1.0-NdJ3cvscAACLEvjZTB017IAks_Uq5ux1qpA-klDe384Y": { 9 + "name": "afl_kit", 10 + "url": "git+https://github.com/kristoff-it/zig-afl-kit#8ef04d1db48650345dca68da1e1b8f2615125c40", 11 + "hash": "sha256-J0xbmsokjlhOav9KLlH2y4qiSgBit4nS+x6Q10L2OSA=", 12 + "rev": "8ef04d1db48650345dca68da1e1b8f2615125c40" 13 + }, 14 + "AFLplusplus-4.21.0-aA1y4UtxAABpnSIF7ARSYDMRyqNcI-2Rwa5UeSsuw70v": { 15 + "name": "AFLplusplus", 16 + "url": "git+https://github.com/allyourcodebase/AFLplusplus#a52f1376e2d49720c39e4abf4aa4944afbf82191", 17 + "hash": "sha256-AlkULC20/RTGMTPk2xWcdXCQlWn3sY3VrD0NRRoTZqY=", 18 + "rev": "a52f1376e2d49720c39e4abf4aa4944afbf82191" 19 + }, 20 + "N-V-__8AAKE4uAAJZgEcPdaXnWqoj-IwYf3G2h9YSm-x92gg": { 21 + "name": "AFLplusplus", 22 + "url": "https://github.com/AFLplusplus/AFLplusplus/archive/v4.21c.tar.gz", 23 + "hash": "sha256-EffHfTfP9uf2WsfMVbq3kB4MYgjoRaOHZDlNBO1WezA=" 24 + }, 25 + "lsp_kit-0.1.0-bi_PL18tCgAMyrZ0tgn_0PXnGEvxGWeNkkRygfe9pX9u": { 26 + "name": "lsp_kit", 27 + "url": "git+https://github.com/zigtools/lsp-kit#4835b9d3d3cf732fe1830189d81f331c68fb3e77", 28 + "hash": "sha256-PqTlZcOow9vGLzI40zvqDI18OhJKzMg8RFLxB4x88/c=", 29 + "rev": "4835b9d3d3cf732fe1830189d81f331c68fb3e77" 30 + }, 31 + "scripty-0.1.0-LKK5O2zEAADkO2rJa_QbMWwC_YmFnUKC384wwMeBGOQv": { 32 + "name": "scripty", 33 + "url": "git+https://github.com/kristoff-it/scripty#3d56bb62a1aec0b07b634aea42ec46e72e017e33", 34 + "hash": "sha256-4BAcj6UU1BpKrcmM3zGwyV5Lxah9wL8esUSucfmlHzs=", 35 + "rev": "3d56bb62a1aec0b07b634aea42ec46e72e017e33" 36 + }, 37 + "tracy-0.0.0-4Xw-1pwwAABTfMgoDP1unCbZDZhJEfict7XCBGF6IdIn": { 38 + "name": "tracy", 39 + "url": "git+https://github.com/kristoff-it/tracy#67d2d89e351048c76fc6d161e0ac09d8a831dc60", 40 + "hash": "sha256-BKo1bhua/u+f5Z//ailur5aSHZWp3GiC0iwmVLrGZkE=", 41 + "rev": "67d2d89e351048c76fc6d161e0ac09d8a831dc60" 42 + }, 43 + "mime-3.0.0-zwmL--0gAAByELrj57sRm2EFBRzjKLFrMgHQcs7sFZev": { 44 + "name": "mime", 45 + "url": "git+https://github.com/kristoff-it/mime#a2ed0cba3b1463217168034ffed8c1604e72598d", 46 + "hash": "sha256-j/O/6pJg0hj3ytAMVBQwGjCRtaR+GYy8X7oqfIpuRi8=", 47 + "rev": "a2ed0cba3b1463217168034ffed8c1604e72598d" 48 + }, 49 + "wuffs-0.4.0-alpha.9+3837.20240914-3CHJgcMFAACyPvxsC7b48pJv9dPkPa4pSrB2VFbCXTfK": { 50 + "name": "wuffs", 51 + "url": "git+https://github.com/allyourcodebase/wuffs#5822dc06c75b30d53082debf68c90193cb2b2608", 52 + "hash": "sha256-Ung7shyFg+/I5Po393tWMp6Jb0Ia14pRJOUF36fr71c=", 53 + "rev": "5822dc06c75b30d53082debf68c90193cb2b2608" 54 + }, 55 + "N-V-__8AANEmUgA6aZZZKbfNMv6DSs5In7CDFU6nInu_Y6aY": { 56 + "name": "wuffs", 57 + "url": "https://github.com/google/wuffs-mirror-release-c/archive/90e4d81a6a8b7b601e8e568da32a105d7f7705e5.tar.gz", 58 + "hash": "sha256-3b68j7dAXnqRd+/fvfDfGK0CtgcxHZ5gSVnHwPYjavQ=" 59 + }, 60 + "N-V-__8AALShqgXkvqYU6f__FrA22SMWmi2TXCJjNTO1m8XJ": { 61 + "name": "frameworks", 62 + "url": "git+https://github.com/hexops/xcode-frameworks.git#8a1cfb373587ea4c9bb1468b7c986462d8d4e10e", 63 + "hash": "sha256-b1Ay3GfBHwubnrGi4lflPiaqGfzWtABEbEiE8+ZTL90=", 64 + "rev": "8a1cfb373587ea4c9bb1468b7c986462d8d4e10e" 65 + }, 66 + "superhtml-0.4.0-Y7MdPIiGDQCtVmQuV56farDTjm2AB_GyzQbM9gwJhNTL": { 67 + "name": "superhtml", 68 + "url": "git+https://github.com/kristoff-it/superhtml#8bb212b1044b4740c14bc73b649adab58a0cb481", 69 + "hash": "sha256-G7yC+YmDZsIvLW6EmeaqQlpLWhcQuHg/DiljxB2vV4Q=", 70 + "rev": "8bb212b1044b4740c14bc73b649adab58a0cb481" 71 + }, 72 + "known_folders-0.0.0-Fy-PJtLDAADGDOwYwMkVydMSTp_aN-nfjCZw6qPQ2ECL": { 73 + "name": "known_folders", 74 + "url": "git+https://github.com/ziglibs/known-folders#aa24df42183ad415d10bc0a33e6238c437fc0f59", 75 + "hash": "sha256-YiJ2lfG1xsGFMO6flk/BMhCqJ3kB3MnOX5fnfDEcmMY=", 76 + "rev": "aa24df42183ad415d10bc0a33e6238c437fc0f59" 77 + }, 78 + "zeit-0.6.0-5I6bkyJ8AgAS1_0NDvfxmFsBDTOxkZXtLUHrmPjcmt-K": { 79 + "name": "zeit", 80 + "url": "git+https://github.com/kristoff-it/zeit?ref=writergate#06ec40445cc477fea5a8369f1ba3881e2a3c00eb", 81 + "hash": "sha256-3zhZrL1g7sIox+7+trc7dVs4Cf7SBmJM0zJy861aYuw=", 82 + "rev": "06ec40445cc477fea5a8369f1ba3881e2a3c00eb" 83 + }, 84 + "flow_syntax-0.1.0-X8jOoSUNAQD_lAmm4kWMCsqYGQNUBP6qGldpxR_6D7GC": { 85 + "name": "flow_syntax", 86 + "url": "git+https://github.com/kristoff-it/flow-syntax?ref=writergate#727dfa247d6cfe99939c98e5bcb440dfeefc261d", 87 + "hash": "sha256-x/z/xey2RAd6n3uqlBWuoAtpzR9Fkkh9jhhK+ijJ4h0=", 88 + "rev": "727dfa247d6cfe99939c98e5bcb440dfeefc261d" 89 + }, 90 + "tree_sitter-0.22.4-150-g7e3f5726-z0LhyN88UicDHlr22vQnOZ3DW9NWN1gOhDwLuCRXvrh2": { 91 + "name": "tree_sitter", 92 + "url": "https://github.com/neurocyte/tree-sitter/releases/download/master-f1f032d24f621e2ee4deab1c424d3bf9fb809f6e/source.tar.gz", 93 + "hash": "sha256-w0164ZvB2jHRRlumkwGsROZHInHj5z+Ny4e/x0tPrtU=" 94 + }, 95 + "cbor-1.0.0-RcQE_N3yAADXjbyvhsmTQ6lf22l1nYgePq5FT8NaC4ic": { 96 + "name": "cbor", 97 + "url": "git+https://github.com/neurocyte/cbor#6eccce0b984296e7d05c20d83933cb31530e4fac", 98 + "hash": "sha256-bEaRaqXT4bhVp4XV1DLRwUVVo9NesKpi8qGEF1nEMO4=", 99 + "rev": "6eccce0b984296e7d05c20d83933cb31530e4fac" 100 + }, 101 + "ziggy-0.1.0-kTg8v0NABgAXpvuVY5f4frwE7xvH44KnARR0q6QB1_1a": { 102 + "name": "ziggy", 103 + "url": "git+https://github.com/kristoff-it/ziggy#e95c85cb58773c43e9d94c0b9422ae84697e68a1", 104 + "hash": "sha256-6vqUPY/fpGuM1K4HfgpL/dRy7Na6fJ/t+Pe/12b1wqE=", 105 + "rev": "e95c85cb58773c43e9d94c0b9422ae84697e68a1" 106 + }, 107 + "supermd-0.1.0-3Mco3GeSWACjTJjWf3XRGAUOHVS-MZPei9wAXY4c1KNI": { 108 + "name": "supermd", 109 + "url": "git+https://github.com/kristoff-it/supermd#a2e77c355df79c6991d13cd56904d2b7562597ef", 110 + "hash": "sha256-Yd1JxCDXdOvGG8hSOfzz/BZYPcCrQDsyoEbGjv9HypY=", 111 + "rev": "a2e77c355df79c6991d13cd56904d2b7562597ef" 112 + }, 113 + "cmark_gfm-0.1.0-uQgTK6WZFwCG9y7_Z0IkCINtmMTwvEZTyVh_6nsaMVPq": { 114 + "name": "gfm", 115 + "url": "git+https://github.com/kristoff-it/cmark-gfm#b96c27a5152b9124d657dee7fb1186d0a13c1fe4", 116 + "hash": "sha256-NlTZ5if3h1zZjJs0JTMB8SsvTQM+4OSsScvFUbfq9nQ=", 117 + "rev": "b96c27a5152b9124d657dee7fb1186d0a13c1fe4" 118 + }, 119 + "ziggy-0.1.0-kTg8v9g9BgB0Tdid89m2yC7a-LtZB8sD3v4pWzHCp7MO": { 120 + "name": "ziggy", 121 + "url": "git+https://github.com/kristoff-it/ziggy#f3dcc37beab34478a67aa9680f581edb0bc4d482", 122 + "hash": "sha256-7vfUkgaPdM3GNaQ6Sy6PC4P/AOyBncTJC1v0p46f0is=", 123 + "rev": "f3dcc37beab34478a67aa9680f581edb0bc4d482" 124 + }, 125 + "lsp_kit-0.1.0-bi_PL5IyCgCh6ZNq1VaDklFqV0u23xNSXONjfDpYceJr": { 126 + "name": "lsp_kit", 127 + "url": "git+https://github.com/zigtools/lsp-kit#e58d398b4058eea09d984d5d039eddd243e535ad", 128 + "hash": "sha256-0q1l1zAUC/9/bSvj0ziheVMQmsTVUPPYR3RHS+FeEs0=", 129 + "rev": "e58d398b4058eea09d984d5d039eddd243e535ad" 130 + } 131 + }
+1 -1
content/index.smd
··· 19 19 20 20 Donec nibh risus, porta ut turpis quis, maximus ornare neque. Integer elementum, libero nec venenatis egestas, ante neque accumsan dolor, non semper dui augue sit amet sem. Mauris faucibus, orci at pellentesque mollis, nunc dolor dapibus lacus, id iaculis est lectus a urna. Maecenas rutrum cursus lectus sit amet hendrerit. Duis purus quam, scelerisque in eros ut, egestas iaculis nunc. Nam consequat nisl non mauris bibendum, vitae consequat odio sodales. Vestibulum porttitor, mi a interdum tristique, turpis augue faucibus tortor, sed tincidunt ligula eros at urna. 21 21 22 - Etiam porttitor, lorem quis consectetur cursus, urna sem molestie ipsum, sit amet condimentum magna sapien eu leo. Sed vel consequat felis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque sit amet odio id augue finibus molestie. Vivamus ut odio luctus, pharetra purus sed, venenatis enim. Nam laoreet leo vel sollicitudin lacinia. Praesent mollis dignissim justo ac aliquam. Suspendisse volutpat nisl eget blandit tincidunt. Praesent hendrerit quis tellus sodales condimentum. Morbi rhoncus, felis vitae sollicitudin sodales, nisi justo fringilla nibh, a ultrices arcu enim non leo. Maecenas mollis neque nec odio malesuada suscipit. In vel quam turpis. Quisque a nisi urna. Nunc ut tellus sit amet mauris condimentum ultricies quis in nulla. 22 + Etiam porttitor, lorem quis consectetur cursus, urna sem molestie ipsum, `sit amet condimentum magna sapien` eu leo. Sed vel consequat felis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque sit amet odio id augue finibus molestie. Vivamus ut odio luctus, pharetra purus sed, venenatis enim. Nam laoreet leo vel sollicitudin lacinia. Praesent mollis dignissim justo ac aliquam. Suspendisse volutpat nisl eget blandit tincidunt. Praesent hendrerit quis tellus sodales condimentum. Morbi rhoncus, felis vitae sollicitudin sodales, nisi justo fringilla nibh, a ultrices arcu enim non leo. Maecenas mollis neque nec odio malesuada suscipit. In vel quam turpis. Quisque a nisi urna. Nunc ut tellus sit amet mauris condimentum ultricies quis in nulla. 23 23 24 24 Donec eu consequat elit, sed vehicula lorem. Integer vel leo eget sem auctor ultricies. Etiam consequat ultrices ultricies. Quisque nec risus nulla. In molestie, ligula nec fringilla tincidunt, dui magna consequat sapien, non interdum felis nulla in odio. Etiam non dolor semper, feugiat ante pretium, varius elit. Nam a tortor at lorem ultrices tincidunt. Suspendisse neque quam, luctus et diam sed, viverra accumsan leo. Cras eu lacus blandit, vulputate leo porta, pellentesque quam. Aenean ullamcorper ex ac finibus tincidunt. Etiam sit amet massa cursus metus bibendum aliquam. Quisque pulvinar tincidunt nisi, et ornare ligula dictum at. 25 25
+497
content/notes/markdown-overview.smd
··· 1 + --- 2 + .title = "Markdown Overview", 3 + .author = "Jakob Speer", 4 + .date = @date("2025-07-22"), 5 + .layout = "root.shtml", 6 + .draft = false, 7 + .description = "A small overview of Markdown features supported by this site" 8 + --- 9 + 10 + Learn how to apply basic formatting to your notes, using [Markdown](https://daringfireball.net/projects/markdown/). For more advanced formatting syntax, refer to [Advanced formatting syntax](https://help.obsidian.md/advanced-syntax). 11 + 12 + ## Paragraphs 13 + 14 + To create paragraphs in Markdown, use a **blank line** to separate blocks of text. Each block of text separated by a blank line is treated as a distinct paragraph. 15 + 16 + ```md 17 + This is a paragraph. 18 + 19 + This is another paragraph. 20 + ``` 21 + 22 + This is a paragraph. 23 + 24 + This is another paragraph. 25 + 26 + A blank line between lines of text creates separate paragraphs. This is the default behavior in Markdown. 27 + 28 + Multiple blank spaces 29 + 30 + Multiple adjacent blank spaces within and between paragraphs collapse into a single space when displayed in [Reading view](https://help.obsidian.md/edit-and-read#Reading%20view) or on [Obsidian Publish](https://help.obsidian.md/publish) sites. 31 + 32 + ```md 33 + Multiple adjacent spaces 34 + 35 + and multiple newlines between paragraphs. 36 + ``` 37 + 38 + > Multiple adjacent spaces 39 + > 40 + > and multiple newlines between paragraphs. 41 + 42 + If you want to prevent spaces from collapsing or add multiple blank spaces, you can use the `&nbsp;` (non-breaking space) or `<br>` (line break) HTML tags. 43 + 44 + ### Line breaks 45 + 46 + By default in Obsidian, pressing `Enter`  once will create a new line in your note, but this is treated as a  *continuation*  of the same paragraph in the rendered output, following typical Markdown behavior. To insert a line break  *within* a paragraph without starting a new paragraph, you can either: 47 + 48 + - Add **two spaces**  at the end of a line before pressing  `Enter`, or 49 + - Use the shortcut `Shift + Enter` to directly insert a line break. 50 + 51 + Why don't multiple `Enter` presses create more line breaks in reading view? 52 + 53 + Obsidian includes a **Strict Line Breaks** setting, which makes Obsidian follow the standard Markdown specification for line breaks. 54 + 55 + To enable this feature: 56 + 57 + 1. Open **Settings**. 58 + 2. Go to the **Editor** tab. 59 + 3. Enable **Strict Line Breaks**. 60 + 61 + When **Strict Line Breaks** is enabled in Obsidian, line breaks have three distinct behaviors depending on how the lines are separated: 62 + 63 + **Single return with no spaces**: A single  `Enter` with no trailing spaces will combine the two separate lines into a single line when rendered. 64 + 65 + ```md 66 + line one 67 + line two 68 + ``` 69 + 70 + Renders as: 71 + 72 + line one line two 73 + 74 + **Single return with two or more trailing spaces**: If you add two or more spaces at the end of the first line before pressing  `Enter`, the two lines remain part of the same paragraph, but are broken by a line break (HTML `<br>` element). We'll use two underscores to stand in for spaces in this example. 75 + 76 + ```md 77 + line three__ 78 + line four 79 + ``` 80 + 81 + Renders as: 82 + 83 + line three 84 + 85 + line four 86 + 87 + **Double return (with or without trailing spaces)**: Pressing `Enter` twice (or more) separates the lines into two distinct paragraphs (HTML `<p>` elements), regardless of whether you add spaces at the end of the first line. 88 + 89 + ```md 90 + line five 91 + 92 + line six 93 + ``` 94 + 95 + Renders as: 96 + 97 + line five 98 + 99 + line six 100 + 101 + ## Headings 102 + 103 + To create a heading, add up to six `#` symbols before your heading text. The number of `#` symbols determines the size of the heading. 104 + 105 + ```md 106 + # This is a heading 1 107 + ## This is a heading 2 108 + ### This is a heading 3 109 + #### This is a heading 4 110 + ##### This is a heading 5 111 + ###### This is a heading 6 112 + ``` 113 + 114 + ## This is a heading 1 115 + 116 + ## This is a heading 2 117 + 118 + ### This is a heading 3 119 + 120 + #### This is a heading 4 121 + 122 + ##### This is a heading 5 123 + 124 + ###### This is a heading 6 125 + 126 + ## Bold, italics, highlights 127 + 128 + Text formatting can also be applied using [Editing shortcuts](https://help.obsidian.md/editing-shortcuts). 129 + 130 + | Style | Syntax | Example | Output | 131 + | --- | --- | --- | --- | 132 + | Bold | `** **` or `__ __` | `**Bold text**` | **Bold text** | 133 + | Italic | `* *` or `_ _` | `*Italic text*` | *Italic text* | 134 + | Strikethrough | `~~ ~~` | `~~Striked out text~~` | ~~Striked out text~~ | 135 + | Highlight | `== ==` | `==Highlighted text==` | ==Highlighted text== | 136 + | Bold and nested italic | `** **` and `_ _` | `**Bold text and _nested italic_ text**` | **Bold text and *nested italic* text** | 137 + | Bold and italic | `*** ***` or `___ ___` | `***Bold and italic text***` | ***Bold and italic text*** | 138 + 139 + Formatting can be forced to display in plain text by adding a backslash `\` in front of it. 140 + 141 + \*\*This line will not be bold\*\* 142 + 143 + ```markdown 144 + \*\*This line will not be bold\*\* 145 + ``` 146 + 147 + \* *This line will be italic and show the asterisks* \* 148 + 149 + ```markdown 150 + This line will be italic and show the asterisks 151 + ``` 152 + 153 + ## Internal links 154 + 155 + Obsidian supports two formats for [internal links](https://help.obsidian.md/links) between notes: 156 + 157 + - Wikilink: `[[Three laws of motion]]` 158 + - Markdown: `[Three laws of motion](Three%20laws%20of%20motion.md)` 159 + 160 + ## External links 161 + 162 + If you want to link to an external URL, you can create an inline link by surrounding the link text in brackets (`[ ]`), and then the URL in parentheses (`( )`). 163 + 164 + ```md 165 + [Obsidian Help](https://help.obsidian.md) 166 + ``` 167 + 168 + [Obsidian Help](https://help.obsidian.md/) 169 + 170 + You can also create external links to files in other vaults, by linking to an [Obsidian URI](https://help.obsidian.md/Extending+Obsidian/Obsidian+URI). 171 + 172 + ```md 173 + [Note](obsidian://open?vault=MainVault&file=Note.md) 174 + ``` 175 + 176 + ### Escape blank spaces in links 177 + 178 + If your URL contains blank spaces, you must escape them by replacing them with `%20`. 179 + 180 + ```md 181 + [My Note](obsidian://open?vault=MainVault&file=My%20Note.md) 182 + ``` 183 + 184 + You can also escape the URL by wrapping it with angled brackets (`< >`). 185 + 186 + ```md 187 + [My Note](<obsidian://open?vault=MainVault&file=My Note.md>) 188 + ``` 189 + 190 + ## External images 191 + 192 + You can add images with external URLs, by adding a `!` symbol before an [external link](https://help.obsidian.md/syntax#External%20links). 193 + 194 + ```md 195 + ![Engelbart](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg) 196 + ``` 197 + 198 + ![Engelbart](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg) 199 + 200 + You can change the image dimensions, by adding `|640x480` to the link destination, where 640 is the width and 480 is the height. 201 + 202 + ```md 203 + ![Engelbart|100x145](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg) 204 + ``` 205 + 206 + If you only specify the width, the image scales according to its original aspect ratio. For example: 207 + 208 + ```md 209 + ![Engelbart|100](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg) 210 + ``` 211 + 212 + > # [Tip]($block) 213 + > If you want to add an image from inside your vault, you can also [embed an image in a note](https://help.obsidian.md/embeds#Embed%20an%20image%20in%20a%20note). 214 + 215 + ## Quotes 216 + 217 + You can quote text by adding a `>` symbols before the text. 218 + 219 + ```md 220 + > Human beings face ever more complex and urgent problems, and their effectiveness in dealing with these problems is a matter that is critical to the stability and continued progress of society. 221 + 222 + \- Doug Engelbart, 1961 223 + ``` 224 + 225 + > Human beings face ever more complex and urgent problems, and their effectiveness in dealing with these problems is a matter that is critical to the stability and continued progress of society. 226 + 227 + \- Doug Engelbart, 1961 228 + 229 + Tip 230 + 231 + You can turn your quote into a [callout](https://help.obsidian.md/callouts) by adding `[!info]` as the first line in a quote. 232 + 233 + ## Lists 234 + 235 + You can create an unordered list by adding a `-`, `*`, or `+` before the text. 236 + 237 + ```md 238 + - First list item 239 + - Second list item 240 + - Third list item 241 + ``` 242 + 243 + - First list item 244 + - Second list item 245 + - Third list item 246 + 247 + To create an ordered list, start each line with a number followed by a `.` or `)` symbol. 248 + 249 + ```md 250 + 1. First list item 251 + 2. Second list item 252 + 3. Third list item 253 + ``` 254 + 255 + 1. First list item 256 + 2. Second list item 257 + 3. Third list item 258 + 259 + ```md 260 + 1) First list item 261 + 2) Second list item 262 + 3) Third list item 263 + ``` 264 + 265 + 1. First list item 266 + 2. Second list item 267 + 3. Third list item 268 + 269 + You can use `shift + enter` to insert a [line break](https://help.obsidian.md/syntax#Line%20breaks) within an ordered list without altering the numbering. 270 + 271 + ```md 272 + 1. First list item 273 + 274 + 2. Second list item 275 + 3. Third list item 276 + 277 + 4. Fourth list item 278 + 5. Fifth list item 279 + 6. Sixth list item 280 + ``` 281 + 282 + ### Task lists 283 + 284 + To create a task list, start each list item with a hyphen and space followed by `[ ]`. 285 + 286 + ```md 287 + - [x] This is a completed task. 288 + - [ ] This is an incomplete task. 289 + ``` 290 + 291 + - This is a completed task. 292 + - This is an incomplete task. 293 + 294 + You can toggle a task in Reading view by selecting the checkbox. 295 + 296 + Tip 297 + 298 + You can use any character inside the brackets to mark it as complete. 299 + 300 + ```md 301 + - [x] Milk 302 + - [?] Eggs 303 + - [-] Eggs 304 + ``` 305 + - Milk 306 + - Eggs 307 + - Eggs 308 + 309 + ### Nesting lists 310 + 311 + You can nest any type of list—ordered, unordered, or task lists—under any other type of list. 312 + 313 + To create a nested list, indent one or more list items. You can mix list types within a nested structure: 314 + 315 + ```md 316 + 1. First list item 317 + 1. Ordered nested list item 318 + 2. Second list item 319 + - Unordered nested list item 320 + ``` 321 + 322 + 1. First list item 323 + 1. Ordered nested list item 324 + 2. Second list item 325 + - Unordered nested list item 326 + 327 + Similarly, you can create a nested task list by indenting one or more list items: 328 + 329 + ```md 330 + - [ ] Task item 1 331 + - [ ] Subtask 1 332 + - [ ] Task item 2 333 + - [ ] Subtask 1 334 + ``` 335 + 336 + - Task item 1 337 + - Subtask 1 338 + - Task item 2 339 + - Subtask 1 340 + 341 + Use `Tab`  or  `Shift+Tab` to indent or unindent selected list items to easily organize them. 342 + 343 + ## Horizontal rule 344 + 345 + You can use three or more stars `***`, hyphens `---`, or underscore `___` on its own line to add a horizontal bar. You can also separate symbols using spaces. 346 + 347 + --- 348 + 349 + ## Code 350 + 351 + You can format code both inline within a sentence, or in its own block. 352 + 353 + ### Inline code 354 + 355 + You can format code within a sentence using single backticks. 356 + 357 + ```md 358 + \`backticks\` 359 + ``` 360 + 361 + Text inside `backticks` on a line will be formatted like code. 362 + 363 + If you want to put backticks in an inline code block, surround it with double backticks like so: inline ``code with a backtick ` inside``. 364 + 365 + ### Code blocks 366 + 367 + To format code as a block, enclose it with three backticks or three tildes. 368 + 369 + ```md 370 + \`\`\` 371 + cd ~/Desktop 372 + \`\`\` 373 + ``` 374 + 375 + ```md 376 + ~~~ 377 + cd ~/Desktop 378 + ~~~ 379 + ``` 380 + 381 + ```md 382 + cd ~/Desktop 383 + ``` 384 + 385 + You can also create a code block by indenting the text using `Tab` or 4 blank spaces. 386 + 387 + ```md 388 + cd ~/Desktop 389 + ``` 390 + 391 + You can add syntax highlighting to a code block, by adding a language code after the first set of backticks. 392 + 393 + ```md 394 + \`\`\`js 395 + function fancyAlert(arg) { 396 + if(arg) { 397 + $.facebox({div:'#foo'}) 398 + } 399 + } 400 + \`\`\` 401 + ``` 402 + 403 + ```js 404 + function fancyAlert(arg) { 405 + if(arg) { 406 + $.facebox({div:'#foo'}) 407 + } 408 + } 409 + ``` 410 + 411 + Obsidian uses Prism for syntax highlighting. For more information, refer to [Supported languages](https://prismjs.com/#supported-languages). 412 + 413 + Note 414 + 415 + [Source mode](https://help.obsidian.md/edit-and-read#Source%20mode) and [Live Preview](https://help.obsidian.md/edit-and-read#Live%20Preview) do not support PrismJS, and may render syntax highlighting differently. 416 + 417 + ## Footnotes 418 + 419 + You can add footnotes[^1] to your notes using the following syntax: 420 + 421 + ```md 422 + This is a simple footnote[^1]. 423 + 424 + [^1]: This is the referenced text. 425 + [^2]: Add 2 spaces at the start of each new line. 426 + This lets you write footnotes that span multiple lines. 427 + [^note]: Named footnotes still appear as numbers, but can make it easier to identify and link references. 428 + ``` 429 + 430 + You can also inline footnotes in a sentence. Note that the caret goes outside the brackets. [^This is an inline footnote.][^2] 431 + 432 + ```md 433 + You can also use inline footnotes. [^This is an inline footnote.] 434 + ``` 435 + 436 + Note 437 + 438 + Inline footnotes only work in reading view, not in Live Preview. 439 + 440 + ## Comments 441 + 442 + ```md 443 + This is an %%inline%% comment. 444 + 445 + %% 446 + This is a block comment. 447 + 448 + Block comments can span multiple lines. 449 + %% 450 + ``` 451 + 452 + ## Escaping Markdown Syntax 453 + 454 + In some cases, you may need to display special characters in Markdown, such as `*`, `_`, or `#`, without triggering their formatting. To display these characters literally, place a backslash (`\`) before them. 455 + 456 + Common characters to escape 457 + 458 + - Asterisk: `\*` 459 + - Underscore: `\_` 460 + - Hashtag: `\#` 461 + - Backtick: `` \` `` 462 + - Pipe (used in tables): `\|` 463 + - Tilde: `\~` 464 + 465 + ```md 466 + \*This text will not be italicized\*. 467 + ``` 468 + 469 + \*This text will not be italicized\*. 470 + 471 + When working with numbered lists, you may need to escape the period after the number to prevent automatic list formatting. Place the backslash (`\`) before the period, **not** before the number. 472 + 473 + ```md 474 + 1\. This won't be a list item. 475 + ``` 476 + 477 + 1\. This won't be a list item. 478 + 479 + ## Learn more 480 + 481 + To learn more advanced formatting syntax, such as tables, diagrams, and math expressions, refer to [Advanced formatting syntax](https://help.obsidian.md/advanced-syntax). 482 + 483 + To learn more about how Obsidian parses Markdown, refer to [Obsidian Flavored Markdown](https://help.obsidian.md/obsidian-flavored-markdown). 484 + 485 + --- 486 + 487 + [^1]: This is a footnote with math and code. 488 + 489 + ```=mathtex 490 + x+\sqrt{1-x^2} 491 + ``` 492 + 493 + ```md 494 + [^1]: This is a footnote. 495 + ``` 496 + 497 + [^2]: Not supported by supermd
+45
content/notes/markdown-overview/foo.zig
··· 1 + const std = @import("std"); 2 + const zine = @import("zine"); 3 + 4 + pub fn build(b: *std.Build) !void { 5 + const compile_stylesheet = b.step("stylesheet", "Compile altagos.css stylesheet from scss files"); 6 + compile_stylesheet.result_cached = false; 7 + std.debug.assert(try compile_stylesheet.addDirectoryWatchInput(b.path("style"))); 8 + 9 + const compile_stylesheet_cmd_out = b.run(&.{ 10 + "sass", 11 + "--no-source-map", 12 + "--no-color", 13 + "style/index.scss", 14 + }); 15 + const compile_stylesheet_cmd = b.addWriteFile("altagos.css", compile_stylesheet_cmd_out); 16 + const install_stylesheet = b.addInstallDirectory(.{ 17 + .source_dir = compile_stylesheet_cmd.getDirectory(), 18 + .install_dir = .prefix, 19 + .install_subdir = "style", 20 + }); 21 + install_stylesheet.step.dependOn(&compile_stylesheet_cmd.step); 22 + 23 + const stylesheet = zine.BuildAsset{ 24 + .name = "altagos.css", 25 + .lp = b.path("zig-out/style/altagos.css"), 26 + .install_path = "altagos.css", 27 + .install_always = true, 28 + }; 29 + compile_stylesheet.dependOn(&install_stylesheet.step); 30 + 31 + const website = zine.website(b, .{ 32 + .install_path = "website", 33 + .build_assets = &.{stylesheet}, 34 + }); 35 + website.step.dependOn(compile_stylesheet); 36 + b.getInstallStep().dependOn(&website.step); 37 + 38 + const serve = b.step("serve", "Start the Zine dev server"); 39 + const run_zine = zine.serve(b, .{ 40 + .build_assets = &.{stylesheet}, 41 + // .debug = .{ .scopes = &.{"serve"} }, 42 + }); 43 + run_zine.step.dependOn(&install_stylesheet.step); 44 + serve.dependOn(&run_zine.step); 45 + }
+6 -6
flake.lock
··· 36 36 }, 37 37 "nixpkgs_2": { 38 38 "locked": { 39 - "lastModified": 1754531935, 40 - "narHash": "sha256-Y9qoYxg7waoMhiRhEmG+mDs6Jx2yk5eB7MlGDPMNs8E=", 39 + "lastModified": 1754616465, 40 + "narHash": "sha256-uOOXepnXGHCv4203sHEqKGipoiWvMmmw1NGN7+tZ5sQ=", 41 41 "owner": "nixos", 42 42 "repo": "nixpkgs", 43 - "rev": "41752cc1a38a8c993cf4e92ab8df640803554c7a", 43 + "rev": "53befe95a9700fa9bb6b93e913c02a8d7f0cd22e", 44 44 "type": "github" 45 45 }, 46 46 "original": { ··· 76 76 "nixpkgs": "nixpkgs_2" 77 77 }, 78 78 "locked": { 79 - "lastModified": 1754532129, 80 - "narHash": "sha256-nScPs0Hzm71rXe6H6jVy9Gp+t7MEOQcm3gjAj/L0Qvg=", 79 + "lastModified": 1754618516, 80 + "narHash": "sha256-sksfQlGgYfKIpa0iZ6lxNIunPUbolF8Jgp/toS1MlJ0=", 81 81 "owner": "Cloudef", 82 82 "repo": "zig2nix", 83 - "rev": "f656a4a84e2182fb0c99132b214d136ebc087388", 83 + "rev": "873604c1af7c1a91936ef97377804d91d8fb5c0f", 84 84 "type": "github" 85 85 }, 86 86 "original": {
+5 -5
flake.nix
··· 52 52 53 53 # For bundling with nix bundle for running outside of nix 54 54 # example: https://github.com/ralismark/nix-appimage 55 - # apps.bundle = { 56 - # type = "app"; 57 - # program = "${packages.foreign}/bin/master"; 58 - # }; 55 + apps.bundle = { 56 + type = "app"; 57 + program = "${packages.foreign}/bin/master"; 58 + }; 59 59 60 60 # nix run . 61 61 apps.default = env.app [] "zig build serve -- \"$@\""; ··· 64 64 apps.build = env.app [] "zig build \"$@\""; 65 65 66 66 # nix run .#stylesheet 67 - apps.test = env.app [] "zig build stylesheet -- \"$@\""; 67 + apps.stylesheet = env.app [] "zig build stylesheet -- \"$@\""; 68 68 69 69 # nix run .#zig2nix 70 70 apps.zig2nix = env.app [] "zig2nix \"$@\"";
+20 -1
layouts/root.shtml
··· 13 13 <link rel="shortcut icon" href="$site.asset('favicon/favicon.ico').link()"> 14 14 <link rel="apple-touch-icon" sizes="180x180" href="$site.asset('favicon/apple-touch-icon.png').link()"> 15 15 <link rel="manifest" href="$site.asset('favicon/site.webmanifest').link()"> 16 + <!-- Phsophor Icons --> 17 + <link rel="preload" href="https://cdn.jsdelivr.net/npm/@phosphor-icons/web@2.1.1/src/regular/style.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 18 + <noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@phosphor-icons/web@2.1.1/src/regular/style.css"></noscript> 19 + <link rel="preload" href="https://cdn.jsdelivr.net/npm/@phosphor-icons/web@2.1.1/src/bold/style.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 20 + <noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@phosphor-icons/web@2.1.1/src/bold/style.css"></noscript> 16 21 <!-- mathtex --> 17 22 <link rel="preload" as="style" type="text/css" href="$site.asset('math/Temml-Local.css').link()" onload="this.onload=null;this.rel='stylesheet'"> 18 23 <noscript><link rel="stylesheet" href="$site.asset('math/Temml-Local.css').link()"></noscript> ··· 25 30 <main> 26 31 <h1 :text="$page.title"></h1> 27 32 <div :html="$page.content()"></div> 33 + <ctx :if="$page.footnotes?()"> 34 + <div class="footnotes"> 35 + <ol :loop="$if"> 36 + <li id="$loop.it.def_id"> 37 + <div class="footnote"><ctx :html="$loop.it.html()"></ctx></div> 38 + <ctx :loop="$loop.it.ref_ids"> 39 + <div class="back"> 40 + <a href="$loop.it.prefix('#')"><i class="ph-bold ph-arrow-up"></i>Back</a> 41 + </div> 42 + </ctx> 43 + </li> 44 + </ol> 45 + </div> 46 + </ctx> 28 47 </main> 29 48 <footer> 30 49 <div> ··· 40 59 <a href="https://sr.ht/~altagos" rel="me">Sourcehut</a> 41 60 </li> 42 61 <li> 43 - <a rel="me" href="https://hachyderm.io/@altagos">Mastodon</a> 62 + <a href="https://hachyderm.io/@altagos" rel="me">Mastodon</a> 44 63 </li> 45 64 </ul> 46 65 </div>
+3
style/base/layout.scss
··· 6 6 7 7 background-color: var(--bg1); 8 8 color: var(--fg1); 9 + 10 + font-size-adjust: ex-height 0.5; 11 + -webkit-text-size-adjust: 100%; 9 12 } 10 13 11 14 $head_height: 16px;
+193 -1
style/base/theme.scss
··· 1 - body { 1 + :root { 2 + /* 3 + Theme: kanagawa, Source: https://github.com/rebelot/kanagawa.nvim/blob/debe91547d7fb1eef34ce26a5106f277fbfdd109/lua/kanagawa/colors.lua 4 + Licensed under the MIT license: https://github.com/rebelot/kanagawa.nvim/blob/master/LICENSE 5 + */ 6 + 7 + // Bg Shades 8 + --sumiInk0: #16161d; 9 + --sumiInk1: #181820; 10 + --sumiInk2: #1a1a22; 11 + --sumiInk3: #1f1f28; 12 + --sumiInk4: #2a2a37; 13 + --sumiInk5: #363646; 14 + --sumiInk6: #54546d; // fg 15 + 16 + // Popup and Floats 17 + --waveBlue1: #223249; 18 + --waveBlue2: #2d4f67; 19 + 20 + // Diff and Git 21 + --winterGreen: #2b3328; 22 + --winterYellow: #49443c; 23 + --winterRed: #43242b; 24 + --winterBlue: #252535; 25 + --autumnGreen: #76946a; 26 + --autumnRed: #c34043; 27 + --autumnYellow: #dca561; 28 + 29 + // Diag 30 + --samuraiRed: #e82424; 31 + --roninYellow: #ff9e3b; 32 + --waveAqua1: #6a9589; 33 + --dragonBlue: #658594; 34 + 35 + // Fg and Comments 36 + --oldWhite: #c8c093; 37 + --fujiWhite: #dcd7ba; 38 + --fujiGray: #727169; 39 + 40 + --oniViolet: #957fb8; 41 + --oniViolet2: #b8b4d0; 42 + --crystalBlue: #7e9cd8; 43 + --springViolet1: #938aa9; 44 + --springViolet2: #9cabca; 45 + --springBlue: #7fb4ca; 46 + --lightBlue: #a3d4d5; // unused yet 47 + --waveAqua2: #7aa89f; // improve lightness: desaturated greenish Aqua 48 + 49 + // --waveAqua2 : #68AD99; 50 + // --waveAqua4 : #7AA880; 51 + // --waveAqua5 : #6CAF95; 52 + // --waveAqua3 : #68AD99; 53 + 54 + --springGreen: #98bb6c; 55 + --boatYellow1: #938056; 56 + --boatYellow2: #c0a36e; 57 + --carpYellow: #e6c384; 58 + 59 + --sakuraPink: #d27e99; 60 + --waveRed: #e46876; 61 + --peachRed: #ff5d62; 62 + --surimiOrange: #ffa066; 63 + --katanaGray: #717c7c; 64 + 65 + --dragonBlack0: #0d0c0c; 66 + --dragonBlack1: #12120f; 67 + --dragonBlack2: #1d1c19; 68 + --dragonBlack3: #181616; 69 + --dragonBlack4: #282727; 70 + --dragonBlack5: #393836; 71 + --dragonBlack6: #625e5a; 72 + 73 + --dragonWhite: #c5c9c5; 74 + --dragonGreen: #87a987; 75 + --dragonGreen2: #8a9a7b; 76 + --dragonPink: #a292a3; 77 + --dragonOrange: #b6927b; 78 + --dragonOrange2: #b98d7b; 79 + --dragonGray: #a6a69c; 80 + --dragonGray2: #9e9b93; 81 + --dragonGray3: #7a8382; 82 + --dragonBlue2: #8ba4b0; 83 + --dragonViolet: #8992a7; 84 + --dragonRed: #c4746e; 85 + --dragonAqua: #8ea4a2; 86 + --dragonAsh: #737c73; 87 + --dragonTeal: #949fb5; 88 + --dragonYellow: #c4b28a; //#a99c8b; 89 + // #8a9aa3; 90 + 91 + --lotusInk1: #545464; 92 + --lotusInk2: #43436c; 93 + --lotusGray: #dcd7ba; 94 + --lotusGray2: #716e61; 95 + --lotusGray3: #8a8980; 96 + --lotusWhite0: #d5cea3; 97 + --lotusWhite1: #dcd5ac; 98 + --lotusWhite2: #e5ddb0; 99 + --lotusWhite3: #f2ecbc; 100 + --lotusWhite4: #e7dba0; 101 + --lotusWhite5: #e4d794; 102 + --lotusViolet1: #a09cac; 103 + --lotusViolet2: #766b90; 104 + --lotusViolet3: #c9cbd1; 105 + --lotusViolet4: #624c83; 106 + --lotusBlue1: #c7d7e0; 107 + --lotusBlue2: #b5cbd2; 108 + --lotusBlue3: #9fb5c9; 109 + --lotusBlue4: #4d699b; 110 + --lotusBlue5: #5d57a3; 111 + --lotusGreen: #6f894e; 112 + --lotusGreen2: #6e915f; 113 + --lotusGreen3: #b7d0ae; 114 + --lotusPink: #b35b79; 115 + --lotusOrange: #cc6d00; 116 + --lotusOrange2: #e98a00; 117 + --lotusYellow: #77713f; 118 + --lotusYellow2: #836f4a; 119 + --lotusYellow3: #de9800; 120 + --lotusYellow4: #f9d791; 121 + --lotusRed: #c84053; 122 + --lotusRed2: #d7474b; 123 + --lotusRed3: #e82424; 124 + --lotusRed4: #d9a594; 125 + --lotusAqua: #597b75; 126 + --lotusAqua2: #5e857a; 127 + --lotusTeal1: #4e8ca2; 128 + --lotusTeal2: #6693bf; 129 + --lotusTeal3: #5a7785; 130 + --lotusCyan: #d7e3d8; 131 + 132 + /* Theme: Kanagawa Dragon */ 133 + 134 + // UI 135 + --fg: var(--dragonWhite); 136 + --fg-dim: var(--oldWhite); 137 + --fg-reverse: var(--waveBlue1); 138 + 139 + --bg-dim: var(--dragonBlack1); 140 + --bg-gutter: var(--dragonBlack4); 141 + 142 + --bg-m3: var(--dragonBlack0); 143 + --bg-m2: var(--dragonBlack1); 144 + --bg-m1: var(--dragonBlack2); 145 + --bg: var(--dragonBlack3); 146 + --bg-p1: var(--dragonBlack4); 147 + --bg-p2: var(--dragonBlack5); 148 + 149 + --ui-special: var(--dragonGray3); 150 + --ui-whitespace: var(--dragonBlack6); 151 + --ui-nontext: var(--dragonBlack6); 152 + 153 + // Syntax 154 + --syn-string: var(--dragonGreen2); 155 + --syn-variable: var(--fg); // none 156 + --syn-number: var(--dragonPink); 157 + --syn-constant: var(--dragonOrange); 158 + --syn-identifier: var(--dragonYellow); 159 + --syn-parameter: var(--dragonGray); 160 + --syn-fun: var(--dragonBlue2); 161 + --syn-statement: var(--dragonViolet); 162 + --syn-keyword: var(--dragonViolet); 163 + --syn-operator: var(--dragonRed); 164 + --syn-preproc: var(--dragonRed); 165 + --syn-type: var(--dragonAqua); 166 + --syn-regex: var(--dragonRed); 167 + --syn-deprecated: var(--katanaGray); 168 + --syn-punct: var(--dragonGray2); 169 + --syn-comment: var(--dragonAsh); 170 + --syn-special1: var(--dragonTeal); 171 + --syn-special2: var(--dragonRed); 172 + --syn-special3: var(--dragonRed); 173 + 174 + // Diff 175 + --diff-add: var(--winterGreen); 176 + --diff-delete: var(--winterRed); 177 + --diff-change: var(--winterBlue); 178 + --diff-text: var(--winterYellow); 179 + 180 + // Diagnostics 181 + --diag-ok: var(--springGreen); 182 + --diag-error: var(--samuraiRed); 183 + --diag-warning: var(--roninYellow); 184 + --diag-info: var(--dragonBlue); 185 + --diag-hint: var(--waveAqua1); 186 + 187 + // VCS 188 + --vcs-added: var(--autumnGreen); 189 + --vcs-removed: var(--autumnRed); 190 + --vcs-changed: var(--autumnYellow); 191 + 192 + /* End Theme: kanagawa */ 193 + 2 194 --palette0: #0d0c0c; 3 195 --palette1: #c4746e; 4 196 --palette2: #8a9a7b;
+2
style/base/variables.scss
··· 1 1 body { 2 2 // Font 3 3 --font-size: 16px; 4 + --medium-size: 14px; 5 + 4 6 --normal-weight: 400; 5 7 }
style/content/callouts.scss

This is a binary file and will not be displayed.

+288
style/content/code.scss
··· 1 + code { 2 + font-family: "TX-02", monospace; 3 + font-size: var(--medium-size); 4 + 5 + padding: 3px 8px; 6 + 7 + background-color: var(--palette0); 8 + border-radius: 5px; 9 + } 10 + 11 + pre:has(code) { 12 + font-family: "TX-02", monospace; 13 + line-height: 1.4; 14 + 15 + background-color: var(--palette0); 16 + border-radius: 5px; 17 + 18 + padding: 10px 15px; 19 + overflow-y: auto; 20 + 21 + code { 22 + padding: unset; 23 + border-radius: unset; 24 + } 25 + } 26 + 27 + figure:has(pre > code) { 28 + margin: auto; 29 + 30 + figcaption { 31 + text-align: center; 32 + } 33 + } 34 + 35 + @mixin style($color: --none, $font-weight: 400, $font-style: normal) { 36 + color: var($color); 37 + font-weight: $font-weight; 38 + font-style: $font-style; 39 + } 40 + 41 + // Syntax 42 + 43 + code > .variable { 44 + // color: var(--fg); 45 + @include style($color: --fg); 46 + } 47 + 48 + code > .variable_builtin { 49 + // color: var(--syn-special2); 50 + // font-style: italic; 51 + @include style($color: --syn-special2, $font-style: italic); 52 + } 53 + 54 + code > .comment { 55 + // color: var(--syn-comment); 56 + @include style($color: --syn-comment, $font-style: italic); 57 + } 58 + 59 + code > .constant, 60 + code > .markup_math, 61 + code > .attribute { 62 + // color: var(--syn-constant); 63 + @include style($color: --syn-constant); 64 + } 65 + 66 + code > .string, 67 + code > .character, 68 + code > .markup_raw { 69 + // color: var(--syn-string); 70 + @include style($color: --syn-string); 71 + } 72 + 73 + code > .number, 74 + code > .float { 75 + // color: var(--syn-number); 76 + @include style($color: --syn-number); 77 + } 78 + 79 + code > .boolean { 80 + // color: var(--syn-constant); 81 + // font-weight: bold; 82 + @include style($color: --syn-constant, $font-weight: bold); 83 + } 84 + 85 + code > .identifier { 86 + // color: var(--syn-identifier); 87 + @include style($color: --syn-identifier); 88 + } 89 + 90 + code > .function, 91 + code > .function_call, 92 + code > .markup_heading { 93 + // color: var(--syn-fun); 94 + @include style($color: --syn-fun); 95 + } 96 + 97 + code > .statement { 98 + // color: var(--syn-statement); 99 + @include style($color: --syn-statement); 100 + } 101 + 102 + code > .operator { 103 + // color: var(--syn-operator); 104 + @include style($color: --syn-operator); 105 + } 106 + 107 + code > .keyword, 108 + code > .markup_environment { 109 + // color: var(--syn-keyword); 110 + @include style($color: --syn-keyword); 111 + } 112 + 113 + code > .preproc, 114 + code > .keyword_import { 115 + // color: var(--syn-preproc); 116 + @include style($color: --syn-preproc); 117 + } 118 + 119 + code > .type, 120 + code > .constructor.constant { 121 + // color: var(--syn-type); 122 + @include style($color: --syn-type); 123 + } 124 + 125 + code > .type_builtin, 126 + code > .function_builtin { 127 + @include style($color: --syn-keyword); 128 + } 129 + 130 + code > .special { 131 + // color: var(--syn-special1); 132 + @include style($color: --syn-special1); 133 + } 134 + 135 + code > .delimiter { 136 + // color: var(--syn-punct); 137 + @include style($color: --syn-punct); 138 + } 139 + 140 + code > .underlined { 141 + // color: var(--syn-special1); 142 + text-decoration: underline; 143 + @include style($color: --syn-special1); 144 + } 145 + 146 + code > .bold { 147 + // font-weight: bold; 148 + @include style($font-weight: bold); 149 + } 150 + 151 + code > .italic { 152 + // font-style: italic; 153 + @include style($font-style: italic); 154 + } 155 + 156 + code > .error { 157 + // color: var(--diag-error); 158 + @include style($color: --diag-error); 159 + } 160 + 161 + code > .todo { 162 + // color: var(--fg-reverse); 163 + background-color: var(--diag-info); 164 + // font-weight: bold; 165 + @include style($color: --fg-reverse, $font-weight: bold); 166 + } 167 + 168 + // Treesitter 169 + 170 + code > .variable_parameter { 171 + // color: var(--syn-parameter); 172 + @include style($color: --syn-parameter); 173 + } 174 + 175 + code > .variable_member, 176 + code > .property, 177 + code > .tag_attribute { 178 + // color: var(--syn-identifier); 179 + @include style($color: --syn-identifier); 180 + } 181 + 182 + code > .string_regexp { 183 + // color: var(--syn-regex); 184 + @include style($color: --syn-regex); 185 + } 186 + 187 + code > .string_escape { 188 + // color: var(--syn-regex); 189 + // font-weight: bold; 190 + @include style($color: --syn-regex, $font-weight: bold); 191 + } 192 + 193 + code > .string_special_symbol { 194 + // color: var(--syn-identifier); 195 + @include style($color: --syn-identifier); 196 + } 197 + 198 + code > .string_special_url, 199 + code > .markup_link_url { 200 + // color: var(--syn-special1); 201 + text-decoration: wavy; 202 + @include style($color: --syn-special1); 203 + } 204 + 205 + code > .constructor { 206 + // color: var(--syn-special1); 207 + @include style($color: --syn-special1); 208 + } 209 + 210 + code > .keyword_operator { 211 + // color: var(--syn-operator); 212 + // font-weight: bold; 213 + @include style($color: --syn-operator, $font-weight: bold); 214 + } 215 + 216 + code > .keyword_modifier, 217 + code > .keyword_function, 218 + code > .keyword_type { 219 + @include style($color: --syn-keyword, $font-style: italic); 220 + } 221 + 222 + code > .keyword_return { 223 + @include style($color: --syn-special3, $font-style: italic); 224 + } 225 + 226 + code > .keyword_conditional { 227 + @include style($color: --syn-keyword, $font-style: italic); 228 + } 229 + 230 + code > .keyword_exception { 231 + @include style($color: --syn-special3, $font-weight: bold); 232 + } 233 + 234 + code > .punctuation_delimiter, 235 + code > .punctuation_bracket, 236 + code > .tag_delimiter { 237 + @include style($color: --syn-punct); 238 + } 239 + 240 + code > .punctuation_special { 241 + @include style($color: --syn-special1); 242 + } 243 + 244 + code > .comment_error { 245 + background-color: var(--diag-error); 246 + @include style($color: --fg, $font-weight: bold); 247 + } 248 + 249 + code > .comment_warning { 250 + background-color: var(--diag-warning); 251 + @include style($color: --fg, $font-weight: bold); 252 + } 253 + 254 + code > .comment_note { 255 + color: var(--fg); 256 + background-color: var(--diag-hint); 257 + font-weight: bold; 258 + @include style($color: --syn-constant); 259 + } 260 + 261 + code > .markup_strong { 262 + @include style($font-weight: bold); 263 + } 264 + 265 + code > .markup_italic { 266 + @include style($font-style: italic); 267 + } 268 + 269 + code > .markup_strikethrough { 270 + text-decoration: line-through; 271 + } 272 + 273 + code > .markup_quote { 274 + @include style($color: --syn-parameter); 275 + } 276 + 277 + code > .diff_plus { 278 + // color: var(--vcs-added); 279 + @include style($color: --syn-added); 280 + } 281 + 282 + code > .diff_minus { 283 + @include style($color: --syn-removed); 284 + } 285 + 286 + code > .diff_delta { 287 + @include style($color: --syn-changed); 288 + }
+15
style/content/footnotes.scss
··· 1 + .footnotes { 2 + line-height: 0.5; 3 + 4 + .back { 5 + a { 6 + text-decoration: none; 7 + } 8 + 9 + .ph-bold { 10 + font-size: 32px; 11 + position: relative; 12 + top: 2px; 13 + } 14 + } 15 + }
+12 -6
style/content/text.scss
··· 3 3 font-size: var(--font-size); 4 4 font-weight: var(--normal-weight); 5 5 font-style: normal; 6 - font-feature-settings: "liga" "calt"; 6 + font-feature-settings: 7 + "liga" 1, 8 + "calt" 1; 7 9 8 10 line-height: 1.6; 11 + } 9 12 10 - ::selection, 11 - ::-moz-selection { 12 - background: var(--selection-background); 13 - color: var(--selection-foreground); 14 - } 13 + ::selection { 14 + background-color: var(--selection-background); 15 + color: var(--selection-foreground); 16 + } 17 + 18 + ::-moz-selection { 19 + background-color: var(--selection-background); 20 + color: var(--selection-foreground); 15 21 } 16 22 17 23 a {
+2
style/index.scss
··· 9 9 10 10 // Content 11 11 @use "content/text.scss"; 12 + @use "content/code.scss"; 13 + @use "content/footnotes.scss"; 12 14 @use "content/footer.scss";
+3
zine.ziggy
··· 27 27 "fonts/AndadaPro-SemiBold.woff2", 28 28 "fonts/AndadaPro-SemiBoldItalic.woff2", 29 29 "math/Temml.woff2", 30 + 31 + // Other 32 + "math/Temml-Local.css.map", 30 33 ], 31 34 }