@zvndev/darkmown 1.5.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/AGENTS.md +18 -4
  2. package/CHANGELOG.md +40 -0
  3. package/README.md +49 -19
  4. package/SECURITY.md +21 -18
  5. package/docs/cli.md +5 -1
  6. package/docs/spec-alignment.md +21 -7
  7. package/package.json +3 -2
  8. package/site/_/base.skin +8 -0
  9. package/site/_/base.wd +4 -0
  10. package/site/_/feature-card.wd +4 -0
  11. package/site/_/footer.wd +5 -1
  12. package/site/_/nav.wd +4 -0
  13. package/site/_/scoped-promo.wd +4 -0
  14. package/site/_/scoped-stat.wd +4 -0
  15. package/site/pages/404.wd +1 -0
  16. package/site/pages/app.wd +2 -1
  17. package/site/pages/blog/collections-and-pagination.skin +127 -0
  18. package/site/pages/blog/drafts-that-never-leak.skin +127 -0
  19. package/site/pages/blog/index.wd +1 -0
  20. package/site/pages/blog/shipping-feeds.skin +127 -0
  21. package/site/pages/blog/typed-frontmatter.skin +127 -0
  22. package/site/pages/blog/unfinished-thoughts.skin +127 -0
  23. package/site/pages/blog/zero-js-by-default.md +1 -1
  24. package/site/pages/blog/zero-js-by-default.skin +127 -0
  25. package/site/pages/carousel/index.wd +1 -0
  26. package/site/pages/compass/index.wd +1 -0
  27. package/site/pages/data.wd +3 -0
  28. package/site/pages/docs/-relative-note.wd +4 -0
  29. package/site/pages/docs/index.skin +27 -0
  30. package/site/pages/docs/index.wd +85 -14
  31. package/site/pages/folio/-style.wd +4 -0
  32. package/site/pages/folio/cart.wd +1 -0
  33. package/site/pages/folio/index.wd +1 -0
  34. package/site/pages/forge/index.wd +1 -0
  35. package/site/pages/highlight/index.wd +1 -0
  36. package/site/pages/index.js +19 -0
  37. package/site/pages/index.skin +46 -1
  38. package/site/pages/index.wd +6 -3
  39. package/site/pages/interactions/index.wd +1 -0
  40. package/site/pages/ledger/index.wd +1 -0
  41. package/site/pages/loops.wd +1 -0
  42. package/site/pages/media/index.wd +1 -0
  43. package/site/pages/pulse/index.wd +1 -0
  44. package/site/pages/reactive.wd +1 -0
  45. package/site/pages/scoped/index.wd +1 -0
  46. package/site/pages/showcase/index.wd +2 -1
  47. package/site/pages/store.wd +1 -0
  48. package/site/pages/theme.wd +1 -0
  49. package/src/builder.js +444 -65
  50. package/src/cli.js +96 -18
  51. package/src/compiler/actions.js +303 -0
  52. package/src/compiler/body.js +36 -24
  53. package/src/compiler/context.js +65 -6
  54. package/src/compiler/directives.js +31 -1470
  55. package/src/compiler/fetch.js +159 -0
  56. package/src/compiler/format.js +17 -4
  57. package/src/compiler/forms.js +456 -0
  58. package/src/compiler/frontmatter.js +10 -5
  59. package/src/compiler/includes.js +75 -4
  60. package/src/compiler/index.js +15 -3
  61. package/src/compiler/loops.js +85 -23
  62. package/src/compiler/markdown.js +65 -15
  63. package/src/compiler/media.js +133 -0
  64. package/src/compiler/page.js +88 -77
  65. package/src/compiler/state.js +168 -0
  66. package/src/compiler/structure.js +399 -0
  67. package/src/dev.js +76 -0
  68. package/src/headers.js +56 -17
  69. package/src/router.js +12 -1
  70. package/src/runtime.js +5 -3
  71. package/src/statics.js +63 -12
  72. package/src/templates/blog/README.md +13 -4
  73. package/src/templates/blog/site/_/nav.wd +7 -6
  74. package/src/templates/blog/site/pages/index.skin +10 -4
  75. package/src/templates/blog/site/pages/index.wd +11 -6
  76. package/src/templates/blog/site/pages/posts/_schema.wd +16 -0
  77. package/src/templates/blog/site/pages/posts/hello-darkmown.md +2 -0
  78. package/src/templates/blog/site/pages/posts/hello-darkmown.skin +59 -0
  79. package/src/templates/blog/site/pages/posts/markdown-native.md +9 -4
  80. package/src/templates/blog/site/pages/posts/markdown-native.skin +59 -0
  81. package/src/templates/dashboard/site/_/nav.wd +7 -6
  82. package/src/templates/dashboard/site/pages/index.skin +7 -4
  83. package/src/templates/dashboard/site/pages/index.wd +2 -2
  84. package/src/templates/landing/site/_/nav.wd +7 -6
  85. package/src/templates/landing/site/pages/index.skin +13 -4
  86. package/src/templates/landing/site/pages/index.wd +22 -8
  87. package/src/templates/starter/site/_/nav.wd +8 -7
  88. package/src/templates/starter/site/pages/about.md +8 -2
  89. package/src/templates/starter/site/pages/about.skin +44 -0
  90. package/src/templates/starter/site/pages/index.skin +10 -6
  91. package/src/templates/starter/site/pages/index.wd +2 -2
  92. package/src/templates/store/site/_/nav.wd +7 -6
  93. package/src/templates/store/site/pages/index.skin +7 -4
  94. package/src/templates/store/site/pages/index.wd +2 -2
  95. package/src/templates/blog/site/_/posts.json +0 -16
