create-routify 1.3.2 → 1.4.1

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 (100) hide show
  1. package/package.json +2 -1
  2. package/src/versions/three/index.js +25 -33
  3. package/src/versions/three/utils.js +11 -0
  4. package/src/versions/three/examples/buildtime-data/index.html +0 -31
  5. package/src/versions/three/examples/buildtime-data/package.json +0 -15
  6. package/src/versions/three/examples/buildtime-data/src/App.svelte +0 -6
  7. package/src/versions/three/examples/buildtime-data/src/main.js +0 -5
  8. package/src/versions/three/examples/buildtime-data/src/routes/index.meta.js +0 -40
  9. package/src/versions/three/examples/buildtime-data/src/routes/index.svelte +0 -26
  10. package/src/versions/three/examples/buildtime-data/vite.config.js +0 -24
  11. package/src/versions/three/examples/experiment/index.html +0 -31
  12. package/src/versions/three/examples/experiment/jsconfig.json +0 -20
  13. package/src/versions/three/examples/experiment/package.json +0 -18
  14. package/src/versions/three/examples/experiment/src/App.svelte +0 -6
  15. package/src/versions/three/examples/experiment/src/main.js +0 -5
  16. package/src/versions/three/examples/experiment/src/routes/[page].svelte +0 -41
  17. package/src/versions/three/examples/experiment/src/routes/_navigation.svelte +0 -17
  18. package/src/versions/three/examples/experiment/src/routes/index.svelte +0 -3
  19. package/src/versions/three/examples/experiment/src/routes/pages/contact/index.md +0 -1
  20. package/src/versions/three/examples/experiment/src/routes/pages/gallery/galcontent/foo.svelte +0 -1
  21. package/src/versions/three/examples/experiment/src/routes/pages/gallery/galcontent/index.md +0 -3
  22. package/src/versions/three/examples/experiment/src/routes/pages/gallery/index.svelte +0 -15
  23. package/src/versions/three/examples/experiment/src/routes/pages/home/index.md +0 -1
  24. package/src/versions/three/examples/experiment/vite.config.js +0 -27
  25. package/src/versions/three/examples/kitchensink/index.html +0 -18
  26. package/src/versions/three/examples/kitchensink/package.json +0 -16
  27. package/src/versions/three/examples/kitchensink/src/App.svelte +0 -6
  28. package/src/versions/three/examples/kitchensink/src/components/Navigation.svelte +0 -29
  29. package/src/versions/three/examples/kitchensink/src/main.js +0 -5
  30. package/src/versions/three/examples/kitchensink/src/routes/_module.svelte +0 -8
  31. package/src/versions/three/examples/kitchensink/src/routes/composition/index.svelte +0 -5
  32. package/src/versions/three/examples/kitchensink/src/routes/composition/reset/_module.svelte +0 -2
  33. package/src/versions/three/examples/kitchensink/src/routes/composition/reset/index.svelte +0 -7
  34. package/src/versions/three/examples/kitchensink/src/routes/index.md +0 -2
  35. package/src/versions/three/examples/kitchensink/src/routes/multi-router/_module.md +0 -4
  36. package/src/versions/three/examples/kitchensink/src/routes/multi-router/basic.svelte +0 -13
  37. package/src/versions/three/examples/kitchensink/src/routes/multi-router/index.svelte +0 -0
  38. package/src/versions/three/examples/kitchensink/src/routes/multi-router/rootnode.svelte +0 -15
  39. package/src/versions/three/examples/kitchensink/src/routes/redirect/index.svelte +0 -10
  40. package/src/versions/three/examples/kitchensink/vite.config.js +0 -24
  41. package/src/versions/three/examples/microframework/app/index.html +0 -31
  42. package/src/versions/three/examples/microframework/app/package.json +0 -15
  43. package/src/versions/three/examples/microframework/app/src/App.svelte +0 -24
  44. package/src/versions/three/examples/microframework/app/src/main.js +0 -5
  45. package/src/versions/three/examples/microframework/app/src/routes/_module.md +0 -3
  46. package/src/versions/three/examples/microframework/app/src/routes/index.md +0 -1
  47. package/src/versions/three/examples/microframework/app/src/routes/internal-module/index.md +0 -1
  48. package/src/versions/three/examples/microframework/app/vite.config.js +0 -29
  49. package/src/versions/three/examples/microframework/module/index.html +0 -31
  50. package/src/versions/three/examples/microframework/module/package.json +0 -15
  51. package/src/versions/three/examples/microframework/module/src/App.svelte +0 -6
  52. package/src/versions/three/examples/microframework/module/src/main.js +0 -5
  53. package/src/versions/three/examples/microframework/module/src/routes/external-page.md +0 -1
  54. package/src/versions/three/examples/microframework/module/src/routes/index.svelte +0 -7
  55. package/src/versions/three/examples/microframework/module/vite.config.js +0 -24
  56. package/src/versions/three/examples/multi-router/index.html +0 -24
  57. package/src/versions/three/examples/multi-router/package.json +0 -16
  58. package/src/versions/three/examples/multi-router/src/App.svelte +0 -8
  59. package/src/versions/three/examples/multi-router/src/main.js +0 -5
  60. package/src/versions/three/examples/multi-router/src/routes/_module.svelte +0 -5
  61. package/src/versions/three/examples/multi-router/src/routes/index.md +0 -4
  62. package/src/versions/three/examples/multi-router/src/routes/page-with-widget.svelte +0 -7
  63. package/src/versions/three/examples/multi-router/src/widget/_module.svelte +0 -7
  64. package/src/versions/three/examples/multi-router/src/widget/index.md +0 -1
  65. package/src/versions/three/examples/multi-router/src/widget/page1.md +0 -1
  66. package/src/versions/three/examples/multi-router/src/widget/page2.md +0 -1
  67. package/src/versions/three/examples/multi-router/vite.config.js +0 -29
  68. package/src/versions/three/examples/portfolio/.persistent/src/pages/2.projects/_module.svelte/fetchRepos_reponames-27-4zq41g.json +0 -735
  69. package/src/versions/three/examples/portfolio/package.json +0 -23
  70. package/src/versions/three/examples/portfolio/src/app.html +0 -18
  71. package/src/versions/three/examples/portfolio/src/global.d.ts +0 -1
  72. package/src/versions/three/examples/portfolio/src/pages/1.home/index.svelte +0 -3
  73. package/src/versions/three/examples/portfolio/src/pages/2.projects/[project].svelte +0 -41
  74. package/src/versions/three/examples/portfolio/src/pages/2.projects/_module.meta.js +0 -36
  75. package/src/versions/three/examples/portfolio/src/pages/2.projects/_module.svelte +0 -28
  76. package/src/versions/three/examples/portfolio/src/pages/3.about-me/_module.svelte +0 -3
  77. package/src/versions/three/examples/portfolio/src/pages/3.about-me/index.svelte +0 -1
  78. package/src/versions/three/examples/portfolio/src/pages/_loader.svelte +0 -15
  79. package/src/versions/three/examples/portfolio/src/pages/_module.svelte +0 -41
  80. package/src/versions/three/examples/portfolio/src/pages/_navigation.svelte +0 -30
  81. package/src/versions/three/examples/portfolio/src/pages/index.svelte +0 -5
  82. package/src/versions/three/examples/portfolio/src/routes/[...index].svelte +0 -12
  83. package/src/versions/three/examples/portfolio/src/utils/github.js +0 -21
  84. package/src/versions/three/examples/portfolio/static/favicon.png +0 -0
  85. package/src/versions/three/examples/portfolio/svelte.config.js +0 -26
  86. package/src/versions/three/examples/subpath/index.html +0 -31
  87. package/src/versions/three/examples/subpath/package.json +0 -16
  88. package/src/versions/three/examples/subpath/src/App.svelte +0 -12
  89. package/src/versions/three/examples/subpath/src/main.js +0 -5
  90. package/src/versions/three/examples/subpath/src/routes/foo.svelte +0 -1
  91. package/src/versions/three/examples/subpath/src/routes/index.svelte +0 -7
  92. package/src/versions/three/examples/subpath/vite.config.js +0 -24
  93. package/src/versions/three/examples/sveltekit/package.json +0 -20
  94. package/src/versions/three/examples/sveltekit/src/app.html +0 -12
  95. package/src/versions/three/examples/sveltekit/src/global.d.ts +0 -1
  96. package/src/versions/three/examples/sveltekit/src/pages/a/page.svelte +0 -1
  97. package/src/versions/three/examples/sveltekit/src/pages/index.svelte +0 -6
  98. package/src/versions/three/examples/sveltekit/src/routes/[...index].svelte +0 -11
  99. package/src/versions/three/examples/sveltekit/static/favicon.png +0 -0
  100. package/src/versions/three/examples/sveltekit/svelte.config.js +0 -20
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-routify",
3
- "version": "1.3.2",
3
+ "version": "1.4.1",
4
4
  "description": "A powerful cli for super-powering your routify development experience",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -32,6 +32,7 @@
