@sp-days-framework/create-sp-days 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +318 -0
  3. package/bin/index.js +86 -0
  4. package/lib/index.d.ts +20 -0
  5. package/lib/index.js +454 -0
  6. package/package.json +41 -0
  7. package/sp-days-framework-create-sp-days-1.0.0.tgz +0 -0
  8. package/templates/addon-resources/resources/frontpage-collection/components/Columns.mdx +191 -0
  9. package/templates/addon-resources/resources/frontpage-collection/components/ContentBlock.mdx +126 -0
  10. package/templates/addon-resources/resources/frontpage-collection/components/CourseFeature.mdx +147 -0
  11. package/templates/addon-resources/resources/frontpage-collection/components/FancyHeader.mdx +76 -0
  12. package/templates/addon-resources/resources/frontpage-collection/components/GetStarted.mdx +222 -0
  13. package/templates/addon-resources/resources/frontpage-collection/components/HeroBanner.mdx +205 -0
  14. package/templates/addon-resources/resources/frontpage-collection/components/IconContainer.mdx +249 -0
  15. package/templates/addon-resources/resources/frontpage-collection/components/Iconify.mdx +228 -0
  16. package/templates/addon-resources/resources/frontpage-collection/components/_category_.yml +2 -0
  17. package/templates/addon-resources/resources/frontpage-collection/index.mdx +85 -0
  18. package/templates/addon-resources/resources/frontpage-collection/setup/index.mdx +185 -0
  19. package/templates/addon-resources/resources/index.mdx +35 -0
  20. package/templates/addon-resources/resources/interactive-tasks/creating-tasks.mdx +292 -0
  21. package/templates/addon-resources/resources/interactive-tasks/examples/_category_.yml +3 -0
  22. package/templates/addon-resources/resources/interactive-tasks/examples/advanced-usage.mdx +304 -0
  23. package/templates/addon-resources/resources/interactive-tasks/examples/basic-usage.mdx +128 -0
  24. package/templates/addon-resources/resources/interactive-tasks/index.mdx +93 -0
  25. package/templates/addon-resources/resources/interactive-tasks/setup/advanced-configuration.mdx +150 -0
  26. package/templates/addon-resources/resources/interactive-tasks/setup/index.mdx +174 -0
  27. package/templates/addon-resources/resources/interactive-tasks/task-progression.mdx +140 -0
  28. package/templates/addon-resources/resources/slidev-integration/index.mdx +106 -0
  29. package/templates/addon-resources/resources/slidev-integration/setup/advanced-configuration.mdx +144 -0
  30. package/templates/addon-resources/resources/slidev-integration/setup/index.mdx +200 -0
  31. package/templates/addon-resources/resources/sykehuspartner-theme/index.mdx +105 -0
  32. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/_category_.yml +2 -0
  33. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/content/_category_.yml +2 -0
  34. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/content/center.mdx +33 -0
  35. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/content/default.mdx +59 -0
  36. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/content/full.mdx +49 -0
  37. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/image/_category_.yml +2 -0
  38. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/image/image-left.mdx +37 -0
  39. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/image/image-right.mdx +37 -0
  40. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/image/image.mdx +56 -0
  41. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/multi-column/_category_.yml +2 -0
  42. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/multi-column/three-cols-header.mdx +49 -0
  43. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/multi-column/three-cols.mdx +47 -0
  44. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/multi-column/two-cols-header.mdx +43 -0
  45. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/multi-column/two-cols.mdx +38 -0
  46. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/section/_category_.yml +2 -0
  47. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/section/cover.mdx +43 -0
  48. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/section/end.mdx +33 -0
  49. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/section/intro.mdx +49 -0
  50. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/section/section.mdx +41 -0
  51. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/special/_category_.yml +2 -0
  52. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/special/about-me.mdx +92 -0
  53. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/special/fact.mdx +47 -0
  54. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/special/quote.mdx +27 -0
  55. package/templates/addon-resources/resources/sykehuspartner-theme/layouts/special/statement.mdx +28 -0
  56. package/templates/addon-resources/resources/sykehuspartner-theme/setup/advanced-configuration.mdx +79 -0
  57. package/templates/addon-resources/resources/sykehuspartner-theme/setup/index.mdx +104 -0
  58. package/templates/addon-resources/resources/sykehuspartner-theme/syntax-and-icons.mdx +89 -0
  59. package/templates/addon-slidev/package.json +54 -0
  60. package/templates/addon-slidev/slidev/creating-your-first-slidev.md +301 -0
  61. package/templates/addon-slidev/slidev/slidev-theme-sykehuspartner.md +403 -0
  62. package/templates/page-course/README.md +152 -0
  63. package/templates/page-course/course/index.mdx +7 -0
  64. package/templates/page-course/course/placeholder-advanced-usage.mdx +304 -0
  65. package/templates/page-course/course/placeholder-basic-usage.mdx +128 -0
  66. package/templates/page-course/docusaurus.config.ts +171 -0
  67. package/templates/page-course/example-github-pages.yml +66 -0
  68. package/templates/page-course/gitignore +20 -0
  69. package/templates/page-course/package.json +51 -0
  70. package/templates/page-course/src/css/sp-days-theme.scss +297 -0
  71. package/templates/page-course/src/pages/index.mdx +165 -0
  72. package/templates/page-course/static/.nojekyll +0 -0
  73. package/templates/page-course/static/img/favicon-navbar/github.svg +3 -0
  74. package/templates/page-course/static/img/favicon-navbar/sorost-logo-dark.svg +24 -0
  75. package/templates/page-course/static/img/favicon-navbar/sorost-logo-light.svg +24 -0
  76. package/templates/page-course/static/img/footer/sykehuspartner-dark.svg +37 -0
  77. package/templates/page-course/static/img/footer/sykehuspartner-light.svg +37 -0
  78. package/templates/page-course/static/img/sidebar/docusaurus.svg +17 -0
  79. package/templates/page-course/static/img/sidebar/slidev.svg +22 -0
  80. package/templates/page-course/static/img/sp-days-logo-color-dark.svg +70 -0
  81. package/templates/page-course/static/img/sp-days-logo-color-light.svg +70 -0
  82. package/templates/page-course/static/img/sp-days-logo-filled-invert.svg +11 -0
  83. package/templates/page-course/static/img/sp-days-logo-filled.svg +11 -0
  84. package/templates/page-course/static/img/sp-days-logo-outline.svg +19 -0
  85. package/templates/page-course/static/img/sp-days-plugin-color-dark.svg +57 -0
  86. package/templates/page-course/static/img/sp-days-plugin-color-light.svg +53 -0
  87. package/templates/page-course/tsconfig.json +8 -0
