@nzz/q-cli 1.5.6 → 1.7.0

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 (26) hide show
  1. package/README.md +75 -20
  2. package/bin/commands/qItem/configStore.js +142 -0
  3. package/bin/commands/qItem/copyItem/copyItem.js +103 -0
  4. package/bin/commands/qItem/copyItem/copySchema.json +37 -0
  5. package/bin/commands/qItem/helpers.js +102 -0
  6. package/bin/commands/qItem/itemService.js +302 -0
  7. package/bin/commands/{updateItem/resourcesHelpers.js → qItem/resourcesService.js} +0 -102
  8. package/bin/commands/qItem/schemaService.js +64 -0
  9. package/bin/commands/{updateItem → qItem/updateItem}/updateItem.js +10 -5
  10. package/bin/commands/{updateItem/schema.json → qItem/updateItem/updateSchema.json} +0 -0
  11. package/bin/q.js +19 -1
  12. package/package.json +1 -1
  13. package/skeletons/custom-code-skeleton/README.md +17 -6
  14. package/skeletons/custom-code-skeleton/index.d.ts +3 -0
  15. package/skeletons/custom-code-skeleton/package-lock.json +118 -54
  16. package/skeletons/custom-code-skeleton/package.json +13 -6
  17. package/skeletons/custom-code-skeleton/q.config.json +2 -2
  18. package/skeletons/custom-code-skeleton/rollup.config.js +56 -56
  19. package/skeletons/custom-code-skeleton/src/App.scss +3 -1
  20. package/skeletons/custom-code-skeleton/src/App.svelte +3 -1
  21. package/skeletons/custom-code-skeleton/src/interfaces.ts +0 -0
  22. package/skeletons/custom-code-skeleton/src/{main-prod.js → main-prod.ts} +0 -0
  23. package/skeletons/custom-code-skeleton/src/main.ts +18 -0
  24. package/skeletons/custom-code-skeleton/tsconfig.json +15 -0
  25. package/bin/commands/updateItem/helpers.js +0 -440
  26. package/skeletons/custom-code-skeleton/src/main.js +0 -11
@@ -11,21 +11,24 @@
11
11
  "@nzz/q-cli": "^1.4.11",
12
12
  "@rollup/plugin-commonjs": "^21.0.0",
13
13
  "@rollup/plugin-html": "^0.2.4",
14
+ "@rollup/plugin-image": "^2.1.1",
14
15
  "@rollup/plugin-json": "^4.1.0",
15
16
  "@rollup/plugin-node-resolve": "^13.0.5",
17
+ "@rollup/plugin-typescript": "^8.3.2",
16
18
  "autoprefixer": "^10.4.0",
17
19
  "cssnano": "^5.0.10",
18
20
  "npm-run-all": "^4.1.5",
21
+ "nzz.ch-static": "git+https://github.com/nzzdev/nzz.ch-static.git",
19
22
  "postcss": "^8.3.11",
20
23
  "rollup": "^2.50.1",
21
24
  "rollup-plugin-livereload": "^2.0.5",
22
25
  "rollup-plugin-scss": "^3.0.0",
23
26
  "rollup-plugin-svelte": "^7.1.0",
24
- "rollup-plugin-svg": "^2.0.0",
25
27
  "rollup-plugin-terser": "^7.0.2",
26
28
  "sass": "^1.43.4",
27
29
  "sirv-cli": "^1.0.12",
28
- "svelte": "^3.43.1"
30
+ "svelte": "^3.43.1",
31
+ "typescript": "^4.6.4"
29
32
  }
30
33
  },
31
34
  "node_modules/@babel/code-frame": {
@@ -546,6 +549,22 @@
546
549
  "rollup": "^1.20.0||^2.0.0"
547
550
  }
548
551
  },
