nibula 1.2.4 → 1.2.6

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 (81) hide show
  1. package/.eleventy.js +81 -81
  2. package/.eleventyignore +3 -3
  3. package/.github/workflows/publish.yml +37 -0
  4. package/CHANGELOG.md +179 -148
  5. package/LICENSE +169 -169
  6. package/NOTICE +4 -4
  7. package/README.md +120 -123
  8. package/bin/create.js +507 -507
  9. package/bin/nibula.js +317 -305
  10. package/docs/Assistant CLI.md +65 -65
  11. package/docs/Backend.md +295 -295
  12. package/docs/Components.md +84 -84
  13. package/docs/Creating pages.md +64 -64
  14. package/docs/Deploy.md +189 -189
  15. package/docs/Head and SEO.md +138 -138
  16. package/docs/Javascript.md +50 -50
  17. package/docs/Styling with SCSS.md +141 -141
  18. package/nginx.conf +75 -75
  19. package/package.json +1 -1
  20. package/src/backend/.htaccess +6 -6
  21. package/src/backend/_core/composer.json +5 -5
  22. package/src/backend/_core/composer.lock +492 -492
  23. package/src/backend/_core/index.js +267 -267
  24. package/src/backend/_core/index.php +147 -147
  25. package/src/backend/_core/init.js +52 -52
  26. package/src/backend/_core/init.php +33 -33
  27. package/src/backend/_core/modules/RateLimiter.js +58 -58
  28. package/src/backend/_core/modules/RateLimiter.php +30 -30
  29. package/src/backend/_core/modules/Response.js +59 -59
  30. package/src/backend/_core/modules/Response.php +48 -48
  31. package/src/backend/api/protected/example-protected.js +23 -23
  32. package/src/backend/api/protected/example-protected.php +16 -16
  33. package/src/backend/api/public/example-public.js +24 -24
  34. package/src/backend/api/public/example-public.php +16 -16
  35. package/src/backend/backend-node.service.example +30 -30
  36. package/src/backend/database/Database.js +46 -46
  37. package/src/backend/database/Database.php +23 -23
  38. package/src/backend/example.config.js +37 -37
  39. package/src/backend/example.config.php +27 -27
  40. package/src/backend/package.json +18 -18
  41. package/src/backend/web.config +16 -16
  42. package/src/frontend/.htaccess +51 -51
  43. package/src/frontend/404.njk +17 -17
  44. package/src/frontend/assets/brand/favicon.svg +54 -54
  45. package/src/frontend/assets/brand/logo.svg +54 -54
  46. package/src/frontend/components/global/footer.njk +25 -25
  47. package/src/frontend/components/global/header.njk +6 -6
  48. package/src/frontend/components/welcome.njk +114 -114
  49. package/src/frontend/data/site.json +48 -48
  50. package/src/frontend/index.njk +8 -8
  51. package/src/frontend/js/modules/exampleModule.js +2 -2
  52. package/src/frontend/js/pages/404.js +6 -6
  53. package/src/frontend/js/pages/homepage.js +6 -6
  54. package/src/frontend/layouts/base.njk +132 -132
  55. package/src/frontend/layouts/page-components.njk +13 -13
  56. package/src/frontend/llms.njk +17 -17
  57. package/src/frontend/robots.njk +7 -7
  58. package/src/frontend/scss/modules/_animations.scss +24 -24
  59. package/src/frontend/scss/modules/_footer.scss +27 -27
  60. package/src/frontend/scss/modules/_global.scss +47 -47
  61. package/src/frontend/scss/modules/_header.scss +27 -27
  62. package/src/frontend/scss/modules/_mobile.scss +29 -29
  63. package/src/frontend/scss/modules/_root.scss +34 -34
  64. package/src/frontend/scss/modules/_typography.scss +14 -14
  65. package/src/frontend/scss/modules/frameworks/_bootstrap.scss +109 -109
  66. package/src/frontend/scss/modules/frameworks/_bulma.scss +108 -108
  67. package/src/frontend/scss/modules/frameworks/_foundation.scss +138 -139
  68. package/src/frontend/scss/modules/frameworks/_uikit.scss +109 -109
  69. package/src/frontend/scss/pages/404.scss +27 -27
  70. package/src/frontend/scss/pages/homepage.scss +22 -22
  71. package/src/frontend/sitemap.njk +17 -17
  72. package/src/frontend/ts/modules/exampleModule.ts +2 -2
  73. package/src/frontend/ts/pages/404.ts +6 -6
  74. package/src/frontend/ts/pages/homepage.ts +6 -6
  75. package/src/frontend/web.config +55 -55
  76. package/tools/config/messages.json +3 -1
  77. package/tools/res/templates/template.js +6 -6
  78. package/tools/res/templates/template.njk +8 -8
  79. package/tools/res/templates/template.scss +22 -22
  80. package/tools/res/templates/template.ts +6 -6
  81. package/tsconfig.json +24 -24
