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 +4 -11
- package/bin/create.js +2 -2
- package/docs/Creating pages.md +3 -5
- package/docs/Head and SEO.md +7 -7
- package/package.json +1 -1
- package/src/frontend/404.njk +2 -1
- package/src/frontend/components/global/footer.njk +13 -12
- package/src/frontend/components/global/header.njk +0 -4
- package/src/frontend/components/welcome.njk +1 -1
- package/src/frontend/scss/modules/_buttons.scss +10 -4
- package/src/frontend/scss/modules/_footer.scss +5 -14
- package/src/frontend/scss/modules/_global.scss +1 -1
- package/src/frontend/scss/pages/404.scss +1 -1
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
|
-

|
|
16
16
|

|
|
17
17
|

|
|
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
|
-
* [ ]
|
|
55
|
-
* [ ]
|
|
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.
|
|
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' },
|
package/docs/Creating pages.md
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
# To be finished...
|
|
2
|
-
|
|
3
1
|
# Creating Pages
|
|
4
2
|
|
|
5
|
-
The recommended way is via the
|
|
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
|
|
44
|
+
See **Head & SEO** for all available options.
|
package/docs/Head and SEO.md
CHANGED
|
@@ -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
|
-
```
|
|
63
|
-
#
|
|
62
|
+
```
|
|
63
|
+
# {{ site.site_name }}
|
|
64
64
|
|
|
65
|
-
>
|
|
65
|
+
> {{ site.description }}
|
|
66
66
|
|
|
67
|
-
Built by
|
|
67
|
+
Built by {{ site.author }} — {{ site.url }}
|
|
68
68
|
|
|
69
69
|
## Pages
|
|
70
70
|
|
|
71
|
-
-
|
|
71
|
+
- {{ site.url }}: Homepage
|
|
72
72
|
|
|
73
73
|
## Notes
|
|
74
74
|
|
|
75
|
-
- Language:
|
|
76
|
-
- All content may be used for AI
|
|
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.
|
|
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",
|
package/src/frontend/404.njk
CHANGED
|
@@ -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
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
13
|
+
<div>
|
|
14
|
+
© {{ 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>{% elif title == "myPage" %}
|
|
327
327
|
{% include "_myPage.njk" %}</code></pre>
|
|
328
|
-
<p>See <a href="components
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
28
|
+
small {
|
|
27
29
|
display: flex;
|
|
28
|
-
|
|
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
|
}
|