@duetds/cli 3.0.49 → 3.0.51

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 (43) hide show
  1. package/package.json +4 -4
  2. package/templates/eleventy/2.0.1/.eleventy.js +38 -0
  3. package/templates/eleventy/2.0.1/.prettierignore +6 -0
  4. package/templates/eleventy/2.0.1/README.md +64 -0
  5. package/templates/eleventy/2.0.1/gulpfile.js +60 -0
  6. package/templates/eleventy/2.0.1/package.file +51 -0
  7. package/templates/eleventy/2.0.1/src/assets/img/android-chrome-192x192.png +0 -0
  8. package/templates/eleventy/2.0.1/src/assets/img/apple-touch-icon-180x180.png +0 -0
  9. package/templates/eleventy/2.0.1/src/assets/img/splash-screen-icon-512x512.png +0 -0
  10. package/templates/eleventy/2.0.1/src/css/main.scss +12 -0
  11. package/templates/eleventy/2.0.1/src/css/partials/_example.scss +6 -0
  12. package/templates/eleventy/2.0.1/src/data/duet.js +18 -0
  13. package/templates/eleventy/2.0.1/src/favicon.ico +0 -0
  14. package/templates/eleventy/2.0.1/src/includes/footer.njk +15 -0
  15. package/templates/eleventy/2.0.1/src/includes/header.njk +24 -0
  16. package/templates/eleventy/2.0.1/src/includes/layout.njk +26 -0
  17. package/templates/eleventy/2.0.1/src/index.njk +58 -0
  18. package/templates/eleventy/2.0.1/src/js/scripts.js +1 -0
  19. package/templates/eleventy/2.0.1/src/manifest.json +19 -0
  20. package/templates/eleventy/2.0.1/src/robots.txt +8 -0
  21. package/templates/eleventy/2.0.1/src/vahinkoasiat.njk +43 -0
  22. package/templates/eleventy/2.0.1/src/vakuutukset.njk +49 -0
  23. package/templates/eleventy-ssr/2.0.1/.eleventy.js +91 -0
  24. package/templates/eleventy-ssr/2.0.1/.prettierignore +6 -0
  25. package/templates/eleventy-ssr/2.0.1/README.md +64 -0
  26. package/templates/eleventy-ssr/2.0.1/gulpfile.js +60 -0
  27. package/templates/eleventy-ssr/2.0.1/package.file +51 -0
  28. package/templates/eleventy-ssr/2.0.1/src/assets/img/android-chrome-192x192.png +0 -0
  29. package/templates/eleventy-ssr/2.0.1/src/assets/img/apple-touch-icon-180x180.png +0 -0
  30. package/templates/eleventy-ssr/2.0.1/src/assets/img/splash-screen-icon-512x512.png +0 -0
  31. package/templates/eleventy-ssr/2.0.1/src/css/main.scss +12 -0
  32. package/templates/eleventy-ssr/2.0.1/src/css/partials/_example.scss +6 -0
  33. package/templates/eleventy-ssr/2.0.1/src/data/duet.js +18 -0
  34. package/templates/eleventy-ssr/2.0.1/src/favicon.ico +0 -0
  35. package/templates/eleventy-ssr/2.0.1/src/includes/footer.njk +15 -0
  36. package/templates/eleventy-ssr/2.0.1/src/includes/header.njk +24 -0
  37. package/templates/eleventy-ssr/2.0.1/src/includes/layout.njk +26 -0
  38. package/templates/eleventy-ssr/2.0.1/src/index.njk +58 -0
  39. package/templates/eleventy-ssr/2.0.1/src/js/scripts.js +1 -0
  40. package/templates/eleventy-ssr/2.0.1/src/manifest.json +19 -0
  41. package/templates/eleventy-ssr/2.0.1/src/robots.txt +8 -0
  42. package/templates/eleventy-ssr/2.0.1/src/vahinkoasiat.njk +43 -0
  43. package/templates/eleventy-ssr/2.0.1/src/vakuutukset.njk +49 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duetds/cli",
3
- "version": "3.0.49",
3
+ "version": "3.0.51",
4
4
  "description": "This package includes Duet Design System CLI.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "LocalTapiola Services Ltd <duetdesignsystem@lahitapiola.fi>",
@@ -23,14 +23,14 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "arg": "4.1.3",
26
- "chalk": "3.0.0",
26
+ "chalk": "4.1.2",
27
27
  "esm": "3.2.25",
28
- "inquirer": "7.2.0",
28
+ "inquirer": "8.2.3",
29
29
  "listr": "0.14.3",
30
30
  "ncp": "2.0.0"
31
31
  },
32
32
  "publishConfig": {
33
33
  "access": "public"
34
34
  },
35
- "gitHead": "25d8b210a5cff486da46eb36763935c97d365921"
35
+ "gitHead": "fcd59bc7a2617a1497b452bca20d89d08252f21c"
36
36
  }
