create-berna-stencil 2.0.13 → 2.0.15

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 (168) hide show
  1. package/README.md +1 -1
  2. package/_tools/res/templates/template.njk +1 -1
  3. package/bin/create.js +46 -39
  4. package/docs/Creating pages.md +20 -0
  5. package/package.json +1 -1
  6. package/src/backend/_core/vendor/composer/autoload_static.php +10 -10
  7. package/src/backend/_core/vendor/composer/installed.json +6 -6
  8. package/src/backend/_core/vendor/composer/installed.php +2 -2
  9. package/src/backend/_core/vendor/graham-campbell/result-type/LICENSE +21 -21
  10. package/src/backend/_core/vendor/graham-campbell/result-type/composer.json +33 -33
  11. package/src/backend/_core/vendor/graham-campbell/result-type/src/Error.php +121 -121
  12. package/src/backend/_core/vendor/graham-campbell/result-type/src/Result.php +69 -69
  13. package/src/backend/_core/vendor/graham-campbell/result-type/src/Success.php +120 -120
  14. package/src/backend/_core/vendor/phpoption/phpoption/LICENSE +200 -200
  15. package/src/backend/_core/vendor/phpoption/phpoption/composer.json +50 -50
  16. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -175
  17. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -136
  18. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -434
  19. package/src/backend/_core/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -169
  20. package/src/backend/_core/vendor/symfony/polyfill-ctype/Ctype.php +232 -232
  21. package/src/backend/_core/vendor/symfony/polyfill-ctype/LICENSE +19 -19
  22. package/src/backend/_core/vendor/symfony/polyfill-ctype/README.md +12 -12
  23. package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap.php +50 -50
  24. package/src/backend/_core/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -46
  25. package/src/backend/_core/vendor/symfony/polyfill-ctype/composer.json +38 -38
  26. package/src/backend/_core/vendor/symfony/polyfill-mbstring/LICENSE +19 -19
  27. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Mbstring.php +1077 -1077
  28. package/src/backend/_core/vendor/symfony/polyfill-mbstring/README.md +13 -13
  29. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -119
  30. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -1397
  31. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -5
  32. package/src/backend/_core/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -1489
  33. package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap.php +171 -171
  34. package/src/backend/_core/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -167
  35. package/src/backend/_core/vendor/symfony/polyfill-mbstring/composer.json +39 -39
  36. package/src/backend/_core/vendor/symfony/polyfill-php80/LICENSE +19 -19
  37. package/src/backend/_core/vendor/symfony/polyfill-php80/Php80.php +115 -115
  38. package/src/backend/_core/vendor/symfony/polyfill-php80/PhpToken.php +106 -106
  39. package/src/backend/_core/vendor/symfony/polyfill-php80/README.md +25 -25
  40. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -31
  41. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -16
  42. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -20
  43. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -16
  44. package/src/backend/_core/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -16
  45. package/src/backend/_core/vendor/symfony/polyfill-php80/bootstrap.php +42 -42
  46. package/src/backend/_core/vendor/symfony/polyfill-php80/composer.json +37 -37
  47. package/src/backend/_core/vendor/vlucas/phpdotenv/LICENSE +30 -30
  48. package/src/backend/_core/vendor/vlucas/phpdotenv/composer.json +60 -60
  49. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -267
  50. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -12
  51. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -12
  52. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -12
  53. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -12
  54. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -12
  55. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Loader.php +48 -48
  56. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -20
  57. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -65
  58. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -59
  59. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +299 -299
  60. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -58
  61. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -127
  62. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -53
  63. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -19
  64. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -88
  65. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -15
  66. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -89
  67. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -80
  68. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +88 -88
  69. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -85
  70. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -110
  71. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -48
  72. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -64
  73. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -91
  74. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -17
  75. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -104
  76. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +88 -88
  77. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -27
  78. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -107
  79. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -272
  80. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -51
  81. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -44
  82. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -81
  83. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -72
  84. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -141
  85. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -17
  86. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -37
  87. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -112
  88. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Util/Str.php +108 -108
  89. package/src/backend/_core/vendor/vlucas/phpdotenv/src/Validator.php +207 -207
  90. package/src/backend/_core/vendor/graham-campbell/result-type/.gitattributes +0 -9
  91. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +0 -132
  92. package/src/backend/_core/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +0 -31
  93. package/src/backend/_core/vendor/graham-campbell/result-type/.github/FUNDING.yml +0 -2
  94. package/src/backend/_core/vendor/graham-campbell/result-type/.github/SECURITY.md +0 -14
  95. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/stale.yml +0 -11
  96. package/src/backend/_core/vendor/graham-campbell/result-type/.github/workflows/tests.yml +0 -40
  97. package/src/backend/_core/vendor/graham-campbell/result-type/CHANGELOG.md +0 -53
  98. package/src/backend/_core/vendor/graham-campbell/result-type/README.md +0 -42
  99. package/src/backend/_core/vendor/graham-campbell/result-type/phpunit.xml.dist +0 -13
  100. package/src/backend/_core/vendor/graham-campbell/result-type/tests/ResultTest.php +0 -95
  101. package/src/backend/_core/vendor/phpoption/phpoption/.gitattributes +0 -13
  102. package/src/backend/_core/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +0 -132
  103. package/src/backend/_core/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +0 -30
  104. package/src/backend/_core/vendor/phpoption/phpoption/.github/FUNDING.yml +0 -2
  105. package/src/backend/_core/vendor/phpoption/phpoption/.github/SECURITY.md +0 -14
  106. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/static.yml +0 -40
  107. package/src/backend/_core/vendor/phpoption/phpoption/.github/workflows/tests.yml +0 -40
  108. package/src/backend/_core/vendor/phpoption/phpoption/Makefile +0 -17
  109. package/src/backend/_core/vendor/phpoption/phpoption/README.md +0 -201
  110. package/src/backend/_core/vendor/phpoption/phpoption/phpstan-baseline.neon +0 -44
  111. package/src/backend/_core/vendor/phpoption/phpoption/phpstan.neon.dist +0 -7
  112. package/src/backend/_core/vendor/phpoption/phpoption/phpunit.xml.dist +0 -13
  113. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +0 -72
  114. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +0 -357
  115. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +0 -153
  116. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +0 -166
  117. package/src/backend/_core/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +0 -194
  118. package/src/backend/_core/vendor/phpoption/phpoption/tests/bootstrap.php +0 -8
  119. package/src/backend/_core/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +0 -8
  120. package/src/backend/_core/vendor/vlucas/phpdotenv/.editorconfig +0 -15
  121. package/src/backend/_core/vendor/vlucas/phpdotenv/.gitattributes +0 -15
  122. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +0 -132
  123. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +0 -30
  124. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/FUNDING.yml +0 -2
  125. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/SECURITY.md +0 -14
  126. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/static.yml +0 -40
  127. package/src/backend/_core/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +0 -70
  128. package/src/backend/_core/vendor/vlucas/phpdotenv/Makefile +0 -17
  129. package/src/backend/_core/vendor/vlucas/phpdotenv/README.md +0 -370
  130. package/src/backend/_core/vendor/vlucas/phpdotenv/UPGRADING.md +0 -196
  131. package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan-baseline.neon +0 -157
  132. package/src/backend/_core/vendor/vlucas/phpdotenv/phpstan.neon.dist +0 -7
  133. package/src/backend/_core/vendor/vlucas/phpdotenv/phpunit.xml.dist +0 -13
  134. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +0 -387
  135. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +0 -86
  136. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +0 -234
  137. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +0 -40
  138. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +0 -53
  139. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +0 -98
  140. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +0 -57
  141. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +0 -75
  142. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +0 -52
  143. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +0 -75
  144. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +0 -305
  145. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +0 -141
  146. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +0 -479
  147. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +0 -5
  148. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +0 -18
  149. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +0 -33
  150. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +0 -15
  151. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +0 -1
  152. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +0 -1
  153. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +0 -7
  154. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +0 -1
  155. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +0 -17
  156. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +0 -2
  157. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +0 -3
  158. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +0 -14
  159. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +0 -4
  160. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +0 -1
  161. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +0 -15
  162. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +0 -11
  163. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +0 -8
  164. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +0 -2
  165. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +0 -3
  166. package/src/backend/_core/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +0 -1
  167. package/src/backend/_core/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +0 -15
  168. package/src/backend/config.php +0 -19