@@ -27,12 +27,12 @@ page
27
27
  line-height 1.6
28
28
  -webkit-font-smoothing antialiased
29
29
 
30
- main
30
+ .main
31
31
  max-width 760px
32
32
  margin 0 auto
33
33
  padding 3rem 1.5rem
34
34
 
35
- nav
35
+ .nav
36
36
  display flex
37
37
  align-items center
38
38
  justify-content space-between
@@ -41,19 +41,23 @@ nav
41
41
  margin 0 auto
42
42
  padding 1.25rem 1.5rem
43
43
 
44
- nav strong
44
+ .nav p
45
+ margin 0
46
+
47
+ .nav strong
45
48
  font-size 1.1rem
46
49
 
47
- nav .links
50
+ .nav .links p
48
51
  display flex
49
52
  gap 1.25rem
53
+ margin 0
50
54
 
51
- nav a
55
+ .nav a
52
56
  color $ink
53
57
  text-decoration none
54
58
  opacity .8
55
59
 
56
- nav a:hover
60
+ .nav a:hover
57
61
  opacity 1
58
62
  color $accent
59
63
 
@@ -4,7 +4,7 @@ title: My Darkmown site
4
4
 
5
5
  @include /nav.wd
6
6
 
7
- <main>
7
+ ::: main
8
8
 
9
9
  # My Darkmown site
10
10
 
@@ -24,4 +24,4 @@ Count: { count }
24
24
 
25
25
  :button "Add" -> todos += "Add a loop"
26
26
 
27
- </main>
27
+ :::
@@ -1,6 +1,7 @@
1
- <nav>
2
- <strong>Shop</strong>
3
- <span class="links">
4
- <a href="/">Catalog</a>
5
- </span>
6
- </nav>
1
+ ::: nav
2
+ **Shop**
3
+
4
+ ::: links
5
+ [Catalog](/)
6
+ :::
7
+ :::
@@ -27,12 +27,12 @@ page
27
27
  line-height 1.55
28
28
  -webkit-font-smoothing antialiased
29
29
 
30
- main
30
+ .main
31
31
  max-width 860px
32
32
  margin 0 auto
33
33
  padding 2rem 1.5rem
34
34
 
35
- nav
35
+ .nav
36
36
  display flex
37
37
  align-items center
38
38
  justify-content space-between
@@ -40,10 +40,13 @@ nav
40
40
  margin 0 auto
41
41
  padding 1.25rem 1.5rem
42
42
 
43
- nav strong
43
+ .nav p
44
+ margin 0
45
+
46
+ .nav strong
44
47
  font-size 1.1rem
45
48
 
46
- nav a
49
+ .nav a
47
50
  color $accent
48
51
  text-decoration none
49
52
 
@@ -6,7 +6,7 @@ transitions: true
6
6
 
7
7
  @include /nav.wd
8
8
 
9
- <main>
9
+ ::: main
10
10
 
11
11
  ::: section #shop
12
12
 
@@ -80,4 +80,4 @@ to { receipt.received.email }. Order { receipt.orderId }.
80
80
 
81
81
  :::
82
82
 
83
- </main>
83
+ :::
@@ -1,16 +0,0 @@
1
- [
2
- {
3
- "slug": "hello-darkmown",
4
- "url": "/posts/hello-darkmown/",
5
- "title": "Hello, Darkmown",
6
- "date": "2026-06-15",
7
- "excerpt": "Why I rewrote my blog as plain Markdown files — and shipped zero framework JavaScript."
8
- },
9
- {
10
- "slug": "markdown-native",
11
- "url": "/posts/markdown-native/",
12
- "title": "Markdown-native, by default",
13
- "date": "2026-06-01",
14
- "excerpt": "Every post is a .md file. The index is one .wd loop over this manifest. That's the whole site."
15
- }
16
- ]