@@ -0,0 +1,38 @@
1
+ /**
2
+ * DUET ELEVENTY CONFIGURATION
3
+ */
4
+ module.exports = function (config) {
5
+ // Enable data deep merge https://www.11ty.dev/docs/data-deep-merge/
6
+ config.setDataDeepMerge(true)
7
+
8
+ // Dom diffing doesn't work well with shadow DOM.
9
+ config.setServerOptions({
10
+ domDiff: false,
11
+ })
12
+
13
+ // Copy static assets to dist on build.
14
+ // You can add more here if and when needed.
15
+ config.addPassthroughCopy("./src/assets")
16
+ config.addPassthroughCopy("./src/js")
17
+ config.addPassthroughCopy("./src/favicon.ico")
18
+ config.addPassthroughCopy("./src/manifest.json")
19
+
20
+ return {
21
+ // If your site lives in a different subdirectory, change this.
22
+ // Leading or trailing slashes are all normalized away, so don’t worry about it.
23
+ // If you don’t have a subdirectory, use "" or "/" (they do the same thing)
24
+ // This is only used for URLs (it does not affect your file structure)
25
+ pathPrefix: "/",
26
+ templateFormats: ["md", "njk", "html"],
27
+ markdownTemplateEngine: "njk",
28
+ htmlTemplateEngine: "njk",
29
+ dataTemplateEngine: false,
30
+ passthroughFileCopy: true,
31
+ dir: {
32
+ input: "src",
33
+ includes: "includes",
34
+ data: "data",
35
+ output: "dist",
36
+ },
37
+ }
38
+ }
@@ -0,0 +1,6 @@
1
+ package.json
2
+ package-lock.json
3
+ src/includes/header.njk
4
+ src/includes/footer.njk
5
+ node_modules/**/*
6
+ src/js/components/**/*
@@ -0,0 +1,64 @@
1
+ # Duet Eleventy Template
2
+
3
+ This is a [Eleventy](https://www.11ty.dev/) project template for [Duet Design System](https://www.duetds.com). This starter template comes with support for [Duet Web Components](https://www.duetds.com/components/). To learn more about Eleventy and what’s possible, see [Eleventy documentation](https://www.11ty.dev/docs/).
4
+
5
+ ## Features
6
+
7
+ - Comes with [Duet Web Components](https://www.duetds.com/components/).
8
+ - Supports [Duet Design Tokens](https://www.duetds.com/tokens/) in SCSS without additional configuration.
9
+ - Comes with automated build and deploy steps for prototyping.
10
+ - Additionally comes with [Duet Fonts](https://www.duetds.com/typography/) and [Duet CSS Framework](https://www.duetds.com/css-framework/) preconfigured.
11
+
12
+ ## Development
13
+
14
+ Before moving further, please make sure you have [Node.js](https://nodejs.org/en/) 12.x or later installed on your machine. You can install the latest version through their website. Once you have Node.js installed, follow the below steps to get started.
15
+
16
+ 1. Run `npm install` in the root directory of this project to install the dependencies.
17
+ 2. Then run `npm start` to start up the server and development environment. This automatically opens up a new browser window showing `http://localhost:8000`.
18
+ 3. If you wish to test the production build, you can start up the server in production mode by running `npm run start:prod`. Please note that this makes Eleventy do JS+CSS minification with every change so it might slow down the development experience.
19
+ 4. This template ships with Prettier configuration. To enable HTML formatting for `.njk` templates, add the following to your VSCode settings.json:
20
+
21
+ ```json
22
+ {
23
+ "files.associations": {
24
+ "*.njk": "html"
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Integration Tests
30
+
31
+ Run `npm run test` to run integration tests.
32
+
33
+ ## Building
34
+
35
+ Run `npm run build` to build a static website under `dist` that can be deployed using GitHub Pages, Azure Cloud, or Amazon S3.
36
+
37
+ ## Project Structure
38
+
39
+ ```
40
+ ├─ src/
41
+ │ ├─ assets/
42
+ │ ├─ css/
43
+ │ │ ├─ main.scss
44
+ │ │ └─ partials/
45
+ │ │ └─ example.scss
46
+ │ ├─ data/
47
+ │ ├─ includes/
48
+ │ │ ├─ layout.njk
49
+ │ │ ├─ header.njk
50
+ │ │ └─ footer.njk
51
+ │ ├─ js/
52
+ │ ├─ index.njk
53
+ │ └─ ...
54
+ ├─ .eleventy.js
55
+ └─ gulpfile.js
56
+ ```
57
+
58
+ ## Usage
59
+
60
+ For more usage instructions, please see [Duet Design System documentation](https://www.duetds.com).
61
+
62
+ ## Copyright
63
+
64
+ Copyright © 2020 LocalTapiola Services Ltd. For license, please see LICENSE.md.
@@ -0,0 +1,60 @@
1
+ /**
2
+ * DUET GULP CONFIGURATION
3
+ */
4
+ const gulp = require("gulp")
5
+ const sass = require("gulp-sass")(require("sass"))
6
+ const concat = require("gulp-concat")
7
+ const rename = require("gulp-rename")
8
+ const terser = require("gulp-terser")
9
+ const log = require("fancy-log")
10
+ const color = require("ansi-colors")
11
+
12
+ let baseHref
13
+ if (process.env.DUET_TOKEN) {
14
+ baseHref = "./dist/" + process.env.DUET_TOKEN + "/"
15
+ } else {
16
+ baseHref = "./dist/"
17
+ }
18
+
19
+ // A Task that generates JavaScript bundle
20
+ gulp.task("js", function () {
21
+ return (
22
+ gulp
23
+ // You can add more scripts below if necessary
24
+ .src(["./src/js/scripts.js"])
25
+ .pipe(concat("scripts.concat.js"))
26
+ .pipe(gulp.dest(baseHref + "js"))
27
+ .pipe(rename("scripts.min.js"))
28
+ .pipe(terser())
29
+ .on("error", function (err) {
30
+ log(color.red("[Error]"), err.toString())
31
+ })
32
+ .pipe(gulp.dest(baseHref + "js"))
33
+ )
34
+ })
35
+
36
+ // A Task that generates CSS from Sass
37
+ gulp.task("sass", function () {
38
+ return gulp
39
+ .src("./src/css/**/*.scss")
40
+ .pipe(
41
+ sass({
42
+ outputStyle: "compressed",
43
+ }).on("error", sass.logError)
44
+ )
45
+ .pipe(gulp.dest(baseHref + "css"))
46
+ })
47
+
48
+ // Define watch tasks
49
+ gulp.task("sass:watch", function () {
50
+ gulp.watch("./src/css/**/*.scss", gulp.series("sass"))
51
+ })
52
+ gulp.task("js:watch", function () {
53
+ gulp.watch("./src/js/**/*.js", gulp.series("js"))
54
+ })
55
+
56
+ // Define the default task
57
+ gulp.task("default", gulp.parallel("sass", "js", "sass:watch", "js:watch"))
58
+
59
+ // Define the build task
60
+ gulp.task("build", gulp.parallel("sass", "js"))
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "duet-eleventy-template",
3
+ "version": "2.0.0",
4
+ "description": "This package includes Duet Eleventy Template project.",
5
+ "bugs": {
6
+ "email": "duetdesignsystem@lahitapiola.fi"
7
+ },
8
+ "license": "SEE LICENSE IN LICENSE.md",
9
+ "author": "LocalTapiola Services Ltd <duetdesignsystem@lahitapiola.fi>",
10
+ "main": "index.js",
11
+ "scripts": {
12
+ "build": "cross-env ELEVENTY_ENV=production npm-run-all --sequential copy:components \"gulp build\" eleventy",
13
+ "build:prototype": "cross-env ELEVENTY_ENV=production npm-run-all --sequential build:clean build:prepare build:login copy:components \"gulp build\" build:template build:encrypt",
14
+ "build:clean": "rm -rf ./dist",
15
+ "build:prepare": "mkdir -p ./dist",
16
+ "build:login": "ncp ./.github/workflows/login.template ./dist/index.html",
17
+ "build:template": "eleventy --input=./src --output=./dist/$DUET_TOKEN",
18
+ "build:encrypt": "node ./.github/workflows/encrypt.js $DUET_TOKEN passphrase",
19
+ "copy:components": "ncp ./node_modules/@duetds/components/lib ./src/js/components",
20
+ "eleventy": "eleventy",
21
+ "gulp": "gulp",
22
+ "server": "eleventy --serve --port=8000",
23
+ "start": "cross-env ELEVENTY_ENV=development npm-run-all --parallel copy:components gulp server",
24
+ "start:prod": "cross-env ELEVENTY_ENV=production npm-run-all --parallel copy:components gulp server",
25
+ "test": "npm-run-all --sequential \"gulp build\" \"eleventy --dryrun\""
26
+ },
27
+ "dependencies": {
28
+ "@11ty/eleventy": "2.0.1",
29
+ "@duetds/components": "latest",
30
+ "@duetds/css": "latest",
31
+ "@duetds/icons": "latest",
32
+ "@duetds/tokens": "latest",
33
+ "ansi-colors": "4.1.1",
34
+ "cross-env": "7.0.1",
35
+ "crypto-js": "4.0.0",
36
+ "fancy-log": "1.3.3",
37
+ "gulp": "4.0.2",
38
+ "gulp-concat": "2.6.1",
39
+ "gulp-rename": "2.0.0",
40
+ "gulp-sass": "5.1.0",
41
+ "gulp-terser": "1.2.0",
42
+ "html-minifier": "4.0.0",
43
+ "ncp": "2.0.0",
44
+ "npm-run-all": "4.1.5",
45
+ "prettier": "2.2.1",
46
+ "replace-in-file": "5.0.2",
47
+ "sass": "1.62.1",
48
+ "uglify-js": "3.8.0",
49
+ "yargs": "15.1.0"
50
+ }
51
+ }
@@ -0,0 +1,12 @@
1
+ /* MAIN SCSS PARTIAL
2
+ --------------------------------------------- */
3
+ @charset "utf-8";
4
+
5
+ // Import Duet Design Tokens
6
+ @import "../../node_modules/@duetds/tokens/lib/tokens.scss";
7
+
8
+ // Import Duet CSS Framework
9
+ @import "../../node_modules/@duetds/css/lib/duet.min";
10
+
11
+ // Import any custom SCSS partials below
12
+ @import "partials/example.scss";
@@ -0,0 +1,6 @@
1
+ /* EXAMPLE PARTIAL
2
+ --------------------------------------------- */
3
+
4
+ .example {
5
+ color: $color-primary;
6
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * DUET ELEVENTY DATA FILE
3
+ */
4
+
5
+ // Create a random string for cache busting needs
6
+ function chr4() {
7
+ return Math.random().toString(16).slice(-4)
8
+ }
9
+
10
+ const githubProject = process.env.DUET_PROJECT_NAME ? process.env.DUET_PROJECT_NAME.toLowerCase() : ""
11
+
12
+ // Export environment variable and the current version so that
13
+ // they can be used on our website.
14
+ module.exports = {
15
+ environment: process.env.ELEVENTY_ENV,
16
+ baseHref: process.env.DUET_TOKEN ? `/${githubProject}/${process.env.DUET_TOKEN}` : "",
17
+ version: chr4() + "-" + chr4() + "-" + chr4(),
18
+ }
@@ -0,0 +1,15 @@
1
+ <duet-footer
2
+ logo-href="{{ duet.baseHref }}"
3
+ language="fi"
4
+ items='[
5
+ { "label": "Hae korvausta", "href": "#", "icon": "navigation-make-claim" },
6
+ { "label": "Osta vakuutus", "href": "#", "icon": "action-buy-insurance" },
7
+ { "label": "Yhteystiedot", "href": "#", "icon": "form-tel" }
8
+ ]'
9
+ menu='[
10
+ { "label": "Turvallisuus ja käyttöehdot", "href": "#" },
11
+ { "label": "Evästeet", "href": "#" },
12
+ { "label": "Henkilötietojen käsittely", "href": "#" }
13
+ ]'
14
+ >
15
+ </duet-footer>
@@ -0,0 +1,24 @@
1
+ <duet-header
2
+ language="fi"
3
+ skip-to-id="#content"
4
+ contact="Ota yhteyttä"
5
+ logo-href="{{ duet.baseHref }}"
6
+ current-href="{{ duet.baseHref }}{{ page.url }}"
7
+ items='[
8
+ { "label": "Etusivu", "href": "{{ duet.baseHref }}/" },
9
+ { "label": "Vakuutukset", "href": "{{ duet.baseHref }}/vakuutukset/" },
10
+ { "label": "Vahinkoasiat", "href": "{{ duet.baseHref }}/vahinkoasiat/" }
11
+ ]'
12
+ language-items='[
13
+ { "label": "Suomeksi", "country": "fi", "href": "#" },
14
+ { "label": "På Svenska", "country": "sv", "href": "#" },
15
+ { "label": "In English", "country": "en", "href": "#" }
16
+ ]'
17
+ contact-items='[
18
+ { "label": "Lähetä viesti", "href": "#" },
19
+ { "label": "Avaa chat", "href": "#" },
20
+ { "label": "Yhteystiedot", "href": "#" }
21
+ ]'
22
+ session='{ "label": "Kirjaudu ulos", "href": "#", "type": "logout" }'
23
+ user='{ "label": "Laura", "href": "#" }'>
24
+ </duet-header>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html lang="fi" {% if html_class %}class="{{ html_class }}" {% endif %}>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="author" content="LähiTapiola" />
6
+ <meta name="viewport" content="width=device-width,initial-scale=1.0" />
7
+ <meta name="format-detection" content="telephone=no" />
8
+ <meta name="robots" content="noindex,nofollow" />
9
+ <title>{% if title %}{{ title }} | {% endif %}LähiTapiola</title>
10
+ <link rel="icon" href="{{ duet.baseHref }}/favicon.ico" />
11
+ <link rel="modulepreload" href="{{ duet.baseHref }}/js/components/duet/duet.esm.js?v={{ duet.version }}" />
12
+ <link rel="apple-touch-icon" href="{{ duet.baseHref }}/assets/img/apple-touch-icon-180x180.png" />
13
+ <link rel="stylesheet" href="https://cdn.duetds.com/api/fonts/1.3.12/lib/localtapiola.css" />
14
+ <link rel="stylesheet" href="https://cdn.duetds.com/api/fonts/1.3.12/lib/turva.css" />
15
+ <link rel="stylesheet" href="{{ duet.baseHref }}/css/main.css?v={{ duet.version }}" />
16
+ <link rel="manifest" href="{{ duet.baseHref }}/manifest.json" />
17
+ <script type="module" src="{{ duet.baseHref }}/js/components/duet/duet.esm.js?v={{ duet.version }}"></script>
18
+ <script nomodule src="{{ duet.baseHref }}/js/components/duet/duet.js?v={{ duet.version }}"></script>
19
+ <script src="{{ duet.baseHref }}/js/scripts.min.js?v={{ duet.version }}"></script>
20
+ </head>
21
+ <body>
22
+ {% include "header.njk" %}
23
+ {{ content | safe }}
24
+ {% include "footer.njk" %}
25
+ </body>
26
+ </html>
@@ -0,0 +1,58 @@
1
+ ---
2
+ layout: layout.njk
3
+ ---
4
+
5
+ <duet-hero
6
+ heading="Etusivu"
7
+ image="https://cdn.duetds.com/api/assets/illustrations/placeholder-light.svg"
8
+ button-label="Toimintopainike"
9
+ button-url="/"
10
+ margin="none"
11
+ id="content"
12
+ description="Tämä teksti on luotu Hero-komponentin description-asetuksella. Voit lisätä tähän esimerkiksi ingressin.">
13
+ </duet-hero>
14
+ <duet-layout sticky>
15
+ <div slot="main">
16
+ <duet-card padding="large">
17
+ <duet-heading level="h2">Pääpalsta</duet-heading>
18
+ <duet-paragraph>
19
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
20
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
21
+ <duet-link url="#">ullamco laboris nisi ut aliquip</duet-link> ex ea commodo consequat. Duis aute irure dolor in
22
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
23
+ non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
24
+ </duet-paragraph>
25
+ <duet-paragraph>
26
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
27
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
28
+ consequat.
29
+ </duet-paragraph>
30
+ <duet-heading level="h3">Otsikko 3</duet-heading>
31
+ <duet-paragraph>
32
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
33
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.
34
+ </duet-paragraph>
35
+ <duet-heading level="h4">Otsikko 4</duet-heading>
36
+ <duet-paragraph>
37
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
38
+ magna aliqua.
39
+ </duet-paragraph>
40
+ <duet-heading level="h5">Otsikko 5</duet-heading>
41
+ <duet-paragraph>
42
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
43
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
44
+ consequat.
45
+ </duet-paragraph>
46
+ <duet-heading level="h6">Otsikko 6</duet-heading>
47
+ <duet-paragraph>
48
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
49
+ </duet-paragraph>
50
+ </duet-card>
51
+ </div>
52
+ <div slot="sidebar">
53
+ <duet-card padding="large" heading="Sivupalsta">
54
+ Sivupalstaa voidaan käyttää pääsisältöön liittyvän tiedon näyttämiseen tai vaihtoehtoisesti nostamaan esiin
55
+ aiheeseen liittyvää muuta sisältöä.
56
+ </duet-card>
57
+ </div>
58
+ </duet-layout>
@@ -0,0 +1 @@
1
+ // Include any custom JavaScript here
@@ -0,0 +1,19 @@
1
+ {
2
+ "icons": [
3
+ {
4
+ "src": "/assets/img/apple-touch-icon-180x180.png",
5
+ "sizes": "180x180",
6
+ "type": "image/png"
7
+ },
8
+ {
9
+ "src": "/assets/img/android-chrome-192x192.png",
10
+ "sizes": "192x192",
11
+ "type": "image/png"
12
+ },
13
+ {
14
+ "src": "/assets/img/splash-screen-icon-512x512.png",
15
+ "sizes": "512x512",
16
+ "type": "image/png"
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,8 @@
1
+ # www.robotstxt.org/
2
+
3
+ # Allow crawling of all content
4
+ User-agent: *
5
+ Disallow:
6
+
7
+ User-agent: Twitterbot
8
+ Disallow:
@@ -0,0 +1,43 @@
1
+ ---
2
+ title: Vahinkoasiat
3
+ layout: layout.njk
4
+ html_class: "duet-bg-gradient"
5
+ ---
6
+
7
+ <duet-layout center>
8
+ <div slot="main">
9
+ <duet-card padding="large">
10
+ <duet-heading level="h1" visual-level="h2">Vahinkoasiat</duet-heading>
11
+ <duet-paragraph>
12
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
13
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
14
+ <duet-link url="#">ullamco laboris nisi ut aliquip</duet-link> ex ea commodo consequat. Duis aute irure dolor in
15
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
16
+ non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
17
+ </duet-paragraph>
18
+ <duet-paragraph>
19
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
20
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
21
+ consequat.
22
+ </duet-paragraph>
23
+ <duet-heading level="h3">Otsikko 3</duet-heading>
24
+ <duet-paragraph>
25
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
26
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.
27
+ </duet-paragraph>
28
+ <duet-heading level="h4">Otsikko 4</duet-heading>
29
+ <duet-paragraph>
30
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
31
+ magna aliqua.
32
+ </duet-paragraph>
33
+ <duet-heading level="h5">Otsikko 5</duet-heading>
34
+ <duet-paragraph>
35
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
36
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
37
+ consequat.
38
+ </duet-paragraph>
39
+ <duet-heading level="h6">Otsikko 6</duet-heading>
40
+ <duet-paragraph>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</duet-paragraph>
41
+ </duet-card>
42
+ </div>
43
+ </duet-layout>
@@ -0,0 +1,49 @@
1
+ ---
2
+ title: Vakuutukset
3
+ layout: layout.njk
4
+ html_class: "duet-bg-gradient"
5
+ ---
6
+
7
+ <duet-layout sticky id="content">
8
+ <div slot="main">
9
+ <duet-card padding="large">
10
+ <duet-heading level="h1" visual-level="h2">Vakuutukset</duet-heading>
11
+ <duet-paragraph>
12
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
13
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
14
+ <duet-link url="#">ullamco laboris nisi ut aliquip</duet-link> ex ea commodo consequat. Duis aute irure dolor in
15
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
16
+ non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
17
+ </duet-paragraph>
18
+ <duet-paragraph>
19
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
20
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
21
+ consequat.
22
+ </duet-paragraph>
23
+ <duet-heading level="h3">Otsikko 3</duet-heading>
24
+ <duet-paragraph>
25
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
26
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.
27
+ </duet-paragraph>
28
+ <duet-heading level="h4">Otsikko 4</duet-heading>
29
+ <duet-paragraph>
30
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
31
+ magna aliqua.
32
+ </duet-paragraph>
33
+ <duet-heading level="h5">Otsikko 5</duet-heading>
34
+ <duet-paragraph>
35
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
36
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
37
+ consequat.
38
+ </duet-paragraph>
39
+ <duet-heading level="h6">Otsikko 6</duet-heading>
40
+ <duet-paragraph>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</duet-paragraph>
41
+ </duet-card>
42
+ </div>
43
+ <div slot="sidebar">
44
+ <duet-card padding="large" heading="Sivupalsta">
45
+ Sivupalstaa voidaan käyttää pääsisältöön liittyvän tiedon näyttämiseen tai vaihtoehtoisesti nostamaan esiin
46
+ aiheeseen liittyvää muuta sisältöä.
47
+ </duet-card>
48
+ </div>
49
+ </duet-layout>
@@ -0,0 +1,91 @@
1
+ /**
2
+ * DUET ELEVENTY CONFIGURATION
3
+ */
4
+ const hydrate = require("@duetds/components/hydrate")
5
+ const htmlmin = require("html-minifier")
6
+ const UglifyJS = require("uglify-js")
7
+
8
+ module.exports = function (config) {
9
+ // Enable data deep merge https://www.11ty.dev/docs/data-deep-merge/
10
+ config.setDataDeepMerge(true)
11
+
12
+ // Dom diffing doesn't work well with shadow DOM.
13
+ config.setServerOptions({
14
+ domDiff: false,
15
+ })
16
+
17
+ // Copy static assets to dist on build.
18
+ // You can add more here if and when needed.
19
+ config.addPassthroughCopy("./src/assets")
20
+ config.addPassthroughCopy("./src/js")
21
+ config.addPassthroughCopy("./src/favicon.ico")
22
+ config.addPassthroughCopy("./src/manifest.json")
23
+
24
+ // Add JSMIN filter to Eleventy.
25
+ config.addFilter("jsmin", function (code) {
26
+ if (process.env.ELEVENTY_ENV == "production") {
27
+ let minified = UglifyJS.minify(code)
28
+ if (minified.error) {
29
+ console.log("UglifyJS error: ", minified.error)
30
+ return code
31
+ }
32
+ return minified.code
33
+ } else {
34
+ return code
35
+ }
36
+ })
37
+
38
+ // Server side render Duet’s components in production environment.
39
+ config.addTransform("hydrate", async (content, outputPath) => {
40
+ if (process.env.ELEVENTY_ENV == "production") {
41
+ if (outputPath.endsWith(".html")) {
42
+ try {
43
+ const results = await hydrate.renderToString(content, {
44
+ clientHydrateAnnotations: true,
45
+ removeScripts: false,
46
+ removeUnusedStyles: false,
47
+ })
48
+ return results.html
49
+ } catch (error) {
50
+ return error
51
+ }
52
+ }
53
+ }
54
+ return content
55
+ })
56
+
57
+ // Minify HTML in production environment.
58
+ config.addTransform("htmlmin", function (content, outputPath) {
59
+ if (process.env.ELEVENTY_ENV == "production") {
60
+ if (outputPath.endsWith(".html")) {
61
+ let minified = htmlmin.minify(content, {
62
+ useShortDoctype: true,
63
+ // Clientside hydration of components won’t work if comments are removed
64
+ removeComments: false,
65
+ collapseWhitespace: false,
66
+ })
67
+ return minified
68
+ }
69
+ }
70
+ return content
71
+ })
72
+
73
+ return {
74
+ // If your site lives in a different subdirectory, change this.
75
+ // Leading or trailing slashes are all normalized away, so don’t worry about it.
76
+ // If you don’t have a subdirectory, use "" or "/" (they do the same thing)
77
+ // This is only used for URLs (it does not affect your file structure)
78
+ pathPrefix: "/",
79
+ templateFormats: ["md", "njk", "html"],
80
+ markdownTemplateEngine: "njk",
81
+ htmlTemplateEngine: "njk",
82
+ dataTemplateEngine: false,
83
+ passthroughFileCopy: true,
84
+ dir: {
85
+ input: "src",
86
+ includes: "includes",
87
+ data: "data",
88
+ output: "dist",
89
+ },
90
+ }
91
+ }
@@ -0,0 +1,6 @@
1
+ package.json
2
+ package-lock.json
3
+ src/includes/header.njk
4
+ src/includes/footer.njk
5
+ node_modules/**/*
6
+ src/js/components/**/*
@@ -0,0 +1,64 @@
1
+ # Duet Eleventy SSR Template
2
+
3
+ This is a [Eleventy](https://www.11ty.dev/) SSR project template for [Duet Design System](https://www.duetds.com). This starter template comes with built in SSR (Server Side Rendering) support for [Duet Web Components](https://www.duetds.com/components/). To learn more about Eleventy and what’s possible, see [Eleventy documentation](https://www.11ty.dev/docs/).
4
+
5
+ ## Features
6
+
7
+ - SSR (Server Side Rendering) support for [Duet Web Components](https://www.duetds.com/components/).
8
+ - Supports [Duet Design Tokens](https://www.duetds.com/tokens/) in SCSS without additional configuration.
9
+ - Comes with automated build and deploy steps for prototyping.
10
+ - Additionally comes with [Duet Fonts](https://www.duetds.com/typography/) and [Duet CSS Framework](https://www.duetds.com/css-framework/) preconfigured.
11
+
12
+ ## Development
13
+
14
+ Before moving further, please make sure you have [Node.js](https://nodejs.org/en/) 12.x or later installed on your machine. You can install the latest version through their website. Once you have Node.js installed, follow the below steps to get started.
15
+
16
+ 1. Run `npm install` in the root directory of this project to install the dependencies.
17
+ 2. Then run `npm start` to start up the server and development environment. This automatically opens up a new browser window showing `http://localhost:8000`.
18
+ 3. If you wish to test SSR, you can start up the server in production mode by running `npm run start:prod`. Please note that this makes Eleventy do server side rendering and JS+CSS minification with every change so it might slow down the development experience.
19
+ 4. This template ships with Prettier configuration. To enable HTML formatting for `.njk` templates, add the following to your VSCode settings.json:
20
+
21
+ ```json
22
+ {
23
+ "files.associations": {
24
+ "*.njk": "html"
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## Integration Tests
30
+
31
+ Run `npm run test` to run integration tests.
32
+
33
+ ## Building
34
+
35
+ Run `npm run build` to build a static, server side rendered website under `dist` that can be deployed using GitHub Pages, Azure Cloud, or Amazon S3.
36
+
37
+ ## Project Structure
38
+
39
+ ```
40
+ ├─ src/
41
+ │ ├─ assets/
42
+ │ ├─ css/
43
+ │ │ ├─ main.scss
44
+ │ │ └─ partials/
45
+ │ │ └─ example.scss
46
+ │ ├─ data/
47
+ │ ├─ includes/
48
+ │ │ ├─ layout.njk
49
+ │ │ ├─ header.njk
50
+ │ │ └─ footer.njk
51
+ │ ├─ js/
52
+ │ ├─ index.njk
53
+ │ └─ ...
54
+ ├─ .eleventy.js
55
+ └─ gulpfile.js
56
+ ```
57
+
58
+ ## Usage
59
+
60
+ For more usage instructions, please see [Duet Design System documentation](https://www.duetds.com).
61
+
62
+ ## Copyright
63
+
64
+ Copyright © 2020 LocalTapiola Services Ltd. For license, please see LICENSE.md.
@@ -0,0 +1,60 @@
1
+ /**
2
+ * DUET GULP CONFIGURATION
3
+ */
4
+ const gulp = require("gulp")
5
+ const sass = require("gulp-sass")(require("sass"))
6
+ const concat = require("gulp-concat")
7
+ const rename = require("gulp-rename")
8
+ const terser = require("gulp-terser")
9
+ const log = require("fancy-log")
10
+ const color = require("ansi-colors")
11
+
12
+ let baseHref
13
+ if (process.env.DUET_TOKEN) {
14
+ baseHref = "./dist/" + process.env.DUET_TOKEN + "/"
15
+ } else {
16
+ baseHref = "./dist/"
17
+ }
18
+
19
+ // A Task that generates JavaScript bundle
20
+ gulp.task("js", function () {
21
+ return (
22
+ gulp
23
+ // You can add more scripts below if necessary
24
+ .src(["./src/js/scripts.js"])
25
+ .pipe(concat("scripts.concat.js"))
26
+ .pipe(gulp.dest(baseHref + "js"))
27
+ .pipe(rename("scripts.min.js"))
28
+ .pipe(terser())
29
+ .on("error", function (err) {
30
+ log(color.red("[Error]"), err.toString())
31
+ })
32
+ .pipe(gulp.dest(baseHref + "js"))
33
+ )
34
+ })
35
+
36
+ // A Task that generates CSS from Sass
37
+ gulp.task("sass", function () {
38
+ return gulp
39
+ .src("./src/css/**/*.scss")
40
+ .pipe(
41
+ sass({
42
+ outputStyle: "compressed",
43
+ }).on("error", sass.logError)
44
+ )
45
+ .pipe(gulp.dest(baseHref + "css"))
46
+ })
47
+
48
+ // Define watch tasks
49
+ gulp.task("sass:watch", function () {
50
+ gulp.watch("./src/css/**/*.scss", gulp.series("sass"))
51
+ })
52
+ gulp.task("js:watch", function () {
53
+ gulp.watch("./src/js/**/*.js", gulp.series("js"))
54
+ })
55
+
56
+ // Define the default task
57
+ gulp.task("default", gulp.parallel("sass", "js", "sass:watch", "js:watch"))
58
+
59
+ // Define the build task
60
+ gulp.task("build", gulp.parallel("sass", "js"))
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "duet-eleventy-template",
3
+ "version": "2.0.0",
4
+ "description": "This package includes Duet Eleventy SSR Template project.",
5
+ "bugs": {
6
+ "email": "duetdesignsystem@lahitapiola.fi"
7
+ },
8
+ "license": "SEE LICENSE IN LICENSE.md",
9
+ "author": "LocalTapiola Services Ltd <duetdesignsystem@lahitapiola.fi>",
10
+ "main": "index.js",
11
+ "scripts": {
12
+ "build": "cross-env ELEVENTY_ENV=production npm-run-all --sequential copy:components \"gulp build\" eleventy",
13
+ "build:prototype": "cross-env ELEVENTY_ENV=production npm-run-all --sequential build:clean build:prepare build:login copy:components \"gulp build\" build:template build:encrypt",
14
+ "build:clean": "rm -rf ./dist",
15
+ "build:prepare": "mkdir -p ./dist",
16
+ "build:login": "ncp ./.github/workflows/login.template ./dist/index.html",
17
+ "build:template": "eleventy --input=./src --output=./dist/$DUET_TOKEN",
18
+ "build:encrypt": "node ./.github/workflows/encrypt.js $DUET_TOKEN passphrase",
19
+ "copy:components": "ncp ./node_modules/@duetds/components/lib ./src/js/components",
20
+ "eleventy": "eleventy",
21
+ "gulp": "gulp",
22
+ "server": "eleventy --serve --port=8000",
23
+ "start": "cross-env ELEVENTY_ENV=development npm-run-all --parallel copy:components gulp server",
24
+ "start:prod": "cross-env ELEVENTY_ENV=production npm-run-all --parallel copy:components gulp server",
25
+ "test": "npm-run-all --sequential \"gulp build\" \"eleventy --dryrun\""
26
+ },
27
+ "dependencies": {
28
+ "@11ty/eleventy": "2.0.1",
29
+ "@duetds/components": "latest",
30
+ "@duetds/css": "latest",
31
+ "@duetds/icons": "latest",
32
+ "@duetds/tokens": "latest",
33
+ "ansi-colors": "4.1.1",
34
+ "cross-env": "7.0.1",
35
+ "crypto-js": "4.0.0",
36
+ "fancy-log": "1.3.3",
37
+ "gulp": "4.0.2",
38
+ "gulp-concat": "2.6.1",
39
+ "gulp-rename": "2.0.0",
40
+ "gulp-sass": "5.1.0",
41
+ "gulp-terser": "1.2.0",
42
+ "html-minifier": "4.0.0",
43
+ "ncp": "2.0.0",
44
+ "npm-run-all": "4.1.5",
45
+ "prettier": "2.2.1",
46
+ "replace-in-file": "5.0.2",
47
+ "sass": "1.62.1",
48
+ "uglify-js": "3.8.0",
49
+ "yargs": "15.1.0"
50
+ }
51
+ }
@@ -0,0 +1,12 @@
1
+ /* MAIN SCSS PARTIAL
2
+ --------------------------------------------- */
3
+ @charset "utf-8";
4
+
5
+ // Import Duet Design Tokens
6
+ @import "../../node_modules/@duetds/tokens/lib/tokens.scss";
7
+
8
+ // Import Duet CSS Framework
9
+ @import "../../node_modules/@duetds/css/lib/duet.min";
10
+
11
+ // Import any custom SCSS partials below
12
+ @import "partials/example.scss";
@@ -0,0 +1,6 @@
1
+ /* EXAMPLE PARTIAL
2
+ --------------------------------------------- */
3
+
4
+ .example {
5
+ color: $color-primary;
6
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * DUET ELEVENTY DATA FILE
3
+ */
4
+
5
+ // Create a random string for cache busting needs
6
+ function chr4() {
7
+ return Math.random().toString(16).slice(-4)
8
+ }
9
+
10
+ const githubProject = process.env.DUET_PROJECT_NAME ? process.env.DUET_PROJECT_NAME.toLowerCase() : ""
11
+
12
+ // Export environment variable and the current version so that
13
+ // they can be used on our website.
14
+ module.exports = {
15
+ environment: process.env.ELEVENTY_ENV,
16
+ baseHref: process.env.DUET_TOKEN ? `/${githubProject}/${process.env.DUET_TOKEN}` : "",
17
+ version: chr4() + "-" + chr4() + "-" + chr4(),
18
+ }
@@ -0,0 +1,15 @@
1
+ <duet-footer
2
+ logo-href="{{ duet.baseHref }}"
3
+ language="fi"
4
+ items='[
5
+ { "label": "Hae korvausta", "href": "#", "icon": "navigation-make-claim" },
6
+ { "label": "Osta vakuutus", "href": "#", "icon": "action-buy-insurance" },
7
+ { "label": "Yhteystiedot", "href": "#", "icon": "form-tel" }
8
+ ]'
9
+ menu='[
10
+ { "label": "Turvallisuus ja käyttöehdot", "href": "#" },
11
+ { "label": "Evästeet", "href": "#" },
12
+ { "label": "Henkilötietojen käsittely", "href": "#" }
13
+ ]'
14
+ >
15
+ </duet-footer>
@@ -0,0 +1,24 @@
1
+ <duet-header
2
+ language="fi"
3
+ skip-to-id="#content"
4
+ contact="Ota yhteyttä"
5
+ logo-href="{{ duet.baseHref }}"
6
+ current-href="{{ duet.baseHref }}{{ page.url }}"
7
+ items='[
8
+ { "label": "Etusivu", "href": "{{ duet.baseHref }}/" },
9
+ { "label": "Vakuutukset", "href": "{{ duet.baseHref }}/vakuutukset/" },
10
+ { "label": "Vahinkoasiat", "href": "{{ duet.baseHref }}/vahinkoasiat/" }
11
+ ]'
12
+ language-items='[
13
+ { "label": "Suomeksi", "country": "fi", "href": "#" },
14
+ { "label": "På Svenska", "country": "sv", "href": "#" },
15
+ { "label": "In English", "country": "en", "href": "#" }
16
+ ]'
17
+ contact-items='[
18
+ { "label": "Lähetä viesti", "href": "#" },
19
+ { "label": "Avaa chat", "href": "#" },
20
+ { "label": "Yhteystiedot", "href": "#" }
21
+ ]'
22
+ session='{ "label": "Kirjaudu ulos", "href": "#", "type": "logout" }'
23
+ user='{ "label": "Laura", "href": "#" }'>
24
+ </duet-header>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html lang="fi" {% if html_class %}class="{{ html_class }}" {% endif %}>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="author" content="LähiTapiola" />
6
+ <meta name="viewport" content="width=device-width,initial-scale=1.0" />
7
+ <meta name="format-detection" content="telephone=no" />
8
+ <meta name="robots" content="noindex,nofollow" />
9
+ <title>{% if title %}{{ title }} | {% endif %}LähiTapiola</title>
10
+ <link rel="icon" href="{{ duet.baseHref }}/favicon.ico" />
11
+ <link rel="modulepreload" href="{{ duet.baseHref }}/js/components/duet/duet.esm.js?v={{ duet.version }}" />
12
+ <link rel="apple-touch-icon" href="{{ duet.baseHref }}/assets/img/apple-touch-icon-180x180.png" />
13
+ <link rel="stylesheet" href="https://cdn.duetds.com/api/fonts/1.3.12/lib/localtapiola.css" />
14
+ <link rel="stylesheet" href="https://cdn.duetds.com/api/fonts/1.3.12/lib/turva.css" />
15
+ <link rel="stylesheet" href="{{ duet.baseHref }}/css/main.css?v={{ duet.version }}" />
16
+ <link rel="manifest" href="{{ duet.baseHref }}/manifest.json" />
17
+ <script type="module" src="{{ duet.baseHref }}/js/components/duet/duet.esm.js?v={{ duet.version }}"></script>
18
+ <script nomodule src="{{ duet.baseHref }}/js/components/duet/duet.js?v={{ duet.version }}"></script>
19
+ <script src="{{ duet.baseHref }}/js/scripts.min.js?v={{ duet.version }}"></script>
20
+ </head>
21
+ <body>
22
+ {% include "header.njk" %}
23
+ {{ content | safe }}
24
+ {% include "footer.njk" %}
25
+ </body>
26
+ </html>
@@ -0,0 +1,58 @@
1
+ ---
2
+ layout: layout.njk
3
+ ---
4
+
5
+ <duet-hero
6
+ heading="Etusivu"
7
+ image="https://cdn.duetds.com/api/assets/illustrations/placeholder-light.svg"
8
+ button-label="Toimintopainike"
9
+ button-url="#"
10
+ margin="none"
11
+ id="content"
12
+ description="Tämä teksti on luotu Hero-komponentin description-asetuksella. Voit lisätä tähän esimerkiksi ingressin.">
13
+ </duet-hero>
14
+ <duet-layout sticky>
15
+ <div slot="main">
16
+ <duet-card padding="large">
17
+ <duet-heading level="h2">Pääpalsta</duet-heading>
18
+ <duet-paragraph>
19
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
20
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
21
+ <duet-link url="#">ullamco laboris nisi ut aliquip</duet-link> ex ea commodo consequat. Duis aute irure dolor in
22
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
23
+ non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
24
+ </duet-paragraph>
25
+ <duet-paragraph>
26
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
27
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
28
+ consequat.
29
+ </duet-paragraph>
30
+ <duet-heading level="h3">Otsikko 3</duet-heading>
31
+ <duet-paragraph>
32
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
33
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.
34
+ </duet-paragraph>
35
+ <duet-heading level="h4">Otsikko 4</duet-heading>
36
+ <duet-paragraph>
37
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
38
+ magna aliqua.
39
+ </duet-paragraph>
40
+ <duet-heading level="h5">Otsikko 5</duet-heading>
41
+ <duet-paragraph>
42
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
43
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
44
+ consequat.
45
+ </duet-paragraph>
46
+ <duet-heading level="h6">Otsikko 6</duet-heading>
47
+ <duet-paragraph>
48
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit.
49
+ </duet-paragraph>
50
+ </duet-card>
51
+ </div>
52
+ <div slot="sidebar">
53
+ <duet-card padding="large" heading="Sivupalsta">
54
+ Sivupalstaa voidaan käyttää pääsisältöön liittyvän tiedon näyttämiseen tai vaihtoehtoisesti nostamaan esiin
55
+ aiheeseen liittyvää muuta sisältöä.
56
+ </duet-card>
57
+ </div>
58
+ </duet-layout>
@@ -0,0 +1 @@
1
+ // Include any custom JavaScript here
@@ -0,0 +1,19 @@
1
+ {
2
+ "icons": [
3
+ {
4
+ "src": "/assets/img/apple-touch-icon-180x180.png",
5
+ "sizes": "180x180",
6
+ "type": "image/png"
7
+ },
8
+ {
9
+ "src": "/assets/img/android-chrome-192x192.png",
10
+ "sizes": "192x192",
11
+ "type": "image/png"
12
+ },
13
+ {
14
+ "src": "/assets/img/splash-screen-icon-512x512.png",
15
+ "sizes": "512x512",
16
+ "type": "image/png"
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,8 @@
1
+ # www.robotstxt.org/
2
+
3
+ # Allow crawling of all content
4
+ User-agent: *
5
+ Disallow:
6
+
7
+ User-agent: Twitterbot
8
+ Disallow:
@@ -0,0 +1,43 @@
1
+ ---
2
+ title: Vahinkoasiat
3
+ layout: layout.njk
4
+ html_class: "duet-bg-gradient"
5
+ ---
6
+
7
+ <duet-layout center>
8
+ <div slot="main">
9
+ <duet-card padding="large">
10
+ <duet-heading level="h1" visual-level="h2">Vahinkoasiat</duet-heading>
11
+ <duet-paragraph>
12
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
13
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
14
+ <duet-link url="#">ullamco laboris nisi ut aliquip</duet-link> ex ea commodo consequat. Duis aute irure dolor in
15
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
16
+ non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
17
+ </duet-paragraph>
18
+ <duet-paragraph>
19
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
20
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
21
+ consequat.
22
+ </duet-paragraph>
23
+ <duet-heading level="h3">Otsikko 3</duet-heading>
24
+ <duet-paragraph>
25
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
26
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.
27
+ </duet-paragraph>
28
+ <duet-heading level="h4">Otsikko 4</duet-heading>
29
+ <duet-paragraph>
30
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
31
+ magna aliqua.
32
+ </duet-paragraph>
33
+ <duet-heading level="h5">Otsikko 5</duet-heading>
34
+ <duet-paragraph>
35
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
36
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
37
+ consequat.
38
+ </duet-paragraph>
39
+ <duet-heading level="h6">Otsikko 6</duet-heading>
40
+ <duet-paragraph>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</duet-paragraph>
41
+ </duet-card>
42
+ </div>
43
+ </duet-layout>
@@ -0,0 +1,49 @@
1
+ ---
2
+ title: Vakuutukset
3
+ layout: layout.njk
4
+ html_class: "duet-bg-gradient"
5
+ ---
6
+
7
+ <duet-layout sticky id="content">
8
+ <div slot="main">
9
+ <duet-card padding="large">
10
+ <duet-heading level="h1" visual-level="h2">Vakuutukset</duet-heading>
11
+ <duet-paragraph>
12
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
13
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation
14
+ <duet-link url="#">ullamco laboris nisi ut aliquip</duet-link> ex ea commodo consequat. Duis aute irure dolor in
15
+ reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
16
+ non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
17
+ </duet-paragraph>
18
+ <duet-paragraph>
19
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
20
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
21
+ consequat.
22
+ </duet-paragraph>
23
+ <duet-heading level="h3">Otsikko 3</duet-heading>
24
+ <duet-paragraph>
25
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
26
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.
27
+ </duet-paragraph>
28
+ <duet-heading level="h4">Otsikko 4</duet-heading>
29
+ <duet-paragraph>
30
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
31
+ magna aliqua.
32
+ </duet-paragraph>
33
+ <duet-heading level="h5">Otsikko 5</duet-heading>
34
+ <duet-paragraph>
35
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
36
+ magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
37
+ consequat.
38
+ </duet-paragraph>
39
+ <duet-heading level="h6">Otsikko 6</duet-heading>
40
+ <duet-paragraph>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</duet-paragraph>
41
+ </duet-card>
42
+ </div>
43
+ <div slot="sidebar">
44
+ <duet-card padding="large" heading="Sivupalsta">
45
+ Sivupalstaa voidaan käyttää pääsisältöön liittyvän tiedon näyttämiseen tai vaihtoehtoisesti nostamaan esiin
46
+ aiheeseen liittyvää muuta sisältöä.
47
+ </duet-card>
48
+ </div>
49
+ </duet-layout>