├── static
├── .nojekyll
├── favicon.png
└── .gitlab-ci.yml
├── .npmrc
├── src
├── routes
│ ├── +layout.js
│ └── +page.svelte
├── app.html
└── lib
│ ├── url.js
│ ├── Editor.svelte
│ ├── stores.js
│ ├── Mindmap.svelte
│ └── Menu.svelte
├── .svelte-kit
├── generated
│ ├── client
│ │ ├── matchers.js
│ │ ├── nodes
│ │ │ ├── 2.js
│ │ │ ├── 1.js
│ │ │ └── 0.js
│ │ └── app.js
│ ├── root.svelte
│ └── server
│ │ └── internal.js
├── tsconfig.json
└── ambient.d.ts
├── myMarkmap-explications.png
├── vite.config.js
├── .github
└── workflows
│ └── deploy.yml
├── svelte.config.js
├── package.json
├── README.md
├── LICENSE
└── .gitignore
/static/.nojekyll:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=false
2 |
--------------------------------------------------------------------------------
/src/routes/+layout.js:
--------------------------------------------------------------------------------
1 | export const prerender = true;
--------------------------------------------------------------------------------
/.svelte-kit/generated/client/matchers.js:
--------------------------------------------------------------------------------
1 | export const matchers = {};
--------------------------------------------------------------------------------
/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XenocodeRCE/philomap/main/static/favicon.png
--------------------------------------------------------------------------------
/myMarkmap-explications.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/XenocodeRCE/philomap/main/myMarkmap-explications.png
--------------------------------------------------------------------------------
/.svelte-kit/generated/client/nodes/2.js:
--------------------------------------------------------------------------------
1 | export { default as component } from "../../../../src/routes/+page.svelte";
--------------------------------------------------------------------------------
/.svelte-kit/generated/client/nodes/1.js:
--------------------------------------------------------------------------------
1 | export { default as component } from "../../../../node_modules/@sveltejs/kit/src/runtime/components/error.svelte";
--------------------------------------------------------------------------------
/static/.gitlab-ci.yml:
--------------------------------------------------------------------------------
1 | pages:
2 | script:
3 | - mkdir .public
4 | - cp -r * .public
5 | - mv .public public
6 | artifacts:
7 | paths:
8 | - public
9 | only:
10 | - gh-pages
--------------------------------------------------------------------------------
/.svelte-kit/generated/client/nodes/0.js:
--------------------------------------------------------------------------------
1 | import * as universal from "../../../../src/routes/+layout.js";
2 | export { universal };
3 | export { default as component } from "../../../../node_modules/@sveltejs/kit/src/runtime/components/layout.svelte";
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { sveltekit } from '@sveltejs/kit/vite';
2 | import path from 'path'
3 |
4 | const config = {
5 | plugins: [sveltekit()],
6 | build: {
7 | outDir: path.resolve(__dirname, 'build')
8 | }
9 | };
10 |
11 | export default config;
12 |
--------------------------------------------------------------------------------
/.svelte-kit/generated/client/app.js:
--------------------------------------------------------------------------------
1 | export { matchers } from './matchers.js';
2 |
3 | export const nodes = [
4 | () => import('./nodes/0'),
5 | () => import('./nodes/1'),
6 | () => import('./nodes/2')
7 | ];
8 |
9 | export const server_loads = [];
10 |
11 | export const dictionary = {
12 | "/": [2]
13 | };
14 |
15 | export const hooks = {
16 | handleError: (({ error }) => { console.error(error) }),
17 | };
18 |
19 | export { default as root } from '../root.svelte';
--------------------------------------------------------------------------------
/src/app.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | myMarkmap
5 |
6 |
7 |
8 |
9 |
10 | %sveltekit.head%
11 |
12 |
13 | %sveltekit.body%
14 |
15 |
--------------------------------------------------------------------------------
/.github/workflows/deploy.yml:
--------------------------------------------------------------------------------
1 | name: Build and Deploy
2 |
3 | on:
4 | push:
5 | branches:
6 | - main # Or your default branch
7 |
8 | jobs:
9 | build-and-deploy:
10 | runs-on: ubuntu-latest
11 |
12 | steps:
13 | - uses: actions/checkout@v2
14 | - uses: actions/setup-node@v2
15 | with:
16 | node-version: '14'
17 | - run: npm install
18 | - run: npm run build
19 | - name: Deploy to GitHub Pages
20 | uses: JamesIves/github-pages-deploy-action@4.1.4
21 | with:
22 | branch: main # The branch the action should deploy to.
23 | folder: build # The folder the action should deploy.
24 |
--------------------------------------------------------------------------------
/svelte.config.js:
--------------------------------------------------------------------------------
1 | /* import adapter from '@sveltejs/adapter-auto'; */
2 | import adapter from '@sveltejs/adapter-static';
3 |
4 | /** @type {import('@sveltejs/kit').Config} */
5 | const config = {
6 | kit: {
7 | adapter: adapter(),
8 | paths: {
9 | base: process.env.NODE_ENV === "production" ? "/myMarkmap" : ""
10 | },
11 | }
12 | };
13 |
14 | /* export default config; */
15 | export default {
16 | kit: {
17 | adapter: adapter({
18 | // default options are shown. On some platforms
19 | // these options are set automatically — see below
20 | pages: 'build',
21 | assets: 'build',
22 | fallback: null,
23 | precompress: false,
24 | strict: true
25 | }),
26 | prerender: {
27 | handleMissingId: 'ignore'
28 | }
29 | }
30 | };
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mymarkmapapp",
3 | "version": "0.0.1",
4 | "homepage": "https://xenocoderce.github.io/myMarkmap/",
5 | "scripts": {
6 | "dev": "vite dev",
7 | "build": "vite build",
8 | "preview": "vite preview",
9 | "deploy": "npm run build && touch build/.nojekyll && gh-pages -d build -t true"
10 | },
11 | "devDependencies": {
12 | "@sveltejs/adapter-auto": "^1.0.3",
13 | "@sveltejs/kit": "^1.30.3",
14 | "svelte": "^3.59.2",
15 | "vite": "^4.5.2"
16 | },
17 | "type": "module",
18 | "dependencies": {
19 | "@sveltejs/adapter-static": "^1.0.6",
20 | "codejar": "^3.7.0",
21 | "file-saver-es": "^2.0.5",
22 | "gh-pages": "^5.0.0",
23 | "highlight.js": "^11.9.0",
24 | "js-yaml": "^4.1.0",
25 | "markmap-common": "^0.15.6",
26 | "markmap-lib": "^0.15.8",
27 | "markmap-view": "^0.15.8",
28 | "node-emoji": "^1.11.0"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # myMarkmap
2 |
3 | [](https://app.netlify.com/sites/philomap/deploys)
4 |
5 | [myMarkmap](https://mymarkmap.netlify.app/) is a custom editor for [Markmap](https://github.com/gera2ld/markmap), built with [Svelte Kit](https://kit.svelte.dev/).
6 |
7 | [](https://mymarkmap.vercel.app/#https://raw.githubusercontent.com/eyssette/mindmap/main/mindmap-default-mymarkmap.md)
8 |
9 | ## TODO
10 |
11 | [TODO](https://github.com/eyssette/myMarkmap/projects/1)
12 |
13 | ## Developing
14 |
15 | Install
16 |
17 | ```bash
18 | npm install
19 |
20 | ```
21 |
22 | Start a development server:
23 |
24 | ```bash
25 | npm run dev
26 |
27 | # or start the server and open the app in a new browser tab
28 | npm run dev -- --open
29 | ```
30 |
--------------------------------------------------------------------------------
/.svelte-kit/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "paths": {
4 | "$lib": [
5 | "../src/lib"
6 | ],
7 | "$lib/*": [
8 | "../src/lib/*"
9 | ]
10 | },
11 | "rootDirs": [
12 | "..",
13 | "./types"
14 | ],
15 | "importsNotUsedAsValues": "error",
16 | "isolatedModules": true,
17 | "preserveValueImports": true,
18 | "lib": [
19 | "esnext",
20 | "DOM",
21 | "DOM.Iterable"
22 | ],
23 | "moduleResolution": "node",
24 | "module": "esnext",
25 | "noEmit": true,
26 | "target": "esnext"
27 | },
28 | "include": [
29 | "ambient.d.ts",
30 | "./types/**/$types.d.ts",
31 | "../vite.config.js",
32 | "../vite.config.ts",
33 | "../src/**/*.js",
34 | "../src/**/*.ts",
35 | "../src/**/*.svelte",
36 | "../tests/**/*.js",
37 | "../tests/**/*.ts",
38 | "../tests/**/*.svelte"
39 | ],
40 | "exclude": [
41 | "../node_modules/**",
42 | "./[!ambient.d.ts]**",
43 | "../src/service-worker.js",
44 | "../src/service-worker.ts",
45 | "../src/service-worker.d.ts"
46 | ]
47 | }
--------------------------------------------------------------------------------
/src/lib/url.js:
--------------------------------------------------------------------------------
1 | // https://github.com/bluwy/svelte-url
2 | // https://bjornlu.com/blog/simple-svelte-routing-with-reactive-urls
3 |
4 | import {
5 | derived,
6 | writable
7 | } from 'svelte/store'
8 |
9 | export function createUrlStore(ssrUrl) {
10 | if (typeof window === 'undefined') {
11 | const {
12 | subscribe
13 | } = writable(ssrUrl)
14 | return {
15 | subscribe
16 | }
17 | }
18 |
19 | const href = writable(window.location.href)
20 |
21 | const originalPushState = history.pushState
22 | const originalReplaceState = history.replaceState
23 |
24 | const updateHref = () => href.set(window.location.href)
25 |
26 | history.pushState = function () {
27 | originalPushState.apply(this, arguments)
28 | updateHref()
29 | }
30 |
31 | history.replaceState = function () {
32 | originalReplaceState.apply(this, arguments)
33 | updateHref()
34 | }
35 |
36 | window.addEventListener('popstate', updateHref)
37 | window.addEventListener('hashchange', updateHref)
38 |
39 | return {
40 | subscribe: derived(href, ($href) => new URL($href)).subscribe
41 | }
42 | }
43 |
44 | export default createUrlStore()
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Gerald (markmap) / Eyssette (myMarkmap)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/.svelte-kit/generated/root.svelte:
--------------------------------------------------------------------------------
1 |
2 |
3 |
42 |
43 | {#if constructors[1]}
44 |
45 |
46 |
47 | {:else}
48 |
49 | {/if}
50 |
51 | {#if mounted}
52 |
53 | {#if navigated}
54 | {title}
55 | {/if}
56 |
57 | {/if}
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | /.svelte-kit
3 | /package
4 |
5 | # Logs
6 | logs
7 | *.log
8 | npm-debug.log*
9 | yarn-debug.log*
10 | yarn-error.log*
11 | lerna-debug.log*
12 |
13 | # Diagnostic reports (https://nodejs.org/api/report.html)
14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
15 |
16 | # Runtime data
17 | pids
18 | *.pid
19 | *.seed
20 | *.pid.lock
21 |
22 | # Directory for instrumented libs generated by jscoverage/JSCover
23 | lib-cov
24 |
25 | # Coverage directory used by tools like istanbul
26 | coverage
27 | *.lcov
28 |
29 | # nyc test coverage
30 | .nyc_output
31 |
32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
33 | .grunt
34 |
35 | # Bower dependency directory (https://bower.io/)
36 | bower_components
37 |
38 | # node-waf configuration
39 | .lock-wscript
40 |
41 | # Compiled binary addons (https://nodejs.org/api/addons.html)
42 | build/Release
43 |
44 | # Dependency directories
45 | node_modules/
46 | jspm_packages/
47 |
48 | # TypeScript v1 declaration files
49 | typings/
50 |
51 | # TypeScript cache
52 | *.tsbuildinfo
53 |
54 | # Optional npm cache directory
55 | .npm
56 |
57 | # Optional eslint cache
58 | .eslintcache
59 |
60 | # Microbundle cache
61 | .rpt2_cache/
62 | .rts2_cache_cjs/
63 | .rts2_cache_es/
64 | .rts2_cache_umd/
65 |
66 | # Optional REPL history
67 | .node_repl_history
68 |
69 | # Output of 'npm pack'
70 | *.tgz
71 |
72 | # Yarn Integrity file
73 | .yarn-integrity
74 |
75 | # dotenv environment variables file
76 | .env
77 | .env.test
78 |
79 | # parcel-bundler cache (https://parceljs.org/)
80 | .cache
81 |
82 | # Next.js build output
83 | .next
84 |
85 | # Nuxt.js build / generate output
86 | .nuxt
87 | dist
88 |
89 | # Gatsby files
90 | .cache/
91 | # Comment in the public line in if your project uses Gatsby and *not* Next.js
92 | # https://nextjs.org/blog/next-9-1#public-directory-support
93 | # public
94 |
95 | # vuepress build output
96 | .vuepress/dist
97 |
98 | # Serverless directories
99 | .serverless/
100 |
101 | # FuseBox cache
102 | .fusebox/
103 |
104 | # DynamoDB Local files
105 | .dynamodb/
106 |
107 | # TernJS port file
108 | .tern-port
109 |
110 | todo.txt
111 |
--------------------------------------------------------------------------------
/.svelte-kit/generated/server/internal.js:
--------------------------------------------------------------------------------
1 |
2 | import root from '../root.svelte';
3 | import { set_building } from '__sveltekit/environment';
4 | import { set_assets } from '__sveltekit/paths';
5 | import { set_private_env, set_public_env } from '../../../node_modules/@sveltejs/kit/src/runtime/shared-server.js';
6 |
7 | export const options = {
8 | app_template_contains_nonce: false,
9 | csp: {"mode":"auto","directives":{"upgrade-insecure-requests":false,"block-all-mixed-content":false},"reportOnly":{"upgrade-insecure-requests":false,"block-all-mixed-content":false}},
10 | csrf_check_origin: true,
11 | track_server_fetches: false,
12 | embedded: false,
13 | env_public_prefix: 'PUBLIC_',
14 | env_private_prefix: '',
15 | hooks: null, // added lazily, via `get_hooks`
16 | preload_strategy: "modulepreload",
17 | root,
18 | service_worker: false,
19 | templates: {
20 | app: ({ head, body, assets, nonce, env }) => "\r\n\r\n\t\r\n\t\tmyMarkmap\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t" + head + "\r\n\t\r\n\t\r\n\t\t" + body + "
\r\n\t\r\n",
21 | error: ({ status, message }) => "\r\n\r\n\t\r\n\t\t\r\n\t\t" + message + "\r\n\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\t
" + status + "\r\n\t\t\t
\r\n\t\t\t\t
" + message + "
\r\n\t\t\t\r\n\t\t
\r\n\t\r\n\r\n"
22 | },
23 | version_hash: "nybh0b"
24 | };
25 |
26 | export function get_hooks() {
27 | return {};
28 | }
29 |
30 | export { set_assets, set_building, set_private_env, set_public_env };
31 |
--------------------------------------------------------------------------------
/src/lib/Editor.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
68 |
69 |
70 | {#await CodeJar}
71 |
Éditeur en cours de chargement
72 | {:then}
73 |
74 | {:catch error}
75 |
76 | {/await}
77 |
78 |
79 |
--------------------------------------------------------------------------------
/src/lib/stores.js:
--------------------------------------------------------------------------------
1 | import {
2 | writable
3 | } from 'svelte/store';
4 |
5 | export const show = writable(false);
6 | export const markdownSource = writable(decodeURI(`---
7 | maxWidth: 600
8 | ---
9 |
10 | # myMarkmap
11 |
12 | ## Un outil libre \\\\ et gratuit
13 |
14 | ### [Sources](https://forge.aeif.fr/eyssette/myMarkmap/) sur la Forge des\\\\Communs Numériques Éducatifs
15 | ### _Auteur_ : [Cédric Eyssette](https://eyssette.github.io/)
16 | ### Créé à partir du \\\\ logiciel [markmap](https://markmap.js.org/)
17 |
18 | ## Pour faire des \\\\ cartes mentales
19 |
20 | - Clic sur ✒️ en haut à gauche pour **éditer** \\\\ sa carte mentale (_raccourci clavier : \`e\`_) \\\\ On utilise le **Markdown** pour créer des branches
21 | - \`# Titre\` pour le niveau 1
22 | - \`## Sous-titre\` pour le niveau 2
23 | - \`### Niveau 3\`, \`#### Niveau 4\` …
24 | - Ou bien, on fait une liste à puces \\\\ \`- Niveau 3\` \\\\ \` - Niveau 4\` \\\\ \`- Niveau 3\` \\\\ (on ajoute 2 espaces avant \\\\ pour passer à un autre niveau)
25 | - Clic sur 👓 pour **cacher** la fenêtre d'édition \\\\et **voir** seulement la carte mentale \\\\ (_raccourci clavier : \`Escape\`_)
26 | - **Enregistrer** et \\\\**partager** sa \\\\carte mentale
27 | - Clic sur 💾 pour **enregistrer** la carte au format _svg_ \\\\[image fixe] (_raccourci clavier : \`s\`_)
28 | - Clic sur 🌐 pour **enregistrer** au format HTML \\\\[interactivité possible] (_raccourci clavier : \`h\`_)
29 | - Clic sur 🔗 pour copier un **lien** de **partage** \\\\de la carte mentale (_raccourci clavier : \`l\`_)
30 | - Il est recommandé d'enregistrer le texte \\\\de sa carte mentale quelque part pour \\\\pouvoir modifier plus tard sa carte mentale
31 | - On peut mettre son texte \\\\ **sur une forge** ou sur [CodiMD](https://codimd.apps.education.fr) \\\\ et l'afficher avec myMarkmap
32 | - \\\\ \`https://mymarkmap.vercel.app/#URL\`
33 | - En cas de problème : \\\\ \`https://mymarkmap.vercel.app/#https://corsproxy.io/%3FURL\`
34 | - Sur une instance Gitlab, il faut utiliser un fichier \`.gitlab-ci.yml\` pour publier le fichier md sur une page publique et utiliser cette adresse comme URL
35 |
36 | ## Comment naviguer \\\\dans la carte ?
37 | - \\\\\\\\Clic sur les **cercles** à l'intersection \\\\ des différentes branches pour \\\\ **afficher ou masquer la suite**
38 | - \\\\**Alt+clic** sur un cercle pour afficher \\\\\ seulement la branche en question
39 | - **Autres raccourcis**
40 | - **Alt+clic** sur le texte d'une branche pour la masquer
41 | - \`m\` pour masquer ou réafficher la barre de menu
42 | - \`r\` pour désactiver ou réactiver le redimensionnement automatique
43 |
44 | ## Usages plus \\\\ avancés
45 |
46 | ### Des balises pour \\\\ **contrôler l'affichage** \\\\ de la carte
47 |
48 | #### **Markdown**
49 |
50 | - \`**texte**\` : pour mettre en **gras**
51 | - \`_texte_\` : pour mettre en _italiques_
52 | - \`[lien](URL)\` : pour insérer un [lien](https://eyssette.github.io/)
53 | - \`\` : pour insérer une image
54 | - \`\` : pour spécifier la hauteur \\\\de l'image (de h-25, h-50 … à h-200)
55 | - \`\`\` \`code\` \`\`\` : Pour insérer du \`code\`
56 | - \`==texte==\`: Pour surligner du ==texte==
57 | - \`++texte++\`: Pour souligner du ++texte++
58 |
59 | #### **HTML**
60 |
61 | - \`
\` ou \`\\\\\` pour forcer le passage à la ligne
62 | - \`texte\` \\\\ pour changer le style d'un élément
63 |
64 | #### **Autres \\\\ balises**
65 |
66 | - \`\` en fin de ligne pour que les \\\\ sous-branches soient cachées par défaut : \\\\ il faut cliquer sur le cercle pour afficher la suite
67 | - Cette branche est cachée par défaut !
68 | - Cette branche aussi !
69 | - \`:code_emoji:\` : pour insérer un code pour un emoji [:link:](https://raw.githubusercontent.com/omnidan/node-emoji/master/lib/emoji.json)
70 | - \`{{partie masquée}}\` pour masquer une partie \\\\ d'un texte : voici par exemple un {{passage}} masqué \\\\ (cliquer dessus pour afficher / masquer à nouveau)
71 |
72 | ### Un **en-tête** (YAML) \\\\ pour des options de \\\\configuration plus avancées
73 |
74 | - Pour spécifier la largeur \\\\ maximale d'une branche
75 | - \`\`\`maxWidth: 300\`\`\`
76 | - Pour empêcher le changement de \\\\couleur des sous-branches à partir \\\\d'un certain niveau
77 | - \`\`\`colorFreezeLevel: 2\`\`\` \\\\ (pour que chaque branche \\\\ait sa propre couleur)
78 | - Pour ajouter des styles \\\\CSS spécifiques
79 | - \`\`\`style: strong{color:red}\`\`\`
80 | - Pour ajouter un titre
81 | - \`\`\`title: Mon titre\`\`\`
82 | - Pour masquer par défaut \\\\les sous-branches à partir\\\\ d'un certain niveau
83 | - \`\`\`initialExpandLevel: 1\`\`\`
84 | - Pour forcer l'ouverture des \\\\liens dans un nouvel onglet
85 | - \`\`\`openLinksInNewTab: true\`\`\`
86 | `));
87 | export const baseURL = writable('');
88 | export const mindmapSaveAsSvg = writable(false);
89 | export const mindmapSaveAsHtml = writable(false);
90 | export const wValue = writable();
91 | export const hValue = writable();
92 |
--------------------------------------------------------------------------------
/src/routes/+page.svelte:
--------------------------------------------------------------------------------
1 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 | {#if mindmapFromURL}
126 |
127 | {:else}
128 |
129 | {/if}
130 |
131 |
132 |
--------------------------------------------------------------------------------
/.svelte-kit/ambient.d.ts:
--------------------------------------------------------------------------------
1 |
2 | // this file is generated — do not edit it
3 |
4 |
5 | ///
6 |
7 | /**
8 | * Environment variables [loaded by Vite](https://vitejs.dev/guide/env-and-mode.html#env-files) from `.env` files and `process.env`. Like [`$env/dynamic/private`](https://kit.svelte.dev/docs/modules#$env-dynamic-private), this module cannot be imported into client-side code. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://kit.svelte.dev/docs/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://kit.svelte.dev/docs/configuration#env) (if configured).
9 | *
10 | * _Unlike_ [`$env/dynamic/private`](https://kit.svelte.dev/docs/modules#$env-dynamic-private), the values exported from this module are statically injected into your bundle at build time, enabling optimisations like dead code elimination.
11 | *
12 | * ```ts
13 | * import { API_KEY } from '$env/static/private';
14 | * ```
15 | *
16 | * Note that all environment variables referenced in your code should be declared (for example in an `.env` file), even if they don't have a value until the app is deployed:
17 | *
18 | * ```
19 | * MY_FEATURE_FLAG=""
20 | * ```
21 | *
22 | * You can override `.env` values from the command line like so:
23 | *
24 | * ```bash
25 | * MY_FEATURE_FLAG="enabled" npm run dev
26 | * ```
27 | */
28 | declare module '$env/static/private' {
29 | export const ACSetupSvcPort: string;
30 | export const ACSvcPort: string;
31 | export const ALLUSERSPROFILE: string;
32 | export const APPDATA: string;
33 | export const ChocolateyInstall: string;
34 | export const ChocolateyLastPathUpdate: string;
35 | export const CLASSPATH: string;
36 | export const COLOR: string;
37 | export const CommonProgramFiles: string;
38 | export const CommonProgramW6432: string;
39 | export const COMPUTERNAME: string;
40 | export const ComSpec: string;
41 | export const CPLUS_INCLUDE_PATH: string;
42 | export const CUDA_PATH: string;
43 | export const CUDA_PATH_V11_8: string;
44 | export const CUDA_PATH_V12_3: string;
45 | export const C_INCLUDE_PATH: string;
46 | export const DriverData: string;
47 | export const EDITOR: string;
48 | export const EnableLog: string;
49 | export const HOME: string;
50 | export const HOMEDRIVE: string;
51 | export const HOMEPATH: string;
52 | export const INIT_CWD: string;
53 | export const LOCALAPPDATA: string;
54 | export const LOGONSERVER: string;
55 | export const NLTK_DATA: string;
56 | export const NODE: string;
57 | export const NODE_ENV: string;
58 | export const NODE_EXE: string;
59 | export const NPM_CLI_JS: string;
60 | export const npm_command: string;
61 | export const npm_config_cache: string;
62 | export const npm_config_globalconfig: string;
63 | export const npm_config_global_prefix: string;
64 | export const npm_config_init_module: string;
65 | export const npm_config_local_prefix: string;
66 | export const npm_config_metrics_registry: string;
67 | export const npm_config_node_gyp: string;
68 | export const npm_config_noproxy: string;
69 | export const npm_config_prefix: string;
70 | export const npm_config_userconfig: string;
71 | export const npm_config_user_agent: string;
72 | export const npm_execpath: string;
73 | export const npm_lifecycle_event: string;
74 | export const npm_lifecycle_script: string;
75 | export const npm_node_execpath: string;
76 | export const npm_package_json: string;
77 | export const npm_package_name: string;
78 | export const npm_package_version: string;
79 | export const NPM_PREFIX_NPM_CLI_JS: string;
80 | export const NUMBER_OF_PROCESSORS: string;
81 | export const NVTOOLSEXT_PATH: string;
82 | export const OneDrive: string;
83 | export const OPENAI_API_KEY: string;
84 | export const openai_cookie_file: string;
85 | export const OS: string;
86 | export const Path: string;
87 | export const PATHEXT: string;
88 | export const POWERSHELL_DISTRIBUTION_CHANNEL: string;
89 | export const PROCESSOR_ARCHITECTURE: string;
90 | export const PROCESSOR_IDENTIFIER: string;
91 | export const PROCESSOR_LEVEL: string;
92 | export const PROCESSOR_REVISION: string;
93 | export const ProgramData: string;
94 | export const ProgramFiles: string;
95 | export const ProgramW6432: string;
96 | export const PROMPT: string;
97 | export const PROVER9HOME: string;
98 | export const PSModulePath: string;
99 | export const PUBLIC: string;
100 | export const RlsSvcPort: string;
101 | export const SESSIONNAME: string;
102 | export const ShadowEnv: string;
103 | export const SystemDrive: string;
104 | export const SystemRoot: string;
105 | export const TEMP: string;
106 | export const TMP: string;
107 | export const USERDOMAIN: string;
108 | export const USERDOMAIN_ROAMINGPROFILE: string;
109 | export const USERNAME: string;
110 | export const USERPROFILE: string;
111 | export const windir: string;
112 | export const WSLENV: string;
113 | export const WT_PROFILE_ID: string;
114 | export const WT_SESSION: string;
115 | }
116 |
117 | /**
118 | * Similar to [`$env/static/private`](https://kit.svelte.dev/docs/modules#$env-static-private), except that it only includes environment variables that begin with [`config.kit.env.publicPrefix`](https://kit.svelte.dev/docs/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code.
119 | *
120 | * Values are replaced statically at build time.
121 | *
122 | * ```ts
123 | * import { PUBLIC_BASE_URL } from '$env/static/public';
124 | * ```
125 | */
126 | declare module '$env/static/public' {
127 |
128 | }
129 |
130 | /**
131 | * This module provides access to runtime environment variables, as defined by the platform you're running on. For example if you're using [`adapter-node`](https://github.com/sveltejs/kit/tree/master/packages/adapter-node) (or running [`vite preview`](https://kit.svelte.dev/docs/cli)), this is equivalent to `process.env`. This module only includes variables that _do not_ begin with [`config.kit.env.publicPrefix`](https://kit.svelte.dev/docs/configuration#env) _and do_ start with [`config.kit.env.privatePrefix`](https://kit.svelte.dev/docs/configuration#env) (if configured).
132 | *
133 | * This module cannot be imported into client-side code.
134 | *
135 | * ```ts
136 | * import { env } from '$env/dynamic/private';
137 | * console.log(env.DEPLOYMENT_SPECIFIC_VARIABLE);
138 | * ```
139 | *
140 | * > In `dev`, `$env/dynamic` always includes environment variables from `.env`. In `prod`, this behavior will depend on your adapter.
141 | */
142 | declare module '$env/dynamic/private' {
143 | export const env: {
144 | ACSetupSvcPort: string;
145 | ACSvcPort: string;
146 | ALLUSERSPROFILE: string;
147 | APPDATA: string;
148 | ChocolateyInstall: string;
149 | ChocolateyLastPathUpdate: string;
150 | CLASSPATH: string;
151 | COLOR: string;
152 | CommonProgramFiles: string;
153 | CommonProgramW6432: string;
154 | COMPUTERNAME: string;
155 | ComSpec: string;
156 | CPLUS_INCLUDE_PATH: string;
157 | CUDA_PATH: string;
158 | CUDA_PATH_V11_8: string;
159 | CUDA_PATH_V12_3: string;
160 | C_INCLUDE_PATH: string;
161 | DriverData: string;
162 | EDITOR: string;
163 | EnableLog: string;
164 | HOME: string;
165 | HOMEDRIVE: string;
166 | HOMEPATH: string;
167 | INIT_CWD: string;
168 | LOCALAPPDATA: string;
169 | LOGONSERVER: string;
170 | NLTK_DATA: string;
171 | NODE: string;
172 | NODE_ENV: string;
173 | NODE_EXE: string;
174 | NPM_CLI_JS: string;
175 | npm_command: string;
176 | npm_config_cache: string;
177 | npm_config_globalconfig: string;
178 | npm_config_global_prefix: string;
179 | npm_config_init_module: string;
180 | npm_config_local_prefix: string;
181 | npm_config_metrics_registry: string;
182 | npm_config_node_gyp: string;
183 | npm_config_noproxy: string;
184 | npm_config_prefix: string;
185 | npm_config_userconfig: string;
186 | npm_config_user_agent: string;
187 | npm_execpath: string;
188 | npm_lifecycle_event: string;
189 | npm_lifecycle_script: string;
190 | npm_node_execpath: string;
191 | npm_package_json: string;
192 | npm_package_name: string;
193 | npm_package_version: string;
194 | NPM_PREFIX_NPM_CLI_JS: string;
195 | NUMBER_OF_PROCESSORS: string;
196 | NVTOOLSEXT_PATH: string;
197 | OneDrive: string;
198 | OPENAI_API_KEY: string;
199 | openai_cookie_file: string;
200 | OS: string;
201 | Path: string;
202 | PATHEXT: string;
203 | POWERSHELL_DISTRIBUTION_CHANNEL: string;
204 | PROCESSOR_ARCHITECTURE: string;
205 | PROCESSOR_IDENTIFIER: string;
206 | PROCESSOR_LEVEL: string;
207 | PROCESSOR_REVISION: string;
208 | ProgramData: string;
209 | ProgramFiles: string;
210 | ProgramW6432: string;
211 | PROMPT: string;
212 | PROVER9HOME: string;
213 | PSModulePath: string;
214 | PUBLIC: string;
215 | RlsSvcPort: string;
216 | SESSIONNAME: string;
217 | ShadowEnv: string;
218 | SystemDrive: string;
219 | SystemRoot: string;
220 | TEMP: string;
221 | TMP: string;
222 | USERDOMAIN: string;
223 | USERDOMAIN_ROAMINGPROFILE: string;
224 | USERNAME: string;
225 | USERPROFILE: string;
226 | windir: string;
227 | WSLENV: string;
228 | WT_PROFILE_ID: string;
229 | WT_SESSION: string;
230 | [key: `PUBLIC_${string}`]: undefined;
231 | [key: `${string}`]: string | undefined;
232 | }
233 | }
234 |
235 | /**
236 | * Similar to [`$env/dynamic/private`](https://kit.svelte.dev/docs/modules#$env-dynamic-private), but only includes variables that begin with [`config.kit.env.publicPrefix`](https://kit.svelte.dev/docs/configuration#env) (which defaults to `PUBLIC_`), and can therefore safely be exposed to client-side code.
237 | *
238 | * Note that public dynamic environment variables must all be sent from the server to the client, causing larger network requests — when possible, use `$env/static/public` instead.
239 | *
240 | * ```ts
241 | * import { env } from '$env/dynamic/public';
242 | * console.log(env.PUBLIC_DEPLOYMENT_SPECIFIC_VARIABLE);
243 | * ```
244 | */
245 | declare module '$env/dynamic/public' {
246 | export const env: {
247 | [key: `PUBLIC_${string}`]: string | undefined;
248 | }
249 | }
250 |
--------------------------------------------------------------------------------
/src/lib/Mindmap.svelte:
--------------------------------------------------------------------------------
1 |
218 |
219 |
220 |
221 |
222 |
223 |
226 |
227 |
--------------------------------------------------------------------------------
/src/lib/Menu.svelte:
--------------------------------------------------------------------------------
1 |
306 |
307 |
308 |
309 |
310 |
311 | {#if showSlideshow}
312 |
313 | {#if slides[currentSlide]}
314 |
{@html markdownToHTML(slides[currentSlide])}
315 | {/if}
316 |
317 | {:else}
318 |
334 | {/if}
335 |
336 |
375 |
--------------------------------------------------------------------------------