miki-template 2.3.1 → 2.3.3

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 (167) hide show
  1. package/README.md +1 -1
  2. package/package.json +24 -2
  3. package/src/codegen.js +140 -9
  4. package/src/parser.js +69 -1
  5. package/src/tags/control.js +112 -51
  6. package/src/tags/extra.js +4 -17
  7. package/src/tags/i18n.js +6 -17
  8. package/src/tags/inheritance.js +6 -20
  9. package/src/tags/util.js +5 -20
  10. package/.eslintrc.json +0 -16
  11. package/.github/release-notes/v1.3.1.md +0 -55
  12. package/.github/release-notes/v1.3.3.md +0 -77
  13. package/.github/release-notes/v1.3.7.md +0 -20
  14. package/.github/workflows/ci.yml +0 -42
  15. package/.github/workflows/docs.yml +0 -107
  16. package/.github/workflows/release.yml +0 -107
  17. package/AGENT.md +0 -71
  18. package/API_REFERENCE.md +0 -341
  19. package/CHANGELOG.md +0 -173
  20. package/CODE_OF_CONDUCT.md +0 -14
  21. package/CONTRIBUTING.md +0 -27
  22. package/ROADMAP.md +0 -40
  23. package/assets/banner.png +0 -0
  24. package/assets/logo.png +0 -0
  25. package/benchmarks/ejs-results.json +0 -17
  26. package/benchmarks/ejs.js +0 -38
  27. package/benchmarks/handlebars-results.json +0 -17
  28. package/benchmarks/handlebars.js +0 -45
  29. package/benchmarks/miki-results.json +0 -17
  30. package/benchmarks/miki.js +0 -39
  31. package/benchmarks/pug-results.json +0 -17
  32. package/benchmarks/pug.js +0 -38
  33. package/benchmarks/report.json +0 -17
  34. package/benchmarks/run.js +0 -81
  35. package/benchmarks/stress.mjs +0 -647
  36. package/benchmarks/templates/large.dtpl +0 -7
  37. package/benchmarks/templates/medium.dtpl +0 -3
  38. package/benchmarks/templates/small.dtpl +0 -7
  39. package/context/component.md +0 -109
  40. package/context/prd.md +0 -131
  41. package/context/project-structure.md +0 -33
  42. package/dir/base.html +0 -23
  43. package/dir/cmpnt.html +0 -11
  44. package/dir/footer.html +0 -3
  45. package/dir/home.html +0 -80
  46. package/dir/index.html +0 -80
  47. package/dir/navbar.html +0 -9
  48. package/docs/api/async-render.md +0 -170
  49. package/docs/api/cache.md +0 -174
  50. package/docs/api/compile.md +0 -256
  51. package/docs/api/context-processors.md +0 -154
  52. package/docs/api/filters.md +0 -437
  53. package/docs/api/finder.md +0 -188
  54. package/docs/api/helpers.md +0 -106
  55. package/docs/api/i18n.md +0 -314
  56. package/docs/api/index.md +0 -108
  57. package/docs/api/libraries.md +0 -414
  58. package/docs/api/render-partial.md +0 -162
  59. package/docs/api/render.md +0 -184
  60. package/docs/api/security.md +0 -290
  61. package/docs/api/setup-express.md +0 -152
  62. package/docs/api/tags.md +0 -268
  63. package/docs/assets/banner.png +0 -0
  64. package/docs/assets/logo.png +0 -0
  65. package/docs/filter.md +0 -0
  66. package/docs/guide/advanced-usage.md +0 -794
  67. package/docs/guide/async-rendering.md +0 -616
  68. package/docs/guide/context-processors.md +0 -514
  69. package/docs/guide/custom-filters.md +0 -622
  70. package/docs/guide/custom-tags.md +0 -542
  71. package/docs/guide/filters.md +0 -1314
  72. package/docs/guide/getting-started.md +0 -204
  73. package/docs/guide/installation.md +0 -190
  74. package/docs/guide/partial-templates.md +0 -734
  75. package/docs/guide/quick-start.md +0 -444
  76. package/docs/guide/security.md +0 -690
  77. package/docs/guide/tags.md +0 -1566
  78. package/docs/guide/template-discovery.md +0 -340
  79. package/docs/guide/template-inheritance.md +0 -546
  80. package/docs/guide/what-is-miki-template.md +0 -28
  81. package/docs/guide/why-miki-template.md +0 -75
  82. package/docs/index.md +0 -86
  83. package/docs/integrations/elysia.md +0 -80
  84. package/docs/integrations/express.md +0 -219
  85. package/docs/integrations/fastify.md +0 -79
  86. package/docs/integrations/hono.md +0 -80
  87. package/docs/integrations/index.md +0 -68
  88. package/docs/integrations/koa.md +0 -90
  89. package/docs/integrations/nestjs.md +0 -80
  90. package/docs/integrations/tsed.md +0 -83
  91. package/docs/performance.md +0 -74
  92. package/eslint.config.mjs +0 -42
  93. package/ex.mjs +0 -36
  94. package/live-test/integrations/elysia-example.js +0 -16
  95. package/live-test/integrations/express-example.js +0 -24
  96. package/live-test/integrations/fastify-example.js +0 -20
  97. package/live-test/integrations/hono-example.js +0 -16
  98. package/live-test/integrations/koa-example.js +0 -30
  99. package/live-test/integrations/nestjs-example.js +0 -25
  100. package/live-test/integrations/smoke-test.js +0 -166
  101. package/live-test/integrations/tsed-example.js +0 -23
  102. package/live-test/package-lock.json +0 -1150
  103. package/live-test/package.json +0 -13
  104. package/live-test/packages/product/templates/product/detail.html +0 -7
  105. package/live-test/server.js +0 -38
  106. package/live-test/templates/app_templates/detail.html +0 -6
  107. package/live-test/views/base.html +0 -8
  108. package/live-test/views/child.html +0 -7
  109. package/live-test/views/home.html +0 -17
  110. package/live-test/views/index.html +0 -1
  111. package/miki-template-extension/.github/workflows/ci.yml +0 -116
  112. package/miki-template-extension/.vscodeignore +0 -7
  113. package/miki-template-extension/CHANGELOG.md +0 -99
  114. package/miki-template-extension/LICENSE +0 -21
  115. package/miki-template-extension/README.md +0 -273
  116. package/miki-template-extension/extension.js +0 -1013
  117. package/miki-template-extension/icon.png +0 -0
  118. package/miki-template-extension/icon.svg +0 -10
  119. package/miki-template-extension/miki-template-1.7.1.vsix +0 -0
  120. package/miki-template-extension/package.json +0 -280
  121. package/miki-template-extension/snippets/miki-template.json +0 -717
  122. package/miki-template-extension/syntaxes/language-configuration.json +0 -114
  123. package/miki-template-extension/syntaxes/miki-template.tmLanguage.json +0 -355
  124. package/miki-template-extension/tests/grammar-tests.json +0 -162
  125. package/miki-template-extension/tests/run-grammar-tests.js +0 -82
  126. package/mkdocs.yml +0 -195
  127. package/overrides/main.html +0 -26
  128. package/requirements-docs.txt +0 -2
  129. package/sample-app/package-lock.json +0 -901
  130. package/sample-app/package.json +0 -9
  131. package/sample-app/server.js +0 -14
  132. package/sample-app/views/index.html +0 -1
  133. package/scripts/build-vsix.js +0 -129
  134. package/scripts/build-vsix.ps1 +0 -15
  135. package/snippets/miki-template.json +0 -177
  136. package/src/asyncRender.js +0 -21
  137. package/src/types.d.ts +0 -107
  138. package/syntaxes/language-configuration.json +0 -26
  139. package/syntaxes/miki-template.tmLanguage.json +0 -146
  140. package/tests/asyncRender.test.js +0 -17
  141. package/tests/base.html +0 -6
  142. package/tests/child.html +0 -3
  143. package/tests/context_processors.test.js +0 -13
  144. package/tests/esm.test.mjs +0 -61
  145. package/tests/filters.test.js +0 -263
  146. package/tests/finder-appdirs.test.js +0 -19
  147. package/tests/finder.test.js +0 -17
  148. package/tests/fixtures/views/nested/index.html +0 -1
  149. package/tests/fixtures/views/partial.html +0 -1
  150. package/tests/fixtures/views/sub/deepfile.html +0 -1
  151. package/tests/fixtures/views-appdirs/product/site/detail.html +0 -1
  152. package/tests/include_security.test.js +0 -9
  153. package/tests/integration/README.md +0 -32
  154. package/tests/integration/features.test.cjs +0 -1681
  155. package/tests/integration/features.test.mjs +0 -1697
  156. package/tests/integration/finder.esm.test.mjs +0 -13
  157. package/tests/integration/partial-render.test.cjs +0 -13
  158. package/tests/integration/templates/base.miki +0 -6
  159. package/tests/integration/templates/child.miki +0 -6
  160. package/tests/integration/templates/index.html +0 -17
  161. package/tests/lexer.test.js +0 -45
  162. package/tests/parser.test.js +0 -57
  163. package/tests/partial.html +0 -1
  164. package/tests/partialdef.test.js +0 -79
  165. package/tests/production_checks.js +0 -57
  166. package/tests/security.test.js +0 -28
  167. package/tests/tags.test.js +0 -233
