diff --git a/.github/workflows/docgen.yml b/.github/workflows/docgen.yml
index 0163e5ad..d158e84e 100644
--- a/.github/workflows/docgen.yml
+++ b/.github/workflows/docgen.yml
@@ -31,7 +31,7 @@ jobs:
build:
runs-on: ubuntu-latest
env:
- HUGO_VERSION: 0.129.0
+ HUGO_VERSION: 0.147.9
steps:
- name: Install Hugo CLI
run: |
@@ -47,33 +47,36 @@ jobs:
with:
node-version: '20'
cache: 'npm'
- cache-dependency-path: './docs-gen/package-lock.json'
+ cache-dependency-path: 'docs-gen/package-lock.json'
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Install dependencies
- run: |
- cd docs-gen
- npm ci
+ working-directory: ./docs-gen
+ run: npm ci
- name: Build production website
+ working-directory: ./docs-gen
env:
# For maximum backward compatibility with Hugo modules
HUGO_ENVIRONMENT: production
HUGO_ENV: production
TZ: America/Los_Angeles
run: |
- cd docs-gen
- npx exec-bin node_modules/.bin/hugo/hugo \
+ hugo \
+ --environment production \
--minify \
--cleanDestinationDir \
--baseURL "${{ steps.pages.outputs.base_url }}/"
- name: Upload artifact
uses: actions/upload-pages-artifact@v4
with:
- path: ./docs
+ path: ./docs-gen/public
# Deployment job
deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
diff --git a/docs-gen/.editorconfig b/docs-gen/.editorconfig
deleted file mode 100644
index 926daa34..00000000
--- a/docs-gen/.editorconfig
+++ /dev/null
@@ -1,11 +0,0 @@
-# editorconfig.org
-
-root = true
-
-[*]
-indent_style = space
-indent_size = 2
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
diff --git a/docs-gen/.eslintignore b/docs-gen/.eslintignore
deleted file mode 100644
index 3c3629e6..00000000
--- a/docs-gen/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/docs-gen/.eslintrc.json b/docs-gen/.eslintrc.json
deleted file mode 100644
index 78a085b3..00000000
--- a/docs-gen/.eslintrc.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "env": {
- "browser": true,
- "commonjs": true,
- "es6": true,
- "node": true
- },
- "extends": "eslint:recommended",
- "globals": {
- "Atomics": "readonly",
- "SharedArrayBuffer": "readonly"
- },
- "parserOptions": {
- "ecmaVersion": 2018,
- "sourceType": "module"
- },
- "rules": {
- "no-console": 0,
- "quotes": ["error", "single"],
- "comma-dangle": [
- "error",
- {
- "arrays": "always-multiline",
- "objects": "always-multiline",
- "imports": "always-multiline",
- "exports": "always-multiline",
- "functions": "ignore"
- }
- ]
- }
-}
diff --git a/docs-gen/.gitpod.yml b/docs-gen/.gitpod.yml
deleted file mode 100644
index 1e7958fb..00000000
--- a/docs-gen/.gitpod.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-# Source:
-# - https://github.com/gitpod-io/template-hugo
-# - https://www.gitpod.io/docs/configure/workspaces/tasks#one-line-tasks
-
-tasks:
- - name: Run development server
- init: pnpm install
- command: pnpm dev
-
-ports:
- - port: 1313
- onOpen: open-preview
diff --git a/docs-gen/.markdownlint-cli2.jsonc b/docs-gen/.markdownlint-cli2.jsonc
deleted file mode 100644
index 8440313e..00000000
--- a/docs-gen/.markdownlint-cli2.jsonc
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "config": {
- "default": true,
- "MD013": false,
- "MD022": false,
- "MD024": false,
- "MD025": false,
- "MD026": false,
- "MD033": false,
- "MD034": false,
- "MD036": false
- },
- "ignores": ["node_modules", "CHANGELOG.md", "README.md"]
-}
diff --git a/docs-gen/.npmrc b/docs-gen/.npmrc
deleted file mode 100644
index 89b1f687..00000000
--- a/docs-gen/.npmrc
+++ /dev/null
@@ -1,4 +0,0 @@
-enable-pre-post-scripts = true
-auto-install-peers = true
-node-linker = hoisted
-prefer-symlinked-executables = false
diff --git a/docs-gen/.stylelintignore b/docs-gen/.stylelintignore
deleted file mode 100644
index a2f6536b..00000000
--- a/docs-gen/.stylelintignore
+++ /dev/null
@@ -1,2 +0,0 @@
-assets/scss/common/_variables-custom.scss
-node_modules
diff --git a/docs-gen/.stylelintrc.json b/docs-gen/.stylelintrc.json
deleted file mode 100644
index 2c8046c9..00000000
--- a/docs-gen/.stylelintrc.json
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- "extends": "stylelint-config-standard-scss",
- "rules": {
- "no-empty-source": null,
- "scss/comment-no-empty": null,
- "scss/at-extend-no-missing-placeholder": null,
- "at-rule-no-unknown": [
- true,
- {
- "ignoreAtRules": [
- "extend",
- "at-root",
- "debug",
- "warn",
- "error",
- "if",
- "else",
- "for",
- "each",
- "while",
- "mixin",
- "include",
- "content",
- "return",
- "function",
- "tailwind",
- "apply",
- "responsive",
- "variants",
- "screen"
- ]
- }
- ]
- }
-}
diff --git a/docs-gen/CHANGELOG.md b/docs-gen/CHANGELOG.md
new file mode 100644
index 00000000..c6a85169
--- /dev/null
+++ b/docs-gen/CHANGELOG.md
@@ -0,0 +1,57 @@
+# doks
+
+## 1.8.1
+
+### Patch Changes
+
+- [#1372](https://github.com/thuliteio/doks/pull/1372) [`bb44bf8`](https://github.com/thuliteio/doks/commit/bb44bf84e046d4dbd03ec6ef6b1051db5f6e80b1) Thanks [@h-enk](https://github.com/h-enk)! - Fix layouts mounting order
+
+## 1.8.0
+
+### Minor Changes
+
+- [#1369](https://github.com/thuliteio/doks/pull/1369) [`d03e363`](https://github.com/thuliteio/doks/commit/d03e3634a85f26bcd3c71e99b829d5258fd25c60) Thanks [@h-enk](https://github.com/h-enk)! - Update for new template system in Hugo v0.146.0
+
+- [#1356](https://github.com/thuliteio/doks/pull/1356) [`6f457a6`](https://github.com/thuliteio/doks/commit/6f457a6da7d6254fa0315e39b166423a4c389e90) Thanks [@LemonDouble](https://github.com/LemonDouble)! - fix : Fixes the issue of layout breaking due to changes in layout priority in Hugo 0.146.0
+
+### Patch Changes
+
+- [#1303](https://github.com/thuliteio/doks/pull/1303) [`f13c768`](https://github.com/thuliteio/doks/commit/f13c768d43cca497c77a6e7b4995f2c0cfc6b962) Thanks [@AndiKod](https://github.com/AndiKod)! - Tiny typo "by by" => "by"
+
+## 1.7.0
+
+### Minor Changes
+
+- [#1276](https://github.com/thuliteio/doks/pull/1276) [`b3145cd`](https://github.com/thuliteio/doks/commit/b3145cd021a9ab6ee244f3ad8aa38d8b3aa1c4a5) Thanks [@h-enk](https://github.com/h-enk)! - Update for migration from Hyas to Thulite
+
+### Patch Changes
+
+- [#1266](https://github.com/thuliteio/doks/pull/1266) [`009064a`](https://github.com/thuliteio/doks/commit/009064ad81d018521992ea2b6451b0906a02a1a0) Thanks [@l-zeuch](https://github.com/l-zeuch)! - Allow custom kroki host
+
+- [#1256](https://github.com/thuliteio/doks/pull/1256) [`5d475ea`](https://github.com/thuliteio/doks/commit/5d475ead4f845afe68c370734ca47365b81e2024) Thanks [@Rancho-rachit](https://github.com/Rancho-rachit)! - Added LinkedIn Social
+
+- [#1268](https://github.com/thuliteio/doks/pull/1268) [`7608454`](https://github.com/thuliteio/doks/commit/76084541c4d3c95f22a343f4dc538325088fba68) Thanks [@h-enk](https://github.com/h-enk)! - Add CodeSandbox support
+
+## 1.6.2
+
+### Patch Changes
+
+- [#1230](https://github.com/gethyas/doks/pull/1230) [`25f55a3`](https://github.com/gethyas/doks/commit/25f55a37fa4162b7546d6ded9b449434e4965164) Thanks [@h-enk](https://github.com/h-enk)! - Install prettier and vite as devDependencies
+
+## 1.6.1
+
+### Patch Changes
+
+- [#1229](https://github.com/gethyas/doks/pull/1229) [`7666ab6`](https://github.com/gethyas/doks/commit/7666ab62a9b04f0508530dfb8c7f5f7c6db0f966) Thanks [@h-enk](https://github.com/h-enk)! - Add gethyas dependency
+
+## 1.6.0
+
+### Minor Changes
+
+- [#1228](https://github.com/gethyas/doks/pull/1228) [`4be4a68`](https://github.com/gethyas/doks/commit/4be4a689619b49f62df4c65024d3e865c1ead99e) Thanks [@h-enk](https://github.com/h-enk)! - Update dependencies to latest versions
+
+## 1.5.0
+
+### Minor Changes
+
+- [#1226](https://github.com/gethyas/doks/pull/1226) [`664063e`](https://github.com/gethyas/doks/commit/664063eb6a02d24a3fceb61ea9ed8df589a11033) Thanks [@h-enk](https://github.com/h-enk)! - Update for new Hyas setup
diff --git a/docs-gen/LICENSE b/docs-gen/LICENSE
new file mode 100644
index 00000000..320b7164
--- /dev/null
+++ b/docs-gen/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020-2025 Thulite
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/docs-gen/README.md b/docs-gen/README.md
index 6d97dd48..dba22ecf 100644
--- a/docs-gen/README.md
+++ b/docs-gen/README.md
@@ -1,252 +1,40 @@
-# S2DM Documentation Website
+# Doks
-This directory contains the Hugo-based documentation website for the **Simplified Semantic Data Modeling (S2DM)** project.
+Doks is a documentation theme for [Thulite](https://thulite.io/).
-## Theme & Framework
+## Demo
-- **Framework**: [Hugo](https://gohugo.io/) static site generator
-- **Theme**: [Doks](https://github.com/h-enk/doks) - A modern documentation theme built on Bootstrap 5
-- **CSS Framework**: Bootstrap 5 with custom SCSS
-- **Icons**:
- - Lucide icons (for index page features)
- - Font Awesome 5.15.3 (site-wide)
+- [doks.netlify.app](https://doks.netlify.app/)
-## Hugo Version Management
+## Install
-This project uses a specific Hugo version to ensure consistency between local development and production builds:
-
-- **Local development**: Hugo version is specified in `package.json` under `otherDependencies.hugo`
-- **CI/CD (GitHub Actions)**: Hugo version is specified in `.github/workflows/docgen.yml` under `HUGO_VERSION`
-
-⚠️ **Important**: These versions must match to ensure consistent builds. If you update one, update the other.
-
-## Directory Structure
-
-```
-docs-gen/
-├── assets/ # SCSS, JS, and other build assets
-├── config/ # Hugo configuration files
-│ ├── _default/ # Default configuration
-│ ├── production/ # Production overrides
-│ └── next/ # Development overrides
-├── content/ # Markdown content files
-│ ├── _index.md # Homepage content
-│ ├── docs/ # Documentation pages
-│ ├── examples/ # Example pages
-│ └── tools/ # Tools documentation
-├── layouts/ # Hugo template files
-│ ├── index.html # Custom homepage layout
-│ └── partials/ # Reusable template components
-├── static/ # Static assets (images, files)
-│ └── images/ # Image assets
-└── ../docs/ # Built site output (publishDir)
-```
-
-## Development Commands
-
-All commands should be run from the `docs-gen` directory:
+The recommended way to install the latest version of Doks is by running the command below:
```bash
-cd docs-gen
+npm create thulite@latest -- --template doks
```
-### Install Dependencies
-```bash
-npm install
-```
-
-### Development Server
-```bash
-# Start development server (recommended)
-npm run dev
+Looking for help? Start with our [Getting Started](https://getdoks.org/docs/start-here/getting-started/) guide.
-# Start with drafts enabled
-npm run dev:drafts
-```
-The site will be available at `http://localhost:1313`
-
-### Build & Production
-```bash
-# Build for production
-npm run build
+## Documentation
-# Preview built site locally
-npm run preview
-```
+Visit our [official documentation](https://getdoks.org/).
-### Linting & Quality
-```bash
-# Run all linters
-npm run lint
-
-# Individual linters
-npm run lint:scripts # ESLint for JavaScript
-npm run lint:styles # Stylelint for SCSS/CSS
-npm run lint:markdown # Markdownlint for Markdown
-```
-
-### Utilities
-```bash
-# Create new content
-npm run create docs/new-page.md
-
-# Clean build artifacts
-npm run clean
-
-# Show version info
-npm run info
-```
-
-## Image Referencing
-
-### Static Images
-Place images in `static/images/` and reference them in Markdown:
-
-```markdown
-
-```
-
-### Full-width Images
-For full-width images (like the S2DM role diagram), use HTML:
-
-```html
-
-

-
-```
+## Support
-### Responsive Images
-Use Bootstrap classes for responsive behavior:
+Having trouble? Get help in the official [Doks Discussions](https://github.com/thuliteio/doks/discussions).
-```html
-
-```
-
-## Content & Callouts
-
-### Hugo Shortcodes
-
-The Doks theme provides several useful shortcodes:
-
-#### Callouts
-```markdown
-{{< callout type="note" >}}
-This is a note callout with helpful information.
-{{< /callout >}}
-
-{{< callout type="warning" >}}
-This is a warning callout for important notices.
-{{< /callout >}}
-
-{{< callout type="tip" >}}
-This is a tip callout for helpful suggestions.
-{{< /callout >}}
-```
-
-Available callout types:
-- `note` (blue)
-- `tip` (green)
-- `warning` (yellow)
-- `important` (red)
-
-#### Code Blocks
-````markdown
-```python
-# Python code example
-def hello_world():
- print("Hello, S2DM!")
-```
-````
-
-### Front Matter
-
-Standard front matter for content pages:
-
-```yaml
----
-title: "Page Title"
-description: "Page description for SEO"
-lead: "Brief subtitle or lead text"
-date: 2025-07-25
-lastmod: 2025-07-25
-draft: false
-weight: 100
----
-```
-
-### Homepage Configuration
-
-The homepage (`content/_index.md`) uses special front matter:
-
-```yaml
----
-title: "Simplified Semantic Data Modeling"
-lead: "An approach for modeling data of multiple domains..."
----
-```
-
-## Customization
-
-### Custom Layouts
-- `layouts/index.html` - Custom homepage layout with Lucide icons
-- `layouts/partials/` - Reusable components
-
-### Styling
-- `assets/scss/` - Custom SCSS files
-- Bootstrap 5 variables can be overridden in SCSS
-
-### Icons
-- **Lucide icons**: Used in homepage feature cards
-- **Font Awesome**: Available site-wide via CDN
-
-## Configuration
-
-### Main Config
-- `config/_default/hugo.toml` - Core Hugo settings
-- `config/_default/params.toml` - Theme parameters
-- `config/_default/menus/` - Navigation menus
-
-### Build Settings
-- **Output directory**: `../docs` (for GitHub Pages)
-- **Base URL**: Configured per environment
-- **Minification**: Enabled in production builds
-
-## Common Issues
-
-### Hugo Version Mismatch
-If you encounter build differences between local and CI/CD:
-1. Check Hugo version in `package.json` (`otherDependencies.hugo`)
-2. Check Hugo version in `.github/workflows/docgen.yml` (`HUGO_VERSION`)
-3. Ensure both versions match exactly
-
-### Port Already in Use
-If port 1313 is busy:
-```bash
-npm run dev -- --port 1314
-```
-
-### Build Errors
-Clear cache and rebuild:
-```bash
-npm run clean
-npm install
-npm run build
-```
+## Contributing
-### Image Issues
-- Ensure images are in `static/images/`
-- Use forward slashes in paths: `/images/file.png`
-- Check file extensions match exactly
-- SVG images might not scale correctly, stick to PNGs
+New contributors welcome! Check out our [Contributor Guides](https://getdoks.org/contribute/) for help getting started.
-## 📖 Documentation Links
+## Links
-- [Hugo Documentation](https://gohugo.io/documentation/)
-- [Doks Theme Guide](https://getdoks.org/)
-- [Bootstrap 5 Documentation](https://getbootstrap.com/docs/5.3/)
-- [Lucide Icons](https://lucide.dev/)
+- [License (MIT)](LICENSE)
+- [Code of Conduct](https://github.com/thuliteio/.github/blob/main/CODE_OF_CONDUCT.md)
+- [Project Funding](.github/FUNDING.md)
+- [Website](https://getdoks.org/)
----
+## Sponsors
-For questions about the S2DM project itself, see the main repository README.
+Doks is free, open source software made possible by Netlify, Algolia, and several other amazing organizations and inidviduals. [Sponsor Doks](.github/FUNDING.md) ❤️
diff --git a/docs-gen/assets/S2DM.png b/docs-gen/assets/S2DM.png
deleted file mode 100644
index b007b87f..00000000
Binary files a/docs-gen/assets/S2DM.png and /dev/null differ
diff --git a/docs-gen/assets/favicon.png b/docs-gen/assets/favicon.png
index 3f920f52..4f2d78da 100644
Binary files a/docs-gen/assets/favicon.png and b/docs-gen/assets/favicon.png differ
diff --git a/docs-gen/assets/favicon.svg b/docs-gen/assets/favicon.svg
new file mode 100644
index 00000000..58812ced
--- /dev/null
+++ b/docs-gen/assets/favicon.svg
@@ -0,0 +1,5 @@
+
diff --git a/docs-gen/assets/images/current-vs-desired.jpg b/docs-gen/assets/images/current-vs-desired.jpg
deleted file mode 100644
index 541f3489..00000000
Binary files a/docs-gen/assets/images/current-vs-desired.jpg and /dev/null differ
diff --git a/docs-gen/assets/images/general-flow.jpg b/docs-gen/assets/images/general-flow.jpg
deleted file mode 100644
index a2fc2dbf..00000000
Binary files a/docs-gen/assets/images/general-flow.jpg and /dev/null differ
diff --git a/docs-gen/assets/images/s2dm_overview.svg b/docs-gen/assets/images/s2dm_overview.svg
deleted file mode 100644
index aedb8b20..00000000
--- a/docs-gen/assets/images/s2dm_overview.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
diff --git a/docs-gen/assets/images/s2dm_role.svg b/docs-gen/assets/images/s2dm_role.svg
deleted file mode 100644
index e2fa37ad..00000000
--- a/docs-gen/assets/images/s2dm_role.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
diff --git a/docs-gen/assets/images/vss-limits-criteria.jpg b/docs-gen/assets/images/vss-limits-criteria.jpg
deleted file mode 100644
index f92b5b05..00000000
Binary files a/docs-gen/assets/images/vss-limits-criteria.jpg and /dev/null differ
diff --git a/docs-gen/assets/js/custom.js b/docs-gen/assets/js/custom.js
index c5525d04..1950dbcf 100644
--- a/docs-gen/assets/js/custom.js
+++ b/docs-gen/assets/js/custom.js
@@ -1 +1,15 @@
-// Put your custom JS code here
+// Put your custom JS code here
+
+// Fix search index URL for GitHub Pages
+(function() {
+ // Override fetch to fix search-index.json URL
+ const originalFetch = window.fetch;
+ window.fetch = function(url, options) {
+ if (typeof url === 'string' && url === '/search-index.json') {
+ // Get the base URL from the current location
+ const baseUrl = window.location.pathname.split('/').slice(0, -1).join('/');
+ url = baseUrl + '/search-index.json';
+ }
+ return originalFetch.call(this, url, options);
+ };
+})();
diff --git a/docs-gen/assets/new/cover.png b/docs-gen/assets/new/cover.png
deleted file mode 100644
index 561091e6..00000000
Binary files a/docs-gen/assets/new/cover.png and /dev/null differ
diff --git a/docs-gen/assets/s2dmgreen.png b/docs-gen/assets/s2dmgreen.png
deleted file mode 100644
index aca5adf2..00000000
Binary files a/docs-gen/assets/s2dmgreen.png and /dev/null differ
diff --git a/docs-gen/assets/scss/common/_custom.scss b/docs-gen/assets/scss/common/_custom.scss
index a3472965..cc4e2b5d 100644
--- a/docs-gen/assets/scss/common/_custom.scss
+++ b/docs-gen/assets/scss/common/_custom.scss
@@ -1,530 +1 @@
-// Put your custom SCSS code here
-
-/* Custom CSS fixes for sidebar layout */
-.docs-sidebar {
- padding-left: 1rem !important;
- padding-right: 1rem !important;
-}
-
-.docs-sidebar .section-nav {
- width: 100% !important;
- padding-left: 0 !important;
-}
-
-.docs-sidebar .list-unstyled {
- margin-left: 0 !important;
- padding-left: 0 !important;
-}
-
-.docs-sidebar .list-unstyled li {
- margin-left: 0 !important;
- padding-left: 0 !important;
-}
-
-.docs-sidebar .list-unstyled li a {
- display: block;
- padding: 0.375rem 0.75rem;
- text-decoration: none;
- border-radius: 0.25rem;
-}
-
-/* Nested navigation styling */
-.docs-sidebar .list-nested {
- margin-top: 0.5rem !important;
- margin-bottom: 1rem !important;
- padding-left: 1rem !important;
-}
-
-.docs-sidebar .list-nested li a {
- padding: 0.25rem 0.5rem;
- font-size: 0.9rem;
- color: #6c757d;
-}
-
-.docs-sidebar .list-nested li.active a {
- background-color: #e9ecef;
- color: #495057;
- font-weight: 600;
-}
-
-.docs-sidebar .list-nested li a:hover {
- background-color: #f8f9fa;
- color: #495057;
-}
-
-.list.section.showcase {
- .wrap.container-fluid,
- .wrap.container-lg {
- padding: 0;
- max-width: 100%;
- }
-
- .content {
- padding: 0;
- }
-
- .container {
- max-width: 100%;
- }
-}
-
-.col-main-section {
- flex: 0 0 auto;
- width: calc(100% - 2rem);
- padding-left: 1rem;
- padding-right: 1rem;
-
- @include media-breakpoint-up(md) {
- padding-left: 2rem;
- padding-right: 2rem;
- }
-
- @include media-breakpoint-up(xl) {
- max-width: 100rem;
- }
-}
-
-@include media-breakpoint-up(xl) {
- .col-xl {
- flex: 0 0 auto;
- width: 33.3333%;
- }
-}
-
-.section-cards {
- .card {
- margin: 0;
- padding: 1rem;
- }
-
- .card-title {
- margin-top: 0;
- }
-}
-
-@include media-breakpoint-up(lg) {
- .section-cards .col-lg-7:nth-child(2n) .card {
- margin-top: 3rem;
- margin-bottom: -3rem;
- }
-}
-
-@include media-breakpoint-up(xl) {
- .showcase .col-main-section {
- max-width: 80rem;
- }
-}
-
-.showcase .card {
- height: auto;
- margin: 1rem;
-}
-
-.showcase .card-img-overlay {
- position: absolute;
- inset: auto 0 0;
- padding: var(--bs-card-img-overlay-padding);
- border-radius: 0;
- background-color: hsla(224deg, 14%, 16%, 0.95);
- transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
- transition-duration: 0.3s;
- transition-property: opacity;
- opacity: 0;
-
- .card-title {
- margin-top: 0;
- color: var(--sl-color-gray-2);
- }
-
- .card-text {
- color: var(--sl-color-gray-2);
- }
-}
-
-.showcase .card:hover .card-img-overlay {
- opacity: 1;
-}
-
-.pagination {
- margin-top: 4rem;
-}
-
-/*! purgecss start ignore */
-.page-item a[aria-label="Previous"],
-.page-item a[aria-label="Next"] {
- border-radius: 50%;
-}
-
-/*! purgecss end ignore */
-
-// Add to Doks
-
-/*
-.callout-content {
- min-width: 0;
-}
-
-.callout pre {
- margin: 1rem 0;
-}
-
-.container-fw {
- max-width: auto;
-}
-
-.docs-sidebar {
- min-width: 18.75rem;
- max-width: 18.75rem;
- width: 18.75rem;
-}
-
-.docs-toc {
- min-width: 13.75rem;
-}
-
-@include media-breakpoint-up(lg) {
- .container-fw {
- max-width: 675px;
- }
-}
-
-@include media-breakpoint-up(xl) {
- .container-fw {
- max-width: 875px;
-
- .docs-content {
- width: 575px;
- }
-
- .docs-toc {
- margin-left: 3rem;
- }
- }
-}
-
-@include media-breakpoint-up(xxl) {
- .container-fw {
- max-width: 1075px;
-
- .docs-content {
- width: 675px;
- }
- }
-}
-
-figcaption {
- font-size: 1rem;
- margin-top: 0.5rem;
- font-style: italic;
-}
-*/
-
-.navbar-brand svg {
- width: 60px;
- height: 100%;
- margin-right: 0;
-}
-
-@include media-breakpoint-up(lg) {
- .navbar-brand svg {
- width: 70px;
- height: 100%;
- }
-}
-
-.section-credits {
- padding-top: 2.5rem;
- margin-bottom: 2.5rem;
-}
-
-@include media-breakpoint-up(lg) {
- .section-credits {
- padding-top: 4.5rem;
- margin-bottom: 4.5rem;
- }
-}
-
-.home .footer {
- @include visually-hidden;
-}
-
-// DocSearch
-
-.DocSearch-Container {
- z-index: 2000 !important;
-}
-
-.DocSearch-Hit-title {
- overflow: hidden;
-}
-
-.DocSearch-Hit-icon {
- display: flex;
- align-items: center;
-}
-
-.DocSearch-Hits mark {
- padding: 0;
-}
-
-@media (max-width: 768px) {
- .DocSearch-Modal {
- position: fixed !important;
- }
-}
-
-.single.blog .content h2[id]::before,
-.single.blog .content h3[id]::before,
-.single.blog .content h4[id]::before {
- display: block;
- height: 6rem;
- margin-top: -6rem;
- content: "";
-}
-
-.feedback-links h3,
-.feedback-links .h3 {
- text-transform: none;
- font-size: 1rem;
- margin: 1.25rem 0 0.75rem;
- padding: 1.5rem 0 0;
-}
-
-.feedback-links li {
- margin-top: 0.125rem;
- padding-top: 0.125rem;
-}
-
-.feedback-links a {
- color: $body-color;
- display: block;
- padding: 0.125rem 0;
- font-size: $font-size-base * 0.9375;
- text-decoration: none;
-}
-
-.feedback-links a:hover,
-.feedback-links a.active {
- text-decoration: none;
- color: $link-color;
-}
-
-@include color-mode(dark) {
- .feedback-links a {
- color: $body-color-dark;
- }
-
- .feedback-links a:hover {
- text-decoration: none;
- color: $link-color-dark;
- }
-}
-
-// Link cards
-
-/*
-.card-nav {
- column-gap: 1rem;
-}
-
-.card-nav .card {
- margin: 0.5rem 0;
-}
-
-.card-nav .card:hover {
- border: 1px solid $db-gray-600;
- background-color: var(--sl-color-gray-7);
-}
-
-@include color-mode(dark) {
- .card-nav .card {
- border: 1px solid hsl(224deg, 10%, 23%);
- }
-
- .card-nav .card:hover {
- border: 1px solid hsl(224deg, 6%, 56%);
- background-color: var(--sl-color-gray-6);
- }
-}
-*/
-
-// Link cards — blog single pages overrides
-
-.blog.single .card-nav {
- .card {
- margin: 0.5rem 0;
- transition: unset;
- }
-
- .card:hover {
- transform: unset;
- }
-
- .card-body {
- padding: 1rem;
- }
-}
-
-.docs-links h3,
-.page-links h3 {
- text-transform: none;
-}
-
-.img-lightmode.border {
- border: 1px solid $gray-200 !important;
-}
-
-.img-darkmode.border {
- border: 1px solid var(--sl-color-gray-6) !important;
-}
-
-@include color-mode(light) {
- .img-lightmode {
- display: block;
- }
-
- .img-darkmode {
- display: none;
- }
-}
-
-@include color-mode(dark) {
- .img-lightmode {
- display: none;
- }
-
- .img-darkmode {
- display: block;
- }
-}
-
-// Card shortcode
-
-.card-icon {
- padding: 0.2em;
- border-radius: 0.25rem;
-}
-
-.icon-yellow {
- border: 1px solid var(--sl-color-orange);
- background-color: var(--sl-color-orange-high);
-}
-
-.icon-purple {
- border: 1px solid var(--sl-color-purple);
- background-color: var(--sl-color-purple-high);
-}
-
-.icon-green {
- border: 1px solid var(--sl-color-green);
- background-color: var(--sl-color-green-high);
-}
-
-.icon-red {
- border: 1px solid var(--sl-color-red);
- background-color: var(--sl-color-red-high);
-}
-
-.icon-blue {
- border: 1px solid var(--sl-color-blue);
- background-color: var(--sl-color-blue-high);
-}
-
-.card-nav .card-box svg {
- stroke: $db-bluishCyan-100;
-}
-
-@include color-mode(dark) {
- .icon-yellow {
- border: 1px solid var(--sl-color-orange);
- background-color: var(--sl-color-orange-low);
- }
-
- .icon-purple {
- border: 1px solid var(--sl-color-purple);
- background-color: var(--sl-color-purple-low);
- }
-
- .icon-green {
- border: 1px solid var(--sl-color-green);
- background-color: var(--sl-color-green-low);
- }
-
- .icon-red {
- border: 1px solid var(--sl-color-red);
- background-color: var(--sl-color-red-low);
- }
-
- .icon-blue {
- border: 1px solid var(--sl-color-blue);
- background-color: var(--sl-color-blue-low);
- }
-
- .card-nav .card-box svg {
- stroke: $white;
- }
-}
-
-.card-nav .card-box {
- border-radius: 0;
- padding: 1rem 1rem 0;
-}
-
-.card-nav .card-box:hover {
- border: 1px solid $card-border-color;
- background-color: transparent;
-}
-
-@include color-mode(dark) {
- .card-nav .card-box {
- border: 1px solid hsl(224deg, 10%, 23%);
- }
-
- .card-nav .card-box:hover {
- border: 1px solid hsl(224deg, 10%, 23%);
- background-color: transparent;
- }
-}
-
-// Code
-
-.expressive-code pre > code {
- line-height: 1.7; // 1.8 (default)
-}
-
-.feedback-links h3, .feedback-links .h3 {
- font-size: 1.125rem;
- margin: 1.25rem 0 0.75rem;
- padding: 1.5rem 0 0;
-}
-
-//
-.bg-anna {
- /*
- background-color: #181422;
- background-color: #95e7d7;
- background-color: #ec4815;
- background-color: var(--overlay-blurple);
- */
- // background: linear-gradient(215deg, var(--overlay-blurple), transparent 40%), radial-gradient(var(--overlay-blurple), transparent 40%) no-repeat -60vw -40vh / 105vw 200vh, radial-gradient(var(--overlay-blurple), transparent 65%) no-repeat 50% calc(100% + 20rem) / 60rem 30rem;
-
- background-color: #181422;
-}
-
-//
-/*
-.alert {
- font-family: $font-family-sans-serif;
-}
-
-.alert-text {
- margin-right: 0;
- font-size: 1.125rem;
-}
-*/
-
-img,
-.img-fluid {
- max-width: 100%;
- height: auto;
-}
+// Put your custom SCSS code here
diff --git a/docs-gen/assets/scss/common/_variables-custom.scss b/docs-gen/assets/scss/common/_variables-custom.scss
index 6a4f1eb1..14af8119 100644
--- a/docs-gen/assets/scss/common/_variables-custom.scss
+++ b/docs-gen/assets/scss/common/_variables-custom.scss
@@ -1,4 +1,13 @@
-// Put your custom SCSS variables here
-
-// Light mode
-$primary: hsl(234, 100%, 60%);
+// Put your custom SCSS variables here
+
+// Light mode
+$primary: blue;
+
+// Dark mode
+$link-color-dark: aquamarine;
+$button-color-dark: aquamarine;
+
+:root,
+::backdrop {
+ --sl-color-accent-high: aquamarine;
+}
diff --git a/docs-gen/config/_default/hugo.toml b/docs-gen/config/_default/hugo.toml
index bfa4c01e..71333bde 100644
--- a/docs-gen/config/_default/hugo.toml
+++ b/docs-gen/config/_default/hugo.toml
@@ -1,27 +1,21 @@
title = "S2DM"
-baseURL= ""
-relativeURLs= false
-canonifyURLs= true
-publishDir = "../docs"
+baseurl = ""
disableAliases = true
disableHugoGeneratorInject = true
-timeout = 120
-disableKinds = []
+# disableKinds = ["taxonomy", "term"]
enableEmoji = true
enableGitInfo = false
enableRobotsTXT = true
-languageCode = "en-us"
-[pagination]
- pagerSize = 10
+languageCode = "en-US"
rssLimit = 10
summarylength = 20 # 70 (default)
# Multilingual
defaultContentLanguage = "en"
-disableLanguages = []
+disableLanguages = ["de", "nl"]
defaultContentLanguageInSubdir = false
-copyRight = "Copyright (c) COVESA"
+copyRight = "Copyright (c) 2020-2024 Thulite"
[build.buildStats]
enable = true
@@ -56,9 +50,9 @@ copyRight = "Copyright (c) COVESA"
maxAge = -1 # "30m"
[taxonomies]
- # contributor = "contributors"
- # category = "categories"
- # tag = "tags"
+ contributor = "contributors"
+ category = "categories"
+ tag = "tags"
[permalinks]
blog = "/blog/:slug/"
@@ -68,9 +62,8 @@ copyRight = "Copyright (c) COVESA"
[minify.tdewolff.html]
keepWhitespace = false
-[markup.goldmark.renderer]
- unsafe = true
-
+[pagination]
+ pagerSize = 10
[related]
threshold = 80
@@ -92,15 +85,3 @@ copyRight = "Copyright (c) COVESA"
hint = "photo"
quality = 85
resampleFilter = "Lanczos"
-
-[params]
- # Change default color scheme with a variant one. Can be "red", "blue", "green".
- themeVariant = "green"
- disableInlineCopyToClipBoard = true
- disableLandingPageButton = true
-
-[[menu.shortcuts]]
-name = " Github repo"
-identifier = "ds"
-url = "https://github.com/covesa/s2dm"
-weight = 10
diff --git a/docs-gen/config/_default/languages.toml b/docs-gen/config/_default/languages.toml
index 05a8783c..1726a39c 100644
--- a/docs-gen/config/_default/languages.toml
+++ b/docs-gen/config/_default/languages.toml
@@ -5,6 +5,13 @@
[en.params]
languageISO = "EN"
languageTag = "en-US"
- alertText = '4. April 2024 - Embargo is over. We are live.'
- # alertText = 'April 4th - Embargo is over. We are live.'
- footer = 'Connected Vehicle Systems Alliance'
+ alertText = 'Doks version 1.0 just shipped!'
+
+[de]
+ languageName = "German"
+ contentDir = "content/de"
+ weight = 15
+ [de.params]
+ languageISO = "DE"
+ languageTag = "de-DE"
+ alertText = 'Neue Version ist da! Doks v0.5'
diff --git a/docs-gen/config/_default/markup.toml b/docs-gen/config/_default/markup.toml
index 23e8d429..6eaba1e2 100644
--- a/docs-gen/config/_default/markup.toml
+++ b/docs-gen/config/_default/markup.toml
@@ -1,33 +1,33 @@
-defaultMarkdownHandler = "goldmark"
-
-[goldmark]
- [goldmark.extensions]
- linkify = false
- [goldmark.parser]
- autoHeadingID = true
- autoHeadingIDType = "github"
- [goldmark.parser.attribute]
- block = true
- title = true
- [goldmark.renderer]
- unsafe = true
-
-[highlight]
- anchorLineNos = false
- codeFences = true
- guessSyntax = false
- hl_Lines = ''
- hl_inline = false
- lineAnchors = ''
- lineNoStart = 1
- lineNos = false
- lineNumbersInTable = false
- noClasses = false
- noHl = false
- style = 'monokai'
- tabWidth = 2
-
-[tableOfContents]
- endLevel = 3
- ordered = false
- startLevel = 2
+defaultMarkdownHandler = "goldmark"
+
+[goldmark]
+ [goldmark.extensions]
+ linkify = false
+ [goldmark.parser]
+ autoHeadingID = true
+ autoHeadingIDType = "github"
+ [goldmark.parser.attribute]
+ block = true
+ title = true
+ [goldmark.renderer]
+ unsafe = true
+
+[highlight]
+ anchorLineNos = false
+ codeFences = true
+ guessSyntax = false
+ hl_Lines = ''
+ hl_inline = false
+ lineAnchors = ''
+ lineNoStart = 1
+ lineNos = false
+ lineNumbersInTable = false
+ noClasses = false
+ noHl = false
+ style = 'monokai'
+ tabWidth = 2
+
+[tableOfContents]
+ endLevel = 3
+ ordered = false
+ startLevel = 2
diff --git a/docs-gen/config/_default/menus/menus.en.toml b/docs-gen/config/_default/menus/menus.en.toml
index b030a383..42d62eed 100644
--- a/docs-gen/config/_default/menus/menus.en.toml
+++ b/docs-gen/config/_default/menus/menus.en.toml
@@ -1,36 +1,16 @@
-[[main]]
- name = "Docs"
- url = "docs/"
- identifier = "docs"
- weight = 10
-
-[[main]]
- name = "Examples"
- identifier = "examples"
- url = "examples/"
- weight = 20
-
-# Docs submenu items
-[[docs]]
- name = "Approach Overview"
- url = "docs/approach-overview/"
- identifier = "approach-overview"
- weight = 10
-
-[[docs]]
- name = "Data Modeling Guideline"
- url = "docs/data-modeling-guideline/"
- identifier = "data-modeling-guideline"
- weight = 20
-
-[[docs]]
- name = "Tools"
- identifier = "tools"
- url = "docs/tools/"
- weight = 30
-
-[[social]]
- name = "GitHub"
- pre = ''
- url = "https://github.com/covesa/s2dm"
- weight = 30
+[[main]]
+ name = "Docs"
+ url = "/docs/introduction/s2dm-documentation/"
+ weight = 10
+
+[[main]]
+ name = "Examples"
+ url = "examples/examples-introduction/introduction/"
+ weight = 30
+
+[[social]]
+ name = "GitHub"
+ pre = ''
+ url = "https://github.com/COVESA/s2dm"
+ post = "v0.1.0"
+ weight = 30
diff --git a/docs-gen/config/_default/module.toml b/docs-gen/config/_default/module.toml
index 05c58873..3dd3efd3 100644
--- a/docs-gen/config/_default/module.toml
+++ b/docs-gen/config/_default/module.toml
@@ -1,88 +1,97 @@
-# mounts
-## archetypes
-[[mounts]]
- source = "node_modules/@hyas/doks-core/archetypes"
- target = "archetypes"
-
-[[mounts]]
- source = "archetypes"
- target = "archetypes"
-
-## assets
-[[mounts]]
- source = "node_modules/@hyas/core/assets"
- target = "assets"
- # excludeFiles = ["scss/app.scss", "js/app.js"]
-
-[[mounts]]
- source = "node_modules/@hyas/images/assets"
- target = "assets"
-
-[[mounts]]
- source = "node_modules/@hyas/doks-core/assets"
- target = "assets"
-
-[[mounts]]
- source = "node_modules/@tabler/icons/icons"
- target = "assets/svgs/tabler-icons"
-
-[[mounts]]
- source = "assets"
- target = "assets"
-
-## content
-[[mounts]]
- source = "content"
- target = "content"
-
-## data
-[[mounts]]
- source = "node_modules/@hyas/doks-core/data"
- target = "data"
-
-[[mounts]]
- source = "data"
- target = "data"
-
-## i18n
-[[mounts]]
- source = "node_modules/@hyas/doks-core/i18n"
- target = "i18n"
-
-[[mounts]]
- source = "i18n"
- target = "i18n"
-
-## layouts
-[[mounts]]
- source = "node_modules/@hyas/core/layouts"
- target = "layouts"
-
-[[mounts]]
- source = "node_modules/@hyas/seo/layouts"
- target = "layouts"
-
-[[mounts]]
- source = "node_modules/@hyas/images/layouts"
- target = "layouts"
-
-[[mounts]]
- source = "node_modules/@hyas/doks-core/layouts"
- target = "layouts"
-
-[[mounts]]
- source = "node_modules/@hyas/inline-svg/layouts"
- target = "layouts"
-
-[[mounts]]
- source = "layouts"
- target = "layouts"
-
-## static
-[[mounts]]
- source = "node_modules/@hyas/doks-core/static"
- target = "static"
-
-[[mounts]]
- source = "static"
- target = "static"
+# Module Configuration File
+#
+# This file configures Hugo module settings, particularly module mounts which
+# define how content is organized within the project.
+#
+# Mounts specify file paths in your project that Hugo should use when building
+# the site. They allow for custom directory structures and integrating content
+# from different locations.
+
+## content
+[[mounts]]
+ source = "content"
+ target = "content"
+
+## data
+[[mounts]]
+ source = "node_modules/@thulite/doks-core/data"
+ target = "data"
+
+[[mounts]]
+ source = "data"
+ target = "data"
+
+## layouts
+[[mounts]]
+ source = "layouts"
+ target = "layouts"
+
+[[mounts]]
+ # Exclude 'home.html' to avoid conflicts with a custom home page layout defined in the local 'layouts' directory.
+ excludeFiles = "home.html"
+ source = "node_modules/@thulite/doks-core/layouts"
+ target = "layouts"
+
+[[mounts]]
+ source = "node_modules/@thulite/core/layouts"
+ target = "layouts"
+
+[[mounts]]
+ source = "node_modules/@thulite/seo/layouts"
+ target = "layouts"
+
+[[mounts]]
+ source = "node_modules/@thulite/images/layouts"
+ target = "layouts"
+
+[[mounts]]
+ source = "node_modules/@thulite/inline-svg/layouts"
+ target = "layouts"
+
+## i18n
+[[mounts]]
+ source = "node_modules/@thulite/doks-core/i18n"
+ target = "i18n"
+
+[[mounts]]
+ source = "i18n"
+ target = "i18n"
+
+## archetypes
+[[mounts]]
+ source = "node_modules/@thulite/doks-core/archetypes"
+ target = "archetypes"
+
+[[mounts]]
+ source = "archetypes"
+ target = "archetypes"
+
+## assets
+[[mounts]]
+ source = "node_modules/@thulite/core/assets"
+ target = "assets"
+
+[[mounts]]
+ source = "node_modules/@thulite/doks-core/assets"
+ target = "assets"
+
+[[mounts]]
+ source = "node_modules/@tabler/icons/icons"
+ target = "assets/svgs/tabler-icons"
+
+[[mounts]]
+ source = "node_modules/@thulite/images/assets"
+ target = "assets"
+
+[[mounts]]
+ source = "assets"
+ target = "assets"
+
+## static
+[[mounts]]
+ source = "node_modules/@thulite/doks-core/static"
+ target = "static"
+
+[[mounts]]
+ source = "static"
+ target = "static"
diff --git a/docs-gen/config/_default/params.toml b/docs-gen/config/_default/params.toml
index 1d5857e0..5573dd9d 100644
--- a/docs-gen/config/_default/params.toml
+++ b/docs-gen/config/_default/params.toml
@@ -1,11 +1,15 @@
# Hugo
title = "S2DM"
-description = "S2DM - Signal to Data Model documentation"
-images = ["preview.png"]
+description = "Simplified Semantic Data Modelling"
+images = ["cover.png"]
# mainSections
-mainSections = ["approach-overview", "data-modeling-guideline", "tools", "examples"]
-# Doks (@hyas/doks-core)
+mainSections = ["docs"]
+
+[social]
+ twitter = "getdoks"
+
+# Doks (@thulite/doks-core)
[doks]
# Color mode
colorMode = "light" # auto (default), light or dark
@@ -13,7 +17,7 @@ mainSections = ["approach-overview", "data-modeling-guideline", "tools", "exampl
# Navbar
navbarSticky = true # true (default) or false
- containerBreakpoint = "fluid" # "", "sm", "md", "lg" (default), "xl", "xxl", or "fluid"
+ containerBreakpoint = "lg" # "", "sm", "md", "lg" (default), "xl", "xxl", or "fluid"
## Button
navBarButton = false # false (default) or true
@@ -40,9 +44,9 @@ mainSections = ["approach-overview", "data-modeling-guideline", "tools", "exampl
bootstrapJavascript = false # false (default) or true
# Nav
- sectionNav = ["docs", "examples"] # ["docs"] (default) or list of sections (e.g. ["docs", "guides"])
+ sectionNav = ["docs","examples"] # ["docs"] (default) or list of sections (e.g. ["docs", "guides"])
toTopButton = false # false (default) or true
- breadcrumbTrail = true # false (default) or true
+ breadcrumbTrail = false # false (default) or true
headlineHash = true # true (default) or false
scrollSpy = true # true (default) or false
@@ -69,19 +73,21 @@ mainSections = ["approach-overview", "data-modeling-guideline", "tools", "exampl
# Repository
editPage = false # false (default) or true
lastMod = false # false (default) or true
- repoHost = "" # GitHub (default), Gitea, GitLab, Bitbucket, or BitbucketServer
- docsRepo = ""
- docsRepoBranch = "" # main (default), master, or
+ repoHost = "GitHub" # GitHub (default), Gitea, GitLab, Bitbucket, or BitbucketServer
+ docsRepo = "https://github.com/h-enk/doks"
+ docsRepoBranch = "main" # main (default), master, or
docsRepoSubPath = "" # "" (none, default) or
+ krokiURL = "https://kroki.io" # "https://kroki.io" (default) or custom URL like http://localhost:8000.
+
# SCSS colors
# backGround = "yellowgreen"
## Dark theme
# textDark = "#dee2e6" # "#dee2e6" (default), "#dee2e6" (orignal), or custom color
- # accentDark = "#5d2f86" # "#5d2f86" (default), "#5d2f86" (original), or custom color
- ## Light theme
- # textLight = "#1d2d35" # "#1d2d35" (default), "#1d2d35" (orignal), or custom color
- # accentLight = "#8ed6fb" # "#8ed6fb" (default), "#8ed6fb" (orignal), or custom color
+ # accentDark = "#3333FF" # "#5d2f86" (default), "#5d2f86" (original), or custom color
+ # Light theme
+ textLight = "#1d2d35" # "#1d2d35" (default), "#1d2d35" (orignal), or custom color
+ accentLight = "#3333FF" # "#8ed6fb" (default), "#8ed6fb" (orignal), or custom color
[doks.menu]
[doks.menu.section]
@@ -96,9 +102,9 @@ mainSections = ["approach-overview", "data-modeling-guideline", "tools", "exampl
errorLevel = 'ignore' # ignore (default), warning, or error (fails the build)
highlightBroken = false # true or false (default)
-# Images (@hyas/images)
-[hyas_images]
- [hyas_images.defaults]
+# Images (@thulite/images)
+[thulite_images]
+ [thulite_images.defaults]
decoding = "async" # sync, async, or auto (default)
fetchpriority = "auto" # high, low, or auto (default)
loading = "lazy" # eager or lazy (default)
@@ -107,11 +113,11 @@ mainSections = ["approach-overview", "data-modeling-guideline", "tools", "exampl
process = "" # "fill 1600x900" or "fill 2100x900" for example
lqip = "16x webp q20" # "16x webp q20" or "21x webp q20" for example
-# Inline SVG (@hyas/inline-svg)
+# Inline SVG (@thulite/inline-svg)
[inline_svg]
iconSetDir = "tabler-icons" # "tabler-icons" (default)
-# SEO (@hyas/seo)
+# SEO (@thulite/seo)
[seo]
[seo.title]
separator = " | "
@@ -119,16 +125,16 @@ mainSections = ["approach-overview", "data-modeling-guideline", "tools", "exampl
[seo.favicons]
sizes = []
icon = "favicon.png" # favicon.png (default)
- svgIcon = "favicon.png" # favicon.svg (default)
+ svgIcon = "favicon.svg" # favicon.svg (default)
maskIcon = "mask-icon.svg" # mask-icon.svg (default)
maskIconColor = "white" # white (default)
[seo.schemas]
type = "Organization" # Organization (default) or Person
- logo = "s2dmgreen.png" # Logo of Organization — favicon-512x512.png (default)
- name = "COVESA" # Name of Organization or Person
- sameAs = ["https://github.com/covesa/s2dm"] # E.g. ["https://github.com/gethyas/hyas", "https://fosstodon.org/@hyas"]
- images = ["preview.png"] # ["cover.png"] (default)
- article = ["docs"] # Article sections
+ logo = "favicon-512x512.png" # Logo of Organization — favicon-512x512.png (default)
+ name = "Thulite" # Name of Organization or Person
+ sameAs = [] # E.g. ["https://github.com/thuliteio/thulite", "https://fosstodon.org/@thulite"]
+ images = ["cover.png"] # ["cover.png"] (default)
+ article = [] # Article sections
newsArticle = [] # NewsArticle sections
- blogPosting = [] # BlogPosting sections
+ blogPosting = ["blog"] # BlogPosting sections
product = [] # Product sections
diff --git a/docs-gen/config/babel.config.js b/docs-gen/config/babel.config.js
index ddd2b2e0..8482b9c1 100644
--- a/docs-gen/config/babel.config.js
+++ b/docs-gen/config/babel.config.js
@@ -1,17 +1,17 @@
-module.exports = {
- presets: [
- [
- '@babel/preset-env',
- {
- targets: {
- browsers: [
- // Best practice: https://github.com/babel/babel/issues/7789
- '>=1%',
- 'not ie 11',
- 'not op_mini all',
- ],
- },
- },
- ],
- ],
-};
+module.exports = {
+ presets: [
+ [
+ '@babel/preset-env',
+ {
+ targets: {
+ browsers: [
+ // Best practice: https://github.com/babel/babel/issues/7789
+ '>=1%',
+ 'not ie 11',
+ 'not op_mini all'
+ ]
+ }
+ }
+ ]
+ ]
+};
diff --git a/docs-gen/config/development/hugo.toml b/docs-gen/config/development/hugo.toml
index f4997009..045d5349 100644
--- a/docs-gen/config/development/hugo.toml
+++ b/docs-gen/config/development/hugo.toml
@@ -1,10 +1,2 @@
-# Development environment overrides
-baseURL = ""
-relativeURLs = true
-canonifyURLs = false
-disableLiveReload = false
-
-# Development-specific settings
-[params]
- # Disable CDN for local development
- cdn_url = ""
+# Overrides for local development
+baseurl = "http://localhost/"
diff --git a/docs-gen/config/next/hugo.toml b/docs-gen/config/next/hugo.toml
index bb8250e2..8d1b518e 100644
--- a/docs-gen/config/next/hugo.toml
+++ b/docs-gen/config/next/hugo.toml
@@ -1 +1,2 @@
-# Overrides for next environment
+# Overrides for next environment
+baseurl = "/"
diff --git a/docs-gen/config/postcss.config.js b/docs-gen/config/postcss.config.js
index 5a0bc440..298664a7 100644
--- a/docs-gen/config/postcss.config.js
+++ b/docs-gen/config/postcss.config.js
@@ -1,68 +1,64 @@
-const autoprefixer = require('autoprefixer');
-const purgecss = require('@fullhuman/postcss-purgecss');
-const whitelister = require('purgecss-whitelister');
-
-module.exports = {
- plugins: [
- autoprefixer(),
- purgecss({
- content: [ './hugo_stats.json' ],
- extractors: [
- {
- extractor: (content) => {
- const els = JSON.parse(content).htmlElements;
- return els.tags.concat(els.classes, els.ids);
- },
- extensions: ['json'],
- },
- ],
- dynamicAttributes: [
- 'aria-expanded',
- 'data-bs-popper',
- 'data-bs-target',
- 'data-bs-theme',
- 'data-dark-mode',
- 'data-global-alert',
- 'data-pane', // tabs.js
- 'data-popper-placement',
- 'data-sizes',
- 'data-toggle-tab', // tabs.js
- 'id',
- 'size',
- 'type',
- ],
- safelist: [
- 'active',
- 'btn-clipboard', // clipboards.js
- 'clipboard', // clipboards.js
- 'disabled',
- 'hidden',
- 'modal-backdrop', // search-modal.js
- 'selected', // search-modal.js
- 'show',
- 'img-fluid',
- 'blur-up',
- 'lazyload',
- 'lazyloaded',
- 'alert-link',
- 'container-fw ',
- 'container-lg',
- 'container-fluid',
- 'offcanvas-backdrop',
- 'figcaption',
- 'dt',
- 'dd',
- 'showing',
- 'hiding',
- 'page-item',
- 'page-link',
- ...whitelister([
- './assets/scss/**/*.scss',
- './node_modules/@hyas/doks-core/assets/scss/components/_code.scss',
- './node_modules/@hyas/doks-core/assets/scss/components/_expressive-code.scss',
- './node_modules/@hyas/doks-core/assets/scss/common/_syntax.scss',
- ]),
- ],
- }),
- ],
-}
+const autoprefixer = require('autoprefixer');
+const { purgeCSSPlugin } = require('@fullhuman/postcss-purgecss');
+const whitelister = require('purgecss-whitelister');
+
+module.exports = {
+ plugins: [
+ autoprefixer(),
+ purgeCSSPlugin({
+ content: ['./hugo_stats.json'],
+ extractors: [
+ {
+ extractor: (content) => {
+ const els = JSON.parse(content).htmlElements;
+ return els.tags.concat(els.classes, els.ids);
+ },
+ extensions: ['json']
+ }
+ ],
+ dynamicAttributes: [
+ 'aria-expanded',
+ 'data-bs-popper',
+ 'data-bs-target',
+ 'data-bs-theme',
+ 'data-dark-mode',
+ 'data-global-alert',
+ 'data-pane', // tabs.js
+ 'data-popper-placement',
+ 'data-sizes',
+ 'data-toggle-tab', // tabs.js
+ 'id',
+ 'size',
+ 'type'
+ ],
+ safelist: [
+ 'active',
+ 'btn-clipboard', // clipboards.js
+ 'clipboard', // clipboards.js
+ 'disabled',
+ 'hidden',
+ 'modal-backdrop', // search-modal.js
+ 'selected', // search-modal.js
+ 'show',
+ 'img-fluid',
+ 'blur-up',
+ 'lazyload',
+ 'lazyloaded',
+ 'alert-link',
+ 'container-fw ',
+ 'container-lg',
+ 'container-fluid',
+ 'offcanvas-backdrop',
+ 'figcaption',
+ 'dt',
+ 'dd',
+ 'showing',
+ 'hiding',
+ 'page-item',
+ 'page-link',
+ 'not-content',
+ ...whitelister(['./assets/scss/**/*.scss', './node_modules/@thulite/doks-core/assets/scss/components/_code.scss', './node_modules/@thulite/doks-core/assets/scss/components/_expressive-code.scss', './node_modules/@thulite/doks-core/assets/scss/common/_syntax.scss'])
+ ]
+ })
+ ]
+};
diff --git a/docs-gen/config/production/hugo.toml b/docs-gen/config/production/hugo.toml
index 38e92b80..1dc6532f 100644
--- a/docs-gen/config/production/hugo.toml
+++ b/docs-gen/config/production/hugo.toml
@@ -1,10 +1,2 @@
-# Overrides for production environment
-# baseURL will be set by GitHub Actions
-relativeURLs = false
-canonifyURLs = true
-disableLiveReload = true
-enableRobotsTXT = true
-
-# Ensure consistent URL generation for GitHub Pages subpath
-uglyURLs = false
-removePathAccents = false
+# Overrides for production environment
+# baseurl will be set by GitHub Actions via --baseURL parameter
diff --git a/docs-gen/content-archive/Others/approach_primer.md b/docs-gen/content-archive/Others/approach_primer.md
deleted file mode 100644
index ebb994fd..00000000
--- a/docs-gen/content-archive/Others/approach_primer.md
+++ /dev/null
@@ -1,330 +0,0 @@
----
-title: Approach primer
----
-
-## Background
-### Why do we need such an approach?
-#### Subject Matter Experts are often NOT data modeling experts
-Subject Matter Experts (SMEs) are often not familiar with data modeling, nor are they following best practices to formalize their knowledge.
-This lack in expertise can be problematic when they are in charge of expanding and maintaining a certain controlled vocabulary that will be used in real systems at the enterprise level.
-
-#### Vehicle Signal Specification has been an alternative but requires improvements
-When it comes to vehicle data, the Vehicle Signal Specification (VSS) has been offering an easy-to-follow approach to enable SMEs contribute to a controlled vocabulary of high-level vehicle properties (e.g., Speed, Acceleration, etc.).
-
-> **Vehicle Signal Specification (VSS)** is a controlled vocabulary for the properties of a car organized in a hierarchical tree. To learn more about VSS, please visit the [official documentation page](https://covesa.github.io/vehicle_signal_specification/).
-
-The VSS modeling approach has been well received by SMEs who have been extending the list of properties both publicly at the COVESA alliance and internally at BMW.
-However, this approach has reached its limits on what one can express with it.
-Among the limitations, is the fact that VSS uses a custom file extension `.vspec` that referes to files written in `YAML` with a custom syntax.
-The language used in `vspec`, as of December 2024, does not support cross references.
-Thus, it is not possible to model multiple inter-connected domains.
-
-> If you want to learn more about the current limitations of `VSS`, please visit these resources:
-> * [Defining the COVESA data modeling strategy and its associated artifacts](https://wiki.covesa.global/display/WIK4/Defining+the+COVESA+data+modeling+strategy+and+its+associated+artifacts)
-> * [Towards a Vehicle DATA specification](https://wiki.covesa.global/download/attachments/98271360/COVESA_Towards%20vehicle%20DATA%20specification_AMM_04.2024.pdf?version=1&modificationDate=1714758174348&api=v2)
-> * [Vehicle DATA Specification](https://wiki.covesa.global/display/WIK4/Vehicle+DATA+Specification)
-
-The reference mapping between the Vehicle Signal Specification (VSS) and this S2DM approach is documeted in `/docs/s2dm_vss_mapping.md`.
-
-
-### Design principles
-
-#### Problem
-- Disparate vehicle data models that lack proper semantics.
-#### Requirements
-| **Criteria** | **Requirement** |
-|----------------------|-----------------|
-| **Simplicity** | Modeling approach is easy to follow. Its representation is not verbose. It is friendly for anyone new to the area. It is easy to add new concepts. |
-| **Technology agnosticism** | Data model can be used with any downstream technology (e.g., by exporting it into multiple schemas). |
-| **Modularity** | Data model can be split into multiple (reusable) small pieces. |
-| **Scalability & Maintainability** | Model can scale up (e.g., concepts are extended). It can be easily maintained (e.g., changes and extensions are possible). |
-| **Metadata resource uniqueness** | Concepts in the data model are uniquely identifiable with future-proof ids (e.g., by the use of International Resource Identifiers (IRIs)). |
-| **Support for multiple classification schemes** | Polyhierarchies are supported to classify the terms in the vocabulary with different classification criteria (i.e., useful for data catalogs). |
-| **Support for cross-domain references** | Multiple cross-referenced domains are supported natively by the language (useful for contextual data). |
-| **Community & Tools** | Data model can be used in multiple up-to-date public tools. Modeling approach is based on a language that is already established in the open community. |
-
-
-#### Goal
-- To minimize the effort needed to develop, extend, and maintain vehicle-related semantic data models.
-
-#### Artifact
-- A guideline on how to model vehicle-related data with proper semantics and good practices.
-
-
-## Proposed solution approach
-
-### General workflow
-A simplified approach (see figure's left side) could be the adequate bridge between the ideal enterprise metadata management and the actual use of a domain data model in an application.
-Specially in cases where SMEs are actively extending a set of data structures that are needed in practice.
-Also, when alliances or consortiums consist of multiple external stakeholders.
-
-Overall, a SME should be able to intuitively search and find the data of interest via a data catalog.
-If the desired data is found, tools must allow the export of it into the structure needed in the application.
-In the case that no existing data matches his needs, simple steps must allow the modeling of the missing concepts.
-To that end, such a process is proposed with the following ideas:
-
-
-
-
-### Idea (1): Maintain Entity and Property sets
-In an application, most of the value is centered around what one can read or write.
-Thus, the most granular structure corresponds always to a certain `Property` (aka., characteristic, attribute, etc.). For example: the `position` of the window, the `speed` of a vehicle, the `angle` of the steering wheel.
-All of them are assotiated to a particular datatype, such as `Integer`, `String`, etc.
-Then actual values of those properties can have dynamic (i.e., data streams) or static behavior.
-
-Properties belong to some `Entity` that is of interest for our application. For example:
-`Window`, `Vehicle`, `SteeringWheel`, etc.
-So, an `Entity` can contain a collection of properties.
-
-The principal idea here is to maintain a set of entities and their assotiated properties.
-
-### Idea (2): Maintain a set of reusabel labels
-In some cases, there are entities that can have multiple instances.
-For example, A vehicle might not have one but multiple `doors`, `windows`, `seats`, `batteries`, `tires`, etc.
-Hence, it becomes useful to avoid repetition in the modeling by allowing the specification of reusable labels.
-A list of labels, such as `InCabinZone`, could contain the options `FRONT_LEFT`, and `FRONT_RIGHT`.
-These could be used directly to specify a particular `Door`, `Windows`, and `Seat`.
-
-### Idea (3): Construct unique IDs
-To foster reusability and avoid naming conflicts, a rule set must be enforced.
-The minimum constraints must be:
-- A `namespace` (`ns`) must be unique and future-proof.
-- Within a `namespace` (`ns`), the name of an `Entity` must be unique.
-- Within a `namespace` (`ns`), the name of an `Enum` must be unique.
-- Within an `Entity`, the name of a `Property` must be unique.
-
-In the case of `GraphQL` schema language these constraints are supported.
-One can concatenate the elements to create International Resource Identifiers (IRIs)
-```Turtle
-PREFIX ns:
-ns:Door
-ns:Door.position
-ns:Door.isOpen
-```
-
-Then, IRIs can be used when defining the schema in the application.
-For example, a `json` schema could look like:
-```json
-{
- "type": "object",
- "properties": {
- "door": {
- "implementedConcept": "ns:Door",
- "type": "object",
- "properties": {
- "position": {"type": "int"},
- "isOpen": {"type": "boolean"}
- },
- }
- },
-}
-```
-
-
-### Idea (4): Allow arbitrary hierarchies for different classification criteria
-As the `Entity` and `Property` sets grow over time, proper information classification becomes essential.
-The most tangible value of this organization is visible in any online shop.
-There, a faceted search is the default tool for filtering the available data with specific criteria.
-The same principle can be applied here.
-
-For example, the `Window` entity can be classified by its physical position (`Vehicle.Cabin.Door.Window`), its principle of movement (`MovablePart.UniDimensionalMove.Window`), its material (`Piece.GlassedPiece.Window`), and by other criteria.
-
-The [Simple Knowledge Organization System (SKOS)](https://www.w3.org/2004/02/skos/) is a well-established standard to achieve such classifications.
-
-### Idea (5): Specify possible interactions
-The entity and property sets (of idea (1)) can be complemented with an specification of the set of possible operations on them (i.e., interactions or actions).
-For example:
-
-| **Domain** | **Operation** |
-|-----------------|-----------------|
-| `Seat` | Get the position of all seats. |
-| `Seat` | Save a seat position to memory. |
-| `Seat` | Control the heating mode of a seat. |
-| `Climate` | Turn on/off the AC. |
-| `Climate` | Set the temperature. |
-| `Climate` | Get the fan speed per zone. |
-
-
-### Other ideas:
-> TODO: Conversational tools, versioning, etc.
-
-
-
-## Examples
-Refer to the [examples folder](/examples/).
-
-## Special considerations
-The following cases require special treatments.
-
-### Dilemma: Property as field or as object type
-
-Here’s the markdown summarizing the three cases for your dilemma:
-
----
-
-#### **Case 1: Scalar Field**
-```graphql
-type Vehicle {
- speed: Int
-}
-```
-
-**Pros:**
-- Simple and concise representation.
-- Easy to read and understand for straightforward use cases.
-- Suitable for static properties that do not require additional metadata or complexity.
-
-**Cons:**
-- Limited extensibility: Adding metadata (e.g., units like "km/h") or additional attributes (e.g., timestamp) requires refactoring.
-- Not future-proof: If the property evolves to include more details, significant schema changes are needed.
-- Cannot represent complex relationships or metadata.
-
----
-
-#### **Case 2: Dedicated Object Type**
-```graphql
-type Vehicle {
- speed: VehicleSpeed
-}
-
-type VehicleSpeed {
- value: Int
- unit: String
- timestamp: String
-}
-```
-
-**Pros:**
-- Highly extensible: Allows adding metadata like `unit` or `timestamp` without breaking the schema.
-- Better suited for complex properties: Can easily accommodate additional fields like ranges or error margins.
-- Future-proof: Supports evolving requirements without major schema changes.
-
-**Cons:**
-- More verbose: Introduces additional layers of nesting, making the schema longer and more complex.
-- Overhead for simple properties: Feels excessive for straightforward fields like `speed`.
-- Harder to read and maintain for basic use cases.
-
----
-
-#### **Case 3: Reusable Property Type**
-```graphql
-type Vehicle {
- speed: IntProperty
-}
-
-type IntProperty {
- value: Int
- unit: String
- timestamp: String
-}
-```
-
-**Pros:**
-- Reusability: The `IntProperty` type can be used across multiple fields (e.g., `speed`, `weight`, etc.), ensuring consistency and reducing duplication.
-- Extensible: Like Case 2, it supports adding metadata or attributes without schema refactoring.
-- Consistent: Standardizes the representation of similar properties across the schema.
-- Future-proof: Accommodates evolving requirements while maintaining schema clarity.
-
-**Cons:**
-- Overhead for simple properties: Adds complexity for fields that don’t require metadata.
-- Generic naming: May feel less descriptive compared to dedicated types like `VehicleSpeed`.
-- Potential for overgeneralization: If properties diverge significantly, the reusable type may become too generic.
-
----
-
-### **Recommendation**
-- Use **Case 1** for simple, static properties that are unlikely to evolve or require metadata.
-- Use **Case 2** for properties that are unique and require specific metadata or complex structures.
-- Use **Case 3** for properties that share common metadata or structures across the schema, ensuring reusability and consistency.
-
-For vehicle-related information, **Case 3** with a reusable type like `IntProperty` is often the best choice, as it balances extensibility, reusability, and clarity.
-
-### Enums' datatypes
-In GraphQL, enums are typically used to define a set of allowed values for a field. These values are usually represented as strings, such as `[FIRST, SECOND, ...]`. However, GraphQL enums are not limited to strings conceptually; they can represent any discrete set of values.
-
-If your model defines "allowed" values as integers, like `[0, 1, 2, ...]`, you can still use GraphQL enums to represent them. Internally, GraphQL will treat these enum values as strings in the schema, but you can map them to integers in your application logic.
-```gql
-enum TheAllowedValues {
- ZERO
- ONE
- TWO
-}
-```
-In your application, you can map ZERO to 0, ONE to 1, and so on. This approach allows you to enforce a fixed set of values while maintaining flexibility in how they are interpreted in your code.
-
-### Special cross references
-GraphQL schema language excels in defining the structure of data models in a clear and understandable way. It provides robust elements such as types, fields within types, nested objects, and enumerations.
-These features allow for a well-organized and precise representation of data structures.
-However, it has limitations such as restricted cross-references, where linking fields to other fields directly is not possible.
-
-Let us assume our model has the concepts `Window.position`, `AC.temperature`, `AC.isOn`, `Sunroof.position`.
-In the `GraphQL` schema language, it is not possible to say that the `Person.perceivedTemperature` can be modified by acting on these properties.
-```graphql
-type Window {
- position: Int
-}
-
-type AC {
- temperature: Float
- isOn: Boolean
-}
-
-type Sunroof {
- position: Int
-}
-
-type Person {
- perceivedTemperature: Int # I want to say that this property might be affected by acting on the others
- pTemp: PTem
-}
-
-type PTemp{
- affectedByProp: Property
- value: String!
-}
-
-type Property {
- objectName: String!
- fieldName: String!
-}
-
-
-
-```
-#### Option 1 - Instance data file
-An alternative would be to define the schema as usual, and then write another instance data file with concrete instance data that represents the connections. For example, that the perceived temperature is affected by `Window.position`, `AC.temperature`, `AC.isOn`, `Sunroof.position`.
-
-#### Option 2 - Enums with URIs
-However, the following is possible and supported by the language out of the box by using nested objects:
-```graphql
-type Person {
- perceivedTemperature: PerceivedTemperature
-}
-
-type PerceivedTemperature {
- temperature: Int
- modifiableBy: [perceivedTemperatureModifiersEnum]
-}
-
-enum perceivedTemperatureModifiersEnum {
- ns:Window.position
- ns:AC.temperature
- ns:AC.isOn
- ns:Sunroof.position
-}
-```
-
-Option 3 - using directives
-```gql
-```graphql
-directive @affectedBy(object: String!, field: String!) on FIELD_DEFINITION
-
-type Person {
- perceivedTemperature: Int
- @affectedBy(object: "Window", field: "position")
-}
-
-type Window {
- position: Int
-}
-```
diff --git a/docs-gen/content-archive/Others/basic_principle.md b/docs-gen/content-archive/Others/basic_principle.md
deleted file mode 100644
index bafe3b04..00000000
--- a/docs-gen/content-archive/Others/basic_principle.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: Basic principle
----
-
-## Basic principle
-The idea is that multiple systems in the physical layer (e.g., databases, streaming platforms, applications, etc.) can share the same concepts.
-However, instead of arbitrarily modeling domains in the physical layer, the purpose is to have a unique way for specifying the concepts of common interest and its organizing principles in such a way that they are reused.
-This principle is a core part of a [data-centric architecture](https://datacentricmanifesto.org/), reducing undesired duplications and [software waste](https://www.semanticarts.com/software-wasteland/) when it is systematically applied.
-
-```mermaid
-graph LR
- subgraph ConceptualLayer
- Person
- Vehicle
- ParkingLot
- end
- subgraph PhysicalLayer
- Database
- StreamingPlatform
- Application
- Other
- end
- ConceptualLayer --> Database
- ConceptualLayer --> StreamingPlatform
- ConceptualLayer --> Application
- ConceptualLayer --> Other
-```
-
-In this sense, `S2DM` is an approach to specify those concepts of interest systematically.
-A more generic (and elaborated) diagram looks like the following:
-
-```mermaid
-graph LR
- subgraph Conceptual layer
- spec_file_1.graphql
- spec_file_2.graphql
- spec_file_N.graphql
- subgraph S2DM Tools
- Composer
- Exporter
- Other
- end
- end
- subgraph Physical layer
- App_SHACL
- App_YAML
- App_JSON
- App_Other
- end
- spec_file_1.graphql --GraphQL schema 1--> Composer
- spec_file_2.graphql --GraphQL schema 2--> Composer
- spec_file_N.graphql --GraphQL schema N--> Composer
- Composer --Merged GraphQL schema--> Exporter
- Composer --Merged GraphQL schema--> Other
- Exporter --VSPEC--> App_YAML
- Exporter --SHACL--> App_SHACL
- Exporter --JSON schema--> App_JSON
- Exporter --Other?--> App_Other
-```
diff --git a/docs-gen/content/_index.md b/docs-gen/content/_index.md
index 618276ff..5d038f5d 100644
--- a/docs-gen/content/_index.md
+++ b/docs-gen/content/_index.md
@@ -14,7 +14,7 @@ It does not intend to re-invent or replace long-standing standards, such as thos
Therefore, it does not incorporate advanced reasoning capabilities or comprehensive ontologies typically associated with traditional semantic data modeling.
{{< /callout >}}
-{{< img src="images/s2dm_role.png" alt="S2DM Role Overview" >}}
+{{< img src="s2dm/images/s2dm_role.png" alt="S2DM Role Overview" >}}
The figure above ilustrates the role of the `S2DM` approach.
One can distinghish three areas:
diff --git a/docs-gen/content/docs/_index.md b/docs-gen/content/docs/_index.md
index eb5078e0..c4802249 100644
--- a/docs-gen/content/docs/_index.md
+++ b/docs-gen/content/docs/_index.md
@@ -1,32 +1,11 @@
---
-title: Documentation
-description: Complete documentation for the Simplified Semantic Data Modeling (S2DM) approach
-weight: 30
+title: "Welcome to Doks"
+description: ""
+lead: "Congrats on setting up a new Doks project!"
+draft: false
+seo:
+ title: "Welcome to Doks" # custom title (optional)
+ description: "" # custom description (recommended)
+ canonical: "" # custom canonical URL (optional)
+ noindex: false # false (default) or true
---
-
-# S2DM Documentation
-
-Welcome to the complete documentation for the **Simplified Semantic Data Modeling** (S2DM) approach. This documentation is organized into three main sections:
-
-## Documentation Sections
-
-The documentation is structured to guide you through understanding, implementing, and using S2DM:
-
-- **[Approach Overview]({{< relref "approach-overview" >}})** - Learn the fundamental concepts and principles of S2DM
-- **[Data Modeling Guideline]({{< relref "data-modeling-guideline" >}})** - Step-by-step guide to modeling your domain with S2DM
-- **[Tools]({{< relref "tools" >}})** - Available tools and utilities to support your S2DM implementation
-
-Each section contains detailed information to help you effectively use the S2DM approach for your data modeling needs.
-
-{{< callout context="tip" >}}
-`S2DM` artifacts are based on the following existing resources. Getting familiar with them is recommended.
-
-- **Modeling languages and vocabularies**
- - [GraphQL Schema Definition Language (SDL)](https://graphql.org/learn/schema/): Provides a clear, human-readable syntax for defining data structures and relationships, making it easy for SMEs to understand and use without requiring deep technical expertise.
- - [Simple Knowledge Organization System (SKOS)](https://www.w3.org/2004/02/skos/): An RDF-based vocabulary that offers a straightforward framework for creating and managing hierarchical classifications and relationships between concepts, facilitating intuitive and semantically rich knowledge organization.
-
-- **Tools**
- - [rdflib](https://rdflib.readthedocs.io): For working with RDF data in Python (e.g., `SKOS`).
- - [graphql-core](https://graphql-core-3.readthedocs.io): For working with `GraphQL` schemas in Python (e.g., `SDL`).
- - [Others](https://github.com/COVESA/s2dm/blob/main/pyproject.toml)
-{{< /callout >}}
diff --git a/docs-gen/content/docs/approach-overview/actively-developed.md b/docs-gen/content/docs/approach-overview/actively-developed.md
index c28f9913..a453f5ea 100644
--- a/docs-gen/content/docs/approach-overview/actively-developed.md
+++ b/docs-gen/content/docs/approach-overview/actively-developed.md
@@ -1,9 +1,8 @@
---
title: Actively Developed (SME)
-weight: 10
-chapter: false
+weight: 20
---
-{{< img src="images/actively_developed.png" alt="Frame 1: Actively Developed" >}}
+{{< img src="s2dm/images/actively_developed.png" alt="Frame 1: Actively Developed" >}}
Under construction...
diff --git a/docs-gen/content/docs/approach-overview/automated.md b/docs-gen/content/docs/approach-overview/automated.md
index 752f4693..f5d79be0 100644
--- a/docs-gen/content/docs/approach-overview/automated.md
+++ b/docs-gen/content/docs/approach-overview/automated.md
@@ -1,9 +1,8 @@
---
title: Automated (CI Tooling)
-weight: 20
-chapter: false
+weight: 30
---
-{{< img src="images/automated.png" alt="Frame 2: Automated" >}}
+{{< img src="s2dm/images/automated.png" alt="Frame 2: Automated" >}}
Under construction...
diff --git a/docs-gen/content/docs/approach-overview/optional-extensions.md b/docs-gen/content/docs/approach-overview/optional-extensions.md
index 3addd7a6..5b3c02c3 100644
--- a/docs-gen/content/docs/approach-overview/optional-extensions.md
+++ b/docs-gen/content/docs/approach-overview/optional-extensions.md
@@ -1,9 +1,8 @@
---
title: Optional Extensions (Modelers)
-weight: 60
-chapter: false
+weight: 40
---
-{{< img src="images/optional_extensions.png" alt="Frame 3: Optional Extensions" >}}
+{{< img src="s2dm/images/optional_extensions.png" alt="Frame 3: Optional Extensions" >}}
Under construction...
diff --git a/docs-gen/content/docs/data-modeling-guideline/_index.md b/docs-gen/content/docs/data-modeling-guideline/_index.md
index 17e1559a..119f3458 100644
--- a/docs-gen/content/docs/data-modeling-guideline/_index.md
+++ b/docs-gen/content/docs/data-modeling-guideline/_index.md
@@ -1,5 +1,5 @@
---
title: Data modeling guideline
-weight: 20
+weight: 50
---
Under construction...
diff --git a/docs-gen/content/docs/data-modeling-guideline/how-to.md b/docs-gen/content/docs/data-modeling-guideline/how-to.md
index 595f77d5..d5ae4083 100644
--- a/docs-gen/content/docs/data-modeling-guideline/how-to.md
+++ b/docs-gen/content/docs/data-modeling-guideline/how-to.md
@@ -1,6 +1,6 @@
---
title: How to...?
-weight: 20
+weight: 60
chapter: false
---
diff --git a/docs-gen/content/docs/data-modeling-guideline/pre-defined-elements.md b/docs-gen/content/docs/data-modeling-guideline/pre-defined-elements.md
index 60f72ad3..13d5538e 100644
--- a/docs-gen/content/docs/data-modeling-guideline/pre-defined-elements.md
+++ b/docs-gen/content/docs/data-modeling-guideline/pre-defined-elements.md
@@ -1,10 +1,10 @@
---
title: Pre-defined elements
-weight: 10
+weight: 70
chapter: false
---
-{{< img src="images/s2dm_pre_def_elements.png" alt="S2DM Pre-defined Elements" >}}
+{{< img src="s2dm/images/s2dm_pre_def_elements.png" alt="S2DM Pre-defined Elements" >}}
### Units
Units are represented as enum values. For example:
diff --git a/docs-gen/content/docs/introduction/_index.md b/docs-gen/content/docs/introduction/_index.md
new file mode 100644
index 00000000..182a2c5a
--- /dev/null
+++ b/docs-gen/content/docs/introduction/_index.md
@@ -0,0 +1,15 @@
+---
+title: "Introduction"
+description: ""
+summary: ""
+date: 2023-09-07T16:06:50+02:00
+lastmod: 2023-09-07T16:06:50+02:00
+draft: false
+weight: 1
+toc: true
+seo:
+ title: "" # custom title (optional)
+ description: "" # custom description (recommended)
+ canonical: "" # custom canonical URL (optional)
+ noindex: false # false (default) or true
+---
diff --git a/docs-gen/content/docs/introduction/introduction.md b/docs-gen/content/docs/introduction/introduction.md
new file mode 100644
index 00000000..9bfecd3b
--- /dev/null
+++ b/docs-gen/content/docs/introduction/introduction.md
@@ -0,0 +1,33 @@
+---
+title: S2DM Documentation
+description: Documentation for the Simplified Semantic Data Modeling (S2DM) approach
+weight: 5
+toc: true
+---
+
+{{< img src="s2dm/images/s2dm_overview.png" alt="S2DM Role Overview" >}}
+
+Welcome to the complete documentation for the **Simplified Semantic Data Modeling** (S2DM) approach. This documentation is organized into three main sections:
+
+## Documentation Sections
+
+The documentation is structured to guide you through understanding, implementing, and using S2DM:
+
+- **[Approach Overview]({{< relref "approach-overview" >}})** - Learn the fundamental concepts and principles of S2DM
+- **[Data Modeling Guideline]({{< relref "data-modeling-guideline" >}})** - Step-by-step guide to modeling your domain with S2DM
+- **[Tools]({{< relref "tools" >}})** - Available tools and utilities to support your S2DM implementation
+
+Each section contains detailed information to help you effectively use the S2DM approach for your data modeling needs.
+
+{{< callout context="tip" >}}
+`S2DM` artifacts are based on the following existing resources. Getting familiar with them is recommended.
+
+- **Modeling languages and vocabularies**
+ - [GraphQL Schema Definition Language (SDL)](https://graphql.org/learn/schema/): Provides a clear, human-readable syntax for defining data structures and relationships, making it easy for SMEs to understand and use without requiring deep technical expertise.
+ - [Simple Knowledge Organization System (SKOS)](https://www.w3.org/2004/02/skos/): An RDF-based vocabulary that offers a straightforward framework for creating and managing hierarchical classifications and relationships between concepts, facilitating intuitive and semantically rich knowledge organization.
+
+- **Tools**
+ - [rdflib](https://rdflib.readthedocs.io): For working with RDF data in Python (e.g., `SKOS`).
+ - [graphql-core](https://graphql-core-3.readthedocs.io): For working with `GraphQL` schemas in Python (e.g., `SDL`).
+ - [Others](https://github.com/COVESA/s2dm/blob/main/pyproject.toml)
+{{< /callout >}}
diff --git a/docs-gen/content/docs/tools/_index.md b/docs-gen/content/docs/tools/_index.md
index f895cbc8..d65f8223 100644
--- a/docs-gen/content/docs/tools/_index.md
+++ b/docs-gen/content/docs/tools/_index.md
@@ -1,6 +1,6 @@
---
title: Tools
-weight: 30
+weight: 80
---
Under construction...
diff --git a/docs-gen/content/docs/tools/automation.md b/docs-gen/content/docs/tools/automation.md
index f01a47e2..dbd1eae9 100644
--- a/docs-gen/content/docs/tools/automation.md
+++ b/docs-gen/content/docs/tools/automation.md
@@ -1,6 +1,6 @@
---
title: Automation
-weight: 2
+weight: 90
chapter: false
---
Under construction...
diff --git a/docs-gen/content/docs/tools/cli.md b/docs-gen/content/docs/tools/cli.md
index 48e6c432..2d9a02cc 100644
--- a/docs-gen/content/docs/tools/cli.md
+++ b/docs-gen/content/docs/tools/cli.md
@@ -1,6 +1,6 @@
---
title: Command Line Interface (CLI)
-weight: 1
+weight: 100
chapter: false
---
diff --git a/docs-gen/content/docs/tools/units-cli.md b/docs-gen/content/docs/tools/units-cli.md
index 5978f562..9396eec9 100644
--- a/docs-gen/content/docs/tools/units-cli.md
+++ b/docs-gen/content/docs/tools/units-cli.md
@@ -1,6 +1,6 @@
---
title: Units CLI
-weight: 20
+weight: 110
chapter: false
---
diff --git a/docs-gen/content/examples/_index.md b/docs-gen/content/examples/_index.md
deleted file mode 100644
index 728bbf12..00000000
--- a/docs-gen/content/examples/_index.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Examples
-weight: 4
----
-
-Below are some examples of how the Simplified Semantic Data Modeling (`S2DM`) approach can be applied in different areas or use cases. Each example is linked to its corresponding folder in the repository for further exploration.
-
-## Example Use Cases
-
-- [Seat domain model](https://github.com/COVESA/s2dm/tree/main/examples/seat-to-vspec): Modeling the `Seat` branch of the Vehicle Signal Specification (VSS).
-- [Trailer domain model](https://github.com/COVESA/s2dm/tree/main/examples/trailer): Modeling the `Trailer` of a vehicle.
-- [Multiple Classification Schemes](https://github.com/COVESA/s2dm/tree/main/examples/multiple-classification-schemes): Enabling multiple classification schemes using SKOS.
-- [Multiple Domains](https://github.com/COVESA/s2dm/tree/main/examples/multiple-domains): Covering cross-references across different domains.
-- [Seat Capabilities](https://github.com/COVESA/s2dm/tree/main/examples/seat-capabilities): Specifying possible operations linked to seat-related objects or entities.
-- [Specification History Registry](https://github.com/COVESA/s2dm/tree/main/examples/spec-history-registry): Tracking changes and maintaining a registry of specification history.
-
-## CLI Tool Examples
-
-- [Version Bump CLI Examples](version-bump-cli): Demonstrating automated version bumping based on GraphQL schema changes using the `s2dm check version-bump` command.
-
-> If your use case is not covered by the presented examples, feel free to get in touch. If this approach suits your use case, we will add it here.
diff --git a/docs-gen/content/examples/examples-introduction/_index.md b/docs-gen/content/examples/examples-introduction/_index.md
new file mode 100644
index 00000000..acfcae48
--- /dev/null
+++ b/docs-gen/content/examples/examples-introduction/_index.md
@@ -0,0 +1,15 @@
+---
+title: "Introduction"
+description: ""
+summary: ""
+date: 2023-09-07T16:33:54+02:00
+lastmod: 2023-09-07T16:33:54+02:00
+draft: false
+weight: 10
+toc: true
+seo:
+ title: "" # custom title (optional)
+ description: "" # custom description (recommended)
+ canonical: "" # custom canonical URL (optional)
+ noindex: false # false (default) or true
+---
diff --git a/docs-gen/content/examples/examples-introduction/introduction.md b/docs-gen/content/examples/examples-introduction/introduction.md
new file mode 100644
index 00000000..9d77badd
--- /dev/null
+++ b/docs-gen/content/examples/examples-introduction/introduction.md
@@ -0,0 +1,30 @@
+---
+title: Examples
+weight: 5
+---
+
+Below are some examples of how the Simplified Semantic Data Modeling (`S2DM`) approach can be applied in different areas or use cases. Each example provides comprehensive documentation and interactive visualizations to help you understand the modeling approaches.
+
+## Use Cases
+
+Explore real-world applications of S2DM across different domains:
+
+- **[Seat Domain Model](seat-domain-model/)**: Modeling the `Seat` branch of the Vehicle Signal Specification (VSS) with nested component hierarchies and rich type relationships.
+
+- **[Trailer Domain Model](trailer-domain-model/)**: Modeling vehicle trailer systems including axles, wheels, and their specifications following automotive standards.
+
+- **[Multiple Classification Schemes](multiple-classification-schemes/)**: Enabling flexible taxonomy management using SKOS (Simple Knowledge Organization System) for cross-referencing classification systems.
+
+- **[Multiple Domains](multiple-domains/)**: Handling cross-references across different domains while maintaining clear separation of concerns and modular architecture.
+
+- **[Seat Capabilities](seat-capabilities/)**: Specifying operational capabilities and commands for seat-related entities, demonstrating capability-based design patterns.
+
+- **[Specification History Registry](specification-history-registry/)**: Tracking changes and maintaining version history of specification evolution with automated change analysis.
+
+## CLI Tool Examples
+
+- [Version Bump CLI Examples](version-bump-cli): Demonstrating automated version bumping based on GraphQL schema changes using the `s2dm check version-bump` command.
+
+---
+
+> If your use case is not covered by the presented examples, feel free to get in touch. If this approach suits your use case, we will add it here.
diff --git a/docs-gen/content/examples/multiple-classification-schemes/_index.md b/docs-gen/content/examples/multiple-classification-schemes/_index.md
new file mode 100644
index 00000000..6bb41de5
--- /dev/null
+++ b/docs-gen/content/examples/multiple-classification-schemes/_index.md
@@ -0,0 +1,17 @@
+---
+title: "Multiple Classification Schemes"
+description: ""
+summary: ""
+date: 2023-09-07T16:33:54+02:00
+lastmod: 2023-09-07T16:33:54+02:00
+draft: false
+weight: 50
+toc: true
+sidebar:
+ collapsed: true
+seo:
+ title: "" # custom title (optional)
+ description: "" # custom description (recommended)
+ canonical: "" # custom canonical URL (optional)
+ noindex: false # false (default) or true
+---
diff --git a/docs-gen/content/examples/multiple-classification-schemes/multiple-classification-schemes.md b/docs-gen/content/examples/multiple-classification-schemes/multiple-classification-schemes.md
new file mode 100644
index 00000000..e87aa053
--- /dev/null
+++ b/docs-gen/content/examples/multiple-classification-schemes/multiple-classification-schemes.md
@@ -0,0 +1,19 @@
+---
+title: "Multiple Classification Schemes"
+description: "Enabling multiple classification schemes using SKOS"
+weight: 30
+---
+
+This example demonstrates how **S2DM** enables multiple classification schemes using **SKOS** (Simple Knowledge Organization System). The approach allows for flexible taxonomy management and cross-referencing between different classification systems.
+
+## Overview
+
+The multiple classification schemes example showcases:
+- SKOS-based taxonomy management
+- Cross-referencing between classification systems
+- Flexible vocabulary organization
+- Semantic relationships between concepts
+
+## Repository Link
+
+For implementation details and source files, visit the [multiple-classification-schemes example](https://github.com/COVESA/s2dm/tree/main/examples/multiple-classification-schemes) in the repository.
diff --git a/docs-gen/content/examples/multiple-domains/_index.md b/docs-gen/content/examples/multiple-domains/_index.md
new file mode 100644
index 00000000..c818aeb8
--- /dev/null
+++ b/docs-gen/content/examples/multiple-domains/_index.md
@@ -0,0 +1,17 @@
+---
+title: "Multiple Domains"
+description: ""
+summary: ""
+date: 2023-09-07T16:33:54+02:00
+lastmod: 2023-09-07T16:33:54+02:00
+draft: false
+weight: 50
+toc: true
+sidebar:
+ collapsed: true
+seo:
+ title: "" # custom title (optional)
+ description: "" # custom description (recommended)
+ canonical: "" # custom canonical URL (optional)
+ noindex: false # false (default) or true
+---
diff --git a/docs-gen/content/examples/multiple-domains/multiple-domains.md b/docs-gen/content/examples/multiple-domains/multiple-domains.md
new file mode 100644
index 00000000..ffc5836f
--- /dev/null
+++ b/docs-gen/content/examples/multiple-domains/multiple-domains.md
@@ -0,0 +1,45 @@
+---
+title: "Multiple Domains"
+description: "Covering cross-references across different domains"
+weight: 40
+---
+
+This example demonstrates how **S2DM** handles cross-references across different domains. The approach enables modeling complex systems that span multiple domain boundaries while maintaining clear separation of concerns.
+
+```graphql
+type Person {
+ name: String!
+}
+
+type DrivingJourney {
+ vehicle: Vehicle!
+ occupants: [SeatOccupancy]
+}
+
+type SeatOccupancy {
+ occupant: Person!
+ seat: Seat!
+}
+
+extend type Vehicle {
+ journeyHistory: [DrivingJourney!]
+ chargingHistory: [ChargingSession!]
+}
+
+type ChargingSession {
+ vehicle: Vehicle!
+ paidBy: Person
+ chargingStation: chargingStation
+}
+
+type chargingStation {
+ id: ID!
+ # etc...
+}
+```
+
+## Repository Link
+
+For implementation details and source files, visit the [multiple-domains example](https://github.com/COVESA/s2dm/tree/main/examples/multiple-domains) in the repository.
+
+````
diff --git a/docs-gen/content/examples/seat-capabilities/_index.md b/docs-gen/content/examples/seat-capabilities/_index.md
new file mode 100644
index 00000000..e5cf5740
--- /dev/null
+++ b/docs-gen/content/examples/seat-capabilities/_index.md
@@ -0,0 +1,17 @@
+---
+title: "Seat Capabilities"
+description: "Specifying operational capabilities and commands for seat-related entities"
+summary: ""
+date: 2023-09-07T16:33:54+02:00
+lastmod: 2023-09-07T16:33:54+02:00
+draft: false
+weight: 50
+toc: true
+sidebar:
+ collapsed: true
+seo:
+ title: "" # custom title (optional)
+ description: "" # custom description (recommended)
+ canonical: "" # custom canonical URL (optional)
+ noindex: false # false (default) or true
+---
diff --git a/docs-gen/content/examples/seat-capabilities/seat-capabilities.md b/docs-gen/content/examples/seat-capabilities/seat-capabilities.md
new file mode 100644
index 00000000..ec363250
--- /dev/null
+++ b/docs-gen/content/examples/seat-capabilities/seat-capabilities.md
@@ -0,0 +1,19 @@
+---
+title: "Seat Capabilities"
+description: "Specifying operational capabilities and commands for seat-related entities"
+weight: 10
+---
+
+This example demonstrates how **S2DM** specifies operational capabilities and commands for seat-related entities. The approach showcases capability-based design patterns for automotive seat systems.
+
+## Overview
+
+The seat capabilities example showcases:
+- Capability-based design patterns
+- Command and operation modeling
+- Seat system operational specifications
+- Behavioral modeling for automotive components
+
+## Repository Link
+
+For implementation details and source files, visit the [seat-capabilities example](https://github.com/COVESA/s2dm/tree/main/examples/seat-capabilities) in the repository.
diff --git a/docs-gen/content/examples/seat-domain-model/_index.md b/docs-gen/content/examples/seat-domain-model/_index.md
new file mode 100644
index 00000000..bcdbbf61
--- /dev/null
+++ b/docs-gen/content/examples/seat-domain-model/_index.md
@@ -0,0 +1,17 @@
+---
+title: "Seat Domain Model"
+description: "Modeling the Seat branch of the Vehicle Signal Specification (VSS)"
+summary: ""
+date: 2023-09-07T16:33:54+02:00
+lastmod: 2023-09-07T16:33:54+02:00
+draft: false
+weight: 10
+toc: true
+sidebar:
+ collapsed: true
+seo:
+ title: "" # custom title (optional)
+ description: "" # custom description (recommended)
+ canonical: "" # custom canonical URL (optional)
+ noindex: false # false (default) or true
+---
diff --git a/docs-gen/content/examples/seat-domain-model/graphql-voyager.md b/docs-gen/content/examples/seat-domain-model/graphql-voyager.md
new file mode 100644
index 00000000..1cd82a5c
--- /dev/null
+++ b/docs-gen/content/examples/seat-domain-model/graphql-voyager.md
@@ -0,0 +1,17 @@
+---
+title: "GraphQL Voyager"
+description: "Interactive GraphQL Voyager visualization of the seat domain model"
+layout: fullwidth
+toc: false
+weight: 20
+---
+
+Explore the seat capabilities domain model through an interactive [GraphQL Voyager](https://github.com/graphql-kit/graphql-voyager) visualization. This comprehensive schema, derived from the [Vehicle Signal Specification (VSS)](https://covesa.github.io/vehicle_signal_specification/) `Seat` branch, demonstrates how **S2DM** effectively models complex automotive domain relationships including nested components (backrest, headrest, seating), enumerated values, and rich type relationships.
+
+{{< callout type="tip" >}}
+**Usage:** Click and drag to navigate • Click types for details • Use the sidebar to search and explore documentation • Zoom with mouse wheel for different perspectives.
+{{< /callout >}}
+
+---
+
+{{< graphql-voyager-builtin schema="/examples/seat-to-vspec/full_sdl.graphql" height="1000px" title="Seat Capabilities Domain Model" hideDocs="false" hideSettings="false" hideVoyagerLogo="true" showLeafFields="true" skipRelay="true" skipDeprecated="true" >}}
diff --git a/docs-gen/content/examples/seat-domain-model/schema-documentation.md b/docs-gen/content/examples/seat-domain-model/schema-documentation.md
new file mode 100644
index 00000000..47b80df2
--- /dev/null
+++ b/docs-gen/content/examples/seat-domain-model/schema-documentation.md
@@ -0,0 +1,15 @@
+---
+title: "Schema Documentation"
+description: "GraphQL schema documentation for the seat domain model"
+layout: fullwidth
+weight: 25
+---
+
+The seat domain model schema is available for analysis and understanding. The GraphQL schema defines the complete structure of seat-related data types, relationships, and capabilities as defined in the Vehicle Signal Specification (VSS).
+
+{{< callout type="info" >}}
+**Usage:** Click on any type or field in the interactive documentation to explore relationships, view field definitions, and understand the schema structure.
+{{< /callout >}}
+
+### SpectaQL Documentation
+
diff --git a/docs-gen/content/examples/seat-domain-model/seat-domain-model.md b/docs-gen/content/examples/seat-domain-model/seat-domain-model.md
new file mode 100644
index 00000000..6449f4d2
--- /dev/null
+++ b/docs-gen/content/examples/seat-domain-model/seat-domain-model.md
@@ -0,0 +1,25 @@
+---
+title: "Seat Domain Model"
+description: "Modeling the Seat branch of the Vehicle Signal Specification (VSS)"
+weight: 10
+---
+
+This example demonstrates how **S2DM** models the `Seat` branch of the Vehicle Signal Specification (VSS). The domain model captures the complex relationships between seat components including backrest, headrest, seating surfaces, and their various capabilities.
+
+## Overview
+
+The seat domain model showcases:
+- Nested component hierarchies (backrest, headrest, seating)
+- Enumerated values for seat positions and capabilities
+- Rich type relationships and data modeling
+- Complex automotive domain relationships
+
+## Repository Link
+
+For implementation details and source files, visit the [seat-to-vspec example](https://github.com/COVESA/s2dm/tree/main/examples/seat-to-vspec) in the repository.
+
+## Interactive Exploration
+
+Explore the domain model through:
+- [GraphQL Voyager](graphql-voyager/) - Interactive GraphQL schema visualization
+- [Schema Documentation](schema-documentation/) - Comprehensive GraphQL schema documentation
diff --git a/docs-gen/content/examples/specification-history-registry/_index.md b/docs-gen/content/examples/specification-history-registry/_index.md
new file mode 100644
index 00000000..b2668a04
--- /dev/null
+++ b/docs-gen/content/examples/specification-history-registry/_index.md
@@ -0,0 +1,17 @@
+---
+title: "Specification History Registry"
+description: "Tracking changes and maintaining a registry of specification history"
+summary: ""
+date: 2023-09-07T16:33:54+02:00
+lastmod: 2023-09-07T16:33:54+02:00
+draft: false
+weight: 60
+toc: true
+sidebar:
+ collapsed: true
+seo:
+ title: "" # custom title (optional)
+ description: "" # custom description (recommended)
+ canonical: "" # custom canonical URL (optional)
+ noindex: false # false (default) or true
+---
diff --git a/docs-gen/content/examples/specification-history-registry/specification-history-registry.md b/docs-gen/content/examples/specification-history-registry/specification-history-registry.md
new file mode 100644
index 00000000..f7f6a9f8
--- /dev/null
+++ b/docs-gen/content/examples/specification-history-registry/specification-history-registry.md
@@ -0,0 +1,19 @@
+---
+title: "Specification History Registry"
+description: "Tracking changes and maintaining a registry of specification history"
+weight: 60
+---
+
+This example demonstrates how **S2DM** tracks changes and maintains a registry of specification history. The approach enables version management, change tracking, and historical analysis of domain model evolution.
+
+## Overview
+
+The specification history registry example showcases:
+- Version management and tracking
+- Change detection and analysis
+- Historical specification registry
+- Evolution pattern documentation
+
+## Repository Link
+
+For implementation details and source files, visit the [spec-history-registry example](https://github.com/COVESA/s2dm/tree/main/examples/spec-history-registry) in the repository.
diff --git a/docs-gen/content/examples/trailer-domain-model/_index.md b/docs-gen/content/examples/trailer-domain-model/_index.md
new file mode 100644
index 00000000..dc6a7b86
--- /dev/null
+++ b/docs-gen/content/examples/trailer-domain-model/_index.md
@@ -0,0 +1,17 @@
+---
+title: "Trailer Domain Model"
+description: "Modeling the Trailer branch of a vehicle system"
+summary: ""
+date: 2023-09-07T16:33:54+02:00
+lastmod: 2023-09-07T16:33:54+02:00
+draft: false
+weight: 30
+toc: true
+sidebar:
+ collapsed: true
+seo:
+ title: "" # custom title (optional)
+ description: "" # custom description (recommended)
+ canonical: "" # custom canonical URL (optional)
+ noindex: false # false (default) or true
+---
diff --git a/docs-gen/content/examples/trailer-domain-model/graphql-voyager.md b/docs-gen/content/examples/trailer-domain-model/graphql-voyager.md
new file mode 100644
index 00000000..18f2db29
--- /dev/null
+++ b/docs-gen/content/examples/trailer-domain-model/graphql-voyager.md
@@ -0,0 +1,17 @@
+---
+title: "GraphQL Voyager"
+description: "Interactive GraphQL Voyager visualization of the trailer domain model"
+layout: fullwidth
+toc: false
+weight: 40
+---
+
+Explore the trailer domain model through an interactive [GraphQL Voyager](https://github.com/graphql-kit/graphql-voyager) visualization. This comprehensive schema is derived from the [Vehicle Signal Specification (VSS)](https://covesa.github.io/vehicle_signal_specification/) `Trailer` branch.
+
+{{< callout type="tip" >}}
+**Usage:** Click and drag to navigate • Click types for details • Use the sidebar to search and explore documentation • Zoom with mouse wheel for different perspectives.
+{{< /callout >}}
+
+---
+
+{{< graphql-voyager-builtin schema="/examples/trailer/full_schema.graphql" height="1000px" title="Trailer Capabilities Domain Model" hideDocs="false" hideSettings="false" hideVoyagerLogo="true" showLeafFields="true" skipRelay="true" skipDeprecated="true" >}}
diff --git a/docs-gen/content/examples/trailer-domain-model/trailer-domain-model.md b/docs-gen/content/examples/trailer-domain-model/trailer-domain-model.md
new file mode 100644
index 00000000..ebd4438e
--- /dev/null
+++ b/docs-gen/content/examples/trailer-domain-model/trailer-domain-model.md
@@ -0,0 +1,24 @@
+---
+title: "Trailer Domain Model"
+description: "Modeling the Trailer branch of a vehicle system"
+weight: 35
+---
+
+This example demonstrates how **S2DM** models the `Trailer` domain of a vehicle system. The domain model captures the relationships between trailer components including axles, wheels, and their various properties and capabilities.
+
+## Overview
+
+The trailer domain model showcases:
+- Vehicle trailer system modeling
+- Axle and wheel component relationships
+- Complex automotive trailer specifications
+- Hierarchical component structures
+
+## Repository Link
+
+For implementation details and source files, visit the [trailer example](https://github.com/COVESA/s2dm/tree/main/examples/trailer) in the repository.
+
+## Interactive Exploration
+
+Explore the domain model through:
+- [GraphQL Voyager](graphql-voyager/) - Interactive GraphQL schema visualization
diff --git a/docs-gen/content/examples/version-bump-cli/_index.md b/docs-gen/content/examples/version-bump-cli/_index.md
new file mode 100644
index 00000000..458df381
--- /dev/null
+++ b/docs-gen/content/examples/version-bump-cli/_index.md
@@ -0,0 +1,17 @@
+---
+title: "Version Bump CLI Examples"
+description: "Demonstrating automated version bumping based on GraphQL schema changes"
+summary: ""
+date: 2023-09-07T16:33:54+02:00
+lastmod: 2023-09-07T16:33:54+02:00
+draft: false
+weight: 90
+toc: true
+sidebar:
+ collapsed: true
+seo:
+ title: "" # custom title (optional)
+ description: "" # custom description (recommended)
+ canonical: "" # custom canonical URL (optional)
+ noindex: false # false (default) or true
+---
diff --git a/docs-gen/content/examples/version-bump-cli.md b/docs-gen/content/examples/version-bump-cli/version-bump-cli.md
similarity index 96%
rename from docs-gen/content/examples/version-bump-cli.md
rename to docs-gen/content/examples/version-bump-cli/version-bump-cli.md
index b797944d..ad4aafb2 100644
--- a/docs-gen/content/examples/version-bump-cli.md
+++ b/docs-gen/content/examples/version-bump-cli/version-bump-cli.md
@@ -1,6 +1,7 @@
---
-title: Version Bump CLI Examples
-weight: 60
+title: "Version Bump CLI Examples"
+description: "Demonstrating automated version bumping based on GraphQL schema changes"
+weight: 90
---
This section contains examples demonstrating different scenarios for the `s2dm check version-bump` command, based on GraphQL Inspector's change detection.
diff --git a/docs-gen/.hugo_build.lock b/docs-gen/content/test.md
similarity index 100%
rename from docs-gen/.hugo_build.lock
rename to docs-gen/content/test.md
diff --git a/docs-gen/layouts/_default/index.searchindex.json b/docs-gen/layouts/_default/index.searchindex.json
deleted file mode 100644
index b33faa5e..00000000
--- a/docs-gen/layouts/_default/index.searchindex.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{{- $pages := where .Site.RegularPages "Kind" "page" -}}
-{{- $searchExclKinds := .Site.Params.doks.searchExclKinds | default slice -}}
-{{- $searchExclTypes := .Site.Params.doks.searchExclTypes | default slice -}}
-{{- $showSearch := .Site.Params.doks.showSearch | default slice -}}
-{{- $indexSummary := .Site.Params.doks.indexSummary | default false -}}
-
-{{- if gt (len $showSearch) 0 -}}
- {{- $pages = where $pages "Section" "in" $showSearch -}}
-{{- end -}}
-
-{{- if gt (len $searchExclKinds) 0 -}}
- {{- $pages = where $pages "Kind" "not in" $searchExclKinds -}}
-{{- end -}}
-
-{{- if gt (len $searchExclTypes) 0 -}}
- {{- $pages = where $pages "Type" "not in" $searchExclTypes -}}
-{{- end -}}
-
-[
-{{- range $index, $page := $pages -}}
- {{- if gt $index 0 }},{{ end }}
- {
- "id": {{ $index }},
- "title": {{ $page.Title | jsonify }},
- "permalink": {{ $page.RelPermalink | jsonify }},
- "summary": {{ if $indexSummary }}{{ $page.Summary | plainify | jsonify }}{{ else }}{{ $page.Summary | plainify | jsonify }}{{ end }},
- "content": {{ if $indexSummary }}{{ $page.Summary | plainify | jsonify }}{{ else }}{{ $page.Content | plainify | jsonify }}{{ end }},
- "date": {{ $page.Date.Format "2006-01-02" | jsonify }},
- "tags": {{ $page.Params.tags | jsonify }}
- }
-{{- end -}}
-]
diff --git a/docs-gen/layouts/_default/single.html b/docs-gen/layouts/_default/single.html
deleted file mode 100644
index 073f69c8..00000000
--- a/docs-gen/layouts/_default/single.html
+++ /dev/null
@@ -1,66 +0,0 @@
-{{ define "main" }}
-
- {{ if (in site.Params.doks.sectionNav .Section) -}}
-
- {{ end -}}
- {{ if and (eq site.Params.doks.containerBreakpoint "fluid") (in .Site.Params.mainSections .Type) }}
-
- {{ end }}
- {{ if ne .Params.toc false -}}
-
- {{ end -}}
- {{ if .Params.toc -}}
-
- {{ else -}}
-
- {{ end -}}
- {{ if site.Params.doks.breadcrumbTrail -}}
-
-
- {{ end }}
-
-
- {{ if ne .Params.toc false -}}
-
- {{ end -}}
-
- {{ if site.Params.doks.headlineHash -}}
- {{ partial "main/headline-hash" .Content }}
- {{ else -}}
- {{ .Content }}
- {{ end -}}
-
- {{ if site.Params.doks.lastMod -}}
- {{ partial "main/last-modified.html" . }}
- {{ end -}}
- {{ if site.Params.doks.editPage -}}
- {{ partial "main/edit-page.html" . }}
- {{ end -}}
-
- {{ partial "main/docs-navigation.html" . }}
-
-
- {{ if and (eq site.Params.doks.containerBreakpoint "fluid") (in .Site.Params.mainSections .Type) }}
-
- {{ end }}
-
-{{ end }}
diff --git a/docs-gen/layouts/_partials/footer/script-footer-custom.html b/docs-gen/layouts/_partials/footer/script-footer-custom.html
new file mode 100644
index 00000000..d570e83e
--- /dev/null
+++ b/docs-gen/layouts/_partials/footer/script-footer-custom.html
@@ -0,0 +1,13 @@
+{{/* Put your custom tags here */}}
+
+{{/* EXAMPLE - only load script for production
+{{ if eq (hugo.Environment) "production" -}}
+ {{ partial "footer/esbuild" (dict "src" "js/instantpage.js" "load" "async" "transpile" false) -}}
+{{ end -}}
+*/}}
+
+{{/* EXAMPLE - only load script for a page type e.g. contact or gallery
+{{ if eq .Type "gallery" -}}
+ {{ partial "footer/esbuild" (dict "src" "js/gallery.js" "load" "async" "transpile" false) -}}
+{{ end -}}
+*/}}
diff --git a/docs-gen/layouts/_partials/head/custom-head.html b/docs-gen/layouts/_partials/head/custom-head.html
new file mode 100644
index 00000000..edf523dc
--- /dev/null
+++ b/docs-gen/layouts/_partials/head/custom-head.html
@@ -0,0 +1,62 @@
+
+
+
+{{ if (findRE "graphql-voyager" .RawContent) }}
+
+
+
+
+
+
+
+
+
+
+
+{{ end }}
diff --git a/docs-gen/layouts/_partials/head/script-header.html b/docs-gen/layouts/_partials/head/script-header.html
new file mode 100644
index 00000000..ae068e30
--- /dev/null
+++ b/docs-gen/layouts/_partials/head/script-header.html
@@ -0,0 +1 @@
+
diff --git a/docs-gen/layouts/_partials/sidebar/docs-toc-desktop.html b/docs-gen/layouts/_partials/sidebar/docs-toc-desktop.html
new file mode 100644
index 00000000..a12fc31d
--- /dev/null
+++ b/docs-gen/layouts/_partials/sidebar/docs-toc-desktop.html
@@ -0,0 +1,20 @@
+
+ {{ if partial "private/has-headings.html" . -}}
+
{{ i18n "on_this_page" }}
+ {{ if eq site.Params.doks.scrollSpy true -}}
+ {{ .TableOfContents | replaceRE "
diff --git a/docs-gen/layouts/_partials/sidebar/graphql-voyager-assets.html b/docs-gen/layouts/_partials/sidebar/graphql-voyager-assets.html
new file mode 100644
index 00000000..eda981b1
--- /dev/null
+++ b/docs-gen/layouts/_partials/sidebar/graphql-voyager-assets.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs-gen/layouts/index.html b/docs-gen/layouts/home.html
similarity index 88%
rename from docs-gen/layouts/index.html
rename to docs-gen/layouts/home.html
index 32804990..20722b2c 100644
--- a/docs-gen/layouts/index.html
+++ b/docs-gen/layouts/home.html
@@ -1,129 +1,129 @@
-{{ define "main" }}
-
-
-
-
-
-
-
-
{{ .Title }}
-
-
-
{{ .Params.lead | safeHTML }}
-
Get Started
-
-
-
-
-
-
-
-
-
-
-
-
-
Simple
-
Any Subject Matter Expert can contribute to controlled vocabularies with minimal data modeling expertise.
-
-
-
-
-
-
Semantic
-
Specifies meaningful data structures, cross-domain relationships, and arbitrary classification schemes.
-
-
-
-
-
-
Interoperable
-
Built on GraphQL SDL and SKOS standards for maximum compatibility and reusability.
-
-
-
-
-
-
-
-
-
-
-
-{{ end }}
-
-{{ define "sidebar-prefooter" }}
- {{ if site.Params.doks.backgroundDots -}}
-
- {{ end -}}
-
-
-
-
-
-
S2DM Approach
-
Get a basic understanding of the S2DM approach for modeling data across multiple domains with minimal expertise required.
-
Learn More
-
-
-
Data Modeling Guideline
-
Follow our comprehensive guideline to model your domain using S2DM principles and best practices.
-
View Guide
-
-
-
S2DM Tools
-
Maintain your domain model with the support of our provided S2DM tools and automation utilities.
-
Explore Tools
-
-
-
-
-{{ end }}
-
-{{ define "sidebar-footer" }}
- {{ if site.Params.doks.sectionFooter -}}
-
-
-
-
Start modeling your data semantically today!
-
S2DM enables Subject Matter Experts to contribute to controlled vocabularies with minimal data modeling expertise.
-
Get Started
-
-
-
- {{ end -}}
-
-
-
-
-
-
-

-
-
-
-
-{{ end }}
+{{ define "main" }}
+
+
+
+
+
+
+
+
{{ .Title }}
+
+
+
{{ .Params.lead | safeHTML }}
+
Get Started
+
+
+
+
+
+
+
+
+
+
+
+
+
Simple
+
Any Subject Matter Expert can contribute to controlled vocabularies with minimal data modeling expertise.
+
+
+
+
+
+
Semantic
+
Specifies meaningful data structures, cross-domain relationships, and arbitrary classification schemes.
+
+
+
+
+
+
Interoperable
+
Built on GraphQL SDL and SKOS standards for maximum compatibility and reusability.
+
+
+
+
+
+
+
+
+
+
+
+{{ end }}
+
+{{ define "sidebar-prefooter" }}
+ {{ if site.Params.doks.backgroundDots -}}
+
+ {{ end -}}
+
+
+
+
+
+
S2DM Approach
+
Get a basic understanding of the S2DM approach for modeling data across multiple domains with minimal expertise required.
+
Learn More
+
+
+
Data Modeling Guideline
+
Follow our comprehensive guideline to model your domain using S2DM principles and best practices.
+
View Guide
+
+
+
S2DM Tools
+
Maintain your domain model with the support of our provided S2DM tools and automation utilities.
+
Explore Tools
+
+
+
+
+{{ end }}
+
+{{ define "sidebar-footer" }}
+ {{ if site.Params.doks.sectionFooter -}}
+
+
+
+
Start modeling your data semantically today!
+
S2DM enables Subject Matter Experts to contribute to controlled vocabularies with minimal data modeling expertise.
+
Get Started
+
+
+
+ {{ end -}}
+
+
+
+
+
+
+

+
+
+
+
+{{ end }}
diff --git a/docs-gen/layouts/partials/footer/esbuild-template.html b/docs-gen/layouts/partials/footer/esbuild-template.html
deleted file mode 100644
index e92ed49a..00000000
--- a/docs-gen/layouts/partials/footer/esbuild-template.html
+++ /dev/null
@@ -1,98 +0,0 @@
-{{- /* ESBUILD.HTML - Build javascript modules with esbuild
- * Simple Usage: {{ partial "esbuild" "js/file.js" }}
- * Simple Usage: {{ partial "esbuild" (dict "src" "js/file.js" "load" "defer/async" "babel" true ) }}
- * Parameters:
- * src - javascript file to build, relative to assets folder. Must include file extension can be .js or .ts
- * load - can set to "defer" or "async" defaults to null.
- * babel - set to true to transpile your js using babel. Note: all js is lowered to es6 by default.
- * for babel you must have the required babel dependencies installed , and configured
- * see hugo babel doc https://gohugo.io/hugo-pipes/babel
- * use the babel option if esbuild can't handle lowering your es6+ code, or you wish to go lower than es6
- * for unsupported es6+ syntax see
- * https://esbuild.github.io/content-types/#javascript
- *
- * example for checking hugo env from js file
- *
- * import * as params from '@params';
- *
- * if (params.env === 'development') {
- * console.log('hugo deveolopment environment')
- * } else {
- * console.log('hugo production environment')
- * }
- *
- * ----------------------------------------------------------------*/ -}}
-{{- /* get source from . or .src and fetch resource */ -}}
-{{- $src := . -}}
-{{- if not $src -}}
- {{- errorf `You must provide a source as the partial context, or (dict .src "path")` -}}
-{{- end -}}
-
-{{- /* set .load only if valid option provided in dict */ -}}
-{{- $load := "" -}}
-
-{{- /* set .babel only if provided in dict */ -}}
-{{- $babel := false -}}
-
-{{- /* check for dict */ -}}
-{{- if reflect.IsMap . -}}
- {{- with .src -}}
- {{- $src = . -}}
- {{- else -}}
- {{- errorf "as you are providing params as a dict, you must provide the source file as .src" -}}
- {{- end -}}
- {{- with .load -}}
- {{- $loadOpts := slice "async" "defer" -}}
- {{- if not (in $loadOpts . ) -}}
- {{- errorf "Invalid .load %q for file /assets/%s - valid options are %s." . $src (delimit $loadOpts ", " " and " ) -}}
- {{- end -}}
- {{- $load = . }}
- {{- end -}}
- {{- with .babel -}}
- {{- if eq . true -}}
- {{- $babel = true -}}
- {{- else -}}
- {{- errorf "Invalid .babel option of %q. The only valid option is true" . -}}
- {{- end -}}
- {{- end -}}
-{{ end }}
-
-{{- /* get the resource from .src path */ -}}
-{{- $resource := resources.Get $src -}}
-
-{{- /* if resources.Get fails */ -}}
-{{- if not $resource }}
- {{- errorf "No js resource found at /assets/%s" $src -}}
-{{- end -}}
-
-{{- /* pass hugo env to the js file as a param */ -}}
-{{- $paramsDefault := (dict "env" hugo.Environment) -}}
-{{- $params := "" -}}
-{{- with .params -}}
- {{- $params = merge $paramsDefault . -}}
-{{- else -}}
- {{- $params = $paramsDefault -}}
-{{- end -}}
-{{- $resource = $resource | resources.ExecuteAsTemplate $src . -}}
-
-{{- /* standard production configuration for es build */ -}}
-{{- $jsConfig := (dict "target" "es2015" "minify" "true" "params" $params) }}
-
-{{- /* is .babelEs6 is set to true - use babel to lower to es6 */ -}}
-{{- $js := $resource -}}
-{{- if $babel -}}
- {{- $babelConfig := (dict "noComments" true "minified" true "config" "config/babel.module.config.js") -}}
- {{- $js = $js | js.Build $jsConfig | babel $babelConfig | fingerprint -}}
-{{- else if eq (hugo.Environment) "development" -}}
- {{- $jsConfig = (dict "sourceMap" "inline" "target" "es2015" "params" $params) -}}
- {{- $js = $js | js.Build $jsConfig | fingerprint -}}
-{{- else -}}
- {{- $js = $js | js.Build $jsConfig | fingerprint -}}
-{{- end -}}
-
-{{- $filename := path.Base $js.RelPermalink -}}
-{{- $jsPath := printf "/js/%s" $filename | relURL -}}
-
diff --git a/docs-gen/layouts/partials/footer/esbuild.html b/docs-gen/layouts/partials/footer/esbuild.html
deleted file mode 100644
index aabdd2a1..00000000
--- a/docs-gen/layouts/partials/footer/esbuild.html
+++ /dev/null
@@ -1,97 +0,0 @@
-{{- /* ESBUILD.HTML - Build javascript modules with esbuild
- * Simple Usage: {{ partial "esbuild" "js/file.js" }}
- * Simple Usage: {{ partial "esbuild" (dict "src" "js/file.js" "load" "defer/async" "babel" true ) }}
- * Parameters:
- * src - javascript file to build, relative to assets folder. Must include file extension can be .js or .ts
- * load - can set to "defer" or "async" defaults to null.
- * babel - set to true to transpile your js using babel. Note: all js is lowered to es6 by default.
- * for babel you must have the required babel dependencies installed , and configured
- * see hugo babel doc https://gohugo.io/hugo-pipes/babel
- * use the babel option if esbuild can't handle lowering your es6+ code, or you wish to go lower than es6
- * for unsupported es6+ syntax see
- * https://esbuild.github.io/content-types/#javascript
- *
- * example for checking hugo env from js file
- *
- * import * as params from '@params';
- *
- * if (params.env === 'development') {
- * console.log('hugo deveolopment environment')
- * } else {
- * console.log('hugo production environment')
- * }
- *
- * ----------------------------------------------------------------*/ -}}
-{{- /* get source from . or .src and fetch resource */ -}}
-{{- $src := . -}}
-{{- if not $src -}}
- {{- errorf `You must provide a source as the partial context, or (dict .src "path")` -}}
-{{- end -}}
-
-{{- /* set .load only if valid option provided in dict */ -}}
-{{- $load := "" -}}
-
-{{- /* set .babel only if provided in dict */ -}}
-{{- $babel := false -}}
-
-{{- /* check for dict */ -}}
-{{- if reflect.IsMap . -}}
- {{- with .src -}}
- {{- $src = . -}}
- {{- else -}}
- {{- errorf "as you are providing params as a dict, you must provide the source file as .src" -}}
- {{- end -}}
- {{- with .load -}}
- {{- $loadOpts := slice "async" "defer" -}}
- {{- if not (in $loadOpts . ) -}}
- {{- errorf "Invalid .load %q for file /assets/%s - valid options are %s." . $src (delimit $loadOpts ", " " and " ) -}}
- {{- end -}}
- {{- $load = . }}
- {{- end -}}
- {{- with .babel -}}
- {{- if eq . true -}}
- {{- $babel = true -}}
- {{- else -}}
- {{- errorf "Invalid .babel option of %q. The only valid option is true" . -}}
- {{- end -}}
- {{- end -}}
-{{ end }}
-
-{{- /* get the resource from .src path */ -}}
-{{- $resource := resources.Get $src -}}
-
-{{- /* if resources.Get fails */ -}}
-{{- if not $resource }}
- {{- errorf "No js resource found at /assets/%s" $src -}}
-{{- end -}}
-
-{{- /* pass hugo env to the js file as a param */ -}}
-{{- $paramsDefault := (dict "env" hugo.Environment) -}}
-{{- $params := "" -}}
-{{- with .params -}}
- {{- $params = merge $paramsDefault . -}}
-{{- else -}}
- {{- $params = $paramsDefault -}}
-{{- end -}}
-
-{{- /* standard production configuration for es build */ -}}
-{{- $jsConfig := (dict "target" "es2015" "minify" "true" "params" $params) }}
-{{- $js := $resource -}}
-
-{{- /* is .babelEs6 is set to true - use babel to lower to es6 */ -}}
-{{- if $babel -}}
- {{- $babelConfig := (dict "noComments" true "minified" true "config" "config/babel.module.config.js") -}}
- {{- $js = $js | js.Build $jsConfig | babel $babelConfig | fingerprint -}}
-{{- else if eq (hugo.Environment) "development" -}}
- {{- $jsConfig = (dict "sourceMap" "inline" "target" "es2015" "params" $params) -}}
- {{- $js = $js | js.Build $jsConfig | fingerprint -}}
-{{- else -}}
- {{- $js = $js | js.Build $jsConfig | fingerprint -}}
-{{- end -}}
-
-{{- $filename := path.Base $js.RelPermalink -}}
-{{- $jsPath := printf "/js/%s" $filename | relURL -}}
-
diff --git a/docs-gen/layouts/partials/footer/footer.html b/docs-gen/layouts/partials/footer/footer.html
deleted file mode 100644
index e69de29b..00000000
diff --git a/docs-gen/layouts/partials/footer/script-footer.html b/docs-gen/layouts/partials/footer/script-footer.html
deleted file mode 100644
index e69de29b..00000000
diff --git a/docs-gen/layouts/partials/head/custom-head.html b/docs-gen/layouts/partials/head/custom-head.html
deleted file mode 100644
index d916bd00..00000000
--- a/docs-gen/layouts/partials/head/custom-head.html
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/docs-gen/layouts/partials/head/libsass.html b/docs-gen/layouts/partials/head/libsass.html
deleted file mode 100644
index 20fc4d95..00000000
--- a/docs-gen/layouts/partials/head/libsass.html
+++ /dev/null
@@ -1,9 +0,0 @@
-{{ $css := "" }}
-{{ if eq (hugo.Environment) "development" -}}
- {{ $options := (dict "targetPath" "main.css" "transpiler" "libsass" "enableSourceMap" true "includePaths" (slice "node_modules")) -}}
- {{ $css = resources.Get . | toCSS $options | resources.Fingerprint "sha512" -}}
-{{ else -}}
- {{ $options := (dict "targetPath" "main.css" "transpiler" "libsass" "outputStyle" "compressed" "includePaths" (slice "node_modules")) -}}
- {{ $css = resources.Get . | toCSS $options | postCSS (dict "config" "config/postcss.config.js") | resources.Fingerprint "sha512" | resources.PostProcess -}}
-{{ end -}}
-
diff --git a/docs-gen/layouts/partials/head/search-config.html b/docs-gen/layouts/partials/head/search-config.html
deleted file mode 100644
index 9604dc8e..00000000
--- a/docs-gen/layouts/partials/head/search-config.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/docs-gen/layouts/partials/header/header.html b/docs-gen/layouts/partials/header/header.html
deleted file mode 100644
index 9273957e..00000000
--- a/docs-gen/layouts/partials/header/header.html
+++ /dev/null
@@ -1,279 +0,0 @@
-{{ if site.Params.doks.alert -}}
- {{ partial "header/alert.html" . }}
-{{ end -}}
-
-{{ if site.Params.doks.navbarSticky -}}
-
-{{ end -}}
-
-{{ if site.Params.doks.headerBar -}}
-
-{{ end -}}
-
-