@port60/template-kit 0.21.0 → 1.0.0

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 (53) hide show
  1. package/README.md +42 -3
  2. package/bin/cli.mjs +10 -0
  3. package/package.json +4 -2
  4. package/src/commands/content.mjs +4 -3
  5. package/src/commands/create.mjs +11 -3
  6. package/src/commands/dev.mjs +9 -3
  7. package/src/commands/model.mjs +3 -3
  8. package/src/commands/packageCmd.mjs +1 -1
  9. package/src/commands/publish.mjs +1 -1
  10. package/src/commands/refresh.mjs +8 -3
  11. package/src/commands/release.mjs +22 -0
  12. package/src/commands/setupPreviews.mjs +19 -0
  13. package/src/commands/validate.mjs +1 -1
  14. package/src/lib/agentsMd.mjs +108 -162
  15. package/src/lib/designer-bridge.js +26 -0
  16. package/src/lib/designerPalette.mjs +62 -0
  17. package/src/lib/galleryPosters.mjs +105 -0
  18. package/src/lib/previewOptions.mjs +1 -1
  19. package/src/lib/releaseBundle.mjs +141 -0
  20. package/src/vendor/contract/v2/behaviours.json +346 -0
  21. package/src/vendor/contract/v2/content-bounds.json +117 -0
  22. package/src/vendor/contract/v2/content-model.json +766 -0
  23. package/src/vendor/contract/v2/context.json +1569 -0
  24. package/src/vendor/contract/v2/dialect.json +105 -0
  25. package/src/vendor/contract/v2/fonts.json +910 -0
  26. package/src/vendor/contract/v2/imagery.json +32 -0
  27. package/src/vendor/contract/v2/islands.json +263 -0
  28. package/src/vendor/contract/v2/layout.json +28 -0
  29. package/src/vendor/contract/v2/manifest.schema.json +388 -0
  30. package/src/vendor/contract/v2/sections.json +947 -0
  31. package/src/vendor/contract/v2/site.schema.json +1353 -0
  32. package/src/vendor/contract/v2/tokens.json +101 -0
  33. package/src/vendor/contract/v2.lock.json +6931 -0
  34. package/src/vendor/engine/content-footprint.mjs +76 -1
  35. package/src/vendor/engine/majors.mjs +42 -0
  36. package/src/vendor/validator/gift-aid-logo.svg +6 -0
  37. package/src/vendor/validator/model-reference-v2.mjs +95 -0
  38. package/src/vendor/validator/platform-base.css +310 -0
  39. package/src/vendor/validator/preview-v1.mjs +691 -0
  40. package/src/vendor/validator/preview-v2.mjs +654 -0
  41. package/src/vendor/validator/preview.mjs +8 -688
  42. package/src/vendor/validator/site-context-v2.mjs +113 -0
  43. package/src/vendor/validator/validate-v1.mjs +666 -0
  44. package/src/vendor/validator/validate-v2.mjs +642 -0
  45. package/src/vendor/validator/validate.mjs +21 -663
  46. package/starter/assets/theme.css +3 -0
  47. package/starter/layout.liquid +15 -18
  48. package/starter/manifest.json +5 -4
  49. package/starter/preview/config.json +4 -0
  50. package/starter/preview/media/README.md +9 -0
  51. package/starter/sections/campaigns.liquid +5 -4
  52. package/starter/sections/homeHero.liquid +25 -21
  53. package/starter/sections/values.liquid +1 -1
@@ -0,0 +1,105 @@
1
+ {
2
+ "format": "port60-liquid@2",
3
+ "description": "The Port60 template dialect, a strict, whitelisted subset of Liquid. Anything not listed here is rejected at parse time by the engine and at publish time by the conformance validator.",
4
+ "outputEscape": "escape",
5
+ "rawFilter": "raw",
6
+ "tags": [
7
+ "if",
8
+ "elsif",
9
+ "else",
10
+ "endif",
11
+ "unless",
12
+ "endunless",
13
+ "case",
14
+ "when",
15
+ "endcase",
16
+ "for",
17
+ "endfor",
18
+ "break",
19
+ "continue",
20
+ "assign",
21
+ "capture",
22
+ "endcapture",
23
+ "comment",
24
+ "endcomment",
25
+ "echo",
26
+ "raw",
27
+ "endraw",
28
+ "liquid"
29
+ ],
30
+ "customTags": [
31
+ {
32
+ "name": "island",
33
+ "usage": "{% island 'donation_widget' %}",
34
+ "description": "Places a platform functional island (a live, hydrated component) at this position. Templates place islands, never implement them, the island's markup, behaviour and data are platform-owned and upgraded platform-side. The island name must be declared in the manifest's supports.islands."
35
+ },
36
+ {
37
+ "name": "content",
38
+ "usage": "{% content %}",
39
+ "description": "LAYOUT ONLY: the slot where the page's rendered sections are injected. A layout must contain exactly one. Section renderers must not use it."
40
+ }
41
+ ],
42
+ "filters": [
43
+ "abs",
44
+ "append",
45
+ "at_least",
46
+ "at_most",
47
+ "capitalize",
48
+ "ceil",
49
+ "compact",
50
+ "concat",
51
+ "date",
52
+ "default",
53
+ "divided_by",
54
+ "downcase",
55
+ "escape",
56
+ "escape_once",
57
+ "first",
58
+ "floor",
59
+ "join",
60
+ "last",
61
+ "lstrip",
62
+ "map",
63
+ "minus",
64
+ "modulo",
65
+ "newline_to_br",
66
+ "plus",
67
+ "prepend",
68
+ "raw",
69
+ "remove",
70
+ "remove_first",
71
+ "replace",
72
+ "replace_first",
73
+ "reverse",
74
+ "round",
75
+ "rstrip",
76
+ "size",
77
+ "slice",
78
+ "sort",
79
+ "sort_natural",
80
+ "split",
81
+ "strip",
82
+ "strip_html",
83
+ "strip_newlines",
84
+ "times",
85
+ "truncate",
86
+ "truncatewords",
87
+ "uniq",
88
+ "upcase",
89
+ "url_decode",
90
+ "url_encode",
91
+ "where"
92
+ ],
93
+ "excluded": {
94
+ "tags": [
95
+ "include",
96
+ "render",
97
+ "layout",
98
+ "tablerow",
99
+ "cycle",
100
+ "increment",
101
+ "decrement"
102
+ ],
103
+ "reason": "File inclusion (no file system exists inside an artifact yet, a snippets mechanism arrives with the Layout slot), table markup generation, and stateful counters are outside the v1 dialect."
104
+ }
105
+ }