@@ -1,14 +1,14 @@
1
- ---
2
- layout: base.njk
3
- ---
4
-
5
- <!-- NJK (HTML) components per page -->
6
-
7
- {% if title == "homepage" %}
8
- {% include "welcome.njk" ignore missing %}
9
-
10
- {% else %}
11
- <!-- You should not touch this else statement -->
12
- {% include "404/_404.njk" %}
13
- {{ content | safe }}
1
+ ---
2
+ layout: base.njk
3
+ ---
4
+
5
+ <!-- NJK (HTML) components per page -->
6
+
7
+ {% if title == "homepage" %}
8
+ {% include "welcome.njk" ignore missing %}
9
+
10
+ {% else %}
11
+ <!-- You should not touch this else statement -->
12
+ {% include "404/_404.njk" %}
13
+ {{ content | safe }}
14
14
  {% endif %}
@@ -1,18 +1,18 @@
1
- ---
2
- permalink: /llms.txt
3
- eleventyExcludeFromCollections: true
4
- ---
5
- # {{ site.site_name }}
6
-
7
- > {{ site.description }}
8
-
9
- Built by {{ site.author }} — {{ site.url }}
10
-
11
- ## Pages
12
-
13
- - {{ site.url }}: Homepage
14
-
15
- ## Notes
16
-
17
- - Language: {{ site.lang }}
1
+ ---
2
+ permalink: /llms.txt
3
+ eleventyExcludeFromCollections: true
4
+ ---
5
+ # {{ site.site_name }}
6
+
7
+ > {{ site.description }}
8
+
9
+ Built by {{ site.author }} — {{ site.url }}
10
+
11
+ ## Pages
12
+
13
+ - {{ site.url }}: Homepage
14
+
15
+ ## Notes
16
+
17
+ - Language: {{ site.lang }}
18
18
  - All content may be used for AI indexing unless otherwise stated
@@ -1,8 +1,8 @@
1
- ---
2
- permalink: /robots.txt
3
- eleventyExcludeFromCollections: true
4
- ---
5
- Sitemap: {{ site.url }}/sitemap.xml
6
-
7
- User-agent: *
1
+ ---
2
+ permalink: /robots.txt
3
+ eleventyExcludeFromCollections: true
4
+ ---
5
+ Sitemap: {{ site.url }}/sitemap.xml
6
+
7
+ User-agent: *
8
8
  Disallow:
@@ -1,25 +1,25 @@
1
- //==========================
2
- // CSS RULES FOR ANIMATIONS
3
- //==========================
4
-
5
- // Getting root rules from _root.scss
6
- @use 'root' as root;
7
-
8
- .fade-in {
9
- animation: fadeIn 1s;
10
- }
11
-
12
- @keyframes fadeIn {
13
- from {
14
- opacity: 0;
15
- }
16
-
17
- to {
18
- opacity: 1;
19
- }
20
- }
21
-
22
- @keyframes spin {
23
- from { transform: rotate(0deg); }
24
- to { transform: rotate(360deg); }
1
+ //==========================
2
+ // CSS RULES FOR ANIMATIONS
3
+ //==========================
4
+
5
+ // Getting root rules from _root.scss
6
+ @use 'root' as root;
7
+
8
+ .fade-in {
9
+ animation: fadeIn 1s;
10
+ }
11
+
12
+ @keyframes fadeIn {
13
+ from {
14
+ opacity: 0;
15
+ }
16
+
17
+ to {
18
+ opacity: 1;
19
+ }
20
+ }
21
+
22
+ @keyframes spin {
23
+ from { transform: rotate(0deg); }
24
+ to { transform: rotate(360deg); }
25
25
  }
@@ -1,28 +1,28 @@
1
- //==========================
2
- // CSS RULES FOR FOOTER
3
- //==========================
4
-
5
- @use 'root' as root;
6
-
7
- footer {
8
- display: flex;
9
- justify-content: space-around;
10
- width: 100%;
11
- padding: root.$header-padding-y root.$header-padding-x;
12
- background-color: #2e7253;
13
-
14
- h6 {
15
- margin-bottom: 0.75rem;
16
- }
17
-
18
- ul {
19
- list-style: none;
20
- padding: 0;
21
- margin: 0;
22
- }
23
-
24
- small {
25
- display: flex;
26
- gap: 1rem;
27
- }
1
+ //==========================
2
+ // CSS RULES FOR FOOTER
3
+ //==========================
4
+
5
+ @use 'root' as root;
6
+
7
+ footer {
8
+ display: flex;
9
+ justify-content: space-around;
10
+ width: 100%;
11
+ padding: root.$header-padding-y root.$header-padding-x;
12
+ background-color: #2e7253;
13
+
14
+ h6 {
15
+ margin-bottom: 0.75rem;
16
+ }
17
+
18
+ ul {
19
+ list-style: none;
20
+ padding: 0;
21
+ margin: 0;
22
+ }
23
+
24
+ small {
25
+ display: flex;
26
+ gap: 1rem;
27
+ }
28
28
  }
@@ -1,48 +1,48 @@
1
- //==========================
2
- // CSS RULES FOR THE ENTIRE SITE
3
- //==========================
4
-
5
- // Getting root rules from _root.scss
6
- @use 'root' as root;
7
-
8
- // Frameworks imports
9
- @import "../modules/frameworks/bootstrap";
10
- // @import "../modules/frameworks/bulma";
11
- // @import "../modules/frameworks/foundation";
12
- // @import "../modules/frameworks/uikit";
13
-
14
-
15
- // Modules imports
16
- @import "typography";
17
-
18
- @import "header";
19
- @import "footer";
20
-
21
- @import "animations";
22
- @import "mobile";
23
-
24
- //==========================
25
- // Global css rules for the entire site
26
- //==========================
27
-
28
- *,
29
- *::before,
30
- *::after {
31
- margin: 0;
32
- padding: 0;
33
- box-sizing: border-box;
34
- }
35
-
36
- body {
37
- display: flex;
38
- flex-direction: column;
39
- min-height: 100svh;
40
- }
41
-
42
- main {
43
- flex: 1;
44
- }
45
-
46
- a {
47
- text-decoration: none !important;
1
+ //==========================
2
+ // CSS RULES FOR THE ENTIRE SITE
3
+ //==========================
4
+
5
+ // Getting root rules from _root.scss
6
+ @use 'root' as root;
7
+
8
+ // Frameworks imports
9
+ @import "../modules/frameworks/bootstrap";
10
+ // @import "../modules/frameworks/bulma";
11
+ // @import "../modules/frameworks/foundation";
12
+ // @import "../modules/frameworks/uikit";
13
+
14
+
15
+ // Modules imports
16
+ @import "typography";
17
+
18
+ @import "header";
19
+ @import "footer";
20
+
21
+ @import "animations";
22
+ @import "mobile";
23
+
24
+ //==========================
25
+ // Global css rules for the entire site
26
+ //==========================
27
+
28
+ *,
29
+ *::before,
30
+ *::after {
31
+ margin: 0;
32
+ padding: 0;
33
+ box-sizing: border-box;
34
+ }
35
+
36
+ body {
37
+ display: flex;
38
+ flex-direction: column;
39
+ min-height: 100svh;
40
+ }
41
+
42
+ main {
43
+ flex: 1;
44
+ }
45
+
46
+ a {
47
+ text-decoration: none !important;
48
48
  }
@@ -1,28 +1,28 @@
1
- //==========================
2
- // CSS RULES FOR HEADER
3
- //==========================
4
-
5
- // Getting root rules from _root.scss
6
- @use 'root' as root;
7
-
8
- header {
9
- height: root.$header-height;
10
- width: 100%;
11
- display: flex;
12
- justify-content: center;
13
- align-items: center;
14
- padding: root.$header-padding-y root.$header-padding-x;
15
- background-color: root.$primary;
16
- background-color: #2e7253;
17
- }
18
-
19
- nav {
20
- display: flex;
21
- justify-content: space-between;
22
- align-items: center;
23
- width: 100%;
24
- }
25
-
26
- nav .logo {
27
- padding: 10px;
1
+ //==========================
2
+ // CSS RULES FOR HEADER
3
+ //==========================
4
+
5
+ // Getting root rules from _root.scss
6
+ @use 'root' as root;
7
+
8
+ header {
9
+ height: root.$header-height;
10
+ width: 100%;
11
+ display: flex;
12
+ justify-content: center;
13
+ align-items: center;
14
+ padding: root.$header-padding-y root.$header-padding-x;
15
+ background-color: root.$primary;
16
+ background-color: #2e7253;
17
+ }
18
+
19
+ nav {
20
+ display: flex;
21
+ justify-content: space-between;
22
+ align-items: center;
23
+ width: 100%;
24
+ }
25
+
26
+ nav .logo {
27
+ padding: 10px;
28
28
  }
@@ -1,30 +1,30 @@
1
- //==========================
2
- // CSS RULES FOR RESPONSIVE
3
- //==========================
4
-
5
- // Getting root rules from _root.scss
6
- @use 'root' as root;
7
-
8
- //==========================
9
- // MEDIA QUERIES
10
- //==========================
11
-
12
- @media (max-width: 1400px) {
13
-
14
- }
15
-
16
- @media (max-width: 1200px) {
17
-
18
- }
19
-
20
- @media (max-width: 992px) {
21
-
22
- }
23
-
24
- @media (max-width: 768px) {
25
-
26
- }
27
-
28
- @media (max-width: 576px) {
29
-
1
+ //==========================
2
+ // CSS RULES FOR RESPONSIVE
3
+ //==========================
4
+
5
+ // Getting root rules from _root.scss
6
+ @use 'root' as root;
7
+
8
+ //==========================
9
+ // MEDIA QUERIES
10
+ //==========================
11
+
12
+ @media (max-width: 1400px) {
13
+
14
+ }
15
+
16
+ @media (max-width: 1200px) {
17
+
18
+ }
19
+
20
+ @media (max-width: 992px) {
21
+
22
+ }
23
+
24
+ @media (max-width: 768px) {
25
+
26
+ }
27
+
28
+ @media (max-width: 576px) {
29
+
30
30
  }
@@ -1,35 +1,35 @@
1
- // NOTE: This file contains only Sass variables (no CSS output).
2
- // When imported with @import, all variables are global and may be
3
- // overwritten by other imported files with the same variable names.
4
- // Use @use 'root' as root; to avoid namespace collisions.
5
-
6
-
7
- //==========================
8
- // STRUCTURE
9
- //==========================
10
- $header-height: 10vh;
11
- $header-padding-y: 15px;
12
- $header-padding-x: 15px;
13
-
14
- //==========================
15
- // COLORS — BASE
16
- //==========================
17
- $primary: rgba(0, 0, 0, 0.5);
18
- $secondary: #a3dcff;
19
- $accent: #f9a8c9;
20
-
21
- //==========================
22
- // COLORS — NEUTRALS
23
- //==========================
24
- $white: #ffffff;
25
- $light: #f5f5f5;
26
- $muted: #888888;
27
- $dark: #2d2d2d;
28
-
29
- //==========================
30
- // COLORS — SEMANTIC
31
- //==========================
32
- $success: #198754;
33
- $warning: #ffc107;
34
- $danger: #dc3545;
1
+ // NOTE: This file contains only Sass variables (no CSS output).
2
+ // When imported with @import, all variables are global and may be
3
+ // overwritten by other imported files with the same variable names.
4
+ // Use @use 'root' as root; to avoid namespace collisions.
5
+
6
+
7
+ //==========================
8
+ // STRUCTURE
9
+ //==========================
10
+ $header-height: 10vh;
11
+ $header-padding-y: 15px;
12
+ $header-padding-x: 15px;
13
+
14
+ //==========================
15
+ // COLORS — BASE
16
+ //==========================
17
+ $primary: rgba(0, 0, 0, 0.5);
18
+ $secondary: #a3dcff;
19
+ $accent: #f9a8c9;
20
+
21
+ //==========================
22
+ // COLORS — NEUTRALS
23
+ //==========================
24
+ $white: #ffffff;
25
+ $light: #f5f5f5;
26
+ $muted: #888888;
27
+ $dark: #2d2d2d;
28
+
29
+ //==========================
30
+ // COLORS — SEMANTIC
31
+ //==========================
32
+ $success: #198754;
33
+ $warning: #ffc107;
34
+ $danger: #dc3545;
35
35
  $info: #0dcaf0;
@@ -1,15 +1,15 @@
1
- // Getting root rules from _root.scss
2
- @use "root" as root;
3
-
4
- html {
5
- font-size: 16px;
6
- scroll-behavior: smooth;
7
- }
8
-
9
- body {
10
- font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
11
- }
12
-
13
- a {
14
- text-decoration: none;
1
+ // Getting root rules from _root.scss
2
+ @use "root" as root;
3
+
4
+ html {
5
+ font-size: 16px;
6
+ scroll-behavior: smooth;
7
+ }
8
+
9
+ body {
10
+ font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
11
+ }
12
+
13
+ a {
14
+ text-decoration: none;
15
15
  }