552
+ "node_modules/@rollup/plugin-image": {
553
+ "version": "2.1.1",
554
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-image/-/plugin-image-2.1.1.tgz",
555
+ "integrity": "sha512-AgP4U85zuQJdUopLUCM+hTf45RepgXeTb8EJsleExVy99dIoYpt3ZlDYJdKmAc2KLkNntCDg6BPJvgJU3uGF+g==",
556
+ "dev": true,
557
+ "dependencies": {
558
+ "@rollup/pluginutils": "^3.1.0",
559
+ "mini-svg-data-uri": "^1.2.3"
560
+ },
561
+ "engines": {
562
+ "node": ">= 8.0.0"
563
+ },
564
+ "peerDependencies": {
565
+ "rollup": "^1.20.0 || ^2.0.0"
566
+ }
567
+ },
549
568
  "node_modules/@rollup/plugin-json": {
550
569
  "version": "4.1.0",
551
570
  "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz",
@@ -578,6 +597,24 @@
578
597
  "rollup": "^2.42.0"
579
598
  }
580
599
  },
600
+ "node_modules/@rollup/plugin-typescript": {
601
+ "version": "8.3.2",
602
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.2.tgz",
603
+ "integrity": "sha512-MtgyR5LNHZr3GyN0tM7gNO9D0CS+Y+vflS4v/PHmrX17JCkHUYKvQ5jN5o3cz1YKllM3duXUqu3yOHwMPUxhDg==",
604
+ "dev": true,
605
+ "dependencies": {
606
+ "@rollup/pluginutils": "^3.1.0",
607
+ "resolve": "^1.17.0"
608
+ },
609
+ "engines": {
610
+ "node": ">=8.0.0"
611
+ },
612
+ "peerDependencies": {
613
+ "rollup": "^2.14.0",
614
+ "tslib": "*",
615
+ "typescript": ">=3.7.0"
616
+ }
617
+ },
581
618
  "node_modules/@rollup/pluginutils": {
582
619
  "version": "3.1.0",
583
620
  "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
@@ -2240,6 +2277,15 @@
2240
2277
  "node": ">= 0.6"
2241
2278
  }
2242
2279
  },
2280
+ "node_modules/mini-svg-data-uri": {
2281
+ "version": "1.4.4",
2282
+ "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
2283
+ "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==",
2284
+ "dev": true,
2285
+ "bin": {
2286
+ "mini-svg-data-uri": "cli.js"
2287
+ }
2288
+ },
2243
2289
  "node_modules/minimatch": {
2244
2290
  "version": "3.0.4",
2245
2291
  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -2478,6 +2524,12 @@
2478
2524
  }
2479
2525
  }
2480
2526
  },
2527
+ "node_modules/nzz.ch-static": {
2528
+ "version": "1.0.0",
2529
+ "resolved": "git+ssh://git@github.com/nzzdev/nzz.ch-static.git#90992f8a37797a45d20a4fc7ed6edb8ee1991012",
2530
+ "dev": true,
2531
+ "license": "ISC"
2532
+ },
2481
2533
  "node_modules/object-inspect": {
2482
2534
  "version": "1.11.0",
2483
2535
  "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
@@ -3348,31 +3400,6 @@
3348
3400
  "svelte": ">=3.5.0"
3349
3401
  }
3350
3402
  },
