create-berna-stencil 2.0.6 → 2.0.8

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.
package/README.md CHANGED
@@ -12,13 +12,14 @@ 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.3-blue)
15
+ ![Version](https://img.shields.io/badge/version-2.0.8-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
 
19
19
  ## Prerequisites
20
20
  * **Node.js**: v18.0.0 or higher
21
21
  * **Composer**: latest stable version
22
+ * #### Optional: Better Nunjucks VS Code extension by Ed Heltzel
22
23
 
23
24
  ## Installation
24
25
  * Open your IDE (e.g. Visual Studio Code), open the folder that contains your websites and open a new terminal
@@ -42,15 +43,7 @@ Building a website from scratch involves a lot of moving parts: templating engin
42
43
  npm run serve
43
44
  ```
44
45
 
45
- ## Changelog
46
-
47
- ### [2.0.3] - 2025-05-28
48
- * Initial release
49
- * Eleventy v3.1.2 support
50
- * Base project structure and scaffolding CLI
51
-
52
46
  ## Roadmap
53
47
  * [ ] Add support for multiple themes
54
- * [ ] Improve CLI with interactive prompts
55
- * [ ] Add TypeScript support
56
- * [ ] Extend documentation with advanced usage examples
48
+ * [ ] Extend documentation with advanced usage examples
49
+ * [ ] Assistant CLI improvement for safer inputs
package/bin/create.js CHANGED
@@ -16,7 +16,7 @@ const COPY_TARGETS = [
16
16
 
17
17
  const PROJECT_PACKAGE = {
18
18
  name: path.basename(targetDir),
19
- version: '2.0.6',
19
+ version: '2.0.8',
20
20
  private: true,
21
21
  scripts: {
22
22
  "build:css": "sass src/frontend/scss:out/css --no-source-map --style=compressed --quiet --load-path=node_modules",
@@ -202,7 +202,7 @@ function applyFramework(framework) {
202
202
  function askFramework() {
203
203
  return new Promise((resolve) => {
204
204
  const choices = [
205
- { label: 'Bootstrap', value: 'bootstrap' },
205
+ { label: 'Bootstrap (default)', value: 'bootstrap' },
206
206
  { label: 'Bulma', value: 'bulma' },
207
207
  { label: 'Foundation', value: 'foundation' },
208
208
  { label: 'UIkit', value: 'uikit' },
@@ -1,11 +1,9 @@
1
- # To be finished...
2
-
3
1
  # Creating Pages
4
2
 
5
- The recommended way is via the [Assistant CLI](assistant-cli.md).
3
+ The recommended way is via the **Assistant CLI**
6
4
 
7
5
  ## What gets created
8
-
6
+ +
9
7
  For a page named `my-page`:
10
8
 
11
9
  | File | Purpose |
@@ -43,4 +41,4 @@ The CLI creates a stub entry in `src/data/site.json`. Fill it in:
43
41
  }
44
42
  ```
45
43
 
46
- See [head-and-seo.md](head-and-seo.md) for all available options.
44
+ See **Head & SEO** for all available options.
@@ -59,21 +59,21 @@ To customize them, edit `src/llms.njk` or `src/robots.njk` directly.
59
59
 
60
60
  `src/llms.njk` ships with a base template — **replace the placeholders with your own content**:
61
61
 
62
- ```markdown
63
- # Site name
62
+ ```
63
+ # {{ site.site_name }}
64
64
 
65
- > Site description
65
+ > {{ site.description }}
66
66
 
67
- Built by Name and surnamehttps://yoursite.com
67
+ Built by {{ site.author }}{{ site.url }}
68
68
 
69
69
  ## Pages
70
70
 
71
- - https://yoursite.com: Homepage
71
+ - {{ site.url }}: Homepage
72
72
 
73
73
  ## Notes
74
74
 
75
- - Language: en
76
- - All content may be used for AI indexing unless otherwise stated
75
+ - Language: {{ site.lang }}
76
+ - All content may be used for AI inde xing unless otherwise stated
77
77
  ```
78
78
 
79
79
  > The more accurate and detailed your `llms.txt`, the better AI models will understand and reference your site.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-berna-stencil",
3
- "version": "2.0.6",
3
+ "version": "2.0.8",
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",
@@ -7,10 +7,11 @@ layout: base.njk
7
7
  <!-- !IMPORTANT -->
8
8
  <!-- This is the only page that you need to modify statically -->
9
9
 
10
- <div class="fade-in center">
10
+ <div class="fade-in not-found">
11
11
  <h1>Oops! Page not found</h1>
12
12
  <a href="/">Return to homepage</a>
13
13
  </div>
14
14
 
15
+
15
16
  {# You can also add the includes you need here below
16
17
  {% include "component.njk" %} #}
@@ -1,5 +1,4 @@
1
1
  <footer>
2
- <div class="footer-top">
3
2
  <div>
4
3
  <h6>{{ site.title }}</h6>
5
4
  <p>{{ site.description }}</p>
@@ -11,16 +10,18 @@
11
10
  <li><a href="/">Homepage</a></li>
12
11
  </ul>
13
12
  </div>
14
- </div>
15
-
16
- <hr />
17
-
18
- <div class="footer-bottom">
19
- <p>&copy; {{ site.copyright.year }} {{ site.name }} {{ site.copyright.text }}.</p>
20
- <small>
21
- <a href="{{ site.legal.privacy }}">Privacy Policy</a>
22
- <a href="{{ site.legal.cookie }}">Cookie Policy</a>
23
- <a href="{{ site.legal.terms }}">Terms and conditions</a>
24
- </small>
13
+ <div>
14
+ &copy; {{ site.copyright.year }} {{ site.name }} {{ site.copyright.text }}
15
+ </div>
16
+ <div>
17
+ <h6>Legal</h6>
18
+ <small>
19
+ <ul>
20
+ <li><a href="{{ site.legal.privacy }}">Privacy Policy</a></li>
21
+ <li><a href="{{ site.legal.cookie }}">Cookie Policy</a></li>
22
+ <li><a href="{{ site.legal.terms }}">Terms and conditions</a></li>
23
+ </ul>
24
+ </small>
25
+ </div>
25
26
  </div>
26
27
  </footer>
@@ -6,10 +6,6 @@
6
6
  <div class="nav-links">
7
7
  <a class="btn" href="/">Homepage</a>
8
8
  <a class="btn" href="/example-page">Example page</a>
9
- <a class="btn" href="/about-us">About-us</a>
10
- </div>
11
- <div class="nav-links">
12
- <a class="btn" href="/contact-us">Contact us</a>
13
9
  </div>
14
10
  </nav>
15
11
  </header>
@@ -325,7 +325,7 @@ export function yourFunction() {
325
325
  </ol>
326
326
  <pre><code>&#123;% elif title == "myPage" %&#125;
327
327
  &#123;% include "_myPage.njk" %&#125;</code></pre>
328
- <p>See <a href="components.html">components.md</a> for details.</p>
328
+ <p>See <a href="#" class="nav-to-components">Components</a> for details.</p>
329
329
  <h3>URL and title</h3>
330
330
  <p>The URL is the kebab-case name (<code>/my-page/</code>). The <code>title</code> in the front matter is camelCase (<code>myPage</code>) and is used internally to load the correct CSS and JS files — <strong>do not change it</strong>.</p>
331
331
  <h3>SEO</h3>
@@ -10,8 +10,14 @@
10
10
  border-radius: 12px;
11
11
  padding: 8px 20px;
12
12
  transition: background 0.2s, color 0.2s;
13
- }
14
- .btn:hover {
15
- background: #42b883;
16
- color: #353535;
13
+
14
+ &:hover {
15
+ background: #42b883;
16
+ color: #353535;
17
+ }
18
+
19
+ &:active {
20
+ background: #42b883 !important;
21
+ color: #353535 !important;
22
+ }
17
23
  }
@@ -5,10 +5,12 @@
5
5
  @use 'root' as root;
6
6
 
7
7
  footer {
8
+ display: flex;
9
+ justify-content: space-around;
8
10
  width: 100%;
9
11
  padding: root.$header-padding-y root.$header-padding-x;
10
12
  background-color: #2e7253;
11
-
13
+
12
14
  h6 {
13
15
  margin-bottom: 0.75rem;
14
16
  }
@@ -23,19 +25,8 @@ footer {
23
25
  margin: 1rem 0;
24
26
  }
25
27
 
26
- .footer-top {
28
+ small {
27
29
  display: flex;
28
- justify-content: space-evenly;
29
- }
30
-
31
- .footer-bottom {
32
- display: flex;
33
- justify-content: space-between;
34
- align-items: center;
35
-
36
- small {
37
- display: flex;
38
- gap: 1rem;
39
- }
30
+ gap: 1rem;
40
31
  }
41
32
  }
@@ -36,7 +36,7 @@
36
36
  }
37
37
 
38
38
  body {
39
- min-height: 100vh;
39
+ min-height: 100svh;
40
40
  display: flex;
41
41
  flex-direction: column;
42
42
  }
@@ -18,7 +18,7 @@
18
18
 
19
19
  // Add any custom rule specific to this page below
20
20
  // These rules override the framework and module styles
21
- .center {
21
+ .not-found {
22
22
  display: flex;
23
23
  flex-direction: column;
24
24
  justify-content: center;