miki-template 2.3.0 → 2.3.2

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 (160) hide show
  1. package/README.md +17 -5
  2. package/package.json +45 -1
  3. package/.eslintrc.json +0 -16
  4. package/.github/release-notes/v1.3.1.md +0 -55
  5. package/.github/release-notes/v1.3.3.md +0 -77
  6. package/.github/release-notes/v1.3.7.md +0 -20
  7. package/.github/workflows/ci.yml +0 -42
  8. package/.github/workflows/docs.yml +0 -107
  9. package/.github/workflows/release.yml +0 -107
  10. package/AGENT.md +0 -71
  11. package/API_REFERENCE.md +0 -341
  12. package/CHANGELOG.md +0 -173
  13. package/CODE_OF_CONDUCT.md +0 -14
  14. package/CONTRIBUTING.md +0 -27
  15. package/ROADMAP.md +0 -40
  16. package/assets/banner.png +0 -0
  17. package/assets/logo.png +0 -0
  18. package/benchmarks/ejs-results.json +0 -17
  19. package/benchmarks/ejs.js +0 -38
  20. package/benchmarks/handlebars-results.json +0 -17
  21. package/benchmarks/handlebars.js +0 -45
  22. package/benchmarks/miki-results.json +0 -17
  23. package/benchmarks/miki.js +0 -39
  24. package/benchmarks/pug-results.json +0 -17
  25. package/benchmarks/pug.js +0 -38
  26. package/benchmarks/report.json +0 -17
  27. package/benchmarks/run.js +0 -81
  28. package/benchmarks/stress.mjs +0 -647
  29. package/benchmarks/templates/large.dtpl +0 -7
  30. package/benchmarks/templates/medium.dtpl +0 -3
  31. package/benchmarks/templates/small.dtpl +0 -7
  32. package/context/component.md +0 -109
  33. package/context/prd.md +0 -131
  34. package/context/project-structure.md +0 -33
  35. package/dir/base.html +0 -23
  36. package/dir/cmpnt.html +0 -11
  37. package/dir/footer.html +0 -3
  38. package/dir/home.html +0 -80
  39. package/dir/index.html +0 -80
  40. package/dir/navbar.html +0 -9
  41. package/docs/api/async-render.md +0 -170
  42. package/docs/api/cache.md +0 -174
  43. package/docs/api/compile.md +0 -256
  44. package/docs/api/context-processors.md +0 -154
  45. package/docs/api/filters.md +0 -437
  46. package/docs/api/finder.md +0 -188
  47. package/docs/api/helpers.md +0 -106
  48. package/docs/api/i18n.md +0 -314
  49. package/docs/api/index.md +0 -108
  50. package/docs/api/libraries.md +0 -414
  51. package/docs/api/render-partial.md +0 -162
  52. package/docs/api/render.md +0 -184
  53. package/docs/api/security.md +0 -290
  54. package/docs/api/setup-express.md +0 -152
  55. package/docs/api/tags.md +0 -268
  56. package/docs/assets/banner.png +0 -0
  57. package/docs/assets/logo.png +0 -0
  58. package/docs/filter.md +0 -0
  59. package/docs/guide/advanced-usage.md +0 -794
  60. package/docs/guide/async-rendering.md +0 -616
  61. package/docs/guide/context-processors.md +0 -514
  62. package/docs/guide/custom-filters.md +0 -622
  63. package/docs/guide/custom-tags.md +0 -542
  64. package/docs/guide/filters.md +0 -1314
  65. package/docs/guide/getting-started.md +0 -204
  66. package/docs/guide/installation.md +0 -190
  67. package/docs/guide/partial-templates.md +0 -734
  68. package/docs/guide/quick-start.md +0 -444
  69. package/docs/guide/security.md +0 -690
  70. package/docs/guide/tags.md +0 -1566
  71. package/docs/guide/template-discovery.md +0 -340
  72. package/docs/guide/template-inheritance.md +0 -546
  73. package/docs/guide/what-is-miki-template.md +0 -28
  74. package/docs/guide/why-miki-template.md +0 -75
  75. package/docs/index.md +0 -86
  76. package/docs/integrations/elysia.md +0 -80
  77. package/docs/integrations/express.md +0 -219
  78. package/docs/integrations/fastify.md +0 -79
  79. package/docs/integrations/hono.md +0 -80
  80. package/docs/integrations/index.md +0 -68
  81. package/docs/integrations/koa.md +0 -90
  82. package/docs/integrations/nestjs.md +0 -80
  83. package/docs/integrations/tsed.md +0 -83
  84. package/docs/performance.md +0 -74
  85. package/eslint.config.mjs +0 -42
  86. package/ex.mjs +0 -36
  87. package/live-test/integrations/elysia-example.js +0 -16
  88. package/live-test/integrations/express-example.js +0 -24
  89. package/live-test/integrations/fastify-example.js +0 -20
  90. package/live-test/integrations/hono-example.js +0 -16
  91. package/live-test/integrations/koa-example.js +0 -30
  92. package/live-test/integrations/nestjs-example.js +0 -25
  93. package/live-test/integrations/smoke-test.js +0 -166
  94. package/live-test/integrations/tsed-example.js +0 -23
  95. package/live-test/package-lock.json +0 -1150
  96. package/live-test/package.json +0 -13
  97. package/live-test/packages/product/templates/product/detail.html +0 -7
  98. package/live-test/server.js +0 -38
  99. package/live-test/templates/app_templates/detail.html +0 -6
  100. package/live-test/views/base.html +0 -8
  101. package/live-test/views/child.html +0 -7
  102. package/live-test/views/home.html +0 -17
  103. package/live-test/views/index.html +0 -1
  104. package/miki-template-extension/.github/workflows/ci.yml +0 -116
  105. package/miki-template-extension/.vscodeignore +0 -7
  106. package/miki-template-extension/CHANGELOG.md +0 -99
  107. package/miki-template-extension/LICENSE +0 -21
  108. package/miki-template-extension/README.md +0 -273
  109. package/miki-template-extension/extension.js +0 -1013
  110. package/miki-template-extension/icon.png +0 -0
  111. package/miki-template-extension/icon.svg +0 -10
  112. package/miki-template-extension/miki-template-1.7.1.vsix +0 -0
  113. package/miki-template-extension/package.json +0 -280
  114. package/miki-template-extension/snippets/miki-template.json +0 -717
  115. package/miki-template-extension/syntaxes/language-configuration.json +0 -114
  116. package/miki-template-extension/syntaxes/miki-template.tmLanguage.json +0 -355
  117. package/miki-template-extension/tests/grammar-tests.json +0 -162
  118. package/miki-template-extension/tests/run-grammar-tests.js +0 -82
  119. package/mkdocs.yml +0 -195
  120. package/overrides/main.html +0 -26
  121. package/requirements-docs.txt +0 -2
  122. package/sample-app/package-lock.json +0 -901
  123. package/sample-app/package.json +0 -9
  124. package/sample-app/server.js +0 -14
  125. package/sample-app/views/index.html +0 -1
  126. package/scripts/build-vsix.js +0 -129
  127. package/scripts/build-vsix.ps1 +0 -15
  128. package/snippets/miki-template.json +0 -177
  129. package/src/asyncRender.js +0 -21
  130. package/src/types.d.ts +0 -107
  131. package/syntaxes/language-configuration.json +0 -26
  132. package/syntaxes/miki-template.tmLanguage.json +0 -146
  133. package/tests/asyncRender.test.js +0 -17
  134. package/tests/base.html +0 -6
  135. package/tests/child.html +0 -3
  136. package/tests/context_processors.test.js +0 -13
  137. package/tests/esm.test.mjs +0 -61
  138. package/tests/filters.test.js +0 -263
  139. package/tests/finder-appdirs.test.js +0 -19
  140. package/tests/finder.test.js +0 -17
  141. package/tests/fixtures/views/nested/index.html +0 -1
  142. package/tests/fixtures/views/partial.html +0 -1
  143. package/tests/fixtures/views/sub/deepfile.html +0 -1
  144. package/tests/fixtures/views-appdirs/product/site/detail.html +0 -1
  145. package/tests/include_security.test.js +0 -9
  146. package/tests/integration/README.md +0 -32
  147. package/tests/integration/features.test.cjs +0 -1681
  148. package/tests/integration/features.test.mjs +0 -1697
  149. package/tests/integration/finder.esm.test.mjs +0 -13
  150. package/tests/integration/partial-render.test.cjs +0 -13
  151. package/tests/integration/templates/base.miki +0 -6
  152. package/tests/integration/templates/child.miki +0 -6
  153. package/tests/integration/templates/index.html +0 -17
  154. package/tests/lexer.test.js +0 -45
  155. package/tests/parser.test.js +0 -57
  156. package/tests/partial.html +0 -1
  157. package/tests/partialdef.test.js +0 -79
  158. package/tests/production_checks.js +0 -57
  159. package/tests/security.test.js +0 -28
  160. 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
-