@@ -0,0 +1,174 @@
1
+ ---
2
+ sidebar_position: 1
3
+ ---
4
+
5
+ import Tabs from "@theme/Tabs";
6
+ import TabItem from "@theme/TabItem";
7
+
8
+ # Setup
9
+
10
+ :::tip[Already Included]
11
+ If you're using `@sp-days-framework/create-sp-days`, the Interactive Tasks plugin is already installed and configured. You can start creating tasks right away!
12
+ :::
13
+
14
+ ## Installation
15
+
16
+ Install the plugin using your preferred package manager:
17
+
18
+ <Tabs>
19
+ <TabItem value="npm" label="npm" default>
20
+ ```bash
21
+ npm install @sp-days-framework/docusaurus-plugin-interactive-tasks
22
+ ```
23
+ </TabItem>
24
+ <TabItem value="yarn" label="Yarn">
25
+ ```bash
26
+ yarn add @sp-days-framework/docusaurus-plugin-interactive-tasks
27
+ ```
28
+ </TabItem>
29
+ </Tabs>
30
+
31
+ Add the plugin to your plugins array and the remark plugin to your docs configuration:
32
+
33
+ ```js title="docusaurus.config.js" {2,9-11}
34
+ module.exports = {
35
+ plugins: ["@sp-days-framework/docusaurus-plugin-interactive-tasks"],
36
+
37
+ presets: [
38
+ [
39
+ "classic",
40
+ {
41
+ docs: {
42
+ remarkPlugins: [
43
+ require("@sp-days-framework/docusaurus-plugin-interactive-tasks")
44
+ .remarkTaskDirective,
45
+ ],
46
+ },
47
+ },
48
+ ],
49
+ ],
50
+ };
51
+ ```
52
+
53
+ The plugin requires two integrations:
54
+
55
+ 1. **Plugin** - Auto-discovers all docs instances, generates task registry, and provides theme components
56
+ 2. **Remark Plugin** - Transforms task directives in markdown to React components (must be added to each docs instance)
57
+
58
+ ## Configuration
59
+
60
+ ### Basic Plugin Setup
61
+
62
+ The plugin automatically discovers all Docusaurus docs instances:
63
+
64
+ ```js title="docusaurus.config.js"
65
+ module.exports = {
66
+ plugins: [
67
+ "@sp-days-framework/docusaurus-plugin-interactive-tasks",
68
+ ],
69
+ };
70
+ ```
71
+
72
+ ### Remark Plugin Configuration
73
+
74
+ Add the `remarkTaskDirective` to each docs instance's `remarkPlugins` array:
75
+
76
+ ```js title="docusaurus.config.js" {8-10,22-24}
77
+ module.exports = {
78
+ presets: [
79
+ [
80
+ '@docusaurus/preset-classic',
81
+ {
82
+ docs: {
83
+ // Default instance
84
+ remarkPlugins: [
85
+ require('@sp-days-framework/docusaurus-plugin-interactive-tasks').remarkTaskDirective,
86
+ ],
87
+ },
88
+ },
89
+ ],
90
+ ],
91
+ plugins: [
92
+ '@sp-days-framework/docusaurus-plugin-interactive-tasks',
93
+ [
94
+ '@docusaurus/plugin-content-docs',
95
+ {
96
+ id: 'community',
97
+ path: 'community',
98
+ remarkPlugins: [
99
+ require('@sp-days-framework/docusaurus-plugin-interactive-tasks').remarkTaskDirective,
100
+ ],
101
+ },
102
+ ],
103
+ ],
104
+ };
105
+ ```
106
+
107
+ ### Frontmatter Options
108
+
109
+ Customize task badge appearance for individual pages:
110
+
111
+ ```mdx title="docs/my-module.mdx"
112
+ ---
113
+ title: My Module
114
+ sidebar_task_hide_progress: false
115
+ sidebar_task_disable_icon: false
116
+ sidebar_task_badge_colors:
117
+ completed:
118
+ lightmode: "#4caf50"
119
+ darkmode: "#66bb6a"
120
+ incomplete:
121
+ lightmode: "#2196f3"
122
+ darkmode: "#42a5f5"
123
+ font:
124
+ lightmode: "#ffffff"
125
+ darkmode: "#000000"
126
+ ---
127
+
128
+ # My Module Content
129
+ ```
130
+
131
+ ### Category Sidebar Configuration
132
+
133
+ Customize task badges for entire categories using `_category_.yml` or `_category_.json`:
134
+
135
+ <Tabs>
136
+ <TabItem value="yaml" label="YAML" default>
137
+ ```yaml title="docs/module-01/_category_.yml"
138
+ label: "Module 1"
139
+ position: 1
140
+ customProps:
141
+ sidebar_task_badge_colors:
142
+ completed:
143
+ lightmode: "#4caf50"
144
+ darkmode: "#66bb6a"
145
+ incomplete:
146
+ lightmode: "#2196f3"
147
+ darkmode: "#42a5f5"
148
+ sidebar_task_disable_icon: false
149
+ ```
150
+ </TabItem>
151
+ <TabItem value="json" label="JSON">
152
+ ```json title="docs/module-02/_category_.json"
153
+ {
154
+ "label": "Module 2",
155
+ "position": 2,
156
+ "customProps": {
157
+ "sidebar_task_hide_progress": false,
158
+ "sidebar_task_badge_colors": {
159
+ "completed": {
160
+ "lightmode": "#4caf50",
161
+ "darkmode": "#66bb6a"
162
+ },
163
+ "incomplete": {
164
+ "lightmode": "#2196f3",
165
+ "darkmode": "#42a5f5"
166
+ }
167
+ }
168
+ }
169
+ }
170
+ ```
171
+ </TabItem>
172
+ </Tabs>
173
+
174
+ See [Advanced Configuration](./advanced-configuration.mdx) for all available options.
@@ -0,0 +1,140 @@
1
+ ---
2
+ sidebar_position: 3
3
+ ---
4
+
5
+ import Tabs from "@theme/Tabs";
6
+ import TabItem from "@theme/TabItem";
7
+
8
+ # Progress Components
9
+
10
+ Display task completion progress using the `TaskProgression` and `TaskProgressionOverview` components.
11
+
12
+ ## Basic Usage
13
+
14
+
15
+ <Tabs>
16
+ <TabItem value="single" label="Single Page" default>
17
+ Display progress for a specific document with a visual progress indicator.
18
+
19
+
20
+ ```mdx
21
+ <TaskProgression path="./examples/basic-usage.mdx" />
22
+ ```
23
+ <div className="preview">
24
+ <div className="container" style={{ width: '-webkit-fill-available'}}>
25
+ <TaskProgression path="./examples/basic-usage.mdx" />
26
+ </div>
27
+ </div>
28
+ </TabItem>
29
+ <TabItem value="current" label="Current Page">
30
+ Reference the current page using `.` as the path:
31
+
32
+ ```mdx
33
+ <TaskProgression path="." />
34
+ ```
35
+
36
+ <div className="preview">
37
+ <div className="container" style={{ width: '-webkit-fill-available'}}>
38
+ <TaskProgression path="." />
39
+ </div>
40
+ </div>
41
+ <br/>
42
+
43
+ :::note
44
+ If no tasks is found on the page the Task Progression will show a error.
45
+ :::
46
+ </TabItem>
47
+ <TabItem value="result" label="Overview">
48
+ Display progress across all documents in the docs plugin instance.
49
+
50
+ ```mdx
51
+ <TaskProgressionOverview />
52
+ ```
53
+ <div className="preview">
54
+ <div className="container" style={{ width: '-webkit-fill-available', paddingBottom: '1.5rem'}}>
55
+ <TaskProgressionOverview />
56
+ </div>
57
+ </div>
58
+ </TabItem>
59
+ </Tabs>
60
+
61
+ ---
62
+
63
+ ## Path Formats
64
+
65
+ The component supports multiple path formats:
66
+
67
+ ```mdx
68
+ <!-- Current page -->
69
+ <TaskProgression path="." />
70
+
71
+ <!-- Absolute path -->
72
+ <TaskProgression path="/docs/tasks/creating-tasks" />
73
+
74
+ <!-- Relative to current page -->
75
+ <TaskProgression path="./sibling-page" />
76
+ <TaskProgression path="../parent-page" />
77
+
78
+ <!-- With file extension -->
79
+ <TaskProgression path="/docs/tasks/tasks-showcase.mdx" />
80
+ ```
81
+
82
+ ---
83
+
84
+ ## Examples
85
+
86
+ ### Learning Module Overview
87
+
88
+ Create an overview page showing progress across all modules:
89
+
90
+ ```mdx
91
+ ---
92
+ title: Course Overview
93
+ ---
94
+
95
+ # Welcome to the Course
96
+
97
+ Track your progress across all modules:
98
+
99
+ <TaskProgressionOverview />
100
+ ```
101
+
102
+ ### Module Navigation
103
+
104
+ Link between related modules with progress indicators:
105
+
106
+ ```mdx
107
+ ## Prerequisites
108
+
109
+ Make sure you've completed the previous module:
110
+
111
+ <TaskProgression path="../module-01/index" />
112
+
113
+ ## Current Module
114
+
115
+ Your progress in this module:
116
+
117
+ <TaskProgression path="." />
118
+
119
+ ## Next Steps
120
+
121
+ Continue to the next module:
122
+
123
+ <TaskProgression path="../module-03/index" />
124
+ ```
125
+
126
+ ### Section Summary
127
+
128
+ Show progress for the current page at the top:
129
+
130
+ ```mdx
131
+ # Introduction to React
132
+
133
+ <TaskProgression path="." />
134
+
135
+ Complete the tasks below to learn React fundamentals.
136
+
137
+ ::::task[Setup React Project]
138
+ ...
139
+ ::::
140
+ ```
@@ -0,0 +1,106 @@
1
+ ---
2
+ title: Slidev Integration
3
+ hide_title: true
4
+ sidebar_class_name: sidebar-logo-docusaurus
5
+ ---
6
+
7
+ import { Iconify } from "@sp-days-framework/docusaurus-frontpage-collection";
8
+
9
+ <div align="center">
10
+ <div className="resourceLandingPage">
11
+ <Iconify icon="logos:docusaurus" width="105px"/>
12
+ <Iconify icon="mdi:plus-thick" width="50px" iconColors={{ light: "#000000", dark: "#ffffff" }} />
13
+ <Iconify icon="logos:slidev" width="95px"/>
14
+ </div>
15
+ <div align="center">
16
+ # Docusaurus Slidev Integration
17
+ </div>
18
+ <div align="center">
19
+ <p>
20
+ *Seamlessly integrate Slidev presentations into your Docusaurus site!*
21
+ </p>
22
+ <h4>
23
+ [Setup](./setup/index.mdx)
24
+ ·
25
+ [NPM Package](https://www.npmjs.com/package/@sp-days-framework/docusaurus-plugin-slidev)
26
+ ·
27
+ [Source Code](https://github.com/helse-sorost/sp-days-framework)
28
+ </h4>
29
+ </div>
30
+ </div>
31
+
32
+ ---
33
+
34
+ ## Features
35
+
36
+ - **Automatic Discovery** - Scans directories for Slidev markdown files and builds them automatically
37
+ - **Interactive Overview Page** - Auto-generated gallery with presentation previews, metadata, and sorting
38
+ - **Zero-Config Setup** - Works out of the box with sensible defaults
39
+ - **Theme Support** - Global or per-presentation theme configuration with automatic validation
40
+ - **Development & Production Modes** - Fast development workflow with separate slide preview
41
+
42
+ ## Getting Started
43
+
44
+ ### 1. Create Your Presentation
45
+
46
+ Create a presentation in the `/slidev/` directory:
47
+
48
+ ```markdown title="slidev/introduction.md"
49
+ ---
50
+ theme: "@sp-days-framework/slidev-theme-sykehuspartner"
51
+ title: Introduction to Docker
52
+ description: Learn containerization fundamentals
53
+ author: Your Name
54
+ layout: cover
55
+ ---
56
+
57
+ # Introduction to Docker
58
+ ## Containerization Made Simple
59
+
60
+ ---
61
+
62
+ # What is Docker?
63
+
64
+ Docker is a platform for developing, shipping, and running applications in containers.
65
+ ```
66
+ ### 2. Live Preview During Development
67
+
68
+ Run Slidev directly to work on your presentation with hot-reload:
69
+
70
+ ```bash
71
+ npm run slidev ./slidev/my-presentation.md
72
+ ```
73
+
74
+ This opens your presentation in the browser with live updates as you edit.
75
+
76
+ ### 3. View in Docusaurus
77
+
78
+ Build your Docusaurus site to see presentations integrated:
79
+
80
+ ```bash
81
+ npm run build
82
+ npm run serve
83
+ ```
84
+
85
+ Open the page and select "Slides" in the navbar to see the overview gallery.
86
+
87
+ :::note[Development Mode Limitation]
88
+
89
+ Presentations are **not built** during `npm run start`, [read more about it here.](./setup/index.mdx#development-vs-production-modes)
90
+
91
+ :::
92
+
93
+ See [Setup](./setup/index.mdx) for installation and configuration.
94
+
95
+ ## How It Works
96
+
97
+ 1. **Scan Phase** - Plugin scans the `/slidev/` directory for `.md` files during build
98
+ 2. **Extract Metadata** - Frontmatter is parsed from each file (title, description, theme, author)
99
+ 3. **Build Phase** - In production, Slidev builds each presentation to `static/slides/`
100
+ 4. **Generate Overview** - Creates an interactive overview page (default: `/slidev`) with previews
101
+ 5. **Serve** - Built presentations are accessible via unique URLs
102
+
103
+ ## Documentation
104
+
105
+ - **[Advanced Configuration](./setup/advanced-configuration.mdx)** - Detailed plugin options
106
+ - **[Sykehuspartner Theme](../sykehuspartner-theme/index.mdx)** - Theme documentation and layouts
@@ -0,0 +1,144 @@
1
+ ---
2
+ title: Advanced
3
+ sidebar_position: 2
4
+ ---
5
+
6
+ import Tabs from "@theme/Tabs";
7
+ import TabItem from "@theme/TabItem";
8
+
9
+ # Advanced Configuration
10
+
11
+ ## All Plugin Options
12
+
13
+ | Option | Type | Default | Description |
14
+ | ----------------- | --------- | ------------------------------------- | ------------------------------------------------------------------ |
15
+ | `sourceDir` | `string` | `'./slidev'` | Directory to scan for Slidev markdown files |
16
+ | `outputDir` | `string` | `'slides'` | Output directory inside `static/` for built presentations |
17
+ | `theme` | `string` | `undefined` | Global theme override for all presentations |
18
+ | `download` | `boolean` | `false` | Enable PDF download functionality |
19
+ | `overviewPath` | `string` | `'/slidev'` | URL path for the auto-generated overview page |
20
+ | `overviewTitle` | `string` | `'Slidev Presentations'` | Custom title for the overview page |
21
+ | `overviewTagline` | `string` | `'Interactive presentation overview'` | Custom tagline/description for the overview page |
22
+ | `id` | `string` | `'default'` | Plugin ID for multiple instances |
23
+ | `buildTimeout` | `number` | `60` | Timeout in seconds for building each presentation (10-600) |
24
+ | `verbose` | `boolean` | `false` | Enable verbose logging for Slidev build output |
25
+
26
+ ## All Frontmatter Options
27
+
28
+ Configure individual presentations using frontmatter:
29
+
30
+ | Option | Type | Description |
31
+ | ------------- | -------- | ---------------------------------------------- |
32
+ | `theme` | `string` | Theme to use (overrides plugin global theme) |
33
+ | `title` | `string` | Presentation title |
34
+ | `description` | `string` | Brief description for overview page |
35
+ | `author` | `string` | Author name(s) |
36
+ | `layout` | `string` | Layout for the slide (e.g., `cover`, `intro`) |
37
+
38
+ See [Slidev documentation](https://sli.dev/guide/syntax.html#frontmatter) for all available frontmatter options.
39
+
40
+ ## Multiple Plugin Instances
41
+
42
+ Run multiple instances with different configurations:
43
+
44
+ ```js title="docusaurus.config.js"
45
+ module.exports = {
46
+ staticDirectories: ["static"],
47
+
48
+ plugins: [
49
+ [
50
+ "@sp-days-framework/docusaurus-plugin-slidev",
51
+ {
52
+ id: "workshops",
53
+ sourceDir: "./slidev/workshops",
54
+ overviewPath: "/workshops/slides",
55
+ overviewTitle: "Workshop Presentations",
56
+ },
57
+ ],
58
+ [
59
+ "@sp-days-framework/docusaurus-plugin-slidev",
60
+ {
61
+ id: "training",
62
+ sourceDir: "./slidev/training",
63
+ overviewPath: "/training/slides",
64
+ overviewTitle: "Training Materials",
65
+ },
66
+ ],
67
+ ],
68
+ };
69
+ ```
70
+
71
+ This allows you to organize different types of presentations separately.
72
+
73
+ ## Global Theme Configuration
74
+
75
+ Set a default theme for all presentations:
76
+
77
+ ```js title="docusaurus.config.js"
78
+ module.exports = {
79
+ plugins: [
80
+ [
81
+ "@sp-days-framework/docusaurus-plugin-slidev",
82
+ {
83
+ theme: "@sp-days-framework/slidev-theme-sykehuspartner",
84
+ },
85
+ ],
86
+ ],
87
+ };
88
+ ```
89
+
90
+ Individual presentations can override this by specifying a theme in their frontmatter.
91
+
92
+ ## Custom Overview Page
93
+
94
+ Customize the presentation overview page appearance:
95
+
96
+ ```js title="docusaurus.config.js"
97
+ module.exports = {
98
+ plugins: [
99
+ [
100
+ "@sp-days-framework/docusaurus-plugin-slidev",
101
+ {
102
+ overviewPath: "/presentations",
103
+ overviewTitle: "Our Presentations",
104
+ overviewTagline: "Explore our collection of learning materials",
105
+ },
106
+ ],
107
+ ],
108
+ };
109
+ ```
110
+
111
+ ## Build Timeout Configuration
112
+
113
+ For large presentations, increase the build timeout:
114
+
115
+ ```js title="docusaurus.config.js"
116
+ module.exports = {
117
+ plugins: [
118
+ [
119
+ "@sp-days-framework/docusaurus-plugin-slidev",
120
+ {
121
+ buildTimeout: 120, // 2 minutes per presentation
122
+ verbose: true, // Enable verbose logging
123
+ },
124
+ ],
125
+ ],
126
+ };
127
+ ```
128
+
129
+ ## PDF Download Support
130
+
131
+ Enable PDF download functionality for presentations:
132
+
133
+ ```js title="docusaurus.config.js"
134
+ module.exports = {
135
+ plugins: [
136
+ [
137
+ "@sp-days-framework/docusaurus-plugin-slidev",
138
+ {
139
+ download: true,
140
+ },
141
+ ],
142
+ ],
143
+ };
144
+ ```