3351
- "node_modules/rollup-plugin-svg": {
3352
- "version": "2.0.0",
3353
- "resolved": "https://registry.npmjs.org/rollup-plugin-svg/-/rollup-plugin-svg-2.0.0.tgz",
3354
- "integrity": "sha512-DmE7dSQHo1SC5L2uH2qul3Mjyd5oV6U1aVVkyvTLX/mUsRink7f1b1zaIm+32GEBA6EHu8H/JJi3DdWqM53ySQ==",
3355
- "dev": true,
3356
- "dependencies": {
3357
- "rollup-pluginutils": "^1.3.1"
3358
- }
3359
- },
3360
- "node_modules/rollup-plugin-svg/node_modules/estree-walker": {
3361
- "version": "0.2.1",
3362
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz",
3363
- "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=",
3364
- "dev": true
3365
- },
3366
- "node_modules/rollup-plugin-svg/node_modules/rollup-pluginutils": {
3367
- "version": "1.5.2",
3368
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz",
3369
- "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=",
3370
- "dev": true,
3371
- "dependencies": {
3372
- "estree-walker": "^0.2.1",
3373
- "minimatch": "^3.0.2"
3374
- }
3375
- },
3376
3403
  "node_modules/rollup-plugin-terser": {
3377
3404
  "version": "7.0.2",
3378
3405
  "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
@@ -3879,6 +3906,13 @@
3879
3906
  "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
3880
3907
  "dev": true
3881
3908
  },
3909
+ "node_modules/tslib": {
3910
+ "version": "2.4.0",
3911
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
3912
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
3913
+ "dev": true,
3914
+ "peer": true
3915
+ },
3882
3916
  "node_modules/typedarray-to-buffer": {
3883
3917
  "version": "3.1.5",
3884
3918
  "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
@@ -3888,6 +3922,19 @@
3888
3922
  "is-typedarray": "^1.0.0"
3889
3923
  }
3890
3924
  },
3925
+ "node_modules/typescript": {
3926
+ "version": "4.6.4",
3927
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
3928
+ "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
3929
+ "dev": true,
3930
+ "bin": {
3931
+ "tsc": "bin/tsc",
3932
+ "tsserver": "bin/tsserver"
3933
+ },
3934
+ "engines": {
3935
+ "node": ">=4.2.0"
3936
+ }
3937
+ },
3891
3938
  "node_modules/unbox-primitive": {
3892
3939
  "version": "1.0.1",
3893
3940
  "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
@@ -4614,6 +4661,16 @@
4614
4661
  "dev": true,
4615
4662
  "requires": {}
4616
4663
  },
4664
+ "@rollup/plugin-image": {
4665
+ "version": "2.1.1",
4666
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-image/-/plugin-image-2.1.1.tgz",
4667
+ "integrity": "sha512-AgP4U85zuQJdUopLUCM+hTf45RepgXeTb8EJsleExVy99dIoYpt3ZlDYJdKmAc2KLkNntCDg6BPJvgJU3uGF+g==",
4668
+ "dev": true,
4669
+ "requires": {
4670
+ "@rollup/pluginutils": "^3.1.0",
4671
+ "mini-svg-data-uri": "^1.2.3"
4672
+ }
4673
+ },
4617
4674
  "@rollup/plugin-json": {
4618
4675
  "version": "4.1.0",
4619
4676
  "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz",
@@ -4637,6 +4694,16 @@
4637
4694
  "resolve": "^1.19.0"
4638
4695
  }
4639
4696
  },
4697
+ "@rollup/plugin-typescript": {
4698
+ "version": "8.3.2",
4699
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.2.tgz",
4700
+ "integrity": "sha512-MtgyR5LNHZr3GyN0tM7gNO9D0CS+Y+vflS4v/PHmrX17JCkHUYKvQ5jN5o3cz1YKllM3duXUqu3yOHwMPUxhDg==",
4701
+ "dev": true,
4702
+ "requires": {
4703
+ "@rollup/pluginutils": "^3.1.0",
4704
+ "resolve": "^1.17.0"
4705
+ }
4706
+ },
4640
4707
  "@rollup/pluginutils": {
4641
4708
  "version": "3.1.0",
4642
4709
  "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
@@ -5879,6 +5946,12 @@
5879
5946
  "mime-db": "1.51.0"
5880
5947
  }
5881
5948
  },
5949
+ "mini-svg-data-uri": {
5950
+ "version": "1.4.4",
5951
+ "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz",
5952
+ "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==",
5953
+ "dev": true
5954
+ },
5882
5955
  "minimatch": {
5883
5956
  "version": "3.0.4",
5884
5957
  "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -6054,6 +6127,11 @@
6054
6127
  "commander": "^5.1.0"
6055
6128
  }
