create-routify 0.0.0-reserve → 1.0.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.
- package/{readme.md → README.md} +0 -0
- package/package.json +18 -11
- package/src/bin.js +12 -0
- package/src/index.js +79 -0
- package/src/utils/prompts.js +10 -0
- package/src/versions/three/examples/buildtime-data/index.html +31 -0
- package/src/versions/three/examples/buildtime-data/package.json +15 -0
- package/src/versions/three/examples/buildtime-data/src/App.svelte +6 -0
- package/src/versions/three/examples/buildtime-data/src/main.js +5 -0
- package/src/versions/three/examples/buildtime-data/src/routes/index.meta.js +40 -0
- package/src/versions/three/examples/buildtime-data/src/routes/index.svelte +26 -0
- package/src/versions/three/examples/buildtime-data/vite.config.js +24 -0
- package/src/versions/three/examples/experiment/index.html +31 -0
- package/src/versions/three/examples/experiment/jsconfig.json +20 -0
- package/src/versions/three/examples/experiment/package.json +18 -0
- package/src/versions/three/examples/experiment/src/App.svelte +6 -0
- package/src/versions/three/examples/experiment/src/main.js +5 -0
- package/src/versions/three/examples/experiment/src/routes/[page].svelte +41 -0
- package/src/versions/three/examples/experiment/src/routes/_navigation.svelte +17 -0
- package/src/versions/three/examples/experiment/src/routes/index.svelte +3 -0
- package/src/versions/three/examples/experiment/src/routes/pages/contact/index.md +1 -0
- package/src/versions/three/examples/experiment/src/routes/pages/gallery/galcontent/foo.svelte +1 -0
- package/src/versions/three/examples/experiment/src/routes/pages/gallery/galcontent/index.md +3 -0
- package/src/versions/three/examples/experiment/src/routes/pages/gallery/index.svelte +15 -0
- package/src/versions/three/examples/experiment/src/routes/pages/home/index.md +1 -0
- package/src/versions/three/examples/experiment/vite.config.js +27 -0
- package/src/versions/three/examples/kitchensink/index.html +18 -0
- package/src/versions/three/examples/kitchensink/package.json +16 -0
- package/src/versions/three/examples/kitchensink/src/App.svelte +6 -0
- package/src/versions/three/examples/kitchensink/src/components/Navigation.svelte +29 -0
- package/src/versions/three/examples/kitchensink/src/main.js +5 -0
- package/src/versions/three/examples/kitchensink/src/routes/_module.svelte +8 -0
- package/src/versions/three/examples/kitchensink/src/routes/composition/index.svelte +5 -0
- package/src/versions/three/examples/kitchensink/src/routes/composition/reset/_module.svelte +2 -0
- package/src/versions/three/examples/kitchensink/src/routes/composition/reset/index.svelte +7 -0
- package/src/versions/three/examples/kitchensink/src/routes/index.md +2 -0
- package/src/versions/three/examples/kitchensink/src/routes/multi-router/_module.md +4 -0
- package/src/versions/three/examples/kitchensink/src/routes/multi-router/basic.svelte +13 -0
- package/src/versions/three/examples/kitchensink/src/routes/multi-router/index.svelte +0 -0
- package/src/versions/three/examples/kitchensink/src/routes/multi-router/rootnode.svelte +15 -0
- package/src/versions/three/examples/kitchensink/src/routes/redirect/index.svelte +10 -0
- package/src/versions/three/examples/kitchensink/vite.config.js +24 -0
- package/src/versions/three/examples/microframework/app/index.html +31 -0
- package/src/versions/three/examples/microframework/app/package.json +15 -0
- package/src/versions/three/examples/microframework/app/src/App.svelte +24 -0
- package/src/versions/three/examples/microframework/app/src/main.js +5 -0
- package/src/versions/three/examples/microframework/app/src/routes/_module.md +3 -0
- package/src/versions/three/examples/microframework/app/src/routes/index.md +1 -0
- package/src/versions/three/examples/microframework/app/src/routes/internal-module/index.md +1 -0
- package/src/versions/three/examples/microframework/app/vite.config.js +29 -0
- package/src/versions/three/examples/microframework/module/index.html +31 -0
- package/src/versions/three/examples/microframework/module/package.json +15 -0
- package/src/versions/three/examples/microframework/module/src/App.svelte +6 -0
- package/src/versions/three/examples/microframework/module/src/main.js +5 -0
- package/src/versions/three/examples/microframework/module/src/routes/external-page.md +1 -0
- package/src/versions/three/examples/microframework/module/src/routes/index.svelte +7 -0
- package/src/versions/three/examples/microframework/module/vite.config.js +24 -0
- package/src/versions/three/examples/multi-router/index.html +24 -0
- package/src/versions/three/examples/multi-router/package.json +16 -0
- package/src/versions/three/examples/multi-router/src/App.svelte +8 -0
- package/src/versions/three/examples/multi-router/src/main.js +5 -0
- package/src/versions/three/examples/multi-router/src/routes/_module.svelte +5 -0
- package/src/versions/three/examples/multi-router/src/routes/index.md +4 -0
- package/src/versions/three/examples/multi-router/src/routes/page-with-widget.svelte +7 -0
- package/src/versions/three/examples/multi-router/src/widget/_module.svelte +7 -0
- package/src/versions/three/examples/multi-router/src/widget/index.md +1 -0
- package/src/versions/three/examples/multi-router/src/widget/page1.md +1 -0
- package/src/versions/three/examples/multi-router/src/widget/page2.md +1 -0
- package/src/versions/three/examples/multi-router/vite.config.js +29 -0
- package/src/versions/three/examples/portfolio/.persistent/src/pages/2.projects/_module.svelte/fetchRepos_reponames-27-4zq41g.json +735 -0
- package/src/versions/three/examples/portfolio/package.json +23 -0
- package/src/versions/three/examples/portfolio/src/app.html +18 -0
- package/src/versions/three/examples/portfolio/src/global.d.ts +1 -0
- package/src/versions/three/examples/portfolio/src/pages/1.home/index.svelte +3 -0
- package/src/versions/three/examples/portfolio/src/pages/2.projects/[project].svelte +41 -0
- package/src/versions/three/examples/portfolio/src/pages/2.projects/_module.meta.js +36 -0
- package/src/versions/three/examples/portfolio/src/pages/2.projects/_module.svelte +28 -0
- package/src/versions/three/examples/portfolio/src/pages/3.about-me/_module.svelte +3 -0
- package/src/versions/three/examples/portfolio/src/pages/3.about-me/index.svelte +1 -0
- package/src/versions/three/examples/portfolio/src/pages/_loader.svelte +15 -0
- package/src/versions/three/examples/portfolio/src/pages/_module.svelte +41 -0
- package/src/versions/three/examples/portfolio/src/pages/_navigation.svelte +30 -0
- package/src/versions/three/examples/portfolio/src/pages/index.svelte +5 -0
- package/src/versions/three/examples/portfolio/src/routes/[...index].svelte +12 -0
- package/src/versions/three/examples/portfolio/src/utils/github.js +21 -0
- package/src/versions/three/examples/portfolio/static/favicon.png +0 -0
- package/src/versions/three/examples/portfolio/svelte.config.js +26 -0
- package/src/versions/three/examples/subpath/index.html +31 -0
- package/src/versions/three/examples/subpath/package.json +16 -0
- package/src/versions/three/examples/subpath/src/App.svelte +12 -0
- package/src/versions/three/examples/subpath/src/main.js +5 -0
- package/src/versions/three/examples/subpath/src/routes/foo.svelte +1 -0
- package/src/versions/three/examples/subpath/src/routes/index.svelte +7 -0
- package/src/versions/three/examples/subpath/vite.config.js +24 -0
- package/src/versions/three/examples/sveltekit/package.json +20 -0
- package/src/versions/three/examples/sveltekit/src/app.html +12 -0
- package/src/versions/three/examples/sveltekit/src/global.d.ts +1 -0
- package/src/versions/three/examples/sveltekit/src/pages/a/page.svelte +1 -0
- package/src/versions/three/examples/sveltekit/src/pages/index.svelte +6 -0
- package/src/versions/three/examples/sveltekit/src/routes/[...index].svelte +11 -0
- package/src/versions/three/examples/sveltekit/static/favicon.png +0 -0
- package/src/versions/three/examples/sveltekit/svelte.config.js +20 -0
- package/src/versions/three/index.js +81 -0
- package/src/versions/three/skeleton/index.html +31 -0
- package/src/versions/three/skeleton/package.json +16 -0
- package/src/versions/three/skeleton/src/App.svelte +6 -0
- package/src/versions/three/skeleton/src/main.js +5 -0
- package/src/versions/three/skeleton/src/routes/index.md +1 -0
- package/src/versions/three/skeleton/vite.config.js +24 -0
- package/src/versions/two.js +3 -0
- package/bin/routify-cli.js +0 -31
package/{readme.md → README.md}
RENAMED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,32 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-routify",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.0-0",
|
|
4
4
|
"description": "A powerful cli for simplifying your routify development experience",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"files": [
|
|
7
|
+
"files": [
|
|
8
|
+
"src",
|
|
9
|
+
"LICENSE",
|
|
10
|
+
"README.md"
|
|
11
|
+
],
|
|
8
12
|
"bin": {
|
|
9
|
-
"create-routify": "bin
|
|
13
|
+
"create-routify": "./src/bin.js"
|
|
10
14
|
},
|
|
11
15
|
"repository": {
|
|
12
16
|
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/roxiness/routify
|
|
17
|
+
"url": "git+https://github.com/roxiness/create-routify.git"
|
|
14
18
|
},
|
|
15
19
|
"homepage": "https://routify.dev",
|
|
16
20
|
"keywords": [
|
|
17
|
-
"routify"
|
|
18
|
-
"routify-cli",
|
|
19
|
-
"routify cli",
|
|
20
|
-
"routify kit",
|
|
21
|
-
"cli"
|
|
21
|
+
"routify"
|
|
22
22
|
],
|
|
23
23
|
"author": "ghostdevbusiness@gmail.com",
|
|
24
24
|
"license": "ISC",
|
|
25
25
|
"bugs": {
|
|
26
|
-
"url": "https://github.com/roxiness/routify
|
|
26
|
+
"url": "https://github.com/roxiness/create-routify/issues"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"dashargs": "^4.1.
|
|
29
|
+
"dashargs": "^4.1.5",
|
|
30
|
+
"kleur": "^4.1.4",
|
|
31
|
+
"log-symbols": "^5.1.0",
|
|
32
|
+
"prompts": "^2.4.2",
|
|
30
33
|
"update-notifier": "^5.0.1"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/prompts": "^2.0.14",
|
|
37
|
+
"@types/update-notifier": "^5.1.0"
|
|
31
38
|
}
|
|
32
39
|
}
|
package/src/bin.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import updateNotifier from 'update-notifier';
|
|
3
|
+
import { readFile } from 'fs/promises';
|
|
4
|
+
import { run } from '../src/index.js';
|
|
5
|
+
import { argv } from 'dashargs';
|
|
6
|
+
|
|
7
|
+
run(argv());
|
|
8
|
+
|
|
9
|
+
try {
|
|
10
|
+
const pkg = await readFile('../package.json', 'utf-8');
|
|
11
|
+
updateNotifier({ pkg: JSON.parse(pkg) }).notify();
|
|
12
|
+
} catch {}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { onCancel } from './utils/prompts.js';
|
|
2
|
+
import { mkdir } from 'fs/promises';
|
|
3
|
+
import symbols from 'log-symbols';
|
|
4
|
+
import { relative } from 'path';
|
|
5
|
+
import { resolve } from 'path';
|
|
6
|
+
import prompts from 'prompts';
|
|
7
|
+
import k from 'kleur';
|
|
8
|
+
|
|
9
|
+
const versions = {
|
|
10
|
+
2: () => import('./versions/two.js'),
|
|
11
|
+
3: () => import('./versions/three/index.js'),
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
/** @param {import('dashargs').DashArgs} args */
|
|
15
|
+
export const run = async (args) => {
|
|
16
|
+
console.clear(); // ! REMOVE ME
|
|
17
|
+
|
|
18
|
+
console.log(` ${k.dim(`v${'1.0.0'}`)}`);
|
|
19
|
+
console.log(` ${k.bold().magenta('Routify')} ${k.magenta().dim('CLI')}`);
|
|
20
|
+
console.log();
|
|
21
|
+
|
|
22
|
+
const { version, projectName } = await prompts(
|
|
23
|
+
[
|
|
24
|
+
// TODO disable this if version cli opt
|
|
25
|
+
{
|
|
26
|
+
type: 'select',
|
|
27
|
+
name: 'version',
|
|
28
|
+
message: 'Routify Version:',
|
|
29
|
+
choices: [
|
|
30
|
+
{ title: 'Routify 2', value: 2 },
|
|
31
|
+
{
|
|
32
|
+
title: `Routify 3 ${k.bold().magenta('[BETA]')}`,
|
|
33
|
+
value: 3,
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
// TODO disable this if file name given
|
|
38
|
+
{
|
|
39
|
+
type: 'text',
|
|
40
|
+
name: 'projectName',
|
|
41
|
+
message: 'Project Name: ',
|
|
42
|
+
initial: 'my-routify-app',
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
{ onCancel },
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
const projectDir = resolve(projectName);
|
|
49
|
+
|
|
50
|
+
// TODO if dir exists and isn't empty check if it's ok to continue
|
|
51
|
+
// TODO make passing dir npm init routify <dir>
|
|
52
|
+
await mkdir(projectDir, { recursive: true });
|
|
53
|
+
|
|
54
|
+
await runVersion(version, { args, projectDir });
|
|
55
|
+
|
|
56
|
+
console.log();
|
|
57
|
+
console.log(` ${k.green('All Done!')}`);
|
|
58
|
+
console.log();
|
|
59
|
+
console.log(` Now you can:`);
|
|
60
|
+
|
|
61
|
+
let i = 1;
|
|
62
|
+
|
|
63
|
+
console.log(` ${i++}) cd ${relative(process.cwd(), projectDir)}`);
|
|
64
|
+
console.log(` ${i++}) npm install`);
|
|
65
|
+
console.log(` ${i++}) npm run dev`);
|
|
66
|
+
|
|
67
|
+
console.log();
|
|
68
|
+
|
|
69
|
+
console.log(
|
|
70
|
+
`${symbols.success} If you need help, ${k.blue(
|
|
71
|
+
'join the Discord',
|
|
72
|
+
)}: https://discord.com/invite/ntKJD5B`,
|
|
73
|
+
);
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const runVersion = async (version, args) => {
|
|
77
|
+
const { run } = await versions[version]();
|
|
78
|
+
return run(args);
|
|
79
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
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>
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
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}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
})
|
|
@@ -0,0 +1,31 @@
|
|
|
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>
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
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>
|
|
@@ -0,0 +1,17 @@
|
|
|
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>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Contact
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
foo
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Home
|
|
@@ -0,0 +1,27 @@
|
|
|
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
|
+
})
|
|
@@ -0,0 +1,18 @@
|
|
|
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>
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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>
|
|
@@ -0,0 +1,13 @@
|
|
|
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}
|