Generate web slides from Markdoc
0
fork

Configure Feed

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

refactor: use Deno workspaces

Split the project into `cli`, `server`, `core`, `wc`, and `runtime`

graham.systems 5c749632 61c95d92

verified
+331 -103
+1 -1
cli/build.ts packages/cli/build.ts
··· 1 1 import { Command } from "@cliffy/command"; 2 - import { renderPresentationHtml } from "../core/renderer.ts"; 2 + import { renderPresentationHtml } from "@morkdeck/core"; 3 3 4 4 export const build = new Command() 5 5 .arguments("<source:string>")
+1 -1
cli/dev.ts packages/cli/dev.ts
··· 1 1 import { Command } from "@cliffy/command"; 2 - import { startDevServer } from "../server/dev.ts"; 2 + import { startDevServer } from "@morkdeck/server"; 3 3 4 4 export const dev = new Command() 5 5 .arguments("<source:string>")
core/markdoc-config.ts packages/core/markdoc-config.ts
core/nodes/fence.ts packages/core/nodes/fence.ts
core/renderer.ts packages/core/renderer.ts
core/types.ts packages/core/types.ts
+9 -18
deno.json
··· 1 1 { 2 + "workspace": [ 3 + "./packages/cli", 4 + "./packages/core", 5 + "./packages/runtime", 6 + "./packages/server", 7 + "./packages/wc" 8 + ], 2 9 "tasks": { 3 - "build": "deno bundle --platform browser runtime/morkdeck.ts -o dist/morkdeck.js", 4 - "dev": "deno run --allow-env --allow-run --allow-read --allow-write scripts/dev.ts" 10 + "build": "deno run --allow-env --allow-read --allow-write --allow-run packages/cli/main.ts build", 11 + "dev": "deno run --allow-env --allow-read --allow-write --allow-run packages/cli/main.ts dev" 5 12 }, 6 13 "compilerOptions": { 7 14 "lib": [ ··· 13 20 ] 14 21 }, 15 22 "imports": { 16 - "@cliffy/command": "jsr:@cliffy/command@1.0.0-rc.8", 17 - "@deno/esbuild-plugin": "jsr:@deno/esbuild-plugin@^1.1.5", 18 - "@es-toolkit/es-toolkit": "jsr:@es-toolkit/es-toolkit@^1.39.9", 19 - "@eta-dev/eta": "jsr:@eta-dev/eta@^3.5.0", 20 - "@lit/context": "npm:@lit/context@^1.1.6", 21 - "@markdoc/markdoc": "https://esm.sh/@markdoc/markdoc@0.5.2", 22 - "@std/assert": "jsr:@std/assert@1", 23 - "@std/async": "jsr:@std/async@^1.0.14", 24 - "@std/http": "jsr:@std/http@^1.0.20", 25 - "@std/path": "jsr:@std/path@^1.1.1", 26 - "esbuild": "npm:esbuild@^0.25.8", 27 - "hast": "npm:@types/hast@^3.0.4", 28 - "hast-util-is-element": "npm:hast-util-is-element@^3.0.0", 29 - "lit": "npm:lit@^3.3.1", 30 - "motion": "npm:motion@^12.23.12", 31 - "shiki": "npm:shiki@^3.8.1", 32 23 "xstate": "npm:xstate@^5.20.2" 33 24 } 34 25 }
+225 -49
deno.lock
··· 9 9 "jsr:@deno/loader@~0.3.3": "0.3.4", 10 10 "jsr:@es-toolkit/es-toolkit@^1.39.9": "1.39.9", 11 11 "jsr:@eta-dev/eta@^3.5.0": "3.5.0", 12 - "jsr:@std/assert@1": "1.0.13", 13 12 "jsr:@std/async@^1.0.14": "1.0.14", 14 13 "jsr:@std/cli@^1.0.21": "1.0.21", 15 14 "jsr:@std/encoding@^1.0.10": "1.0.10", ··· 31 30 "npm:@types/node@*": "22.15.15", 32 31 "npm:esbuild@~0.25.5": "0.25.8", 33 32 "npm:esbuild@~0.25.8": "0.25.8", 33 + "npm:esbuild@~0.25.9": "0.25.9", 34 34 "npm:hast-util-is-element@3": "3.0.0", 35 35 "npm:lit@^3.3.1": "3.3.1", 36 36 "npm:motion@^12.23.12": "12.23.12", ··· 80 80 "@eta-dev/eta@3.5.0": { 81 81 "integrity": "6b70827efc14c7cbf08498ac7a922ecab003641caf3852a6cb5b1b12ee58fb37" 82 82 }, 83 - "@std/assert@1.0.13": { 84 - "integrity": "ae0d31e41919b12c656c742b22522c32fb26ed0cba32975cb0de2a273cb68b29", 85 - "dependencies": [ 86 - "jsr:@std/internal@^1.0.6" 87 - ] 88 - }, 89 83 "@std/async@1.0.14": { 90 84 "integrity": "62e954a418652c704d37563a3e54a37d4cf0268a9dcaeac1660cc652880b5326" 91 85 }, ··· 146 140 "os": ["aix"], 147 141 "cpu": ["ppc64"] 148 142 }, 143 + "@esbuild/aix-ppc64@0.25.9": { 144 + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", 145 + "os": ["aix"], 146 + "cpu": ["ppc64"] 147 + }, 149 148 "@esbuild/android-arm64@0.25.8": { 150 149 "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==", 150 + "os": ["android"], 151 + "cpu": ["arm64"] 152 + }, 153 + "@esbuild/android-arm64@0.25.9": { 154 + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", 151 155 "os": ["android"], 152 156 "cpu": ["arm64"] 153 157 }, ··· 156 160 "os": ["android"], 157 161 "cpu": ["arm"] 158 162 }, 163 + "@esbuild/android-arm@0.25.9": { 164 + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", 165 + "os": ["android"], 166 + "cpu": ["arm"] 167 + }, 159 168 "@esbuild/android-x64@0.25.8": { 160 169 "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==", 161 170 "os": ["android"], 162 171 "cpu": ["x64"] 163 172 }, 173 + "@esbuild/android-x64@0.25.9": { 174 + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", 175 + "os": ["android"], 176 + "cpu": ["x64"] 177 + }, 164 178 "@esbuild/darwin-arm64@0.25.8": { 165 179 "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==", 166 180 "os": ["darwin"], 167 181 "cpu": ["arm64"] 168 182 }, 183 + "@esbuild/darwin-arm64@0.25.9": { 184 + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", 185 + "os": ["darwin"], 186 + "cpu": ["arm64"] 187 + }, 169 188 "@esbuild/darwin-x64@0.25.8": { 170 189 "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==", 171 190 "os": ["darwin"], 172 191 "cpu": ["x64"] 173 192 }, 193 + "@esbuild/darwin-x64@0.25.9": { 194 + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", 195 + "os": ["darwin"], 196 + "cpu": ["x64"] 197 + }, 174 198 "@esbuild/freebsd-arm64@0.25.8": { 175 199 "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==", 176 200 "os": ["freebsd"], 177 201 "cpu": ["arm64"] 178 202 }, 203 + "@esbuild/freebsd-arm64@0.25.9": { 204 + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", 205 + "os": ["freebsd"], 206 + "cpu": ["arm64"] 207 + }, 179 208 "@esbuild/freebsd-x64@0.25.8": { 180 209 "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==", 181 210 "os": ["freebsd"], 182 211 "cpu": ["x64"] 183 212 }, 213 + "@esbuild/freebsd-x64@0.25.9": { 214 + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", 215 + "os": ["freebsd"], 216 + "cpu": ["x64"] 217 + }, 184 218 "@esbuild/linux-arm64@0.25.8": { 185 219 "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==", 186 220 "os": ["linux"], 187 221 "cpu": ["arm64"] 188 222 }, 223 + "@esbuild/linux-arm64@0.25.9": { 224 + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", 225 + "os": ["linux"], 226 + "cpu": ["arm64"] 227 + }, 189 228 "@esbuild/linux-arm@0.25.8": { 190 229 "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==", 191 230 "os": ["linux"], 192 231 "cpu": ["arm"] 193 232 }, 233 + "@esbuild/linux-arm@0.25.9": { 234 + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", 235 + "os": ["linux"], 236 + "cpu": ["arm"] 237 + }, 194 238 "@esbuild/linux-ia32@0.25.8": { 195 239 "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==", 196 240 "os": ["linux"], 197 241 "cpu": ["ia32"] 198 242 }, 243 + "@esbuild/linux-ia32@0.25.9": { 244 + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", 245 + "os": ["linux"], 246 + "cpu": ["ia32"] 247 + }, 199 248 "@esbuild/linux-loong64@0.25.8": { 200 249 "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==", 201 250 "os": ["linux"], 202 251 "cpu": ["loong64"] 203 252 }, 253 + "@esbuild/linux-loong64@0.25.9": { 254 + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", 255 + "os": ["linux"], 256 + "cpu": ["loong64"] 257 + }, 204 258 "@esbuild/linux-mips64el@0.25.8": { 205 259 "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==", 206 260 "os": ["linux"], 207 261 "cpu": ["mips64el"] 208 262 }, 263 + "@esbuild/linux-mips64el@0.25.9": { 264 + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", 265 + "os": ["linux"], 266 + "cpu": ["mips64el"] 267 + }, 209 268 "@esbuild/linux-ppc64@0.25.8": { 210 269 "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==", 270 + "os": ["linux"], 271 + "cpu": ["ppc64"] 272 + }, 273 + "@esbuild/linux-ppc64@0.25.9": { 274 + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", 211 275 "os": ["linux"], 212 276 "cpu": ["ppc64"] 213 277 }, ··· 216 280 "os": ["linux"], 217 281 "cpu": ["riscv64"] 218 282 }, 283 + "@esbuild/linux-riscv64@0.25.9": { 284 + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", 285 + "os": ["linux"], 286 + "cpu": ["riscv64"] 287 + }, 219 288 "@esbuild/linux-s390x@0.25.8": { 220 289 "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==", 221 290 "os": ["linux"], 222 291 "cpu": ["s390x"] 223 292 }, 293 + "@esbuild/linux-s390x@0.25.9": { 294 + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", 295 + "os": ["linux"], 296 + "cpu": ["s390x"] 297 + }, 224 298 "@esbuild/linux-x64@0.25.8": { 225 299 "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==", 226 300 "os": ["linux"], 227 301 "cpu": ["x64"] 228 302 }, 303 + "@esbuild/linux-x64@0.25.9": { 304 + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", 305 + "os": ["linux"], 306 + "cpu": ["x64"] 307 + }, 229 308 "@esbuild/netbsd-arm64@0.25.8": { 230 309 "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==", 231 310 "os": ["netbsd"], 232 311 "cpu": ["arm64"] 233 312 }, 313 + "@esbuild/netbsd-arm64@0.25.9": { 314 + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", 315 + "os": ["netbsd"], 316 + "cpu": ["arm64"] 317 + }, 234 318 "@esbuild/netbsd-x64@0.25.8": { 235 319 "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==", 320 + "os": ["netbsd"], 321 + "cpu": ["x64"] 322 + }, 323 + "@esbuild/netbsd-x64@0.25.9": { 324 + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", 236 325 "os": ["netbsd"], 237 326 "cpu": ["x64"] 238 327 }, ··· 241 330 "os": ["openbsd"], 242 331 "cpu": ["arm64"] 243 332 }, 333 + "@esbuild/openbsd-arm64@0.25.9": { 334 + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", 335 + "os": ["openbsd"], 336 + "cpu": ["arm64"] 337 + }, 244 338 "@esbuild/openbsd-x64@0.25.8": { 245 339 "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==", 246 340 "os": ["openbsd"], 247 341 "cpu": ["x64"] 248 342 }, 343 + "@esbuild/openbsd-x64@0.25.9": { 344 + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", 345 + "os": ["openbsd"], 346 + "cpu": ["x64"] 347 + }, 249 348 "@esbuild/openharmony-arm64@0.25.8": { 250 349 "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==", 251 350 "os": ["openharmony"], 252 351 "cpu": ["arm64"] 253 352 }, 353 + "@esbuild/openharmony-arm64@0.25.9": { 354 + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", 355 + "os": ["openharmony"], 356 + "cpu": ["arm64"] 357 + }, 254 358 "@esbuild/sunos-x64@0.25.8": { 255 359 "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==", 256 360 "os": ["sunos"], 257 361 "cpu": ["x64"] 258 362 }, 363 + "@esbuild/sunos-x64@0.25.9": { 364 + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", 365 + "os": ["sunos"], 366 + "cpu": ["x64"] 367 + }, 259 368 "@esbuild/win32-arm64@0.25.8": { 260 369 "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==", 261 370 "os": ["win32"], 262 371 "cpu": ["arm64"] 263 372 }, 373 + "@esbuild/win32-arm64@0.25.9": { 374 + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", 375 + "os": ["win32"], 376 + "cpu": ["arm64"] 377 + }, 264 378 "@esbuild/win32-ia32@0.25.8": { 265 379 "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==", 266 380 "os": ["win32"], 267 381 "cpu": ["ia32"] 268 382 }, 383 + "@esbuild/win32-ia32@0.25.9": { 384 + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", 385 + "os": ["win32"], 386 + "cpu": ["ia32"] 387 + }, 269 388 "@esbuild/win32-x64@0.25.8": { 270 389 "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==", 271 390 "os": ["win32"], 272 391 "cpu": ["x64"] 273 392 }, 393 + "@esbuild/win32-x64@0.25.9": { 394 + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", 395 + "os": ["win32"], 396 + "cpu": ["x64"] 397 + }, 274 398 "@lit-labs/ssr-dom-shim@1.4.0": { 275 399 "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==" 276 400 }, ··· 403 527 "esbuild@0.25.8": { 404 528 "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==", 405 529 "optionalDependencies": [ 406 - "@esbuild/aix-ppc64", 407 - "@esbuild/android-arm", 408 - "@esbuild/android-arm64", 409 - "@esbuild/android-x64", 410 - "@esbuild/darwin-arm64", 411 - "@esbuild/darwin-x64", 412 - "@esbuild/freebsd-arm64", 413 - "@esbuild/freebsd-x64", 414 - "@esbuild/linux-arm", 415 - "@esbuild/linux-arm64", 416 - "@esbuild/linux-ia32", 417 - "@esbuild/linux-loong64", 418 - "@esbuild/linux-mips64el", 419 - "@esbuild/linux-ppc64", 420 - "@esbuild/linux-riscv64", 421 - "@esbuild/linux-s390x", 422 - "@esbuild/linux-x64", 423 - "@esbuild/netbsd-arm64", 424 - "@esbuild/netbsd-x64", 425 - "@esbuild/openbsd-arm64", 426 - "@esbuild/openbsd-x64", 427 - "@esbuild/openharmony-arm64", 428 - "@esbuild/sunos-x64", 429 - "@esbuild/win32-arm64", 430 - "@esbuild/win32-ia32", 431 - "@esbuild/win32-x64" 530 + "@esbuild/aix-ppc64@0.25.8", 531 + "@esbuild/android-arm@0.25.8", 532 + "@esbuild/android-arm64@0.25.8", 533 + "@esbuild/android-x64@0.25.8", 534 + "@esbuild/darwin-arm64@0.25.8", 535 + "@esbuild/darwin-x64@0.25.8", 536 + "@esbuild/freebsd-arm64@0.25.8", 537 + "@esbuild/freebsd-x64@0.25.8", 538 + "@esbuild/linux-arm@0.25.8", 539 + "@esbuild/linux-arm64@0.25.8", 540 + "@esbuild/linux-ia32@0.25.8", 541 + "@esbuild/linux-loong64@0.25.8", 542 + "@esbuild/linux-mips64el@0.25.8", 543 + "@esbuild/linux-ppc64@0.25.8", 544 + "@esbuild/linux-riscv64@0.25.8", 545 + "@esbuild/linux-s390x@0.25.8", 546 + "@esbuild/linux-x64@0.25.8", 547 + "@esbuild/netbsd-arm64@0.25.8", 548 + "@esbuild/netbsd-x64@0.25.8", 549 + "@esbuild/openbsd-arm64@0.25.8", 550 + "@esbuild/openbsd-x64@0.25.8", 551 + "@esbuild/openharmony-arm64@0.25.8", 552 + "@esbuild/sunos-x64@0.25.8", 553 + "@esbuild/win32-arm64@0.25.8", 554 + "@esbuild/win32-ia32@0.25.8", 555 + "@esbuild/win32-x64@0.25.8" 556 + ], 557 + "scripts": true, 558 + "bin": true 559 + }, 560 + "esbuild@0.25.9": { 561 + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", 562 + "optionalDependencies": [ 563 + "@esbuild/aix-ppc64@0.25.9", 564 + "@esbuild/android-arm@0.25.9", 565 + "@esbuild/android-arm64@0.25.9", 566 + "@esbuild/android-x64@0.25.9", 567 + "@esbuild/darwin-arm64@0.25.9", 568 + "@esbuild/darwin-x64@0.25.9", 569 + "@esbuild/freebsd-arm64@0.25.9", 570 + "@esbuild/freebsd-x64@0.25.9", 571 + "@esbuild/linux-arm@0.25.9", 572 + "@esbuild/linux-arm64@0.25.9", 573 + "@esbuild/linux-ia32@0.25.9", 574 + "@esbuild/linux-loong64@0.25.9", 575 + "@esbuild/linux-mips64el@0.25.9", 576 + "@esbuild/linux-ppc64@0.25.9", 577 + "@esbuild/linux-riscv64@0.25.9", 578 + "@esbuild/linux-s390x@0.25.9", 579 + "@esbuild/linux-x64@0.25.9", 580 + "@esbuild/netbsd-arm64@0.25.9", 581 + "@esbuild/netbsd-x64@0.25.9", 582 + "@esbuild/openbsd-arm64@0.25.9", 583 + "@esbuild/openbsd-x64@0.25.9", 584 + "@esbuild/openharmony-arm64@0.25.9", 585 + "@esbuild/sunos-x64@0.25.9", 586 + "@esbuild/win32-arm64@0.25.9", 587 + "@esbuild/win32-ia32@0.25.9", 588 + "@esbuild/win32-x64@0.25.9" 432 589 ], 433 590 "scripts": true, 434 591 "bin": true ··· 673 830 }, 674 831 "workspace": { 675 832 "dependencies": [ 676 - "jsr:@cliffy/command@1.0.0-rc.8", 677 - "jsr:@deno/esbuild-plugin@^1.1.5", 678 - "jsr:@es-toolkit/es-toolkit@^1.39.9", 679 - "jsr:@eta-dev/eta@^3.5.0", 680 - "jsr:@std/assert@1", 681 - "jsr:@std/async@^1.0.14", 682 - "jsr:@std/http@^1.0.20", 683 - "jsr:@std/path@^1.1.1", 684 - "npm:@lit/context@^1.1.6", 685 - "npm:@types/hast@^3.0.4", 686 - "npm:esbuild@~0.25.8", 687 - "npm:hast-util-is-element@3", 688 - "npm:lit@^3.3.1", 689 - "npm:motion@^12.23.12", 690 - "npm:shiki@^3.8.1", 691 833 "npm:xstate@^5.20.2" 692 - ] 834 + ], 835 + "members": { 836 + "packages/cli": { 837 + "dependencies": [ 838 + "jsr:@cliffy/command@1.0.0-rc.8" 839 + ] 840 + }, 841 + "packages/core": { 842 + "dependencies": [ 843 + "jsr:@eta-dev/eta@^3.5.0", 844 + "jsr:@std/path@^1.1.1", 845 + "npm:@types/hast@^3.0.4", 846 + "npm:hast-util-is-element@3", 847 + "npm:shiki@^3.8.1" 848 + ] 849 + }, 850 + "packages/server": { 851 + "dependencies": [ 852 + "jsr:@deno/esbuild-plugin@^1.1.5", 853 + "jsr:@es-toolkit/es-toolkit@^1.39.9", 854 + "jsr:@std/async@^1.0.14", 855 + "jsr:@std/http@^1.0.20", 856 + "jsr:@std/path@^1.1.1", 857 + "npm:esbuild@~0.25.9" 858 + ] 859 + }, 860 + "packages/wc": { 861 + "dependencies": [ 862 + "jsr:@es-toolkit/es-toolkit@^1.39.9", 863 + "npm:@lit/context@^1.1.6", 864 + "npm:lit@^3.3.1", 865 + "npm:motion@^12.23.12" 866 + ] 867 + } 868 + } 693 869 } 694 870 }
+2 -2
main.ts packages/cli/main.ts
··· 1 1 import { Command } from "@cliffy/command"; 2 - import { dev } from "./cli/dev.ts"; 3 - import { build } from "./cli/build.ts"; 2 + import { dev } from "./dev.ts"; 3 + import { build } from "./build.ts"; 4 4 5 5 await new Command() 6 6 .name("morkdeck")
+10
packages/cli/deno.json
··· 1 + { 2 + "name": "@morkdeck/cli", 3 + "version": "0.0.0", 4 + "exports": "./main.ts", 5 + "imports": { 6 + "@cliffy/command": "jsr:@cliffy/command@1.0.0-rc.8", 7 + "@morkdeck/core": "../core/mod.ts", 8 + "@morkdeck/server": "../server/mod.ts" 9 + } 10 + }
+13
packages/core/deno.json
··· 1 + { 2 + "name": "@morkdeck/core", 3 + "version": "0.0.0", 4 + "exports": "./mod.ts", 5 + "imports": { 6 + "@eta-dev/eta": "jsr:@eta-dev/eta@^3.5.0", 7 + "@markdoc/markdoc": "https://esm.sh/@markdoc/markdoc@0.5.2", 8 + "@std/path": "jsr:@std/path@^1.1.1", 9 + "hast": "npm:@types/hast@^3.0.4", 10 + "hast-util-is-element": "npm:hast-util-is-element@^3.0.0", 11 + "shiki": "npm:shiki@^3.8.1" 12 + } 13 + }
+4
packages/core/mod.ts
··· 1 + export * from "./markdoc-config.ts"; 2 + export * from "./renderer.ts"; 3 + export * from "./types.ts"; 4 + export * from "./nodes/fence.ts";
+5
packages/runtime/deno.json
··· 1 + { 2 + "name": "@morkdeck/runtime", 3 + "version": "0.0.0", 4 + "exports": "./mod.ts", 5 + }
+3
packages/runtime/mod.ts
··· 1 + export * from "./actor/machine.ts"; 2 + export * from "./actor/setup.ts"; 3 + export * from "./actor/types.ts";
+1
packages/runtime/morkdeck.ts
··· 1 + export * from "@morkdeck/wc";
+14
packages/server/deno.json
··· 1 + { 2 + "name": "@morkdeck/server", 3 + "version": "0.0.0", 4 + "exports": "./mod.ts", 5 + "imports": { 6 + "@deno/esbuild-plugin": "jsr:@deno/esbuild-plugin@^1.1.5", 7 + "@es-toolkit/es-toolkit": "jsr:@es-toolkit/es-toolkit@^1.39.9", 8 + "@std/async": "jsr:@std/async@^1.0.14", 9 + "@std/http": "jsr:@std/http@^1.0.20", 10 + "@std/path": "jsr:@std/path@^1.1.1", 11 + "esbuild": "npm:esbuild@^0.25.9", 12 + "@morkdeck/core": "../core/mod.ts" 13 + } 14 + }
+1
packages/server/mod.ts
··· 1 + export { startDevServer } from "./dev.ts";
+12
packages/wc/deno.json
··· 1 + { 2 + "name": "@morkdeck/wc", 3 + "version": "0.0.0", 4 + "exports": "./mod.ts", 5 + "imports": { 6 + "@es-toolkit/es-toolkit": "jsr:@es-toolkit/es-toolkit@^1.39.9", 7 + "lit": "npm:lit@^3.3.1", 8 + "@lit/context": "npm:@lit/context@^1.1.6", 9 + "motion": "npm:motion@^12.23.12", 10 + "@morkdeck/runtime": "../runtime/mod.ts" 11 + } 12 + }
+5
packages/wc/mod.ts
··· 1 + export * from "./components/presentation/wc.ts"; 2 + export * from "./components/slide.ts"; 3 + export * from "./components/toolbar.ts"; 4 + export * from "./element.ts"; 5 + export * from "./context.ts";
runtime/actor/machine.ts packages/runtime/actor/machine.ts
runtime/actor/setup.ts packages/runtime/actor/setup.ts
+2 -4
runtime/actor/types.ts packages/runtime/actor/types.ts
··· 1 1 import type { ActorRefFrom } from "xstate"; 2 - import type { Slide } from "../components/slide.ts"; 3 - import { presentation } from "./machine.ts"; 2 + import type { Slide } from "@morkdeck/wc"; 3 + import type { presentation } from "./machine.ts"; 4 4 5 5 export interface Context { 6 6 presentationId: string; ··· 8 8 currentIndex: number; 9 9 slides: Slide[]; 10 10 channel: BroadcastChannel; 11 - // slideObserver: IntersectionObserver; 12 11 } 13 12 14 13 type NavigationEvent = { ··· 25 24 presentationId: string; 26 25 currentSlide?: string; 27 26 slides: Slide[]; 28 - // observer: IntersectionObserver; 29 27 }; 30 28 31 29 export type Events = NavigationEvent | PresentationEvent;
+2 -3
runtime/components/presentation/wc.ts packages/wc/components/presentation/wc.ts
··· 8 8 import { provide } from "@lit/context"; 9 9 import { createActor } from "xstate"; 10 10 import { spring } from "motion"; 11 - import { presentation } from "../../actor/machine.ts"; 12 - import type { Presentation } from "../../actor/types.ts"; 13 - import { Slide } from "../slide.ts"; 14 11 import { context, observerContext } from "../../context.ts"; 12 + import { type Presentation, presentation } from "@morkdeck/runtime"; 13 + import type { Slide } from "../slide.ts"; 15 14 16 15 @customElement("morkdeck-presentation") 17 16 export class PresentationWC extends LitElement {
+1 -1
runtime/components/slide.ts packages/wc/components/slide.ts
··· 31 31 align-items: center; 32 32 33 33 padding: 6cqmin; 34 - background: #1f1d2e; 34 + background: #191724; 35 35 } 36 36 `; 37 37
runtime/components/toolbar.ts packages/wc/components/toolbar.ts
runtime/context.ts packages/wc/context.ts
+2 -2
runtime/element.ts packages/wc/element.ts
··· 2 2 import { consume } from "@lit/context"; 3 3 import { context } from "./context.ts"; 4 4 import { isEqual } from "@es-toolkit/es-toolkit"; 5 - import { Context, Presentation } from "./actor/types.ts"; 6 - import { Subscription } from "xstate"; 5 + import type { Context, Presentation } from "@morkdeck/runtime"; 6 + import type { Subscription } from "xstate"; 7 7 8 8 interface ContextSetter<C = Context, K extends keyof C = keyof C, V = C[K]> { 9 9 (value: V): void;
-15
runtime/morkdeck.ts
··· 1 - import type { PresentationWC } from "./components/presentation/wc.ts"; 2 - import type { Toolbar } from "./components/toolbar.ts"; 3 - import type { Slide } from "./components/slide.ts"; 4 - 5 - import "./components/presentation/wc.ts"; 6 - import "./components/toolbar.ts"; 7 - import "./components/slide.ts"; 8 - 9 - declare global { 10 - interface HTMLElementTagNameMap { 11 - "morkdeck-presentation": PresentationWC; 12 - "morkdeck-slide": Slide; 13 - "morkdeck-toolbar": Toolbar; 14 - } 15 - }
+18 -7
server/dev.ts packages/server/dev.ts
··· 1 - import { join } from "@std/path/join"; 2 - import { renderPresentationHtml } from "../core/renderer.ts"; 3 - import { serveDir } from "@std/http/file-server"; 1 + import * as esbuild from "esbuild"; 2 + import { denoPlugin } from "@deno/esbuild-plugin"; 3 + import { renderPresentationHtml } from "@morkdeck/core"; 4 4 5 5 export async function startDevServer(source: string) { 6 6 await Promise.all([ ··· 46 46 47 47 return response; 48 48 } else if (staticMatch) { 49 - return serveDir(req, { 50 - enableCors: true, 51 - fsRoot: join(Deno.cwd(), "dist"), 52 - urlRoot: "static", 49 + const { outputFiles } = await esbuild.build({ 50 + stdin: { 51 + contents: `import "@morkdeck/wc"`, 52 + loader: "ts", 53 + }, 54 + bundle: true, 55 + plugins: [denoPlugin()], 56 + write: false, 57 + }); 58 + 59 + return new Response(outputFiles[0].contents, { 60 + headers: { 61 + "Content-Type": "text/javascript", 62 + "Cache-Control": "no-store", 63 + }, 53 64 }); 54 65 } 55 66
templates/partials/live-reload.eta packages/core/templates/partials/live-reload.eta
templates/partials/mermaid.eta packages/core/templates/partials/mermaid.eta
templates/partials/slide-styles.eta packages/core/templates/partials/slide-styles.eta
templates/presentation.eta packages/core/templates/presentation.eta