32
32
  "url": "https://github.com/roxiness/create-routify/issues"
33
33
  },
34
34
  "dependencies": {
35
+ "@roxi/routify": "^3.0.0-next",
35
36
  "kleur": "^4.1.5",
36
37
  "log-symbols": "^5.1.0",
37
38
  "minimist": "^1.2.7",
@@ -1,9 +1,11 @@
1
1
  import { onCancel } from '../../utils/prompts.js';
2
- import { readdir, cp } from 'fs/promises';
2
+ import { readdir, cp, rm } from 'fs/promises';
3
3
  import { join, dirname } from 'path';
4
- import { fileURLToPath } from 'url';
4
+ import { fileURLToPath, pathToFileURL } from 'url';
5
5
  import prompts from 'prompts';
6
6
  import k from 'kleur';
7
+ import { getRoutifyExamplesDir } from './utils.js';
8
+ import { existsSync } from 'fs';
7
9
 
8
10
  const __dirname = dirname(fileURLToPath(import.meta.url));
9
11
 
@@ -31,51 +33,41 @@ function text() {
31
33
  }
32
34
 
33
35
  async function getExampleDir() {
34
- const projects = await readdir(join(__dirname, './examples'));
36
+ const routifyExamplesDir = getRoutifyExamplesDir();
37
+ let dirNames = await readdir(routifyExamplesDir);
38
+ const projects = await Promise.all(
39
+ dirNames
40
+ .map((name) => join(routifyExamplesDir, name))
41
+ .filter((dir) => existsSync(join(dir, 'manifest.js')))
42
+ .map((dir) =>
43
+ import(pathToFileURL(join(dir, 'manifest.js')).pathname).then(
44
+ (m) => ({ dir, manifest: m.default }),
45
+ ),
46
+ ),
47
+ );
35
48
 
36
49
  const { project } = await prompts(
37
50
  {
38
- message: 'Please select a example project',
51
+ message: 'Please select a starter template',
39
52
  name: 'project',
40
53
  type: 'select',
41
- choices: projects.map((value) => ({ title: value, value })),
54
+ choices: projects.map((value) => ({
55
+ title: value.manifest.name,
56
+ description: value.manifest.description,
57
+ value,
58
+ })),
42
59
  },
43
60
  { onCancel },
44
61
  );
45
62
 
46
- return `./examples/${project}`;
63
+ return project.dir;
47
64
  }
48
65
 
49
66
  export const run = async ({ projectDir }) => {
50
67
  text();
51
68
 
52
- const { projectType } = await prompts(
53
- {
54
- type: 'select',
55
- name: 'projectType',
56
- message: 'What template would you like?',
57
- choices: [
58
- {
59
- title: 'Skeleton Project',
60
- value: 'skeleton',
61
- },
62
- {
63
- title: 'Example Project',
64
- value: 'example',
65
- },
66
- ],
67
- },
68
- { onCancel },
69
- );
70
-
71
- if (!['skeleton', 'example'].includes(projectType))
72
- return console.log(` ${k.red('Unable to find type ' + projectType)}`);
73
-
74
- const exampleDir = join(
75
- __dirname,
76
- projectType == 'skeleton' ? './skeleton' : await getExampleDir(),
77
- '/',
78
- );
69
+ const exampleDir = await getExampleDir();
79
70
 
80
71
  await cp(exampleDir, projectDir, { recursive: true });
72
+ await rm(join(projectDir, 'manifest.js'));
81
73
  };
@@ -0,0 +1,11 @@
1
+ import { createRequire } from 'module';
2
+ import { resolve } from 'path';
3
+ const require = createRequire(import.meta.url);
4
+
5
+ /**
6
+ * Returns the directory of @roxi/routify/examples
7
+ */
8
+ export const getRoutifyExamplesDir = () => {
9
+ const routifyPkgJsonPath = require.resolve('@roxi/routify/package.json');
10
+ return resolve(routifyPkgJsonPath, '..', 'examples');
11
+ };
@@ -1,31 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width,initial-scale=1" />
6
-
7
- <title>Svelte app</title>
8
-
9
- <!-- Google Fonts -->
10
- <link
11
- rel="stylesheet"
12
- href="https://fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic"
13
- />
14
-
15
- <!-- CSS Reset -->
16
- <link
17
- rel="stylesheet"
18
- href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.css"
19
- />
20
-
21
- <!-- Milligram CSS -->
22
- <link
23
- rel="stylesheet"
24
- href="https://cdnjs.cloudflare.com/ajax/libs/milligram/1.4.1/milligram.css"
25
- />
26
-
27
- <script type="module" src="/src/main.js"></script>
28
- </head>
29
-
30
- <body></body>
31
- </html>
@@ -1,15 +0,0 @@
1
- {
2
- "type": "module",
3
- "scripts": {
4
- "build": "vite build",
5
- "preview": "vite preview",
6
- "dev": "vite"
7
- },
8
- "devDependencies": {
9
- "@roxi/routify": "^3.0.0-next.1",
10
- "@sveltejs/vite-plugin-svelte": "^1.0.0-next.13",
11
- "mdsvex": "^0.9.3",
12
- "svelte": "^3.39.0",
13
- "vite": "^2.2.3"
14
- }
15
- }
@@ -1,6 +0,0 @@
1
- <script>
2
- import { Router } from '@roxi/routify'
3
- import routes from '../.routify/routes.default.js'
4
- </script>
5
-
6
- <Router {routes} />
@@ -1,5 +0,0 @@
1
- import App from './App.svelte'
2
-
3
- const app = new App({ target: document.body })
4
-
5
- export default app
@@ -1,40 +0,0 @@
1
- /// <reference types="@roxi/routify" />
2
-
3
- /**
4
- * [file].meta.js files provides metadata for nodes.
5
- * They can be used instead of - or along with - inlined metadata.
6
- *
7
- * Meta entries can use directives which enhance functionality.
8
- * These can be added to the entry name with a pipe, Eg.:
9
- *
10
- * `'routify|scoped': 'version 3'`
11
- *
12
- * Here the entry would be available as `meta.routify` in the respective node
13
- * and all its descendants.
14
- *
15
- * Current directives are:
16
- * - scoped: provides the meta entry to all descendant nodes
17
- * - split: uses codesplitting / dynamic import for the value. Entries that
18
- * use the split tag must be accessed with `await` or `entry.then()`
19
- */
20
-
21
- import axios from 'axios'
22
-
23
- /**
24
- * @param {MetaContext} context
25
- */
26
- export default async ({ split }) => {
27
- // fetch luke skywalker data
28
- const luke = (await axios.get('https://swapi.dev/api/people/1/')).data
29
- const { name, gender, ...rest } = luke
30
-
31
- return {
32
- luke: {
33
- name,
34
- gender,
35
- // we're using `split` to exclude `rest` from the Routify bundle
36
- // we can access it from our app with `await meta.luke.data()`
37
- data: split(rest),
38
- },
39
- }
40
- }
@@ -1,26 +0,0 @@
1
- <script>
2
- import { meta } from '@roxi/routify'
3
- let show
4
- console.log($meta)
5
- </script>
6
-
7
- <h1>Routify 3 App</h1>
8
-
9
- <h4>Plain meta</h4>
10
- <pre>
11
- {JSON.stringify($meta, null, 2)}
12
- </pre>
13
-
14
- <br />
15
- <br />
16
-
17
- {#if !show}
18
- <button on:click={() => (show = true)}>show dynamic imported meta</button>
19
- {:else}
20
- <h4>dynamic imported meta</h4>
21
- <pre>
22
- {#await $meta.luke.data() then data}
23
- {JSON.stringify(data, null, 2)}
24
- {/await}
25
- </pre>
26
- {/if}
@@ -1,24 +0,0 @@
1
- import { svelte } from '@sveltejs/vite-plugin-svelte'
2
- import routify from '@roxi/routify/vite-plugin'
3
- import { defineConfig } from 'vite'
4
- import { mdsvex } from 'mdsvex'
5
-
6
- const production = process.env.NODE_ENV === 'production'
7
-
8
- export default defineConfig({
9
- clearScreen: false,
10
-
11
- plugins: [
12
- routify(),
13
- svelte({
14
- emitCss: true,
15
- compilerOptions: {
16
- dev: !production,
17
- },
18
- extensions: ['.md', '.svelte'],
19
- preprocess: [mdsvex({ extension: 'md' })],
20
- }),
21
- ],
22
-
23
- server: { port: 1337 },
24
- })
@@ -1,31 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width,initial-scale=1" />
6
-
7
- <title>Svelte app</title>
8
-
9
- <!-- Google Fonts -->
10
- <link
11
- rel="stylesheet"
12
- href="https://fonts.googleapis.com/css?family=Roboto:300,300italic,700,700italic"
13
- />
14
-
15
- <!-- CSS Reset -->
16
- <link
17
- rel="stylesheet"
18
- href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.css"
19
- />
20
-
21
- <!-- Pico.css -->
22
- <link
23
- rel="stylesheet"
24
- href="https://unpkg.com/@picocss/pico@1.3.3/css/pico.css"
25
- />
26
-
27
- <script type="module" src="/src/main.js"></script>
28
- </head>
29
-
30
- <body></body>
31
- </html>
@@ -1,20 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "checkJs": true,
4
- "baseUrl": ".",
5
- "paths": {
6
- "#cmp/*": ["./src/cmp/*"],
7
- "#root/*": ["./*"]
8
- },
9
- "target": "esnext",
10
- "moduleResolution": "node"
11
- },
12
- "exclude": [
13
- "**/node_modules",
14
- "**/dist",
15
- "**/example",
16
- "**/temp",
17
- "**/output",
18
- "**/.history"
19
- ]
20
- }
@@ -1,18 +0,0 @@
1
- {
2
- "type": "module",
3
- "imports": {
4
- "#cmp/*": "./src/components/*"
5
- },
6
- "scripts": {
7
- "build": "vite build",
8
- "preview": "vite preview",
9
- "dev": "vite"
10
- },
11
- "devDependencies": {
12
- "@roxi/routify": "^3.0.0-next.1",
13
- "@sveltejs/vite-plugin-svelte": "^1.0.0-next.13",
14
- "mdsvex": "^0.9.3",
15
- "svelte": "^3.39.0",
16
- "vite": "^2.2.3"
17
- }
18
- }
@@ -1,6 +0,0 @@
1
- <script>
2
- import { Router } from '@roxi/routify'
3
- import routes from '../.routify/routes.default.js'
4
- </script>
5
-
6
- <Router {routes} />
@@ -1,5 +0,0 @@
1
- import App from './App.svelte'
2
-
3
- const app = new App({ target: document.body })
4
-
5
- export default app
@@ -1,41 +0,0 @@
1
- <script>
2
- import { node, params } from '@roxi/routify'
3
- import Nav from './_navigation.svelte'
4
- const pages = $node.traverse('../pages')
5
- $: index = pages.children.findIndex(page => page.name === $params.page)
6
- </script>
7
-
8
- <div class="app-wrapper" style="--page-index: {index}">
9
- <div id="app">
10
- {#each pages.children as page}
11
- <article class="page">
12
- <svelte:component this={page.traverse('./index').component} />
13
- </article>
14
- {/each}
15
- </div>
16
- </div>
17
-
18
- <Nav {pages} />
19
-
20
- <style>
21
- :global(html),
22
- :global(body),
23
- .app-wrapper,
24
- #app {
25
- height: 100%;
26
- }
27
- .app-wrapper {
28
- overflow: hidden;
29
- }
30
- #app {
31
- display: flex;
32
- flex-direction: row;
33
- transform: translateX(calc(25% + -50% * var(--page-index)));
34
- transition: all 0.3s;
35
- }
36
- article {
37
- margin-left: 20px;
38
- margin-right: 20px;
39
- flex: 0 0 50%;
40
- }
41
- </style>
@@ -1,17 +0,0 @@
1
- <script>
2
- export let pages
3
- </script>
4
-
5
- <nav>
6
- {#each pages.children as page}
7
- <a href="/{page.name}">{page.name}</a>
8
- {/each}
9
- </nav>
10
-
11
- <style>
12
- nav {
13
- position: absolute;
14
- bottom: 0;
15
- /* background: white; */
16
- }
17
- </style>
@@ -1,3 +0,0 @@
1
- <script context="module">
2
- export const guard = ctx => ctx.router.url.replace('/home')
3
- </script>
@@ -1,15 +0,0 @@
1
- <script>
2
- import { Router } from '@roxi/routify'
3
- export let context
4
- let instance, router
5
- const galcontentNode = context.node.traverse('../galcontent')
6
- $: console.log('instance', instance)
7
- $: console.log('router', router)
8
- console.log('galcontentNode', galcontentNode)
9
- </script>
10
-
11
- <h1>Gallery</h1>
12
-
13
- r
14
- <Router rootNode={galcontentNode} name="box" bind:instance bind:router />
15
- /r
@@ -1,27 +0,0 @@
1
- import { defineConfig } from 'vite'
2
- import { svelte } from '@sveltejs/vite-plugin-svelte'
3
- import { mdsvex } from 'mdsvex'
4
- import routify from '@roxi/routify/vite-plugin'
5
-
6
- const production = process.env.NODE_ENV === 'production'
7
-
8
- export default defineConfig({
9
- clearScreen: false,
10
- plugins: [
11
- routify(),
12
- svelte({
13
- emitCss: true,
14
- compilerOptions: {
15
- dev: !production,
16
- },
17
- extensions: ['.md', '.svelte'],
18
- preprocess: [mdsvex({ extension: 'md' })],
19
- }),
20
- ],
21
- server: { port: 1337 },
22
- resolve: {
23
- alias: {
24
- '#cmp': process.cwd() + '/src/components',
25
- },
26
- },
27
- })
@@ -1,18 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="utf-8" />
6
- <meta name="viewport" content="width=device-width,initial-scale=1" />
7
-
8
- <title>Svelte app</title>
9
-
10
- <!-- Pico.css -->
11
- <link rel="stylesheet" href="https://unpkg.com/@picocss/pico@1.3.3/css/pico.css" />
12
-
13
- <script type="module" src="/src/main.js"></script>
14
- </head>
15
-
16
- <body></body>
17
-
18
- </html>
@@ -1,16 +0,0 @@
1
- {
2
- "name": "kitchensink",
3
- "type": "module",
4
- "scripts": {
5
- "build": "vite build",
6
- "preview": "vite preview",
7
- "dev": "vite"
8
- },
9
- "devDependencies": {
10
- "@roxi/routify": "^3.0.0-next.1",
11
- "@sveltejs/vite-plugin-svelte": "^1.0.0-next.13",
12
- "mdsvex": "^0.9.3",
13
- "svelte": "^3.39.0",
14
- "vite": "^2.2.3"
15
- }
16
- }
@@ -1,6 +0,0 @@
1
- <script>
2
- import { Router } from '@roxi/routify'
3
- import routes from '../.routify/routes.default.js'
4
- </script>
5
-
6
- <Router {routes} />
@@ -1,29 +0,0 @@
1
- <script>
2
- import { isActive, node } from '@roxi/routify'
3
- export let pages
4
- $: liveUrl = index => pages && pages[index]?.router?.url.external()
5
- </script>
6
-
7
- <nav class="container">
8
- <ul>
9
- <li>
10
- <h1>
11
- <a href="/">Portfolio</a>
12
- </h1>
13
- </li>
14
- </ul>
15
- <ul>
16
- {#each $node.pages as childNode, index}
17
- <li class:isActive={$isActive(childNode.path)}>
18
- <a href={liveUrl(index) || childNode.path}
19
- >{childNode.meta.title || childNode.name}</a>
20
- </li>
21
- {/each}
22
- </ul>
23
- </nav>
24
-
25
- <style>
26
- .isActive a {
27
- text-decoration: underline;
28
- }
29
- </style>
@@ -1,5 +0,0 @@
1
- import App from './App.svelte'
2
-
3
- const app = new App({ target: document.body })
4
-
5
- export default app
@@ -1,8 +0,0 @@
1
- <script>
2
- import Navigation from '../components/Navigation.svelte'
3
- </script>
4
-
5
- <Navigation />
6
- <div class="root-module container">
7
- <slot />
8
- </div>
@@ -1,5 +0,0 @@
1
- <script>
2
- import { url } from '@roxi/routify'
3
- </script>
4
-
5
- <a href={$url('../reset')}>reset</a>
@@ -1,2 +0,0 @@
1
- <slot />
2
- <!-- routify:meta reset -->
@@ -1,7 +0,0 @@
1
- <script>
2
- import { url } from '@roxi/routify'
3
- </script>
4
-
5
- # I'm all alone!
6
- <a href={$url('../..')}>Go back</a>
7
- <!-- [go back](/composition) -->
@@ -1,2 +0,0 @@
1
- # Routify 3 Kitchen Sink
2
-
@@ -1,4 +0,0 @@
1
- [basic](/multi-router/basic)
2
- [rootNode](/multi-router/rootnode)
3
-
4
- <slot />
@@ -1,13 +0,0 @@
1
- <script>
2
- import { Router, activeRoute } from '@roxi/routify'
3
-
4
- const hasNestedRouter = $activeRoute.router.name === 'nested'
5
- </script>
6
-
7
- {#if !hasNestedRouter}
8
- <article>
9
- <Router name="nested" />
10
- </article>
11
- {:else}
12
- <p>We could nest routers inifintely, but let's not...</p>
13
- {/if}
@@ -1,15 +0,0 @@
1
- <script>
2
- import { Router, activeRoute } from '@roxi/routify'
3
-
4
- const { router } = $activeRoute
5
- const hasNestedRouter = router.name === 'nested'
6
- const rootNode = router.instance.nodeIndex.find(node => node.path === '/composition')
7
- </script>
8
-
9
- {#if !hasNestedRouter}
10
- <article>
11
- <Router name="rootnode" {rootNode} />
12
- </article>
13
- {:else}
14
- <p>We could nest routers inifintely, but let's not...</p>
15
- {/if}
@@ -1,10 +0,0 @@
1
- <script context="module">
2
- /** @type {RoutifyLoad} */
3
- const load = () => {
4
- return {
5
- redirect: '/composition',
6
- }
7
- }
8
-
9
- export { load }
10
- </script>