6056
6129
  },
6130
+ "nzz.ch-static": {
6131
+ "version": "git+ssh://git@github.com/nzzdev/nzz.ch-static.git#90992f8a37797a45d20a4fc7ed6edb8ee1991012",
6132
+ "dev": true,
6133
+ "from": "nzz.ch-static@git+https://github.com/nzzdev/nzz.ch-static.git"
6134
+ },
6057
6135
  "object-inspect": {
6058
6136
  "version": "1.11.0",
6059
6137
  "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz",
@@ -6659,33 +6737,6 @@
6659
6737
  "rollup-pluginutils": "^2.8.2"
6660
6738
  }
6661
6739
  },
6662
- "rollup-plugin-svg": {
6663
- "version": "2.0.0",
6664
- "resolved": "https://registry.npmjs.org/rollup-plugin-svg/-/rollup-plugin-svg-2.0.0.tgz",
6665
- "integrity": "sha512-DmE7dSQHo1SC5L2uH2qul3Mjyd5oV6U1aVVkyvTLX/mUsRink7f1b1zaIm+32GEBA6EHu8H/JJi3DdWqM53ySQ==",
6666
- "dev": true,
6667
- "requires": {
6668
- "rollup-pluginutils": "^1.3.1"
6669
- },
6670
- "dependencies": {
6671
- "estree-walker": {
6672
- "version": "0.2.1",
6673
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz",
6674
- "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=",
6675
- "dev": true
6676
- },
6677
- "rollup-pluginutils": {
6678
- "version": "1.5.2",
6679
- "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz",
6680
- "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=",
6681
- "dev": true,
6682
- "requires": {
6683
- "estree-walker": "^0.2.1",
6684
- "minimatch": "^3.0.2"
6685
- }
6686
- }
6687
- }
6688
- },
6689
6740
  "rollup-plugin-terser": {
6690
6741
  "version": "7.0.2",
6691
6742
  "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
@@ -7068,6 +7119,13 @@
7068
7119
  "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
7069
7120
  "dev": true
7070
7121
  },
7122
+ "tslib": {
7123
+ "version": "2.4.0",
7124
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
7125
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
7126
+ "dev": true,
7127
+ "peer": true
7128
+ },
7071
7129
  "typedarray-to-buffer": {
7072
7130
  "version": "3.1.5",
7073
7131
  "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
@@ -7077,6 +7135,12 @@
7077
7135
  "is-typedarray": "^1.0.0"
7078
7136
  }
7079
7137
  },
