nibula 1.6.0 → 1.6.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.
- package/.eleventy.js +82 -81
- package/CHANGELOG.md +395 -377
- package/LICENSE +169 -169
- package/NOTICE +4 -4
- package/README.md +110 -110
- package/bin/create.js +540 -505
- package/bin/delegate.js +58 -57
- package/bin/nibula.js +302 -302
- package/docs/Assistant CLI.md +65 -65
- package/docs/Backend.md +201 -201
- package/docs/Components.md +140 -140
- package/docs/Creating pages.md +69 -69
- package/docs/Deploy.md +210 -210
- package/docs/Head and SEO.md +139 -139
- package/docs/Javascript.md +126 -126
- package/docs/Styling with SCSS.md +141 -139
- package/nginx.conf +113 -113
- package/package.json +69 -69
- package/src/backend/.htaccess +6 -6
- package/src/backend/_core/composer.json +5 -5
- package/src/backend/_core/composer.lock +492 -492
- package/src/backend/_core/index.js +267 -267
- package/src/backend/_core/index.php +160 -160
- package/src/backend/_core/init.js +52 -52
- package/src/backend/_core/init.php +33 -33
- package/src/backend/_core/modules/RateLimiter.js +58 -58
- package/src/backend/_core/modules/RateLimiter.php +30 -30
- package/src/backend/_core/modules/Response.js +59 -59
- package/src/backend/_core/modules/Response.php +48 -48
- package/src/backend/api/protected/example-protected.js +23 -23
- package/src/backend/api/protected/example-protected.php +16 -16
- package/src/backend/api/public/example-public.js +24 -24
- package/src/backend/api/public/example-public.php +16 -16
- package/src/backend/database/Database.js +46 -46
- package/src/backend/database/Database.php +23 -23
- package/src/backend/example.config.js +37 -37
- package/src/backend/example.config.php +37 -37
- package/src/backend/package.json +17 -17
- package/src/backend/web.config +43 -43
- package/src/frontend/.htaccess +51 -51
- package/src/frontend/404.njk +17 -17
- package/src/frontend/assets/brand/favicon.svg +54 -54
- package/src/frontend/assets/brand/logo.svg +54 -54
- package/src/frontend/components/global/footer.njk +25 -25
- package/src/frontend/components/global/header.njk +6 -6
- package/src/frontend/components/welcome.njk +115 -115
- package/src/frontend/index.njk +8 -8
- package/src/frontend/js/global.js +10 -10
- package/src/frontend/js/modules/exampleModule.js +2 -2
- package/src/frontend/js/pages/404.js +8 -8
- package/src/frontend/js/pages/homepage.js +8 -8
- package/src/frontend/layouts/base.njk +135 -136
- package/src/frontend/layouts/page-components.njk +13 -13
- package/src/frontend/llms.njk +17 -17
- package/src/frontend/robots.njk +7 -7
- package/src/frontend/scss/_global.scss +46 -46
- package/src/frontend/scss/_root.scss +13 -13
- package/src/frontend/scss/modules/_animations.scss +24 -24
- package/src/frontend/scss/modules/_footer.scss +28 -28
- package/src/frontend/scss/modules/_header.scss +26 -26
- package/src/frontend/scss/modules/_mobile.scss +29 -29
- package/src/frontend/scss/modules/_typography.scss +18 -18
- package/src/frontend/scss/modules/frameworks/_bootstrap.scss +109 -109
- package/src/frontend/scss/modules/frameworks/_bulma.scss +108 -108
- package/src/frontend/scss/modules/frameworks/_foundation.scss +137 -137
- package/src/frontend/scss/modules/frameworks/_uikit.scss +109 -109
- package/src/frontend/scss/pages/404.scss +27 -27
- package/src/frontend/scss/pages/homepage.scss +22 -22
- package/src/frontend/sitemap.njk +17 -17
- package/src/frontend/ts/global.ts +11 -11
- package/src/frontend/ts/modules/exampleModule.ts +2 -2
- package/src/frontend/ts/pages/404.ts +8 -8
- package/src/frontend/ts/pages/homepage.ts +8 -8
- package/src/frontend/web.config +51 -51
- package/tools/assistant.js +122 -122
- package/tools/buildJs.js +39 -39
- package/tools/cleanOutput.js +23 -23
- package/tools/cli/prompt.js +40 -40
- package/tools/cli/ui.js +87 -87
- package/tools/config/messages.json +80 -80
- package/tools/config/settings.json +130 -130
- package/tools/lib/colors.js +17 -17
- package/tools/lib/files.js +75 -75
- package/tools/lib/logger.js +22 -22
- package/tools/lib/outputPath.js +141 -141
- package/tools/lib/pageActions.js +146 -146
- package/tools/lib/pageArtifacts.js +46 -46
- package/tools/lib/pageComponents.js +88 -88
- package/tools/lib/pagesData.js +87 -87
- package/tools/lib/paths.js +63 -63
- package/tools/lib/project.js +54 -54
- package/tools/lib/text.js +47 -47
- package/tools/lib/validation.js +40 -40
- package/tools/res/templates/template.js +7 -7
- package/tools/res/templates/template.njk +8 -8
- package/tools/res/templates/template.scss +22 -22
- package/tools/res/templates/template.ts +8 -8
- package/tsconfig.json +24 -24
- package/src/frontend/scss/pages/prova.scss +0 -23
package/.eleventy.js
CHANGED
|
@@ -1,82 +1,83 @@
|
|
|
1
|
-
const esbuild = require("esbuild");
|
|
2
|
-
const glob = require("glob");
|
|
3
|
-
const Image = require("@11ty/eleventy-img");
|
|
4
|
-
const fs = require("fs");
|
|
5
|
-
const path = require("path");
|
|
6
|
-
|
|
7
|
-
const OUTPUT_DIR = "out";
|
|
8
|
-
|
|
9
|
-
module.exports = function (eleventyConfig) {
|
|
10
|
-
|
|
11
|
-
function copyRecursiveSync(src, dest) {
|
|
12
|
-
if (!fs.existsSync(src)) return;
|
|
13
|
-
if (src.includes('.git')) return;
|
|
14
|
-
const stat = fs.statSync(src);
|
|
15
|
-
if (stat.isDirectory()) {
|
|
16
|
-
fs.mkdirSync(dest, { recursive: true });
|
|
17
|
-
for (const child of fs.readdirSync(src)) {
|
|
18
|
-
copyRecursiveSync(path.join(src, child), path.join(dest, child));
|
|
19
|
-
}
|
|
20
|
-
} else {
|
|
21
|
-
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
|
22
|
-
fs.copyFileSync(src, dest);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
eleventyConfig.on("eleventy.before", () => {
|
|
27
|
-
copyRecursiveSync("src/backend", `${OUTPUT_DIR}/backend`);
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
eleventyConfig.addPassthroughCopy("src/frontend/.htaccess");
|
|
31
|
-
eleventyConfig.addPassthroughCopy("src/frontend/web.config");
|
|
32
|
-
eleventyConfig.addPassthroughCopy("src/frontend/assets");
|
|
33
|
-
eleventyConfig.addPassthroughCopy("src/frontend/robots.txt");
|
|
34
|
-
|
|
35
|
-
eleventyConfig.addPassthroughCopy({
|
|
36
|
-
|
|
37
|
-
"node_modules/bootstrap
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
//
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
//
|
|
44
|
-
// "node_modules/uikit/dist/js/uikit
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
eleventyConfig.addWatchTarget("./src/frontend/
|
|
67
|
-
eleventyConfig.addWatchTarget("./src/frontend/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
1
|
+
const esbuild = require("esbuild");
|
|
2
|
+
const glob = require("glob");
|
|
3
|
+
const Image = require("@11ty/eleventy-img");
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
|
|
7
|
+
const OUTPUT_DIR = "out";
|
|
8
|
+
|
|
9
|
+
module.exports = function (eleventyConfig) {
|
|
10
|
+
|
|
11
|
+
function copyRecursiveSync(src, dest) {
|
|
12
|
+
if (!fs.existsSync(src)) return;
|
|
13
|
+
if (src.includes('.git')) return;
|
|
14
|
+
const stat = fs.statSync(src);
|
|
15
|
+
if (stat.isDirectory()) {
|
|
16
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
17
|
+
for (const child of fs.readdirSync(src)) {
|
|
18
|
+
copyRecursiveSync(path.join(src, child), path.join(dest, child));
|
|
19
|
+
}
|
|
20
|
+
} else {
|
|
21
|
+
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
|
22
|
+
fs.copyFileSync(src, dest);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
eleventyConfig.on("eleventy.before", () => {
|
|
27
|
+
copyRecursiveSync("src/backend", `${OUTPUT_DIR}/backend`);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
eleventyConfig.addPassthroughCopy("src/frontend/.htaccess");
|
|
31
|
+
eleventyConfig.addPassthroughCopy("src/frontend/web.config");
|
|
32
|
+
eleventyConfig.addPassthroughCopy("src/frontend/assets");
|
|
33
|
+
eleventyConfig.addPassthroughCopy("src/frontend/robots.txt");
|
|
34
|
+
|
|
35
|
+
eleventyConfig.addPassthroughCopy({
|
|
36
|
+
// Bootstrap
|
|
37
|
+
"node_modules/bootstrap/dist/js/bootstrap.bundle.min.js": "js/bootstrap.bundle.min.js",
|
|
38
|
+
"node_modules/bootstrap-icons/font/fonts": "css/fonts",
|
|
39
|
+
|
|
40
|
+
// Foundation
|
|
41
|
+
// "node_modules/foundation-sites/dist/js/foundation.min.js": "js/foundation.min.js",
|
|
42
|
+
|
|
43
|
+
// UIkit
|
|
44
|
+
// "node_modules/uikit/dist/js/uikit.min.js": "js/uikit.min.js",
|
|
45
|
+
// "node_modules/uikit/dist/js/uikit-icons.min.js": "js/uikit-icons.min.js",
|
|
46
|
+
|
|
47
|
+
// Bulma — CSS only, no JS passthrough needed
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
eleventyConfig.addShortcode("image", async function (src, alt) {
|
|
51
|
+
let metadata = await Image(src, {
|
|
52
|
+
widths: [320, 480, 720, 1280, 1920, 2048, 2560, 3840, 4096, 7680],
|
|
53
|
+
formats: ["webp", "jpeg"],
|
|
54
|
+
outputDir: `${OUTPUT_DIR}/assets/images/`,
|
|
55
|
+
urlPath: "/assets/images/",
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
return Image.generateHTML(metadata, {
|
|
59
|
+
alt,
|
|
60
|
+
sizes: "(max-width: 768px) 100vw, 50vw",
|
|
61
|
+
loading: "lazy",
|
|
62
|
+
decoding: "async",
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
eleventyConfig.addWatchTarget("./src/frontend/scss");
|
|
67
|
+
eleventyConfig.addWatchTarget("./src/frontend/routes");
|
|
68
|
+
eleventyConfig.addWatchTarget("./src/frontend/data");
|
|
69
|
+
|
|
70
|
+
eleventyConfig.setServerOptions({
|
|
71
|
+
watch: [`${OUTPUT_DIR}/js/**/*.js`]
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
return {
|
|
75
|
+
dir: {
|
|
76
|
+
input: "src/frontend",
|
|
77
|
+
output: OUTPUT_DIR,
|
|
78
|
+
includes: "components",
|
|
79
|
+
layouts: "layouts",
|
|
80
|
+
data: "data",
|
|
81
|
+
},
|
|
82
|
+
};
|
|
82
83
|
};
|