package/README.md CHANGED
@@ -12,7 +12,7 @@ Building a website from scratch involves a lot of moving parts: templating engin
12
12
  - 📁 **Scalable structure** — a clean, opinionated project layout that grows with your needs
13
13
  - 🌍 **Open source** — free to use, free to modify, free to share
14
14
 
15
- ![Version](https://img.shields.io/badge/version-2.0.13-blue)
15
+ ![Version](https://img.shields.io/badge/version-2.0.15-blue)
16
16
  ![License](https://img.shields.io/badge/license-Apache--2.0-blue)
17
17
  ![Eleventy](https://img.shields.io/badge/11ty-v3.1.2-black)
18
18
 
@@ -6,4 +6,4 @@ layout: includes.njk
6
6
 
7
7
  <!-- !IMPORTANT -->
8
8
  <!-- DO NOT ADD ANYTHING HERE -->
9
- <!-- You should create a new component.njk into src/components and include that in components/layouts/includes.njk -->
9
+ <!-- You should create a new component.njk into src/frontend/components and include that in components/layouts/includes.njk -->
package/bin/create.js CHANGED
@@ -3,6 +3,7 @@
3
3
  const fs = require('fs');
4
4
  const path = require('path');
5
5
  const readline = require('readline');
6
+ const { writeSync } = require('fs');
6
7
 
7
8
  const targetDir = process.argv[2] ? path.resolve(process.argv[2]) : process.cwd();
8
9
  const templateDir = path.join(__dirname, '..');
@@ -15,41 +16,6 @@ const COPY_TARGETS = [
15
16
  '.eleventyignore',
16
17
  ];
17
18
 
18
- const PROJECT_PACKAGE = {
19
- name: path.basename(targetDir),
20
- version: '2.0.13',
21
- private: true,
22
- scripts: {
23
- "build:css": "sass src/frontend/scss:out/css --no-source-map --style=compressed --quiet --load-path=node_modules",
24
- "build:js": "esbuild \"src/frontend/js/pages/*.js\" --bundle --outdir=out/js/pages --minify",
25
- "build:11ty": "eleventy",
26
- "build": "npm run clean && npm run build:css && npm run build:js && npm run build:11ty",
27
- "serve:css": "sass --watch src/frontend/scss:out/css --no-source-map --quiet --load-path=node_modules",
28
- "serve:js": "esbuild \"src/frontend/js/pages/*.js\" --bundle --outdir=out/js/pages --watch",
29
- "serve:11ty": "eleventy --serve --quiet",
30
- "clean": "node _tools/cleanOutput.js",
31
- "serve": "npm run clean && concurrently \"npm run serve:11ty\" \"npm run serve:css\" \"npm run serve:js\"",
32
- "assistant": "node _tools/assistant.js",
33
- "postinstall": "cd src/backend/_core && composer install --quiet"
34
- },
35
- dependencies: {
36
- '@11ty/eleventy': '^3.1.2',
37
- '@11ty/eleventy-img': '^6.0.4',
38
- 'bootstrap': '^5.3.8',
39
- 'bootstrap-icons': '^1.13.1',
40
- 'bulma': '^1.0.4',
41
- 'foundation-sites': '^6.9.0',
42
- 'github-markdown-css': '^5.9.0',
43
- 'glob': '^13.0.6',
44
- 'uikit': '^3.25.13',
45
- },
46
- devDependencies: {
47
- 'concurrently': '^9.2.1',
48
- 'esbuild': '^0.27.3',
49
- 'sass': '^1.77.0',
50
- },
51
- };
52
-
53
19
  const GITIGNORE_CONTENT = `
54
20
  node_modules/
55
21
  src/backend/_core/vendor/
@@ -57,7 +23,12 @@ out/
57
23
  src/backend/config.php
58
24
  `;
59
25
 
60
- // Framework configurations
26
+ const CREATE_DIRS = [
27
+ 'src/frontend/_routes',
28
+ ];
29
+
30
+ const ALL_FRAMEWORKS = ['bootstrap', 'bulma', 'foundation', 'uikit'];
31
+
61
32
  const FRAMEWORKS = {
62
33
  bootstrap: {
63
34
  label: 'Bootstrap',
@@ -102,9 +73,40 @@ const FRAMEWORKS = {
102
73
  },
103
74
  };
104
75
 
105
- const ALL_FRAMEWORKS = ['bootstrap', 'bulma', 'foundation', 'uikit'];
106
-
107
- const { writeSync } = require('fs');
76
+ const PROJECT_PACKAGE = {
77
+ name: path.basename(targetDir),
78
+ version: '2.0.15',
79
+ private: true,
80
+ scripts: {
81
+ "build:css": "sass src/frontend/scss:out/css --no-source-map --style=compressed --quiet --load-path=node_modules",
82
+ "build:js": "esbuild \"src/frontend/js/pages/*.js\" --bundle --outdir=out/js/pages --minify",
83
+ "build:11ty": "eleventy",
84
+ "build": "npm run clean && npm run build:css && npm run build:js && npm run build:11ty",
85
+ "serve:css": "sass --watch src/frontend/scss:out/css --no-source-map --quiet --load-path=node_modules",
86
+ "serve:js": "esbuild \"src/frontend/js/pages/*.js\" --bundle --outdir=out/js/pages --watch",
87
+ "serve:11ty": "eleventy --serve --quiet",
88
+ "clean": "node _tools/cleanOutput.js",
89
+ "serve": "npm run clean && concurrently \"npm run serve:11ty\" \"npm run serve:css\" \"npm run serve:js\"",
90
+ "assistant": "node _tools/assistant.js",
91
+ "postinstall": "cd src/backend/_core && composer install --quiet"
92
+ },
93
+ dependencies: {
94
+ '@11ty/eleventy': '^3.1.2',
95
+ '@11ty/eleventy-img': '^6.0.4',
96
+ 'bootstrap': '^5.3.8',
97
+ 'bootstrap-icons': '^1.13.1',
98
+ 'bulma': '^1.0.4',
99
+ 'foundation-sites': '^6.9.0',
100
+ 'github-markdown-css': '^5.9.0',
101
+ 'glob': '^13.0.6',
102
+ 'uikit': '^3.25.13',
103
+ },
104
+ devDependencies: {
105
+ 'concurrently': '^9.2.1',
106
+ 'esbuild': '^0.27.3',
107
+ 'sass': '^1.77.0',
108
+ },
109
+ };
108
110
 
109
111
  function log(msg) {
110
112
  writeSync(1, msg + '\n');
@@ -295,6 +297,11 @@ async function init() {
295
297
  );
296
298
  log('+ .gitignore');
297
299
 
300
+ for (const dir of CREATE_DIRS) {
301
+ const dest = path.join(targetDir, dir);
302
+ fs.mkdirSync(dest, { recursive: true });
303
+ }
304
+
298
305
  const framework = await askFramework();
299
306
  applyFramework(framework);
300
307
 
@@ -27,6 +27,26 @@ See **Components** DOC file for more info
27
27
 
28
28
  The URL is the kebab-case name (`/my-page/`). The `title` in the front matter is camelCase (`myPage`) and is used internally to load the correct CSS and JS files — do not change it.
29
29
 
30
+ ## Subpages (nested URLs)
31
+
32
+ To create a URL like `domain.it/about/team`, edit the `permalink` in `src/frontend/_routes/team.njk` and add the parent segment before the final slash:
33
+
34
+ ```njk
35
+ ---
36
+ title: "team"
37
+ permalink: "about/team/"
38
+ layout: includes.njk
39
+ ---
40
+ ```
41
+
42
+ The parent path (`about`) does **not** need to exist as a real page — it's just a URL prefix. Only the last segment (`team`) must match the filename and the `title` in the front matter.
43
+
44
+ | Goal URL | permalink value | File |
45
+ |---|---|---|
46
+ | `/team/` | `/team/` | `_routes/team.njk` |
47
+ | `/about/team/` | `/about/team/` | `_routes/team.njk` |
48
+ | `/company/about/team/` | `/company/about/team/` | `_routes/team.njk` |
49
+
30
50
  ## SEO
31
51
 
32
52
  The CLI creates a stub entry in `src/frontend/data/site.json`. Fill it in:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-berna-stencil",
3
- "version": "2.0.13",
3
+ "version": "2.0.15",
4
4
  "description": "Eleventy boilerplate with per-page SCSS/JS pipeline, esbuild bundling, multi-framework CSS support and a built-in page management CLI",
5
5
  "keywords": [],
6
6
  "author": "Michele Garofalo",
@@ -13,48 +13,48 @@ class ComposerStaticInit108be68e4e2b97fed51d36a10eed0849
13
13
  );
14
14
 
15
15
  public static $prefixLengthsPsr4 = array (
16
- 'S' =>
16
+ 'S' =>
17
17
  array (
18
18
  'Symfony\\Polyfill\\Php80\\' => 23,
19
19
  'Symfony\\Polyfill\\Mbstring\\' => 26,
20
20
  'Symfony\\Polyfill\\Ctype\\' => 23,
21
21
  ),
22
- 'P' =>
22
+ 'P' =>
23
23
  array (
24
24
  'PhpOption\\' => 10,
25
25
  ),
26
- 'G' =>
26
+ 'G' =>
27
27
  array (
28
28
  'GrahamCampbell\\ResultType\\' => 26,
29
29
  ),
30
- 'D' =>
30
+ 'D' =>
31
31
  array (
32
32
  'Dotenv\\' => 7,
33
33
  ),
34
34
  );
35
35
 
36
36
  public static $prefixDirsPsr4 = array (
37
- 'Symfony\\Polyfill\\Php80\\' =>
37
+ 'Symfony\\Polyfill\\Php80\\' =>
38
38
  array (
39
39
  0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
40
40
  ),
41
- 'Symfony\\Polyfill\\Mbstring\\' =>
41
+ 'Symfony\\Polyfill\\Mbstring\\' =>
42
42
  array (
43
43
  0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
44
44
  ),
45
- 'Symfony\\Polyfill\\Ctype\\' =>
45
+ 'Symfony\\Polyfill\\Ctype\\' =>
46
46
  array (
47
47
  0 => __DIR__ . '/..' . '/symfony/polyfill-ctype',
48
48
  ),
49
- 'PhpOption\\' =>
49
+ 'PhpOption\\' =>
50
50
  array (
51
51
  0 => __DIR__ . '/..' . '/phpoption/phpoption/src/PhpOption',
52
52
  ),
53
- 'GrahamCampbell\\ResultType\\' =>
53
+ 'GrahamCampbell\\ResultType\\' =>
54
54
  array (
55
55
  0 => __DIR__ . '/..' . '/graham-campbell/result-type/src',
56
56
  ),
57
- 'Dotenv\\' =>
57
+ 'Dotenv\\' =>
58
58
  array (
59
59
  0 => __DIR__ . '/..' . '/vlucas/phpdotenv/src',
60
60
  ),
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "time": "2025-12-27T19:43:20+00:00",
26
26
  "type": "library",
27
- "installation-source": "source",
27
+ "installation-source": "dist",
28
28
  "autoload": {
29
29
  "psr-4": {
30
30
  "GrahamCampbell\\ResultType\\": "src/"
@@ -98,7 +98,7 @@
98
98
  "dev-master": "1.9-dev"
99
99
  }
100
100
  },
101
- "installation-source": "source",
101
+ "installation-source": "dist",
102
102
  "autoload": {
103
103
  "psr-4": {
104
104
  "PhpOption\\": "src/PhpOption/"
@@ -175,7 +175,7 @@
175
175
  "name": "symfony/polyfill"
176
176
  }
177
177
  },
178
- "installation-source": "source",
178
+ "installation-source": "dist",
179
179
  "autoload": {
180
180
  "files": [
181
181
  "bootstrap.php"
@@ -262,7 +262,7 @@
262
262
  "name": "symfony/polyfill"
263
263
  }
264
264
  },
265
- "installation-source": "source",
265
+ "installation-source": "dist",
266
266
  "autoload": {
267
267
  "files": [
268
268
  "bootstrap.php"
@@ -343,7 +343,7 @@
343
343
  "name": "symfony/polyfill"
344
344
  }
345
345
  },
346
- "installation-source": "source",
346
+ "installation-source": "dist",
347
347
  "autoload": {
348
348
  "files": [
349
349
  "bootstrap.php"
@@ -447,7 +447,7 @@
447
447
  "dev-master": "5.6-dev"
448
448
  }
449
449
  },
450
- "installation-source": "source",
450
+ "installation-source": "dist",
451
451
  "autoload": {
452
452
  "psr-4": {
453
453
  "Dotenv\\": "src/"
@@ -3,7 +3,7 @@
3
3
  'name' => '__root__',
4
4
  'pretty_version' => 'dev-main',
5
5
  'version' => 'dev-main',
6
- 'reference' => '4da27b8f50bb1a801f88ad46a9e9eafa51c1bb34',
6
+ 'reference' => '1914258c0d42371ce0d441bf14d8d5c68fbb542f',
7
7
  'type' => 'library',
8
8
  'install_path' => __DIR__ . '/../../',
9
9
  'aliases' => array(),
@@ -13,7 +13,7 @@
13
13
  '__root__' => array(
14
14
  'pretty_version' => 'dev-main',
15
15
  'version' => 'dev-main',
16
- 'reference' => '4da27b8f50bb1a801f88ad46a9e9eafa51c1bb34',
16
+ 'reference' => '1914258c0d42371ce0d441bf14d8d5c68fbb542f',
17
17
  'type' => 'library',
18
18
  'install_path' => __DIR__ . '/../../',
19
19
  'aliases' => array(),
@@ -1,21 +1,21 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2020-2024 Graham Campbell <hello@gjcampbell.co.uk>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2020-2024 Graham Campbell <hello@gjcampbell.co.uk>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -1,33 +1,33 @@
1
- {
2
- "name": "graham-campbell/result-type",
3
- "description": "An Implementation Of The Result Type",
4
- "keywords": ["result", "result-type", "Result", "Result Type", "Result-Type", "Graham Campbell", "GrahamCampbell"],
5
- "license": "MIT",
6
- "authors": [
7
- {
8
- "name": "Graham Campbell",
9
- "email": "hello@gjcampbell.co.uk",
10
- "homepage": "https://github.com/GrahamCampbell"
11
- }
12
- ],
13
- "require": {
14
- "php": "^7.2.5 || ^8.0",
15
- "phpoption/phpoption": "^1.9.5"
16
- },
17
- "require-dev": {
18
- "phpunit/phpunit": "^8.5.41 || ^9.6.22 || ^10.5.45 || ^11.5.7"
19
- },
20
- "autoload": {
21
- "psr-4": {
22
- "GrahamCampbell\\ResultType\\": "src/"
23
- }
24
- },
25
- "autoload-dev": {
26
- "psr-4": {
27
- "GrahamCampbell\\Tests\\ResultType\\": "tests/"
28
- }
29
- },
30
- "config": {
31
- "preferred-install": "dist"
32
- }
33
- }
1
+ {
2
+ "name": "graham-campbell/result-type",
3
+ "description": "An Implementation Of The Result Type",
4
+ "keywords": ["result", "result-type", "Result", "Result Type", "Result-Type", "Graham Campbell", "GrahamCampbell"],
5
+ "license": "MIT",
6
+ "authors": [
7
+ {
8
+ "name": "Graham Campbell",
9
+ "email": "hello@gjcampbell.co.uk",
10
+ "homepage": "https://github.com/GrahamCampbell"
11
+ }
12
+ ],
13
+ "require": {
14
+ "php": "^7.2.5 || ^8.0",
15
+ "phpoption/phpoption": "^1.9.5"
16
+ },
17
+ "require-dev": {
18
+ "phpunit/phpunit": "^8.5.41 || ^9.6.22 || ^10.5.45 || ^11.5.7"
19
+ },
20
+ "autoload": {
21
+ "psr-4": {
22
+ "GrahamCampbell\\ResultType\\": "src/"
23
+ }
24
+ },
25
+ "autoload-dev": {
26
+ "psr-4": {
27
+ "GrahamCampbell\\Tests\\ResultType\\": "tests/"
28
+ }
29
+ },
30
+ "config": {
31
+ "preferred-install": "dist"
32
+ }
33
+ }
@@ -1,121 +1,121 @@
1
- <?php
2
-
3
- declare(strict_types=1);
4
-
5
- /*
6
- * This file is part of Result Type.
7
- *
8
- * (c) Graham Campbell <hello@gjcampbell.co.uk>
9
- *
10
- * For the full copyright and license information, please view the LICENSE
11
- * file that was distributed with this source code.
12
- */
13
-
14
- namespace GrahamCampbell\ResultType;
15
-
16
- use PhpOption\None;
17
- use PhpOption\Some;
18
-
19
- /**
20
- * @template T
21
- * @template E
22
- *
23
- * @extends \GrahamCampbell\ResultType\Result<T,E>
24
- */
25
- final class Error extends Result
26
- {
27
- /**
28
- * @var E
29
- */
30
- private $value;
31
-
32
- /**
33
- * Internal constructor for an error value.
34
- *
35
- * @param E $value
36
- *
37
- * @return void
38
- */
39
- private function __construct($value)
40
- {
41
- $this->value = $value;
42
- }
43
-
44
- /**
45
- * Create a new error value.
46
- *
47
- * @template F
48
- *
49
- * @param F $value
50
- *
51
- * @return \GrahamCampbell\ResultType\Result<T,F>
52
- */
53
- public static function create($value)
54
- {
55
- return new self($value);
56
- }
57
-
58
- /**
59
- * Get the success option value.
60
- *
61
- * @return \PhpOption\Option<T>
62
- */
63
- public function success()
64
- {
65
- return None::create();
66
- }
67
-
68
- /**
69
- * Map over the success value.
70
- *
71
- * @template S
72
- *
73
- * @param callable(T):S $f
74
- *
75
- * @return \GrahamCampbell\ResultType\Result<S,E>
76
- */
77
- public function map(callable $f)
78
- {
79
- return self::create($this->value);
80
- }
81
-
82
- /**
83
- * Flat map over the success value.
84
- *
85
- * @template S
86
- * @template F
87
- *
88
- * @param callable(T):\GrahamCampbell\ResultType\Result<S,F> $f
89
- *
90
- * @return \GrahamCampbell\ResultType\Result<S,F>
91
- */
92
- public function flatMap(callable $f)
93
- {
94
- /** @var \GrahamCampbell\ResultType\Result<S,F> */
95
- return self::create($this->value);
96
- }
97
-
98
- /**
99
- * Get the error option value.
100
- *
101
- * @return \PhpOption\Option<E>
102
- */
103
- public function error()
104
- {
105
- return Some::create($this->value);
106
- }
107
-
108
- /**
109
- * Map over the error value.
110
- *
111
- * @template F
112
- *
113
- * @param callable(E):F $f
114
- *
115
- * @return \GrahamCampbell\ResultType\Result<T,F>
116
- */
117
- public function mapError(callable $f)
118
- {
119
- return self::create($f($this->value));
120
- }
121
- }
1
+ <?php
2
+
3
+ declare(strict_types=1);
4
+
5
+ /*
6
+ * This file is part of Result Type.
7
+ *
8
+ * (c) Graham Campbell <hello@gjcampbell.co.uk>
9
+ *
10
+ * For the full copyright and license information, please view the LICENSE
11
+ * file that was distributed with this source code.
12
+ */
13
+
14
+ namespace GrahamCampbell\ResultType;
15
+
16
+ use PhpOption\None;
17
+ use PhpOption\Some;
18
+
19
+ /**
20
+ * @template T
21
+ * @template E
22
+ *
23
+ * @extends \GrahamCampbell\ResultType\Result<T,E>
24
+ */
25
+ final class Error extends Result
26
+ {
27
+ /**
28
+ * @var E
29
+ */
30
+ private $value;
31
+
32
+ /**
33
+ * Internal constructor for an error value.
34
+ *
35
+ * @param E $value
36
+ *
37
+ * @return void
38
+ */
39
+ private function __construct($value)
40
+ {
41
+ $this->value = $value;
42
+ }
43
+
44
+ /**
45
+ * Create a new error value.
46
+ *
47
+ * @template F
48
+ *
49
+ * @param F $value
50
+ *
51
+ * @return \GrahamCampbell\ResultType\Result<T,F>
52
+ */
53
+ public static function create($value)
54
+ {
55
+ return new self($value);
56
+ }
57
+
58
+ /**
59
+ * Get the success option value.
60
+ *
61
+ * @return \PhpOption\Option<T>
62
+ */
63
+ public function success()
64
+ {
65
+ return None::create();
66
+ }
67
+
68
+ /**
69
+ * Map over the success value.
70
+ *
71
+ * @template S
72
+ *
73
+ * @param callable(T):S $f
74
+ *
75
+ * @return \GrahamCampbell\ResultType\Result<S,E>
76
+ */
77
+ public function map(callable $f)
78
+ {
79
+ return self::create($this->value);
80
+ }
81
+
82
+ /**
83
+ * Flat map over the success value.
84
+ *
85
+ * @template S
86
+ * @template F
87
+ *
88
+ * @param callable(T):\GrahamCampbell\ResultType\Result<S,F> $f
89
+ *
90
+ * @return \GrahamCampbell\ResultType\Result<S,F>
91
+ */
92
+ public function flatMap(callable $f)
93
+ {
94
+ /** @var \GrahamCampbell\ResultType\Result<S,F> */
95
+ return self::create($this->value);
96
+ }
97
+
98
+ /**
99
+ * Get the error option value.
100
+ *
101
+ * @return \PhpOption\Option<E>
102
+ */
103
+ public function error()
104
+ {
105
+ return Some::create($this->value);
106
+ }
107
+
108
+ /**
109
+ * Map over the error value.
110
+ *
111
+ * @template F
112
+ *
113
+ * @param callable(E):F $f
114
+ *
115
+ * @return \GrahamCampbell\ResultType\Result<T,F>
116
+ */
117
+ public function mapError(callable $f)
118
+ {
119
+ return self::create($f($this->value));
120
+ }
121
+ }