7138
+ "typescript": {
7139
+ "version": "4.6.4",
7140
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz",
7141
+ "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
7142
+ "dev": true
7143
+ },
7080
7144
  "unbox-primitive": {
7081
7145
  "version": "1.0.1",
7082
7146
  "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
@@ -2,11 +2,16 @@
2
2
  "name": "custom-code-skeleton",
3
3
  "version": "1.0.0",
4
4
  "devDependencies": {
5
+ "@nzz/nzz.ch-static": "github:nzzdev/ed-tech-nzz.ch-static#v1.0.0",
5
6
  "@nzz/q-cli": "^1.4.11",
7
+ "@rollup/plugin-alias": "^3.1.9",
6
8
  "@rollup/plugin-commonjs": "^21.0.0",
7
9
  "@rollup/plugin-html": "^0.2.4",
10
+ "@rollup/plugin-image": "^2.1.1",
8
11
  "@rollup/plugin-json": "^4.1.0",
9
12
  "@rollup/plugin-node-resolve": "^13.0.5",
13
+ "@rollup/plugin-typescript": "^8.3.2",
14
+ "@tsconfig/svelte": "^3.0.0",
10
15
  "autoprefixer": "^10.4.0",
11
16
  "cssnano": "^5.0.10",
12
17
  "npm-run-all": "^4.1.5",
@@ -15,11 +20,11 @@
15
20
  "rollup-plugin-livereload": "^2.0.5",
16
21
  "rollup-plugin-scss": "^3.0.0",
17
22
  "rollup-plugin-svelte": "^7.1.0",
18
- "rollup-plugin-svg": "^2.0.0",
19
23
  "rollup-plugin-terser": "^7.0.2",
20
24
  "sass": "^1.43.4",
21
25
  "sirv-cli": "^1.0.12",
22
- "svelte": "^3.43.1"
26
+ "svelte": "^3.43.1",
27
+ "typescript": "^4.6.4"
23
28
  },
24
29
  "scripts": {
25
30
  "update-all": "npm run build && Q update-item",
@@ -27,9 +32,11 @@
27
32
  "update-staging": "npm run build && Q update-item -e staging",
28
33
  "update-test": "npm run build && Q update-item -e test",
29
34
  "build": "rollup -c",
30
- "autobuild": "rollup -c -w",
31
- "dev": "run-p start:dev autobuild",
32
- "start": "sirv public",
33
- "start:dev": "sirv public --dev"
35
+ "start": "npm run start-regular",
36
+ "start-regular": "LAYOUT=regular run-p serve rollup",
37
+ "start-ls": "LAYOUT=longform-standard run-p serve rollup",
38
+ "start-lv": "LAYOUT=longform-visual run-p serve rollup",
39
+ "rollup": "rollup -c -w",
40
+ "serve": "sirv public --dev --port 5555 --host 0.0.0.0"
34
41
  }
35
42
  }
@@ -4,11 +4,11 @@
4
4
  "environments": [
5
5
  {
6
6
  "name": "staging",
7
- "id": ""
7
+ "id": "staging-id-not-set"
8
8
  },
9
9
  {
10
10
  "name": "production",
11
- "id": ""
11
+ "id": "prod-id-not-set"
12
12
  }
13
13
  ],
