domma-js 0.9.7-alpha → 0.9.9-alpha
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/bin/domma-cli.js +90 -47
- package/package.json +1 -1
- package/templates/kickstart/frontend/js/app.js +4 -3
- package/templates/kickstart/frontend/pages/about/index.html +8 -5
- package/templates/kickstart/frontend/pages/blog/index.html +8 -5
- package/templates/kickstart/frontend/pages/contact/index.html +8 -5
- package/templates/kickstart/frontend/pages/cookies/index.html +8 -5
- package/templates/kickstart/frontend/pages/docs/index.html +10 -7
- package/templates/kickstart/frontend/pages/index.html +8 -5
- package/templates/kickstart/frontend/pages/privacy/index.html +4 -1
- package/templates/kickstart/frontend/pages/terms/index.html +8 -5
- package/templates/page-template/page.html +8 -5
package/bin/domma-cli.js
CHANGED
|
@@ -9,6 +9,11 @@ import {stdin as input, stdout as output} from 'process';
|
|
|
9
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
10
|
const __dirname = dirname(__filename);
|
|
11
11
|
|
|
12
|
+
// Read version from package.json
|
|
13
|
+
const packageJsonPath = join(__dirname, '..', 'package.json');
|
|
14
|
+
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
15
|
+
const VERSION = packageJson.version;
|
|
16
|
+
|
|
12
17
|
const THEMES = [
|
|
13
18
|
'charcoal-dark', 'ocean-dark', 'forest-dark', 'sunset-light',
|
|
14
19
|
'silver-light', 'ocean-light', 'forest-light', 'sunset-dark',
|
|
@@ -20,29 +25,33 @@ const args = process.argv.slice(2);
|
|
|
20
25
|
const command = args[0];
|
|
21
26
|
|
|
22
27
|
// Command routing
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
switch (command) {
|
|
29
|
+
case 'init':
|
|
30
|
+
case undefined:
|
|
31
|
+
handleInit();
|
|
32
|
+
break;
|
|
33
|
+
case 'add':
|
|
34
|
+
handleAdd();
|
|
35
|
+
break;
|
|
36
|
+
case 'version':
|
|
37
|
+
case '--version':
|
|
38
|
+
case '-v':
|
|
39
|
+
showVersion();
|
|
40
|
+
break;
|
|
41
|
+
case 'help':
|
|
42
|
+
case '--help':
|
|
43
|
+
case '-h':
|
|
44
|
+
showHelp();
|
|
45
|
+
break;
|
|
46
|
+
default:
|
|
47
|
+
// Check if it's a --flag for init
|
|
48
|
+
if (command && command.startsWith('--')) {
|
|
31
49
|
handleInit();
|
|
32
|
-
|
|
33
|
-
case 'add':
|
|
34
|
-
handleAdd();
|
|
35
|
-
break;
|
|
36
|
-
case 'help':
|
|
37
|
-
case '--help':
|
|
38
|
-
case '-h':
|
|
39
|
-
showHelp();
|
|
40
|
-
break;
|
|
41
|
-
default:
|
|
50
|
+
} else {
|
|
42
51
|
console.error(`Unknown command: ${command}`);
|
|
43
52
|
showHelp();
|
|
44
53
|
process.exit(1);
|
|
45
|
-
|
|
54
|
+
}
|
|
46
55
|
}
|
|
47
56
|
|
|
48
57
|
/**
|
|
@@ -56,6 +65,7 @@ async function handleInit() {
|
|
|
56
65
|
╔═══════════════════════════════════════╗
|
|
57
66
|
║ ║
|
|
58
67
|
║ Welcome to Domma CLI! ║
|
|
68
|
+
║ v${VERSION.padEnd(24)}║
|
|
59
69
|
║ ║
|
|
60
70
|
╚═══════════════════════════════════════╝
|
|
61
71
|
|
|
@@ -123,8 +133,8 @@ async function handleInit() {
|
|
|
123
133
|
// Copy all templates with variable substitution
|
|
124
134
|
copyTemplatesRecursive(templatesDir, process.cwd(), vars);
|
|
125
135
|
|
|
126
|
-
// Copy Domma dist files to frontend/dist
|
|
127
|
-
const frontendDistDir = join(process.cwd(), 'frontend', 'dist');
|
|
136
|
+
// Copy Domma dist files to frontend/dist/domma
|
|
137
|
+
const frontendDistDir = join(process.cwd(), 'frontend', 'dist', 'domma');
|
|
128
138
|
console.log(`\n Copying Domma distribution files...\n`);
|
|
129
139
|
|
|
130
140
|
if (!existsSync(frontendDistDir)) {
|
|
@@ -188,7 +198,7 @@ async function handleAdd() {
|
|
|
188
198
|
*/
|
|
189
199
|
async function handleAddPage() {
|
|
190
200
|
const quickMode = args.includes('--quick');
|
|
191
|
-
let
|
|
201
|
+
let pagePath = args[2];
|
|
192
202
|
|
|
193
203
|
// Check if we're in a Domma project
|
|
194
204
|
const configPath = join(process.cwd(), 'domma.config.json');
|
|
@@ -198,22 +208,23 @@ async function handleAddPage() {
|
|
|
198
208
|
process.exit(1);
|
|
199
209
|
}
|
|
200
210
|
|
|
201
|
-
if (!
|
|
202
|
-
console.error('Page
|
|
203
|
-
console.log('Usage: npx domma-js add page <
|
|
211
|
+
if (!pagePath && quickMode) {
|
|
212
|
+
console.error('Page path required with --quick flag');
|
|
213
|
+
console.log('Usage: npx domma-js add page <path> --quick');
|
|
214
|
+
console.log('Example: npx domma-js add page frontend/pages/dashboard --quick');
|
|
204
215
|
process.exit(1);
|
|
205
216
|
}
|
|
206
217
|
|
|
207
218
|
if (!quickMode) {
|
|
208
219
|
const rl = readline.createInterface({input, output});
|
|
209
220
|
|
|
210
|
-
if (!
|
|
211
|
-
const
|
|
212
|
-
|
|
221
|
+
if (!pagePath) {
|
|
222
|
+
const pathAnswer = await rl.question(' Page path (e.g., frontend/pages/dashboard): ');
|
|
223
|
+
pagePath = pathAnswer.trim();
|
|
213
224
|
}
|
|
214
225
|
|
|
215
|
-
if (!
|
|
216
|
-
console.error(' ✗ Page
|
|
226
|
+
if (!pagePath) {
|
|
227
|
+
console.error(' ✗ Page path is required');
|
|
217
228
|
rl.close();
|
|
218
229
|
process.exit(1);
|
|
219
230
|
}
|
|
@@ -221,26 +232,35 @@ async function handleAddPage() {
|
|
|
221
232
|
rl.close();
|
|
222
233
|
}
|
|
223
234
|
|
|
224
|
-
//
|
|
225
|
-
|
|
235
|
+
// Parse the path to extract directory and page name
|
|
236
|
+
const pathParts = pagePath.split('/').filter(p => p.length > 0);
|
|
237
|
+
const pageName = pathParts[pathParts.length - 1].toLowerCase().replace(/[^a-z0-9-]/g, '-');
|
|
238
|
+
const pageDir = pathParts.slice(0, -1).join('/');
|
|
226
239
|
|
|
227
240
|
// Create page
|
|
228
|
-
createPage(pageName);
|
|
241
|
+
createPage(pageDir, pageName);
|
|
229
242
|
}
|
|
230
243
|
|
|
231
244
|
/**
|
|
232
245
|
* Create a new page from template
|
|
233
246
|
*/
|
|
234
|
-
function createPage(pageName) {
|
|
235
|
-
|
|
247
|
+
function createPage(pageDir, pageName) {
|
|
248
|
+
// Build full path
|
|
249
|
+
const fullPath = pageDir ? join(process.cwd(), pageDir, pageName) : join(process.cwd(), pageName);
|
|
236
250
|
|
|
237
|
-
if (existsSync(
|
|
238
|
-
console.error(`\n ✗ Page "${pageName}" already exists`);
|
|
251
|
+
if (existsSync(fullPath)) {
|
|
252
|
+
console.error(`\n ✗ Page "${pageName}" already exists at this location`);
|
|
239
253
|
process.exit(1);
|
|
240
254
|
}
|
|
241
255
|
|
|
242
256
|
// Create directory
|
|
243
|
-
mkdirSync(
|
|
257
|
+
mkdirSync(fullPath, {recursive: true});
|
|
258
|
+
|
|
259
|
+
// Calculate depth for relative paths
|
|
260
|
+
// Count how many folders deep we are from project root
|
|
261
|
+
const pathSegments = pageDir ? pageDir.split('/').filter(p => p.length > 0) : [];
|
|
262
|
+
const depth = pathSegments.length + 1; // +1 for the page folder itself
|
|
263
|
+
const parentPath = '../'.repeat(depth);
|
|
244
264
|
|
|
245
265
|
// Get templates
|
|
246
266
|
const pageTemplateDir = join(__dirname, '..', 'templates', 'page-template');
|
|
@@ -251,7 +271,7 @@ function createPage(pageName) {
|
|
|
251
271
|
}
|
|
252
272
|
|
|
253
273
|
// Read templates
|
|
254
|
-
|
|
274
|
+
let htmlTemplate = readFileSync(join(pageTemplateDir, 'page.html'), 'utf-8');
|
|
255
275
|
const jsTemplate = readFileSync(join(pageTemplateDir, 'page.js'), 'utf-8');
|
|
256
276
|
|
|
257
277
|
// Get project config for theme
|
|
@@ -266,6 +286,13 @@ function createPage(pageName) {
|
|
|
266
286
|
}
|
|
267
287
|
}
|
|
268
288
|
|
|
289
|
+
// Adjust paths in template based on depth
|
|
290
|
+
// Template has ../../ by default (depth 2)
|
|
291
|
+
// We need to replace with the correct depth
|
|
292
|
+
htmlTemplate = htmlTemplate.replaceAll('../../dist/domma/', `${parentPath}dist/domma/`);
|
|
293
|
+
htmlTemplate = htmlTemplate.replaceAll('../../css/', `${parentPath}css/`);
|
|
294
|
+
htmlTemplate = htmlTemplate.replaceAll('../../js/', `${parentPath}js/`);
|
|
295
|
+
|
|
269
296
|
// Variable substitution
|
|
270
297
|
const titleCase = pageName.split('-').map(w =>
|
|
271
298
|
w.charAt(0).toUpperCase() + w.slice(1)
|
|
@@ -286,12 +313,14 @@ function createPage(pageName) {
|
|
|
286
313
|
}
|
|
287
314
|
|
|
288
315
|
// Write files
|
|
289
|
-
writeFileSync(join(
|
|
290
|
-
writeFileSync(join(
|
|
316
|
+
writeFileSync(join(fullPath, 'index.html'), html);
|
|
317
|
+
writeFileSync(join(fullPath, `${pageName}.js`), js);
|
|
291
318
|
|
|
292
|
-
|
|
319
|
+
const displayPath = pageDir ? `${pageDir}/${pageName}` : pageName;
|
|
320
|
+
console.log(`\n ✓ Page created: ${displayPath}/`);
|
|
293
321
|
console.log(` - index.html`);
|
|
294
|
-
console.log(` - ${pageName}.js
|
|
322
|
+
console.log(` - ${pageName}.js`);
|
|
323
|
+
console.log(` Depth: ${depth} (using ${parentPath})\n`);
|
|
295
324
|
console.log(` Don't forget to add it to your navbar in domma.config.json!\n`);
|
|
296
325
|
}
|
|
297
326
|
|
|
@@ -328,26 +357,40 @@ function copyTemplatesRecursive(srcDir, destDir, vars) {
|
|
|
328
357
|
}
|
|
329
358
|
}
|
|
330
359
|
|
|
360
|
+
/**
|
|
361
|
+
* Show version information
|
|
362
|
+
*/
|
|
363
|
+
function showVersion() {
|
|
364
|
+
console.log(`domma-js v${VERSION}`);
|
|
365
|
+
}
|
|
366
|
+
|
|
331
367
|
/**
|
|
332
368
|
* Show help information
|
|
333
369
|
*/
|
|
334
370
|
function showHelp() {
|
|
335
371
|
console.log(`
|
|
336
|
-
Domma CLI - Project scaffolding and management
|
|
372
|
+
Domma CLI v${VERSION} - Project scaffolding and management
|
|
337
373
|
|
|
338
374
|
Commands:
|
|
339
375
|
npx domma-js Initialize a new Domma project
|
|
340
376
|
npx domma-js init Initialize a new Domma project
|
|
341
|
-
npx domma-js add page <
|
|
377
|
+
npx domma-js add page <path> Add a new page at specified path
|
|
342
378
|
--quick Skip interactive prompts
|
|
343
379
|
|
|
344
380
|
Options:
|
|
345
381
|
--help, -h Show this help message
|
|
382
|
+
--version, -v Show version number
|
|
346
383
|
|
|
347
384
|
Examples:
|
|
348
385
|
npx domma-js # Interactive project setup
|
|
349
386
|
npx domma-js --quick # Quick project setup with defaults
|
|
350
|
-
|
|
351
|
-
|
|
387
|
+
|
|
388
|
+
# Add pages at different paths:
|
|
389
|
+
npx domma-js add page admin # Root level (admin/)
|
|
390
|
+
npx domma-js add page pages/dashboard # One level deep (pages/dashboard/)
|
|
391
|
+
npx domma-js add page frontend/pages/profile # Two levels deep (frontend/pages/profile/)
|
|
392
|
+
npx domma-js add page src/views/settings --quick # Quick mode (non-interactive)
|
|
393
|
+
|
|
394
|
+
Note: Paths are automatically calculated based on folder depth
|
|
352
395
|
`);
|
|
353
396
|
}
|
package/package.json
CHANGED
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
$(() => {
|
|
9
|
-
// Determine config path based on page
|
|
9
|
+
// Determine config path based on page location
|
|
10
10
|
// Root pages (pages/index.html) need ../domma.config.json
|
|
11
11
|
// Sub-pages (pages/about/index.html) need ../../domma.config.json
|
|
12
|
-
const
|
|
13
|
-
const
|
|
12
|
+
const pathname = window.location.pathname;
|
|
13
|
+
const isSubPage = pathname.match(/\/pages\/[^/]+\//) !== null;
|
|
14
|
+
const configPath = isSubPage ? '../../domma.config.json' : '../domma.config.json';
|
|
14
15
|
|
|
15
16
|
// Load configuration
|
|
16
17
|
Domma.http.get(configPath).then(config => {
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
<title>About - {{projectName}}</title>
|
|
7
7
|
|
|
8
8
|
<!-- Domma CSS -->
|
|
9
|
-
<link rel="stylesheet" href="../../dist/domma.css">
|
|
10
|
-
<link rel="stylesheet" href="../../dist/grid.css">
|
|
11
|
-
<link rel="stylesheet" href="../../dist/elements.css">
|
|
12
|
-
<link rel="stylesheet" href="../../dist/themes/domma-themes.css">
|
|
9
|
+
<link rel="stylesheet" href="../../dist/domma/domma.css">
|
|
10
|
+
<link rel="stylesheet" href="../../dist/domma/grid.css">
|
|
11
|
+
<link rel="stylesheet" href="../../dist/domma/elements.css">
|
|
12
|
+
<link rel="stylesheet" href="../../dist/domma/themes/domma-themes.css">
|
|
13
13
|
|
|
14
14
|
<!-- Custom CSS -->
|
|
15
15
|
<link rel="stylesheet" href="../../css/custom.css">
|
|
@@ -218,8 +218,11 @@
|
|
|
218
218
|
<!-- Footer -->
|
|
219
219
|
<footer class="page-footer"></footer>
|
|
220
220
|
|
|
221
|
+
<!-- Security: DOMPurify for XSS protection -->
|
|
222
|
+
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.2.5/dist/purify.min.js"></script>
|
|
223
|
+
|
|
221
224
|
<!-- Domma JavaScript -->
|
|
222
|
-
<script src="../../dist/domma.min.js"></script>
|
|
225
|
+
<script src="../../dist/domma/domma.min.js"></script>
|
|
223
226
|
|
|
224
227
|
<!-- App Initialization -->
|
|
225
228
|
<script src="../../js/app.js"></script>
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
<title>Blog - {{projectName}}</title>
|
|
7
7
|
|
|
8
8
|
<!-- Domma CSS -->
|
|
9
|
-
<link rel="stylesheet" href="../../dist/domma.css">
|
|
10
|
-
<link rel="stylesheet" href="../../dist/grid.css">
|
|
11
|
-
<link rel="stylesheet" href="../../dist/elements.css">
|
|
12
|
-
<link rel="stylesheet" href="../../dist/themes/domma-themes.css">
|
|
9
|
+
<link rel="stylesheet" href="../../dist/domma/domma.css">
|
|
10
|
+
<link rel="stylesheet" href="../../dist/domma/grid.css">
|
|
11
|
+
<link rel="stylesheet" href="../../dist/domma/elements.css">
|
|
12
|
+
<link rel="stylesheet" href="../../dist/domma/themes/domma-themes.css">
|
|
13
13
|
|
|
14
14
|
<!-- Custom CSS -->
|
|
15
15
|
<link rel="stylesheet" href="../../css/custom.css">
|
|
@@ -207,8 +207,11 @@
|
|
|
207
207
|
<!-- Footer -->
|
|
208
208
|
<footer class="page-footer"></footer>
|
|
209
209
|
|
|
210
|
+
<!-- Security: DOMPurify for XSS protection -->
|
|
211
|
+
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.2.5/dist/purify.min.js"></script>
|
|
212
|
+
|
|
210
213
|
<!-- Domma JavaScript -->
|
|
211
|
-
<script src="../../dist/domma.min.js"></script>
|
|
214
|
+
<script src="../../dist/domma/domma.min.js"></script>
|
|
212
215
|
|
|
213
216
|
<!-- App Initialization -->
|
|
214
217
|
<script src="../../js/app.js"></script>
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
<title>Contact - {{projectName}}</title>
|
|
7
7
|
|
|
8
8
|
<!-- Domma CSS -->
|
|
9
|
-
<link rel="stylesheet" href="../../dist/domma.css">
|
|
10
|
-
<link rel="stylesheet" href="../../dist/grid.css">
|
|
11
|
-
<link rel="stylesheet" href="../../dist/elements.css">
|
|
12
|
-
<link rel="stylesheet" href="../../dist/themes/domma-themes.css">
|
|
9
|
+
<link rel="stylesheet" href="../../dist/domma/domma.css">
|
|
10
|
+
<link rel="stylesheet" href="../../dist/domma/grid.css">
|
|
11
|
+
<link rel="stylesheet" href="../../dist/domma/elements.css">
|
|
12
|
+
<link rel="stylesheet" href="../../dist/domma/themes/domma-themes.css">
|
|
13
13
|
|
|
14
14
|
<!-- Custom CSS -->
|
|
15
15
|
<link rel="stylesheet" href="../../css/custom.css">
|
|
@@ -183,8 +183,11 @@
|
|
|
183
183
|
<!-- Footer -->
|
|
184
184
|
<footer class="page-footer"></footer>
|
|
185
185
|
|
|
186
|
+
<!-- Security: DOMPurify for XSS protection -->
|
|
187
|
+
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.2.5/dist/purify.min.js"></script>
|
|
188
|
+
|
|
186
189
|
<!-- Domma JavaScript -->
|
|
187
|
-
<script src="../../dist/domma.min.js"></script>
|
|
190
|
+
<script src="../../dist/domma/domma.min.js"></script>
|
|
188
191
|
|
|
189
192
|
<!-- App Initialization -->
|
|
190
193
|
<script src="../../js/app.js"></script>
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
<title>Cookie Policy - {{projectName}}</title>
|
|
7
7
|
|
|
8
8
|
<!-- Domma CSS -->
|
|
9
|
-
<link rel="stylesheet" href="../../dist/domma.css">
|
|
10
|
-
<link rel="stylesheet" href="../../dist/grid.css">
|
|
11
|
-
<link rel="stylesheet" href="../../dist/elements.css">
|
|
12
|
-
<link rel="stylesheet" href="../../dist/themes/domma-themes.css">
|
|
9
|
+
<link rel="stylesheet" href="../../dist/domma/domma.css">
|
|
10
|
+
<link rel="stylesheet" href="../../dist/domma/grid.css">
|
|
11
|
+
<link rel="stylesheet" href="../../dist/domma/elements.css">
|
|
12
|
+
<link rel="stylesheet" href="../../dist/domma/themes/domma-themes.css">
|
|
13
13
|
|
|
14
14
|
<!-- Custom CSS -->
|
|
15
15
|
<link rel="stylesheet" href="../../css/custom.css">
|
|
@@ -369,8 +369,11 @@
|
|
|
369
369
|
<!-- Footer -->
|
|
370
370
|
<footer class="page-footer"></footer>
|
|
371
371
|
|
|
372
|
+
<!-- Security: DOMPurify for XSS protection -->
|
|
373
|
+
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.2.5/dist/purify.min.js"></script>
|
|
374
|
+
|
|
372
375
|
<!-- Domma JavaScript -->
|
|
373
|
-
<script src="../../dist/domma.min.js"></script>
|
|
376
|
+
<script src="../../dist/domma/domma.min.js"></script>
|
|
374
377
|
|
|
375
378
|
<!-- Global App Initialization -->
|
|
376
379
|
<script src="../../js/app.js"></script>
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
<title>Documentation - {{projectName}}</title>
|
|
7
7
|
|
|
8
8
|
<!-- Domma CSS -->
|
|
9
|
-
<link rel="stylesheet" href="../../dist/domma.css">
|
|
10
|
-
<link rel="stylesheet" href="../../dist/grid.css">
|
|
11
|
-
<link rel="stylesheet" href="../../dist/elements.css">
|
|
12
|
-
<link rel="stylesheet" href="../../dist/themes/domma-themes.css">
|
|
13
|
-
<link rel="stylesheet" href="../../dist/syntax.css">
|
|
9
|
+
<link rel="stylesheet" href="../../dist/domma/domma.css">
|
|
10
|
+
<link rel="stylesheet" href="../../dist/domma/grid.css">
|
|
11
|
+
<link rel="stylesheet" href="../../dist/domma/elements.css">
|
|
12
|
+
<link rel="stylesheet" href="../../dist/domma/themes/domma-themes.css">
|
|
13
|
+
<link rel="stylesheet" href="../../dist/domma/syntax.css">
|
|
14
14
|
|
|
15
15
|
<!-- Custom CSS -->
|
|
16
16
|
<link rel="stylesheet" href="../../css/custom.css">
|
|
@@ -272,9 +272,12 @@ Domma.theme.get(); // 'ocean-dark'</code></pre>
|
|
|
272
272
|
<!-- Footer -->
|
|
273
273
|
<footer class="page-footer"></footer>
|
|
274
274
|
|
|
275
|
+
<!-- Security: DOMPurify for XSS protection -->
|
|
276
|
+
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.2.5/dist/purify.min.js"></script>
|
|
277
|
+
|
|
275
278
|
<!-- Domma JavaScript -->
|
|
276
|
-
<script src="../../dist/domma.min.js"></script>
|
|
277
|
-
<script src="../../dist/domma-syntax.min.js"></script>
|
|
279
|
+
<script src="../../dist/domma/domma.min.js"></script>
|
|
280
|
+
<script src="../../dist/domma/domma-syntax.min.js"></script>
|
|
278
281
|
|
|
279
282
|
<!-- App Initialization -->
|
|
280
283
|
<script src="../../js/app.js"></script>
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
<title>{{projectName}} - Home</title>
|
|
7
7
|
|
|
8
8
|
<!-- Domma CSS -->
|
|
9
|
-
<link rel="stylesheet" href="../dist/domma.css">
|
|
10
|
-
<link rel="stylesheet" href="../dist/grid.css">
|
|
11
|
-
<link rel="stylesheet" href="../dist/elements.css">
|
|
12
|
-
<link rel="stylesheet" href="../dist/themes/domma-themes.css">
|
|
9
|
+
<link rel="stylesheet" href="../dist/domma/domma.css">
|
|
10
|
+
<link rel="stylesheet" href="../dist/domma/grid.css">
|
|
11
|
+
<link rel="stylesheet" href="../dist/domma/elements.css">
|
|
12
|
+
<link rel="stylesheet" href="../dist/domma/themes/domma-themes.css">
|
|
13
13
|
|
|
14
14
|
<!-- Custom CSS -->
|
|
15
15
|
<link rel="stylesheet" href="../css/custom.css">
|
|
@@ -149,8 +149,11 @@
|
|
|
149
149
|
<!-- Footer -->
|
|
150
150
|
<footer class="page-footer"></footer>
|
|
151
151
|
|
|
152
|
+
<!-- Security: DOMPurify for XSS protection -->
|
|
153
|
+
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.2.5/dist/purify.min.js"></script>
|
|
154
|
+
|
|
152
155
|
<!-- Domma JavaScript -->
|
|
153
|
-
<script src="../dist/domma.min.js"></script>
|
|
156
|
+
<script src="../dist/domma/domma.min.js"></script>
|
|
154
157
|
|
|
155
158
|
<!-- Global App Initialization -->
|
|
156
159
|
<script src="../js/app.js"></script>
|
|
@@ -265,8 +265,11 @@
|
|
|
265
265
|
<!-- Footer -->
|
|
266
266
|
<footer class="page-footer"></footer>
|
|
267
267
|
|
|
268
|
+
<!-- Security: DOMPurify for XSS protection -->
|
|
269
|
+
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.2.5/dist/purify.min.js"></script>
|
|
270
|
+
|
|
268
271
|
<!-- Domma JavaScript -->
|
|
269
|
-
<script src="../../dist/domma.min.js"></script>
|
|
272
|
+
<script src="../../dist/domma/domma.min.js"></script>
|
|
270
273
|
|
|
271
274
|
<!-- Global App Initialization -->
|
|
272
275
|
<script src="../../js/app.js"></script>
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
<title>Terms of Service - {{projectName}}</title>
|
|
7
7
|
|
|
8
8
|
<!-- Domma CSS -->
|
|
9
|
-
<link rel="stylesheet" href="../../dist/domma.css">
|
|
10
|
-
<link rel="stylesheet" href="../../dist/grid.css">
|
|
11
|
-
<link rel="stylesheet" href="../../dist/elements.css">
|
|
12
|
-
<link rel="stylesheet" href="../../dist/themes/domma-themes.css">
|
|
9
|
+
<link rel="stylesheet" href="../../dist/domma/domma.css">
|
|
10
|
+
<link rel="stylesheet" href="../../dist/domma/grid.css">
|
|
11
|
+
<link rel="stylesheet" href="../../dist/domma/elements.css">
|
|
12
|
+
<link rel="stylesheet" href="../../dist/domma/themes/domma-themes.css">
|
|
13
13
|
|
|
14
14
|
<!-- Custom CSS -->
|
|
15
15
|
<link rel="stylesheet" href="../../css/custom.css">
|
|
@@ -357,8 +357,11 @@
|
|
|
357
357
|
<!-- Footer -->
|
|
358
358
|
<footer class="page-footer"></footer>
|
|
359
359
|
|
|
360
|
+
<!-- Security: DOMPurify for XSS protection -->
|
|
361
|
+
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.2.5/dist/purify.min.js"></script>
|
|
362
|
+
|
|
360
363
|
<!-- Domma JavaScript -->
|
|
361
|
-
<script src="../../dist/domma.min.js"></script>
|
|
364
|
+
<script src="../../dist/domma/domma.min.js"></script>
|
|
362
365
|
|
|
363
366
|
<!-- Global App Initialization -->
|
|
364
367
|
<script src="../../js/app.js"></script>
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
<title>{{pageTitle}} - My Project</title>
|
|
7
7
|
|
|
8
8
|
<!-- Domma CSS -->
|
|
9
|
-
<link rel="stylesheet" href="../../dist/domma.css">
|
|
10
|
-
<link rel="stylesheet" href="../../dist/grid.css">
|
|
11
|
-
<link rel="stylesheet" href="../../dist/elements.css">
|
|
12
|
-
<link rel="stylesheet" href="../../dist/themes/domma-themes.css">
|
|
9
|
+
<link rel="stylesheet" href="../../dist/domma/domma.css">
|
|
10
|
+
<link rel="stylesheet" href="../../dist/domma/grid.css">
|
|
11
|
+
<link rel="stylesheet" href="../../dist/domma/elements.css">
|
|
12
|
+
<link rel="stylesheet" href="../../dist/domma/themes/domma-themes.css">
|
|
13
13
|
|
|
14
14
|
<!-- Custom CSS -->
|
|
15
15
|
<link rel="stylesheet" href="../../css/custom.css">
|
|
@@ -39,8 +39,11 @@
|
|
|
39
39
|
<!-- Footer -->
|
|
40
40
|
<footer class="page-footer"></footer>
|
|
41
41
|
|
|
42
|
+
<!-- Security: DOMPurify for XSS protection -->
|
|
43
|
+
<script src="https://cdn.jsdelivr.net/npm/dompurify@3.2.5/dist/purify.min.js"></script>
|
|
44
|
+
|
|
42
45
|
<!-- Domma JavaScript -->
|
|
43
|
-
<script src="../../dist/domma.min.js"></script>
|
|
46
|
+
<script src="../../dist/domma/domma.min.js"></script>
|
|
44
47
|
|
|
45
48
|
<!-- Global App Initialization -->
|
|
46
49
|
<script src="../../js/app.js"></script>
|