package/docs/api/i18n.md DELETED
@@ -1,314 +0,0 @@
1
- # i18n API
2
-
3
-
4
-
5
- ## registerTranslation
6
-
7
-
8
-
9
- Register translations for a language. Keys match the `{% trans "text" %}` source string.
10
-
11
-
12
-
13
- === "CommonJS"
14
-
15
-
16
-
17
- ```javascript
18
-
19
- const { registerTranslation } = require('miki-template');
20
-
21
-
22
-
23
- registerTranslation('en', {
24
-
25
- hello: 'Hello',
26
-
27
- goodbye: 'Goodbye'
28
-
29
- });
30
-
31
- ```
32
-
33
-
34
-
35
- === "ES Modules"
36
-
37
-
38
-
39
- ```javascript
40
-
41
- import { registerTranslation } from 'miki-template';
42
-
43
-
44
-
45
- registerTranslation('en', {
46
-
47
- hello: 'Hello',
48
-
49
- goodbye: 'Goodbye'
50
-
51
- });
52
-
53
- ```
54
-
55
-
56
-
57
- You can also register nested keys for `blocktrans` with variables:
58
-
59
-
60
-
61
- === "CommonJS"
62
-
63
-
64
-
65
- ```javascript
66
-
67
- const { registerTranslation, setLanguage } = require('miki-template');
68
-
69
-
70
-
71
- setLanguage('en');
72
-
73
- registerTranslation('en', {
74
-
75
- 'Welcome, {name}!': 'Welcome, {name}!',
76
-
77
- 'Goodbye, {name}!': 'Goodbye, {name}!'
78
-
79
- });
80
-
81
- ```
82
-
83
-
84
-
85
- === "ES Modules"
86
-
87
-
88
-
89
- ```javascript
90
-
91
- import { registerTranslation, setLanguage } from 'miki-template';
92
-
93
-
94
-
95
- setLanguage('en');
96
-
97
- registerTranslation('en', {
98
-
99
- 'Welcome, {name}!': 'Welcome, {name}!',
100
-
101
- 'Goodbye, {name}!': 'Goodbye, {name}!'
102
-
103
- });
104
-
105
- ```
106
-
107
-
108
-
109
- ## unregisterTranslation
110
-
111
-
112
-
113
- === "CommonJS"
114
-
115
-
116
-
117
- ```javascript
118
-
119
- const { unregisterTranslation } = require('miki-template');
120
-
121
-
122
-
123
- // Unregister a specific key
124
-
125
- unregisterTranslation('en', 'hello');
126
-
127
-
128
-
129
- // Unregister entire language
130
-
131
- unregisterTranslation('en');
132
-
133
-
134
-
135
- // Unregister all translations
136
-
137
- unregisterTranslation();
138
-
139
- ```
140
-
141
-
142
-
143
- === "ES Modules"
144
-
145
-
146
-
147
- ```javascript
148
-
149
- import { unregisterTranslation } from 'miki-template';
150
-
151
-
152
-
153
- unregisterTranslation('en', 'hello');
154
-
155
- ```
156
-
157
-
158
-
159
- ## setLanguage / getLanguage
160
-
161
-
162
-
163
- Set or get the active language.
164
-
165
-
166
-
167
- === "CommonJS"
168
-
169
-
170
-
171
- ```javascript
172
-
173
- const { setLanguage, getLanguage } = require('miki-template');
174
-
175
-
176
-
177
- setLanguage('fr');
178
-
179
- console.log(getLanguage()); // 'fr'
180
-
181
- ```
182
-
183
-
184
-
185
- === "ES Modules"
186
-
187
-
188
-
189
- ```javascript
190
-
191
- import { setLanguage, getLanguage } from 'miki-template';
192
-
193
-
194
-
195
- setLanguage('fr');
196
-
197
- console.log(getLanguage()); // 'fr'
198
-
199
- ```
200
-
201
-
202
-
203
- ## setFallbackLanguage / getFallbackLanguage
204
-
205
-
206
-
207
- Set or get the fallback language (used when a key is missing from the active language).
208
-
209
-
210
-
211
- === "CommonJS"
212
-
213
-
214
-
215
- ```javascript
216
-
217
- const { setFallbackLanguage, getFallbackLanguage } = require('miki-template');
218
-
219
-
220
-
221
- setFallbackLanguage('en');
222
-
223
- console.log(getFallbackLanguage()); // 'en'
224
-
225
- ```
226
-
227
-
228
-
229
- === "ES Modules"
230
-
231
-
232
-
233
- ```javascript
234
-
235
- import { setFallbackLanguage, getFallbackLanguage } from 'miki-template';
236
-
237
-
238
-
239
- setFallbackLanguage('en');
240
-
241
- ```
242
-
243
-
244
-
245
- ## getAvailableLanguages
246
-
247
-
248
-
249
- List all registered languages.
250
-
251
-
252
-
253
- === "CommonJS"
254
-
255
-
256
-
257
- ```javascript
258
-
259
- const { getAvailableLanguages } = require('miki-template');
260
-
261
-
262
-
263
- console.log(getAvailableLanguages());
264
-
265
- // ['en', 'fr', 'es']
266
-
267
- ```
268
-
269
-
270
-
271
- === "ES Modules"
272
-
273
-
274
-
275
- ```javascript
276
-
277
- import { getAvailableLanguages } from 'miki-template';
278
-
279
-
280
-
281
- console.log(getAvailableLanguages());
282
-
283
- ```
284
-
285
-
286
-
287
- ## Template Tags
288
-
289
-
290
-
291
- The `{% trans %}` and `{% blocktrans %}` tags are provided by the auto-activated `i18n` library:
292
-
293
-
294
-
295
- ```html
296
-
297
- {% trans "Hello" %}
298
-
299
- {% blocktrans %}Welcome, {{ name }}!{% endblocktrans %}
300
-
301
- {% language "fr" %}...{% endlanguage %}
302
-
303
- ```
304
-
305
-
306
-
307
- ## Next Steps
308
-
309
-
310
-
311
- - [Advanced Usage: i18n](../guide/advanced-usage.md#i18n--internationalization)
312
-
313
- - [API Reference](../index.md)
314
-
package/docs/api/index.md DELETED
@@ -1,108 +0,0 @@
1
- # API Reference
2
-
3
-
4
-
5
- ## Core Functions
6
-
7
-
8
-
9
- - [render()](./render.md) — Render a template string or file partial
10
-
11
- - [compile()](./compile.md) — Compile a template into a reusable object with `render()`, `asyncRender()`, `renderBlock()`, `renderPartial()`
12
-
13
- - [asyncRender()](./async-render.md) — Asynchronous rendering (supports async filters/tags)
14
-
15
- - [renderPartialFromFile()](./render-partial.md) — Render a named partial from a file
16
-
17
- - [renderPartialFromSource()](./render-partial.md) — Render a named partial from source
18
-
19
- - [setupExpress()](./setup-express.md) — One-line Express integration
20
-
21
-
22
-
23
- ## Tag and Filter Registration
24
-
25
-
26
-
27
- - [registerFilter()](./filters.md) — Register a custom filter
28
-
29
- - [getFilter()](./filters.md) — Retrieve a registered filter
30
-
31
- - [registerTag()](./tags.md) — Register a custom tag
32
-
33
- - [registerHelper()](./helpers.md) — Register a custom helper
34
-
35
-
36
-
37
- ## Utilities
38
-
39
-
40
-
41
- - [findTemplateInViews()](./finder.md) — Locate a template in views directories
42
-
43
- - [setAppTemplateDirNames()](./finder.md) — Configure app-style template directory names
44
-
45
- - [clearCache()](./cache.md) — Clear the compiled template cache
46
-
47
- - [registerContextProcessor()](./context-processors.md) — Register a global context processor
48
-
49
- - [clearContextProcessors()](./context-processors.md) — Clear all context processors
50
-
51
-
52
-
53
- ## Security
54
-
55
-
56
-
57
- - [markSafe()](./security.md) — Mark a string as safe (bypass escaping)
58
-
59
- - [isSafe()](./security.md) — Check if a value is marked safe
60
-
61
- - [escapeHtml()](./security.md) — Escape HTML special characters
62
-
63
- - [SafeString](./security.md) — SafeString class
64
-
65
-
66
-
67
- ## Express Engine Functions
68
-
69
-
70
-
71
- - `__express(filePath, options, callback)` — Express-compatible sync view engine
72
-
73
- - `__expressAsync(filePath, options)` — Express 5 async view engine (returns Promise)
74
-
75
- - `express(options)` — Returns a view engine function for `app.engine()`
76
-
77
- - `expressPartialRenderer()` — Express middleware adding `res.renderPartial()`
78
-
79
- - `stripExpressContext(options)` — Remove Express framework keys from context
80
-
81
-
82
-
83
- ## i18n
84
-
85
-
86
-
87
- - [registerTranslation()](./i18n.md) — Register translations for a language
88
-
89
- - [unregisterTranslation()](./i18n.md) — Unregister translations
90
-
91
- - [setLanguage()](./i18n.md) / [getLanguage()](./i18n.md) — Set/get active language
92
-
93
- - [setFallbackLanguage()](./i18n.md) / [getFallbackLanguage()](./i18n.md) — Set/get fallback language
94
-
95
- - [getAvailableLanguages()](./i18n.md) — List registered languages
96
-
97
-
98
-
99
- ## Libraries
100
-
101
-
102
-
103
- - [registerLibrary()](./libraries.md) — Register a named library (filters, tags, helpers)
104
-
105
- - [activateLibrary()](./libraries.md) / [registerLibraryFromPath()](./libraries.md) — Activate or load from file
106
-
107
- - [unregisterLibrary()](./libraries.md) / [hasLibrary()](./libraries.md) / [getLibraryNames()](./libraries.md) — Library management
108
-