14
14
  "item": {
@@ -3,7 +3,6 @@ import * as path from "path";
3
3
  import nodeResolve from "@rollup/plugin-node-resolve";
4
4
  import commonjs from "@rollup/plugin-commonjs";
5
5
  import json from "@rollup/plugin-json";
6
- import svg from "rollup-plugin-svg";
7
6
  import html from "@rollup/plugin-html";
8
7
  import svelte from "rollup-plugin-svelte";
9
8
  import { terser } from "rollup-plugin-terser";
@@ -12,10 +11,18 @@ import scss from "rollup-plugin-scss";
12
11
  import postcss from "postcss";
13
12
  import cssnano from "cssnano";
14
13
  import autoprefixer from "autoprefixer";
15
- import packageConfig from "./package.json";
16
14
  import qConfig from "./q.config.json";
15
+ import typescript from '@rollup/plugin-typescript';
16
+ import image from '@rollup/plugin-image';
17
+ import alias from '@rollup/plugin-alias';
18
+ import { createContentWidthQElement, createFullwidthQElement, getHtml, createSubtitle, createParagraph } from '@nzz/nzz.ch-static';
19
+
20
+ // Which nzz layout to use?
21
+ const LAYOUT = process.env.LAYOUT;
22
+ const builtCssFilename = 'bundle';
17
23
 
18
24
  const production = !process.env.ROLLUP_WATCH;
25
+ const projectRootDir = path.resolve(__dirname);
19
26
 
20
27
  function getOutputConfigs() {
21
28
  const outputConfigs = [];
@@ -35,57 +42,42 @@ function getOutputConfigs() {
35
42
  return outputConfigs;
36
43
  }
37
44
 
38
- function getTemplate(options) {
39
- return `<!DOCTYPE html>
40
- <html lang="de">
41
- <head>
42
- <meta charset="utf-8">
43
- <meta name="viewport" content="width=device-width">
44
- <title>${packageConfig.name}</title>
45
- <link rel="stylesheet" href="https://context-service.st.nzz.ch/stylesheet/all/nzz.ch.css" />
46
- <link rel="stylesheet" href="https://service.sophie.nzz.ch/bundle/sophie-q@^1,sophie-input@^1,sophie-font@^1,sophie-color@^1,sophie-viz-color@^1,sophie-legend@^1.css" />
47
- <link rel="stylesheet" href="bundle.css" />
48
- </head>
49
- <!-- we have four different article templates, since the article itself has the same structure in each template
50
- we can use either of these classes: regular, longformstandard, regular, opinion
51
- if one changes the class attached to body tag one should change the class in section tag accordingly (maybe further adjustments needed too) -->
52
- <body class="regular">
53
- <div id="__nzz">
54
- <div id="__layout">
55
- <div class="page--article-id">
56
- <div class="pageholder">
57
- <div class="nzz-container">
58
- <div class="nzz-page-transition">
59
- <div class="article">
60
- <!-- also here change layout--{template} accordingly -->
61
- <section class="container container--article layout--regular">
62
- <!-- default = content width, for fullwidth, small left/right one has to add one of
63
- the following classes accordingly: widget--fullwidth, widget--left, widget--right-->
64
- <div class="articlecomponent q-embed widget--qembed regwalled">
65
- <div>
66
- <div class="s-q-item" id="container"></div>
67
- <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Map,URL,Promise,fetch,URLSearchParams,Array.prototype.find,Array.prototype.findIndex,Object.entries,Array.prototype.includes,CustomEvent,Array.from,String.prototype.startsWith&flags=gated&unknown=polyfill"></script>
68
- <script src="${options.files.js[0].fileName}"></script>
69
- </div>
70
- </div>
71
- </section>
72
- </div>
73
- </div>
74
- </div>
75
- </div>
76
- </div>
77
- </div>
78
- </div>
79
- </body>
80
- </html>`;
81
- }
82
-
83
45
  function getHtmlOptions() {
84
46
  return {
85
- fileName: "index.html",
86
- template: function (options) {
87
- return getTemplate(options);
88
- },
47
+ fileName: 'index.html',
48
+ template: function (options) {
49
+ return getHtml({
50
+ // These 3 options are the most important. Without them the static website will not function.
51
+ layout: LAYOUT, // Type of layout.
52
+ builtCssFilename, // Will be appended at the end of <head>.
53
+ builtJsFilename: options.files.js[0].fileName, // Will appended to the end of <body>.
54
+
55
+ // Create mock elements to simulate your article.
56
+ content: `
57
+ ${createSubtitle('Test Subtitle')}
58
+ ${createParagraph('Test paragraph')}
59
+ ${createFullwidthQElement('custom-code-fw')}
60
+ ${createContentWidthQElement('custom-code-cw')}
61
+ `,
62
+
63
+ // Other options.
64
+ author: 'Max Musterman',
65
+ lead: 'Test lead.',
66
+ title: 'Test title',
67
+
68
+ // Links to other css files that need to be loaded.
69
+ // Will be appended to <head> but before the bundled css file of your app.
70
+ customCssLinks: [
71
+ 'https://service.sophie.nzz.ch/bundle/sophie-q@^1,sophie-input@^1,sophie-font@^1,sophie-color@^1,sophie-viz-color@^1,sophie-legend@^1.css',
72
+ ],
73
+
74
+ // Links to other js filed that need to be loaded.
75
+ // Will be appended at the end of the body, but before the built js file for the app.
76
+ customJsLinks: [
77
+ 'https://cdn.polyfill.io/v2/polyfill.min.js?features=Map,URL,Promise,fetch,URLSearchParams,Array.prototype.find,Array.prototype.findIndex,Object.entries,Array.prototype.includes,CustomEvent,Array.from,String.prototype.startsWith&flags=gated&unknown=polyfill'
78
+ ],
79
+ });
80
+ },
89
81
  };
90
82
  }
91
83
 
@@ -107,7 +99,7 @@ function createOutputCssFunction() {
107
99
  fs.mkdirSync(publicDir);
108
100
  }
109
101
 
110
- fs.writeFileSync(`${publicDir}/bundle.css`, styles);
102
+ fs.writeFileSync(`${publicDir}/${builtCssFilename}.css`, styles);
111
103
  };
112
104
 
113
105
  return outputCssFunction;
@@ -126,8 +118,8 @@ function getSassConfig(isProduction) {
126
118
  processor: (css) =>
127
119
  postcss(getPostcssPlugins(isProduction))
128
120
  .process(css, {
129
- from: path.join(__dirname, "/public/bundle.css"),
130
- to: path.join(__dirname, "/public/bundle.css"),
121
+ from: path.join(__dirname, `/public/${builtCssFilename}.css`),
122
+ to: path.join(__dirname, `/public/${builtCssFilename}.css`),
131
123
  map: isProduction ? false : { inline: true }, // Set to false after: https://github.com/thgh/rollup-plugin-scss/issues/7
132
124
  })
133
125
  .then((result) => result.css),
@@ -138,11 +130,19 @@ function getSassConfig(isProduction) {
138
130
  }
139
131
 
140
132
  export default {
141
- input: production ? "src/main-prod.js" : "src/main.js",
133
+ input: production ? "src/main-prod.ts" : "src/main.ts",
142
134
  output: getOutputConfigs(),
143
135
  plugins: [
136
+ alias({
137
+ entries: [
138
+ { find: '@src', replacement: path.resolve(projectRootDir, 'src') },
139
+ { find: '@interfaces', replacement: path.resolve(projectRootDir, 'src/interfaces.ts') },
140
+ ]
141
+ }),
142
+
143
+ typescript({ sourceMap: !production }),
144
144
  json(),
145
- svg({ base64: true }),
145
+ image(),
146
146
  svelte({
147
147
  compilerOptions: {
148
148
  // enable run-time checks when not in production
@@ -1,3 +1,5 @@
1
- .app-title {
1
+ .custom-code-item {
2
2
  color: salmon;
3
+ border: 1px solid #000;
4
+ margin-bottom: 20px;
3
5
  }
@@ -2,4 +2,6 @@
2
2
  export let name;
3
3
  </script>
4
4
 
5
- <h1 class="app-title s-font-title">Custom Code {name}</h1>
5
+ <div class="custom-code-item">
6
+ Custom Code {name}
7
+ </div>
@@ -0,0 +1,18 @@
1
+ import App from "./App.svelte";
2
+ import "./main.scss";
3
+
4
+ const app = new App({
5
+ target: document.querySelector("#custom-code-fw"),
6
+ props: {
7
+ name: "custom-code-skeleton - Fullwidth",
8
+ },
9
+ });
10
+
11
+ new App({
12
+ target: document.querySelector("#custom-code-cw"),
13
+ props: {
14
+ name: "custom-code-skeleton - Content Width",
15
+ },
16
+ });
17
+
18
+ export default app;
@@ -0,0 +1,15 @@
1
+ {
2
+ "extends": "@tsconfig/svelte/tsconfig.json",
3
+ "include": ["src/**/*"],
4
+ "exclude": ["node_modules/*", "__sapper__/*", "public/*"],
5
+ "compilerOptions": {
6
+ "lib": ["es2015", "DOM"],
7
+ "types": ["svelte"],
8
+ "outDir": "public",
9
+ "declaration": false,
10
+ "paths": {
11
+ "@src": ["./src/"],
12
+ "@interfaces": ["./src/interfaces.ts"]
13
+ }
14
+ }
15
+ }