create-routify 0.0.0-reserve → 1.2.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.
- package/README.md +23 -0
- package/package.json +27 -14
- package/src/bin.js +14 -0
- package/src/index.js +108 -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 +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Create Routify
|
|
2
|
+
|
|
3
|
+
Welcome to the new Routiy CLI! This CLI currently supports both version 2 & 3 (beta) of Routify.
|
|
4
|
+
|
|
5
|
+
# Get Started
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npm init routify@latest
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
# CLI Options
|
|
12
|
+
|
|
13
|
+
We have designed the cli to be able to be run in headless mode, as such the following options are available:
|
|
14
|
+
|
|
15
|
+
> Don't worry, most users won't need these as everyting is fully graphical first!
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
npm init routify [directory-name]
|
|
19
|
+
|
|
20
|
+
-h, --help get the help menu
|
|
21
|
+
-v, --version use this to set the version of routify, e.g. 3
|
|
22
|
+
-f, --force this option bypasses directory checks, be careful as might overwrite files!
|
|
23
|
+
```
|
package/package.json
CHANGED
|
@@ -1,32 +1,45 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-routify",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "A powerful cli for
|
|
3
|
+
"version": "1.2.1",
|
|
4
|
+
"description": "A powerful cli for super-powering 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
21
|
"routify",
|
|
18
|
-
"routify
|
|
19
|
-
"
|
|
20
|
-
"routify
|
|
21
|
-
"
|
|
22
|
+
"create routify",
|
|
23
|
+
"npm init",
|
|
24
|
+
"@roxi/routify",
|
|
25
|
+
"npm init routify",
|
|
26
|
+
"routify 3",
|
|
27
|
+
"routify 2"
|
|
22
28
|
],
|
|
23
29
|
"author": "ghostdevbusiness@gmail.com",
|
|
24
|
-
"license": "
|
|
30
|
+
"license": "MIT",
|
|
25
31
|
"bugs": {
|
|
26
|
-
"url": "https://github.com/roxiness/routify
|
|
32
|
+
"url": "https://github.com/roxiness/create-routify/issues"
|
|
27
33
|
},
|
|
28
34
|
"dependencies": {
|
|
29
|
-
"
|
|
30
|
-
"
|
|
35
|
+
"kleur": "^4.1.4",
|
|
36
|
+
"log-symbols": "^5.1.0",
|
|
37
|
+
"minimist": "^1.2.5",
|
|
38
|
+
"prompts": "^2.4.2",
|
|
39
|
+
"update-notifier": "^5.1.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/prompts": "^2.0.14",
|
|
43
|
+
"@types/update-notifier": "^5.1.0"
|
|
31
44
|
}
|
|
32
|
-
}
|
|
45
|
+
}
|
package/src/bin.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
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 minimist from 'minimist';
|
|
6
|
+
|
|
7
|
+
const args = minimist(process.argv.slice(2));
|
|
8
|
+
|
|
9
|
+
run({ args });
|
|
10
|
+
|
|
11
|
+
try {
|
|
12
|
+
const pkg = await readFile('../package.json', 'utf-8');
|
|
13
|
+
updateNotifier({ pkg: JSON.parse(pkg) }).notify();
|
|
14
|
+
} catch {}
|
package/src/index.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { onCancel } from './utils/prompts.js';
|
|
2
|
+
import { existsSync, readdirSync } from 'fs';
|
|
3
|
+
import { mkdir } from 'fs/promises';
|
|
4
|
+
import symbols from 'log-symbols';
|
|
5
|
+
import { relative } from 'path';
|
|
6
|
+
import { resolve } from 'path';
|
|
7
|
+
import prompts from 'prompts';
|
|
8
|
+
import k from 'kleur';
|
|
9
|
+
|
|
10
|
+
const versions = {
|
|
11
|
+
2: () => import('./versions/two.js'),
|
|
12
|
+
3: () => import('./versions/three/index.js'),
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const helpText = ` npm init routify [directory-name]
|
|
16
|
+
|
|
17
|
+
-h, --help get the help menu
|
|
18
|
+
-v, --version use this to set the version of routify, e.g. 3
|
|
19
|
+
-f, --force this option bypasses directory checks, be careful as might overwrite files!`;
|
|
20
|
+
|
|
21
|
+
async function getVersion(args) {
|
|
22
|
+
const argsVersion = args.v || args.version;
|
|
23
|
+
if (argsVersion) return argsVersion;
|
|
24
|
+
|
|
25
|
+
const { version } = await prompts(
|
|
26
|
+
{
|
|
27
|
+
type: 'select',
|
|
28
|
+
name: 'version',
|
|
29
|
+
message: 'Routify Version:',
|
|
30
|
+
choices: [
|
|
31
|
+
{ title: 'Routify 2', value: 2 },
|
|
32
|
+
{
|
|
33
|
+
title: `Routify 3 ${k.bold().magenta('[BETA]')}`,
|
|
34
|
+
value: 3,
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
{ onCancel },
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
return version;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const run = async ({ args }) => {
|
|
45
|
+
console.log(` ${k.dim(`v${'1.0.0'}`)}`);
|
|
46
|
+
console.log(` ${k.bold().magenta('Routify')} ${k.magenta().dim('CLI')}`);
|
|
47
|
+
console.log();
|
|
48
|
+
|
|
49
|
+
if (args.h || args.help) {
|
|
50
|
+
return console.log(helpText);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const version = await getVersion(args);
|
|
54
|
+
const force = args.f || args.force;
|
|
55
|
+
|
|
56
|
+
if (!Object.keys(versions).includes(version.toString()))
|
|
57
|
+
return console.log(` ${k.red(`Version ${version} not found`)}`);
|
|
58
|
+
|
|
59
|
+
const projectName = args._[0] || '.';
|
|
60
|
+
const projectDir = resolve(projectName.toString());
|
|
61
|
+
|
|
62
|
+
if (
|
|
63
|
+
existsSync(projectDir) &&
|
|
64
|
+
readdirSync(projectDir).length > 0 &&
|
|
65
|
+
!force
|
|
66
|
+
) {
|
|
67
|
+
const { proceed } = await prompts(
|
|
68
|
+
{
|
|
69
|
+
type: 'confirm',
|
|
70
|
+
message: `Directory is not empty, continue?`,
|
|
71
|
+
name: 'proceed',
|
|
72
|
+
},
|
|
73
|
+
{ onCancel },
|
|
74
|
+
);
|
|
75
|
+
|
|
76
|
+
if (!proceed) return onCancel();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
await mkdir(projectDir, { recursive: true });
|
|
80
|
+
|
|
81
|
+
await runVersion(version, { args, projectDir });
|
|
82
|
+
|
|
83
|
+
console.log();
|
|
84
|
+
console.log(` ${k.green('All Done!')}`);
|
|
85
|
+
console.log();
|
|
86
|
+
console.log(` Now you can:`);
|
|
87
|
+
|
|
88
|
+
let i = 1;
|
|
89
|
+
|
|
90
|
+
if (relative(process.cwd(), projectDir) != '')
|
|
91
|
+
console.log(` ${i++}) cd ${relative(process.cwd(), projectDir)}`);
|
|
92
|
+
|
|
93
|
+
console.log(` ${i++}) npm install`);
|
|
94
|
+
console.log(` ${i++}) npm run dev`);
|
|
95
|
+
|
|
96
|
+
console.log();
|
|
97
|
+
|
|
98
|
+
console.log(
|
|
99
|
+
`${symbols.success} If you need help, ${k.blue(
|
|
100
|
+
'join the Discord',
|
|
101
|
+
)}: https://discord.com/invite/ntKJD5B`,
|
|
102
|
+
);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
const runVersion = async (version, args) => {
|
|
106
|
+
const { run } = await versions[version]();
|
|
107
|
+
return run(args);
|
|
108
|
+
};
|
|
@@ -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>
|