create-refrakt 0.9.1 → 0.9.2
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/dist/bin.js +19 -19
- package/dist/bin.js.map +1 -1
- package/dist/scaffold.d.ts +2 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +191 -30
- package/dist/scaffold.js.map +1 -1
- package/package.json +6 -2
- package/template-astro/_gitignore +2 -0
- package/template-astro/astro.config.mjs +6 -0
- package/template-astro/content/_layout.md +14 -0
- package/template-astro/content/docs/getting-started.md +40 -0
- package/template-astro/content/index.md +18 -0
- package/template-astro/src/pages/[...slug].astro +89 -0
- package/template-astro/tsconfig.json +7 -0
- package/template-eleventy/_gitignore +2 -0
- package/template-eleventy/content/_layout.md +14 -0
- package/template-eleventy/content/docs/getting-started.md +40 -0
- package/template-eleventy/content/index.md +18 -0
- package/template-eleventy/eleventy.config.js +22 -0
- package/template-eleventy/src/_data/refrakt.js +5 -0
- package/template-eleventy/src/_includes/base.njk +22 -0
- package/template-eleventy/src/pages.njk +9 -0
- package/template-next/_gitignore +2 -0
- package/template-next/app/[...slug]/page.tsx +79 -0
- package/template-next/app/layout.tsx +10 -0
- package/template-next/content/_layout.md +14 -0
- package/template-next/content/docs/getting-started.md +40 -0
- package/template-next/content/index.md +18 -0
- package/template-next/next.config.mjs +14 -0
- package/template-next/tsconfig.json +21 -0
- package/template-nuxt/_gitignore +2 -0
- package/template-nuxt/content/_layout.md +14 -0
- package/template-nuxt/content/docs/getting-started.md +40 -0
- package/template-nuxt/content/index.md +18 -0
- package/template-nuxt/nuxt.config.ts +3 -0
- package/template-nuxt/pages/[...slug].vue +70 -0
- package/template-nuxt/tsconfig.json +3 -0
package/dist/bin.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { scaffold, scaffoldTheme } from './scaffold.js';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
const args = process.argv.slice(2);
|
|
5
|
+
const VALID_TARGETS = ['sveltekit', 'html', 'astro', 'nuxt', 'next', 'eleventy'];
|
|
5
6
|
let projectName;
|
|
6
7
|
let theme = '@refrakt-md/lumina';
|
|
7
8
|
let type = 'site';
|
|
@@ -26,8 +27,8 @@ for (let i = 0; i < args.length; i++) {
|
|
|
26
27
|
}
|
|
27
28
|
else if (arg === '--target') {
|
|
28
29
|
const val = args[++i];
|
|
29
|
-
if (val
|
|
30
|
-
console.error(
|
|
30
|
+
if (!VALID_TARGETS.includes(val)) {
|
|
31
|
+
console.error(`Error: --target must be one of: ${VALID_TARGETS.join(', ')}`);
|
|
31
32
|
process.exit(1);
|
|
32
33
|
}
|
|
33
34
|
target = val;
|
|
@@ -71,13 +72,18 @@ Usage: create-refrakt <name> [options]
|
|
|
71
72
|
|
|
72
73
|
Options:
|
|
73
74
|
--type <site|theme> What to create (default: site)
|
|
74
|
-
--target <
|
|
75
|
+
--target <target> Adapter target (sites only, default: sveltekit)
|
|
76
|
+
Targets: ${VALID_TARGETS.join(', ')}
|
|
75
77
|
--theme, -t <package> Theme package to use (sites only, default: @refrakt-md/lumina)
|
|
76
78
|
--scope, -s <scope> npm scope for the package (themes only, e.g., @my-org)
|
|
77
79
|
--help, -h Show this help message
|
|
78
80
|
|
|
79
81
|
Examples:
|
|
80
82
|
npx create-refrakt my-site
|
|
83
|
+
npx create-refrakt my-site --target astro
|
|
84
|
+
npx create-refrakt my-site --target next
|
|
85
|
+
npx create-refrakt my-site --target nuxt
|
|
86
|
+
npx create-refrakt my-site --target eleventy
|
|
81
87
|
npx create-refrakt my-site --target html
|
|
82
88
|
npx create-refrakt my-site --theme @refrakt-md/aurora
|
|
83
89
|
npx create-refrakt my-theme --type theme
|
|
@@ -117,27 +123,21 @@ Then use it in a site:
|
|
|
117
123
|
Run \`refrakt scaffold-css\` to generate CSS stubs for all runes.
|
|
118
124
|
`);
|
|
119
125
|
}
|
|
120
|
-
else if (target === 'html') {
|
|
121
|
-
console.log(`
|
|
122
|
-
Done! Your refrakt.md site is ready.
|
|
123
|
-
|
|
124
|
-
Next steps:
|
|
125
|
-
|
|
126
|
-
cd ${projectName}
|
|
127
|
-
npm install
|
|
128
|
-
npm run build
|
|
129
|
-
npm run serve
|
|
130
|
-
`);
|
|
131
|
-
}
|
|
132
126
|
else {
|
|
127
|
+
const devCommands = {
|
|
128
|
+
sveltekit: ` cd ${projectName}\n npm install\n npm run dev`,
|
|
129
|
+
astro: ` cd ${projectName}\n npm install\n npm run dev`,
|
|
130
|
+
nuxt: ` cd ${projectName}\n npm install\n npm run dev`,
|
|
131
|
+
next: ` cd ${projectName}\n npm install\n npm run dev`,
|
|
132
|
+
eleventy: ` cd ${projectName}\n npm install\n npm run dev`,
|
|
133
|
+
html: ` cd ${projectName}\n npm install\n npm run build\n npm run serve`,
|
|
134
|
+
};
|
|
133
135
|
console.log(`
|
|
134
|
-
Done! Your refrakt.md site is ready.
|
|
136
|
+
Done! Your refrakt.md site is ready (target: ${target}).
|
|
135
137
|
|
|
136
138
|
Next steps:
|
|
137
139
|
|
|
138
|
-
|
|
139
|
-
npm install
|
|
140
|
-
npm run dev
|
|
140
|
+
${devCommands[target]}
|
|
141
141
|
`);
|
|
142
142
|
}
|
|
143
143
|
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
package/dist/scaffold.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
export type ScaffoldTarget = 'sveltekit' | 'html' | 'astro' | 'nuxt' | 'next' | 'eleventy';
|
|
1
2
|
export interface ScaffoldOptions {
|
|
2
3
|
projectName: string;
|
|
3
4
|
targetDir: string;
|
|
4
5
|
theme: string;
|
|
5
|
-
target?:
|
|
6
|
+
target?: ScaffoldTarget;
|
|
6
7
|
}
|
|
7
8
|
export declare function scaffold(options: ScaffoldOptions): void;
|
|
8
9
|
export interface ThemeScaffoldOptions {
|
package/dist/scaffold.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAmBvD;AAgYD,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAqFjE"}
|
package/dist/scaffold.js
CHANGED
|
@@ -12,12 +12,15 @@ export function scaffold(options) {
|
|
|
12
12
|
throw new Error(`Directory "${targetDir}" already exists`);
|
|
13
13
|
}
|
|
14
14
|
mkdirSync(targetDir, { recursive: true });
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
const scaffolders = {
|
|
16
|
+
sveltekit: scaffoldSvelteKitSite,
|
|
17
|
+
html: scaffoldHtmlSite,
|
|
18
|
+
astro: scaffoldAstroSite,
|
|
19
|
+
nuxt: scaffoldNuxtSite,
|
|
20
|
+
next: scaffoldNextSite,
|
|
21
|
+
eleventy: scaffoldEleventySite,
|
|
22
|
+
};
|
|
23
|
+
scaffolders[target](options);
|
|
21
24
|
}
|
|
22
25
|
function scaffoldSvelteKitSite(options) {
|
|
23
26
|
const { projectName, targetDir, theme } = options;
|
|
@@ -28,42 +31,20 @@ function scaffoldSvelteKitSite(options) {
|
|
|
28
31
|
`This is a bug in create-refrakt — please report it.`);
|
|
29
32
|
}
|
|
30
33
|
cpSync(templateDir, targetDir, { recursive: true });
|
|
31
|
-
|
|
32
|
-
const dotfileRenames = {
|
|
33
|
-
'_gitignore': '.gitignore',
|
|
34
|
-
'_npmrc': '.npmrc',
|
|
35
|
-
};
|
|
36
|
-
for (const [from, to] of Object.entries(dotfileRenames)) {
|
|
37
|
-
const srcPath = path.join(targetDir, from);
|
|
38
|
-
if (existsSync(srcPath)) {
|
|
39
|
-
renameSync(srcPath, path.join(targetDir, to));
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
// Generate interpolated files
|
|
34
|
+
renameDotfiles(targetDir);
|
|
43
35
|
writeFileSync(path.join(targetDir, 'package.json'), generatePackageJson(projectName, theme));
|
|
44
36
|
writeFileSync(path.join(targetDir, 'refrakt.config.json'), generateRefraktConfig(theme));
|
|
45
37
|
writeFileSync(path.join(targetDir, 'README.md'), generateReadme(projectName));
|
|
46
38
|
}
|
|
47
39
|
function scaffoldHtmlSite(options) {
|
|
48
40
|
const { projectName, targetDir, theme } = options;
|
|
49
|
-
// Copy HTML template directory
|
|
50
41
|
const templateDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'template-html');
|
|
51
42
|
if (!existsSync(templateDir)) {
|
|
52
43
|
throw new Error(`Template directory not found at ${templateDir}. ` +
|
|
53
44
|
`This is a bug in create-refrakt — please report it.`);
|
|
54
45
|
}
|
|
55
46
|
cpSync(templateDir, targetDir, { recursive: true });
|
|
56
|
-
|
|
57
|
-
const dotfileRenames = {
|
|
58
|
-
'_gitignore': '.gitignore',
|
|
59
|
-
};
|
|
60
|
-
for (const [from, to] of Object.entries(dotfileRenames)) {
|
|
61
|
-
const srcPath = path.join(targetDir, from);
|
|
62
|
-
if (existsSync(srcPath)) {
|
|
63
|
-
renameSync(srcPath, path.join(targetDir, to));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// Generate interpolated files
|
|
47
|
+
renameDotfiles(targetDir);
|
|
67
48
|
writeFileSync(path.join(targetDir, 'package.json'), generateHtmlPackageJson(projectName, theme));
|
|
68
49
|
writeFileSync(path.join(targetDir, 'refrakt.config.json'), generateRefraktConfig(theme, 'html'));
|
|
69
50
|
writeFileSync(path.join(targetDir, 'README.md'), generateReadme(projectName));
|
|
@@ -146,6 +127,186 @@ function generateHtmlPackageJson(projectName, theme) {
|
|
|
146
127
|
};
|
|
147
128
|
return JSON.stringify(pkg, null, '\t') + '\n';
|
|
148
129
|
}
|
|
130
|
+
function scaffoldAstroSite(options) {
|
|
131
|
+
const { projectName, targetDir, theme } = options;
|
|
132
|
+
const templateDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'template-astro');
|
|
133
|
+
if (!existsSync(templateDir)) {
|
|
134
|
+
throw new Error(`Template directory not found at ${templateDir}. ` +
|
|
135
|
+
`This is a bug in create-refrakt — please report it.`);
|
|
136
|
+
}
|
|
137
|
+
cpSync(templateDir, targetDir, { recursive: true });
|
|
138
|
+
renameDotfiles(targetDir);
|
|
139
|
+
writeFileSync(path.join(targetDir, 'package.json'), generateAstroPackageJson(projectName, theme));
|
|
140
|
+
writeFileSync(path.join(targetDir, 'refrakt.config.json'), generateRefraktConfig(theme, 'astro'));
|
|
141
|
+
writeFileSync(path.join(targetDir, 'README.md'), generateReadme(projectName));
|
|
142
|
+
}
|
|
143
|
+
function scaffoldNuxtSite(options) {
|
|
144
|
+
const { projectName, targetDir, theme } = options;
|
|
145
|
+
const templateDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'template-nuxt');
|
|
146
|
+
if (!existsSync(templateDir)) {
|
|
147
|
+
throw new Error(`Template directory not found at ${templateDir}. ` +
|
|
148
|
+
`This is a bug in create-refrakt — please report it.`);
|
|
149
|
+
}
|
|
150
|
+
cpSync(templateDir, targetDir, { recursive: true });
|
|
151
|
+
renameDotfiles(targetDir);
|
|
152
|
+
writeFileSync(path.join(targetDir, 'package.json'), generateNuxtPackageJson(projectName, theme));
|
|
153
|
+
writeFileSync(path.join(targetDir, 'refrakt.config.json'), generateRefraktConfig(theme, 'nuxt'));
|
|
154
|
+
writeFileSync(path.join(targetDir, 'README.md'), generateReadme(projectName));
|
|
155
|
+
}
|
|
156
|
+
function scaffoldNextSite(options) {
|
|
157
|
+
const { projectName, targetDir, theme } = options;
|
|
158
|
+
const templateDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'template-next');
|
|
159
|
+
if (!existsSync(templateDir)) {
|
|
160
|
+
throw new Error(`Template directory not found at ${templateDir}. ` +
|
|
161
|
+
`This is a bug in create-refrakt — please report it.`);
|
|
162
|
+
}
|
|
163
|
+
cpSync(templateDir, targetDir, { recursive: true });
|
|
164
|
+
renameDotfiles(targetDir);
|
|
165
|
+
writeFileSync(path.join(targetDir, 'package.json'), generateNextPackageJson(projectName, theme));
|
|
166
|
+
writeFileSync(path.join(targetDir, 'refrakt.config.json'), generateRefraktConfig(theme, 'next'));
|
|
167
|
+
writeFileSync(path.join(targetDir, 'README.md'), generateReadme(projectName));
|
|
168
|
+
}
|
|
169
|
+
function scaffoldEleventySite(options) {
|
|
170
|
+
const { projectName, targetDir, theme } = options;
|
|
171
|
+
const templateDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'template-eleventy');
|
|
172
|
+
if (!existsSync(templateDir)) {
|
|
173
|
+
throw new Error(`Template directory not found at ${templateDir}. ` +
|
|
174
|
+
`This is a bug in create-refrakt — please report it.`);
|
|
175
|
+
}
|
|
176
|
+
cpSync(templateDir, targetDir, { recursive: true });
|
|
177
|
+
renameDotfiles(targetDir);
|
|
178
|
+
writeFileSync(path.join(targetDir, 'package.json'), generateEleventyPackageJson(projectName, theme));
|
|
179
|
+
writeFileSync(path.join(targetDir, 'refrakt.config.json'), generateRefraktConfig(theme, 'eleventy'));
|
|
180
|
+
writeFileSync(path.join(targetDir, 'README.md'), generateReadme(projectName));
|
|
181
|
+
}
|
|
182
|
+
function renameDotfiles(targetDir) {
|
|
183
|
+
const dotfileRenames = {
|
|
184
|
+
'_gitignore': '.gitignore',
|
|
185
|
+
'_npmrc': '.npmrc',
|
|
186
|
+
};
|
|
187
|
+
for (const [from, to] of Object.entries(dotfileRenames)) {
|
|
188
|
+
const srcPath = path.join(targetDir, from);
|
|
189
|
+
if (existsSync(srcPath)) {
|
|
190
|
+
renameSync(srcPath, path.join(targetDir, to));
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
function generateAstroPackageJson(projectName, theme) {
|
|
195
|
+
const v = `~${getRefraktVersion()}`;
|
|
196
|
+
const pkg = {
|
|
197
|
+
name: projectName,
|
|
198
|
+
private: true,
|
|
199
|
+
version: '0.0.1',
|
|
200
|
+
type: 'module',
|
|
201
|
+
scripts: {
|
|
202
|
+
dev: 'astro dev',
|
|
203
|
+
build: 'astro build',
|
|
204
|
+
preview: 'astro preview',
|
|
205
|
+
},
|
|
206
|
+
dependencies: {
|
|
207
|
+
'@refrakt-md/astro': v,
|
|
208
|
+
'@refrakt-md/behaviors': v,
|
|
209
|
+
'@refrakt-md/content': v,
|
|
210
|
+
'@refrakt-md/runes': v,
|
|
211
|
+
'@refrakt-md/transform': v,
|
|
212
|
+
'@refrakt-md/types': v,
|
|
213
|
+
[theme]: v,
|
|
214
|
+
'astro': '^5.0.0',
|
|
215
|
+
'@markdoc/markdoc': '^0.4.0',
|
|
216
|
+
},
|
|
217
|
+
devDependencies: {
|
|
218
|
+
'typescript': '^5.4.0',
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
return JSON.stringify(pkg, null, '\t') + '\n';
|
|
222
|
+
}
|
|
223
|
+
function generateNuxtPackageJson(projectName, theme) {
|
|
224
|
+
const v = `~${getRefraktVersion()}`;
|
|
225
|
+
const pkg = {
|
|
226
|
+
name: projectName,
|
|
227
|
+
private: true,
|
|
228
|
+
version: '0.0.1',
|
|
229
|
+
type: 'module',
|
|
230
|
+
scripts: {
|
|
231
|
+
dev: 'nuxt dev',
|
|
232
|
+
build: 'nuxt generate',
|
|
233
|
+
preview: 'nuxt preview',
|
|
234
|
+
},
|
|
235
|
+
dependencies: {
|
|
236
|
+
'@refrakt-md/content': v,
|
|
237
|
+
'@refrakt-md/nuxt': v,
|
|
238
|
+
'@refrakt-md/runes': v,
|
|
239
|
+
'@refrakt-md/transform': v,
|
|
240
|
+
'@refrakt-md/types': v,
|
|
241
|
+
[theme]: v,
|
|
242
|
+
'@markdoc/markdoc': '^0.4.0',
|
|
243
|
+
},
|
|
244
|
+
devDependencies: {
|
|
245
|
+
'nuxt': '^3.0.0',
|
|
246
|
+
'typescript': '^5.4.0',
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
return JSON.stringify(pkg, null, '\t') + '\n';
|
|
250
|
+
}
|
|
251
|
+
function generateNextPackageJson(projectName, theme) {
|
|
252
|
+
const v = `~${getRefraktVersion()}`;
|
|
253
|
+
const pkg = {
|
|
254
|
+
name: projectName,
|
|
255
|
+
private: true,
|
|
256
|
+
version: '0.0.1',
|
|
257
|
+
type: 'module',
|
|
258
|
+
scripts: {
|
|
259
|
+
dev: 'next dev',
|
|
260
|
+
build: 'next build',
|
|
261
|
+
start: 'npx serve out',
|
|
262
|
+
},
|
|
263
|
+
dependencies: {
|
|
264
|
+
'@refrakt-md/behaviors': v,
|
|
265
|
+
'@refrakt-md/content': v,
|
|
266
|
+
'@refrakt-md/next': v,
|
|
267
|
+
'@refrakt-md/runes': v,
|
|
268
|
+
'@refrakt-md/transform': v,
|
|
269
|
+
'@refrakt-md/types': v,
|
|
270
|
+
[theme]: v,
|
|
271
|
+
'next': '^15.0.0',
|
|
272
|
+
'react': '^19.0.0',
|
|
273
|
+
'react-dom': '^19.0.0',
|
|
274
|
+
'@markdoc/markdoc': '^0.4.0',
|
|
275
|
+
},
|
|
276
|
+
devDependencies: {
|
|
277
|
+
'@types/react': '^19.0.0',
|
|
278
|
+
'typescript': '^5.4.0',
|
|
279
|
+
},
|
|
280
|
+
};
|
|
281
|
+
return JSON.stringify(pkg, null, '\t') + '\n';
|
|
282
|
+
}
|
|
283
|
+
function generateEleventyPackageJson(projectName, theme) {
|
|
284
|
+
const v = `~${getRefraktVersion()}`;
|
|
285
|
+
const pkg = {
|
|
286
|
+
name: projectName,
|
|
287
|
+
private: true,
|
|
288
|
+
version: '0.0.1',
|
|
289
|
+
type: 'module',
|
|
290
|
+
scripts: {
|
|
291
|
+
dev: 'eleventy --serve',
|
|
292
|
+
build: 'eleventy',
|
|
293
|
+
},
|
|
294
|
+
dependencies: {
|
|
295
|
+
'@refrakt-md/content': v,
|
|
296
|
+
'@refrakt-md/eleventy': v,
|
|
297
|
+
'@refrakt-md/runes': v,
|
|
298
|
+
'@refrakt-md/transform': v,
|
|
299
|
+
'@refrakt-md/types': v,
|
|
300
|
+
[theme]: v,
|
|
301
|
+
'@markdoc/markdoc': '^0.4.0',
|
|
302
|
+
},
|
|
303
|
+
devDependencies: {
|
|
304
|
+
'@11ty/eleventy': '^3.0.0',
|
|
305
|
+
'typescript': '^5.4.0',
|
|
306
|
+
},
|
|
307
|
+
};
|
|
308
|
+
return JSON.stringify(pkg, null, '\t') + '\n';
|
|
309
|
+
}
|
|
149
310
|
function generateReadme(projectName) {
|
|
150
311
|
return `# ${projectName}
|
|
151
312
|
|
package/dist/scaffold.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,SAAS,iBAAiB;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IACjG,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,CAAC,OAAO,CAAC;AACpB,CAAC;AASD,MAAM,UAAU,QAAQ,CAAC,OAAwB;IAChD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;IAExE,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,kBAAkB,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACvB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;SAAM,CAAC;QACP,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;AACF,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAwB;IACtD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAElD,sCAAsC;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAC/B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,IAAI,EACJ,UAAU,CACV,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACd,mCAAmC,WAAW,IAAI;YAClD,qDAAqD,CACrD,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,kEAAkE;IAClE,MAAM,cAAc,GAA2B;QAC9C,YAAY,EAAE,YAAY;QAC1B,QAAQ,EAAE,QAAQ;KAClB,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC;IAED,8BAA8B;IAC9B,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACpC,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,CACvC,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAC3C,qBAAqB,CAAC,KAAK,CAAC,CAC5B,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACjC,cAAc,CAAC,WAAW,CAAC,CAC3B,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAwB;IACjD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAElD,+BAA+B;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAC/B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,IAAI,EACJ,eAAe,CACf,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACd,mCAAmC,WAAW,IAAI;YAClD,qDAAqD,CACrD,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,kBAAkB;IAClB,MAAM,cAAc,GAA2B;QAC9C,YAAY,EAAE,YAAY;KAC1B,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC;IAED,8BAA8B;IAC9B,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACpC,uBAAuB,CAAC,WAAW,EAAE,KAAK,CAAC,CAC3C,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAC3C,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CACpC,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACjC,cAAc,CAAC,WAAW,CAAC,CAC3B,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB,EAAE,KAAa;IAC9D,MAAM,CAAC,GAAG,IAAI,iBAAiB,EAAE,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG;QACX,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACR,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,4BAA4B;YACrC,KAAK,EAAE,4DAA4D;SACnE;QACD,YAAY,EAAE;YACb,qBAAqB,EAAE,CAAC;YACxB,uBAAuB,EAAE,CAAC;YAC1B,mBAAmB,EAAE,CAAC;YACtB,oBAAoB,EAAE,CAAC;YACvB,uBAAuB,EAAE,CAAC;YAC1B,uBAAuB,EAAE,CAAC;YAC1B,mBAAmB,EAAE,CAAC;YACtB,CAAC,KAAK,CAAC,EAAE,CAAC;YACV,kBAAkB,EAAE,QAAQ;SAC5B;QACD,eAAe,EAAE;YAChB,0BAA0B,EAAE,QAAQ;YACpC,eAAe,EAAE,SAAS;YAC1B,8BAA8B,EAAE,QAAQ;YACxC,mBAAmB,EAAE,QAAQ;YAC7B,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,QAAQ;YACxB,aAAa,EAAE,QAAQ;YACvB,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,QAAQ;SAChB;KACD,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa,EAAE,SAAiB,QAAQ;IACtE,MAAM,MAAM,GAAG;QACd,UAAU,EAAE,WAAW;QACvB,KAAK;QACL,MAAM;QACN,UAAU,EAAE;YACX,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE;SACpC;KACD,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAmB,EAAE,KAAa;IAClE,MAAM,CAAC,GAAG,IAAI,iBAAiB,EAAE,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG;QACX,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE;YACR,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,iBAAiB;SACxB;QACD,YAAY,EAAE;YACb,qBAAqB,EAAE,CAAC;YACxB,uBAAuB,EAAE,CAAC;YAC1B,kBAAkB,EAAE,CAAC;YACrB,mBAAmB,EAAE,CAAC;YACtB,uBAAuB,EAAE,CAAC;YAC1B,mBAAmB,EAAE,CAAC;YACtB,CAAC,KAAK,CAAC,EAAE,CAAC;YACV,kBAAkB,EAAE,QAAQ;SAC5B;QACD,eAAe,EAAE;YAChB,KAAK,EAAE,QAAQ;YACf,YAAY,EAAE,QAAQ;SACtB;KACD,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,WAAmB;IAC1C,OAAO,KAAK,WAAW;;;;;;;;;;;;;;;;;CAiBvB,CAAC;AACF,CAAC;AAUD,MAAM,UAAU,aAAa,CAAC,OAA6B;IAC1D,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEhD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,kBAAkB,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACpC,wBAAwB,CAAC,WAAW,CAAC,CACrC,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,EACxC,mBAAmB,EAAE,CACrB,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1C,wBAAwB,EAAE,CAC1B,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EACrC,qBAAqB,CAAC,WAAW,CAAC,CAClC,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EACjC,qBAAqB,EAAE,CACvB,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1C,uBAAuB,EAAE,CACzB,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC1C,uBAAuB,EAAE,CACzB,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,EAC5C,sBAAsB,EAAE,CACxB,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EACrC,qBAAqB,EAAE,CACvB,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB,CAAC,EACjE,0BAA0B,EAAE,CAC5B,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,sBAAsB,CAAC,EACpD,4BAA4B,EAAE,CAC9B,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAClD,wBAAwB,EAAE,CAC1B,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAChC,oBAAoB,EAAE,CACtB,CAAC;IAEF,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,EAC5C,yBAAyB,EAAE,CAC3B,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,WAAmB;IACpD,MAAM,GAAG,GAAG;QACX,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,kBAAkB;QACzB,OAAO,EAAE;YACR,GAAG,EAAE,aAAa;YAClB,YAAY,EAAE,YAAY;YAC1B,aAAa,EAAE;gBACd,KAAK,EAAE,oBAAoB;gBAC3B,OAAO,EAAE,kBAAkB;aAC3B;YACD,UAAU,EAAE;gBACX,MAAM,EAAE,mBAAmB;gBAC3B,OAAO,EAAE,mBAAmB;aAC5B;YACD,YAAY,EAAE,iBAAiB;YAC/B,sBAAsB,EAAE,sBAAsB;YAC9C,qBAAqB,EAAE,qBAAqB;SAC5C;QACD,KAAK,EAAE;YACN,MAAM;YACN,UAAU;YACV,WAAW;YACX,QAAQ;YACR,QAAQ;YACR,eAAe;YACf,QAAQ;SACR;QACD,OAAO,EAAE;YACR,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,YAAY;SAClB;QACD,YAAY,EAAE;YACb,mBAAmB,EAAE,IAAI,iBAAiB,EAAE,EAAE;YAC9C,uBAAuB,EAAE,IAAI,iBAAiB,EAAE,EAAE;YAClD,mBAAmB,EAAE,IAAI,iBAAiB,EAAE,EAAE;YAC9C,oBAAoB,EAAE,IAAI,iBAAiB,EAAE,EAAE;SAC/C;QACD,eAAe,EAAE;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,QAAQ;SACjB;KACD,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AAC/C,CAAC;AAED,SAAS,mBAAmB;IAC3B,OAAO;;;;;;;;;;;;;;;;;CAiBP,CAAC;AACF,CAAC;AAED,SAAS,wBAAwB;IAChC,OAAO;;;;;;;;;;;;;;;;;;CAkBP,CAAC;AACF,CAAC;AAED,SAAS,qBAAqB,CAAC,WAAmB;IACjD,MAAM,QAAQ,GAAG;QAChB,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,mBAAmB;QACjC,OAAO,EAAE;YACR,OAAO,EAAE;gBACR,SAAS,EAAE,uCAAuC;gBAClD,OAAO,EAAE,CAAC,SAAS,CAAC;aACpB;SACD;QACD,UAAU,EAAE,EAAE;QACd,uBAAuB,EAAE,aAAa;KACtC,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AACpD,CAAC;AAED,SAAS,qBAAqB;IAC7B,OAAO;;;;;;;;;;CAUP,CAAC;AACF,CAAC;AAED,SAAS,uBAAuB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDP,CAAC;AACF,CAAC;AAED,SAAS,uBAAuB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCP,CAAC;AACF,CAAC;AAED,SAAS,sBAAsB;IAC9B,OAAO;;;;;;;;;;;;;;CAcP,CAAC;AACF,CAAC;AAED,SAAS,qBAAqB;IAC7B,MAAM,MAAM,GAAG;QACd,eAAe,EAAE;YAChB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,gBAAgB,EAAE,SAAS;YAC3B,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,IAAI;SAClB;QACD,OAAO,EAAE,CAAC,KAAK,CAAC;KAChB,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,0BAA0B;IAClC,OAAO;;;;;;;;;;;;;;;;;;CAkBP,CAAC;AACF,CAAC;AAED,SAAS,4BAA4B;IACpC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CP,CAAC;AACF,CAAC;AAED,SAAS,wBAAwB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyHP,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB;IAC5B,OAAO;;;;CAIP,CAAC;AACF,CAAC;AAED,SAAS,yBAAyB;IACjC,OAAO;CACP,CAAC;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../src/scaffold.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-refrakt",
|
|
3
3
|
"description": "Scaffold a new refrakt.md project",
|
|
4
|
-
"version": "0.9.
|
|
4
|
+
"version": "0.9.2",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -19,7 +19,11 @@
|
|
|
19
19
|
"files": [
|
|
20
20
|
"dist",
|
|
21
21
|
"template",
|
|
22
|
-
"template-html"
|
|
22
|
+
"template-html",
|
|
23
|
+
"template-astro",
|
|
24
|
+
"template-nuxt",
|
|
25
|
+
"template-next",
|
|
26
|
+
"template-eleventy"
|
|
23
27
|
],
|
|
24
28
|
"scripts": {
|
|
25
29
|
"build": "tsc"
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Getting Started
|
|
3
|
+
description: Learn how to work with your refrakt.md site
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Getting Started
|
|
7
|
+
|
|
8
|
+
This is your first documentation page. You can find this file at `content/docs/getting-started.md`.
|
|
9
|
+
|
|
10
|
+
## Project Structure
|
|
11
|
+
|
|
12
|
+
Your site has two key directories:
|
|
13
|
+
|
|
14
|
+
- `content/` — Markdown files that make up your pages
|
|
15
|
+
- `build/` — Generated HTML output (created by `npm run build`)
|
|
16
|
+
|
|
17
|
+
## Writing Content
|
|
18
|
+
|
|
19
|
+
Every Markdown file in `content/` becomes a page. Add frontmatter at the top for metadata:
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
---
|
|
23
|
+
title: Page Title
|
|
24
|
+
description: A brief description
|
|
25
|
+
---
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Using Runes
|
|
29
|
+
|
|
30
|
+
Runes are Markdoc tags that give your Markdown semantic meaning:
|
|
31
|
+
|
|
32
|
+
{% hint type="note" %}
|
|
33
|
+
This callout is created with the `hint` rune. Try changing the `type` attribute to `warning`, `caution`, or `check`.
|
|
34
|
+
{% /hint %}
|
|
35
|
+
|
|
36
|
+
## Next Steps
|
|
37
|
+
|
|
38
|
+
- Add more pages by creating `.md` files in `content/`
|
|
39
|
+
- Edit `content/_layout.md` to customize your site's header and navigation
|
|
40
|
+
- Explore the available runes in the refrakt.md documentation
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Welcome
|
|
3
|
+
description: A new refrakt.md site
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
{% cta %}
|
|
7
|
+
|
|
8
|
+
# Welcome to your site
|
|
9
|
+
|
|
10
|
+
This site is built with refrakt.md — a content framework that extends Markdown with semantic runes.
|
|
11
|
+
|
|
12
|
+
- [Get Started](/docs/getting-started)
|
|
13
|
+
|
|
14
|
+
{% /cta %}
|
|
15
|
+
|
|
16
|
+
{% hint type="note" %}
|
|
17
|
+
Edit the files in `content/` to start building your site. Run `npm run build` to regenerate after changes.
|
|
18
|
+
{% /hint %}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { loadContent } from '@refrakt-md/content';
|
|
3
|
+
import { createTransform } from '@refrakt-md/transform';
|
|
4
|
+
import { baseConfig } from '@refrakt-md/runes';
|
|
5
|
+
import manifest from '@refrakt-md/lumina/manifest';
|
|
6
|
+
import { layouts } from '@refrakt-md/lumina/layouts';
|
|
7
|
+
const theme = { manifest, layouts };
|
|
8
|
+
import { renderPage, buildSeoHead, hasInteractiveRunes } from '@refrakt-md/astro';
|
|
9
|
+
import type { RendererNode } from '@refrakt-md/types';
|
|
10
|
+
|
|
11
|
+
export async function getStaticPaths() {
|
|
12
|
+
const site = await loadContent('./content', '/');
|
|
13
|
+
const transform = createTransform(baseConfig);
|
|
14
|
+
|
|
15
|
+
return site.pages
|
|
16
|
+
.filter((p: any) => !p.route.draft)
|
|
17
|
+
.map((page: any) => {
|
|
18
|
+
const renderable = transform(page.renderable) as RendererNode;
|
|
19
|
+
const regions: Record<string, any> = {};
|
|
20
|
+
for (const [name, region] of page.layout.regions.entries()) {
|
|
21
|
+
regions[name] = {
|
|
22
|
+
name: region.name,
|
|
23
|
+
mode: region.mode,
|
|
24
|
+
content: region.content.map((c: any) => transform(c) as RendererNode),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const pages = site.pages
|
|
29
|
+
.filter((p: any) => !p.route.draft)
|
|
30
|
+
.map((p: any) => ({
|
|
31
|
+
url: p.route.url,
|
|
32
|
+
title: (p.frontmatter.title as string) ?? '',
|
|
33
|
+
draft: false,
|
|
34
|
+
}));
|
|
35
|
+
|
|
36
|
+
const slug = page.route.url === '/' ? undefined : page.route.url.slice(1);
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
params: { slug },
|
|
40
|
+
props: {
|
|
41
|
+
page: {
|
|
42
|
+
renderable,
|
|
43
|
+
regions,
|
|
44
|
+
title: (page.frontmatter.title as string) ?? '',
|
|
45
|
+
url: page.route.url,
|
|
46
|
+
pages,
|
|
47
|
+
frontmatter: page.frontmatter,
|
|
48
|
+
headings: page.headings,
|
|
49
|
+
},
|
|
50
|
+
seo: page.seo,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const { page, seo } = Astro.props;
|
|
57
|
+
const html = renderPage({ theme, page });
|
|
58
|
+
const head = buildSeoHead({ title: page.title, frontmatter: page.frontmatter, seo });
|
|
59
|
+
const needsBehaviors = hasInteractiveRunes(page.renderable);
|
|
60
|
+
const contextData = JSON.stringify({ pages: page.pages, currentUrl: page.url });
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
<html lang="en">
|
|
64
|
+
<head>
|
|
65
|
+
<meta charset="utf-8" />
|
|
66
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
67
|
+
{head.title && <title>{head.title}</title>}
|
|
68
|
+
<Fragment set:html={head.metaTags} />
|
|
69
|
+
<Fragment set:html={head.jsonLd} />
|
|
70
|
+
</head>
|
|
71
|
+
<body>
|
|
72
|
+
<Fragment set:html={html} />
|
|
73
|
+
<script type="application/json" id="rf-context" set:html={contextData} />
|
|
74
|
+
{needsBehaviors && (
|
|
75
|
+
<script>
|
|
76
|
+
import { registerElements, RfContext, initRuneBehaviors, initLayoutBehaviors } from '@refrakt-md/behaviors';
|
|
77
|
+
function init() {
|
|
78
|
+
const el = document.getElementById('rf-context');
|
|
79
|
+
if (el) { try { const ctx = JSON.parse(el.textContent || '{}'); RfContext.pages = ctx.pages; RfContext.currentUrl = ctx.currentUrl; } catch {} }
|
|
80
|
+
registerElements();
|
|
81
|
+
initRuneBehaviors();
|
|
82
|
+
initLayoutBehaviors();
|
|
83
|
+
}
|
|
84
|
+
init();
|
|
85
|
+
document.addEventListener('astro:page-load', () => init());
|
|
86
|
+
</script>
|
|
87
|
+
)}
|
|
88
|
+
</body>
|
|
89
|
+
</html>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Getting Started
|
|
3
|
+
description: Learn how to work with your refrakt.md site
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Getting Started
|
|
7
|
+
|
|
8
|
+
This is your first documentation page. You can find this file at `content/docs/getting-started.md`.
|
|
9
|
+
|
|
10
|
+
## Project Structure
|
|
11
|
+
|
|
12
|
+
Your site has two key directories:
|
|
13
|
+
|
|
14
|
+
- `content/` — Markdown files that make up your pages
|
|
15
|
+
- `build/` — Generated HTML output (created by `npm run build`)
|
|
16
|
+
|
|
17
|
+
## Writing Content
|
|
18
|
+
|
|
19
|
+
Every Markdown file in `content/` becomes a page. Add frontmatter at the top for metadata:
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
---
|
|
23
|
+
title: Page Title
|
|
24
|
+
description: A brief description
|
|
25
|
+
---
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Using Runes
|
|
29
|
+
|
|
30
|
+
Runes are Markdoc tags that give your Markdown semantic meaning:
|
|
31
|
+
|
|
32
|
+
{% hint type="note" %}
|
|
33
|
+
This callout is created with the `hint` rune. Try changing the `type` attribute to `warning`, `caution`, or `check`.
|
|
34
|
+
{% /hint %}
|
|
35
|
+
|
|
36
|
+
## Next Steps
|
|
37
|
+
|
|
38
|
+
- Add more pages by creating `.md` files in `content/`
|
|
39
|
+
- Edit `content/_layout.md` to customize your site's header and navigation
|
|
40
|
+
- Explore the available runes in the refrakt.md documentation
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Welcome
|
|
3
|
+
description: A new refrakt.md site
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
{% cta %}
|
|
7
|
+
|
|
8
|
+
# Welcome to your site
|
|
9
|
+
|
|
10
|
+
This site is built with refrakt.md — a content framework that extends Markdown with semantic runes.
|
|
11
|
+
|
|
12
|
+
- [Get Started](/docs/getting-started)
|
|
13
|
+
|
|
14
|
+
{% /cta %}
|
|
15
|
+
|
|
16
|
+
{% hint type="note" %}
|
|
17
|
+
Edit the files in `content/` to start building your site. Run `npm run build` to regenerate after changes.
|
|
18
|
+
{% /hint %}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { refraktPlugin } from '@refrakt-md/eleventy';
|
|
2
|
+
|
|
3
|
+
export default function (eleventyConfig) {
|
|
4
|
+
eleventyConfig.addPlugin(refraktPlugin, {
|
|
5
|
+
cssFiles: ['node_modules/@refrakt-md/lumina/index.css'],
|
|
6
|
+
cssPrefix: '/css',
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
eleventyConfig.addPassthroughCopy({
|
|
10
|
+
'node_modules/@refrakt-md/lumina/tokens': '/css/tokens',
|
|
11
|
+
'node_modules/@refrakt-md/lumina/styles': '/css/styles',
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
return {
|
|
15
|
+
dir: {
|
|
16
|
+
input: 'src',
|
|
17
|
+
output: '_site',
|
|
18
|
+
includes: '_includes',
|
|
19
|
+
data: '_data',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
{% if seo.title %}<title>{{ seo.title }}</title>{% endif %}
|
|
7
|
+
{{ seo.metaTags | safe }}
|
|
8
|
+
{{ seo.jsonLd | safe }}
|
|
9
|
+
<link rel="stylesheet" href="/css/index.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
{{ html | safe }}
|
|
13
|
+
<script type="module">
|
|
14
|
+
import { registerElements, RfContext, initRuneBehaviors, initLayoutBehaviors } from '/js/behaviors.js';
|
|
15
|
+
|
|
16
|
+
RfContext.currentUrl = '{{ url }}';
|
|
17
|
+
registerElements();
|
|
18
|
+
initRuneBehaviors();
|
|
19
|
+
initLayoutBehaviors();
|
|
20
|
+
</script>
|
|
21
|
+
</body>
|
|
22
|
+
</html>
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { loadContent } from '@refrakt-md/content';
|
|
2
|
+
import { createTransform } from '@refrakt-md/transform';
|
|
3
|
+
import { baseConfig } from '@refrakt-md/runes';
|
|
4
|
+
import manifest from '@refrakt-md/lumina/manifest';
|
|
5
|
+
import { layouts } from '@refrakt-md/lumina/layouts';
|
|
6
|
+
const theme = { manifest, layouts };
|
|
7
|
+
import { RefraktContent, buildMetadata, buildUrlFromParams, hasInteractiveRunes } from '@refrakt-md/next';
|
|
8
|
+
import { BehaviorInit } from '@refrakt-md/next/client';
|
|
9
|
+
import type { RendererNode } from '@refrakt-md/types';
|
|
10
|
+
|
|
11
|
+
export async function generateStaticParams() {
|
|
12
|
+
const site = await loadContent('./content', '/');
|
|
13
|
+
return site.pages
|
|
14
|
+
.filter((p: any) => !p.route.draft)
|
|
15
|
+
.map((page: any) => ({
|
|
16
|
+
slug: page.route.url === '/' ? [] : page.route.url.slice(1).split('/'),
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export async function generateMetadata({ params }: { params: Promise<{ slug?: string[] }> }) {
|
|
21
|
+
const resolvedParams = await params;
|
|
22
|
+
const url = buildUrlFromParams(resolvedParams);
|
|
23
|
+
const site = await loadContent('./content', '/');
|
|
24
|
+
const page = site.pages.find((p: any) => p.route.url === url);
|
|
25
|
+
if (!page) return {};
|
|
26
|
+
|
|
27
|
+
return buildMetadata({
|
|
28
|
+
title: (page.frontmatter.title as string) ?? '',
|
|
29
|
+
frontmatter: page.frontmatter,
|
|
30
|
+
seo: page.seo,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export default async function Page({ params }: { params: Promise<{ slug?: string[] }> }) {
|
|
35
|
+
const resolvedParams = await params;
|
|
36
|
+
const url = buildUrlFromParams(resolvedParams);
|
|
37
|
+
const site = await loadContent('./content', '/');
|
|
38
|
+
const currentPage = site.pages.find((p: any) => p.route.url === url);
|
|
39
|
+
if (!currentPage) return <div>Page not found</div>;
|
|
40
|
+
|
|
41
|
+
const transform = createTransform(baseConfig);
|
|
42
|
+
const renderable = transform(currentPage.renderable) as RendererNode;
|
|
43
|
+
|
|
44
|
+
const regions: Record<string, any> = {};
|
|
45
|
+
for (const [name, region] of currentPage.layout.regions.entries()) {
|
|
46
|
+
regions[name] = {
|
|
47
|
+
name: region.name,
|
|
48
|
+
mode: region.mode,
|
|
49
|
+
content: region.content.map((c: any) => transform(c) as RendererNode),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const pages = site.pages
|
|
54
|
+
.filter((p: any) => !p.route.draft)
|
|
55
|
+
.map((p: any) => ({
|
|
56
|
+
url: p.route.url,
|
|
57
|
+
title: (p.frontmatter.title as string) ?? '',
|
|
58
|
+
draft: false,
|
|
59
|
+
}));
|
|
60
|
+
|
|
61
|
+
const page = {
|
|
62
|
+
renderable,
|
|
63
|
+
regions,
|
|
64
|
+
title: (currentPage.frontmatter.title as string) ?? '',
|
|
65
|
+
url: currentPage.route.url,
|
|
66
|
+
pages,
|
|
67
|
+
frontmatter: currentPage.frontmatter,
|
|
68
|
+
headings: currentPage.headings,
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const needsBehaviors = hasInteractiveRunes(page.renderable);
|
|
72
|
+
|
|
73
|
+
return (
|
|
74
|
+
<>
|
|
75
|
+
<RefraktContent theme={theme} page={page} />
|
|
76
|
+
{needsBehaviors && <BehaviorInit pages={pages} currentUrl={page.url} />}
|
|
77
|
+
</>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Getting Started
|
|
3
|
+
description: Learn how to work with your refrakt.md site
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Getting Started
|
|
7
|
+
|
|
8
|
+
This is your first documentation page. You can find this file at `content/docs/getting-started.md`.
|
|
9
|
+
|
|
10
|
+
## Project Structure
|
|
11
|
+
|
|
12
|
+
Your site has two key directories:
|
|
13
|
+
|
|
14
|
+
- `content/` — Markdown files that make up your pages
|
|
15
|
+
- `build/` — Generated HTML output (created by `npm run build`)
|
|
16
|
+
|
|
17
|
+
## Writing Content
|
|
18
|
+
|
|
19
|
+
Every Markdown file in `content/` becomes a page. Add frontmatter at the top for metadata:
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
---
|
|
23
|
+
title: Page Title
|
|
24
|
+
description: A brief description
|
|
25
|
+
---
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Using Runes
|
|
29
|
+
|
|
30
|
+
Runes are Markdoc tags that give your Markdown semantic meaning:
|
|
31
|
+
|
|
32
|
+
{% hint type="note" %}
|
|
33
|
+
This callout is created with the `hint` rune. Try changing the `type` attribute to `warning`, `caution`, or `check`.
|
|
34
|
+
{% /hint %}
|
|
35
|
+
|
|
36
|
+
## Next Steps
|
|
37
|
+
|
|
38
|
+
- Add more pages by creating `.md` files in `content/`
|
|
39
|
+
- Edit `content/_layout.md` to customize your site's header and navigation
|
|
40
|
+
- Explore the available runes in the refrakt.md documentation
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Welcome
|
|
3
|
+
description: A new refrakt.md site
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
{% cta %}
|
|
7
|
+
|
|
8
|
+
# Welcome to your site
|
|
9
|
+
|
|
10
|
+
This site is built with refrakt.md — a content framework that extends Markdown with semantic runes.
|
|
11
|
+
|
|
12
|
+
- [Get Started](/docs/getting-started)
|
|
13
|
+
|
|
14
|
+
{% /cta %}
|
|
15
|
+
|
|
16
|
+
{% hint type="note" %}
|
|
17
|
+
Edit the files in `content/` to start building your site. Run `npm run build` to regenerate after changes.
|
|
18
|
+
{% /hint %}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** @type {import('next').NextConfig} */
|
|
2
|
+
const nextConfig = {
|
|
3
|
+
output: 'export',
|
|
4
|
+
transpilePackages: [
|
|
5
|
+
'@markdoc/markdoc',
|
|
6
|
+
'@refrakt-md/runes',
|
|
7
|
+
'@refrakt-md/content',
|
|
8
|
+
'@refrakt-md/types',
|
|
9
|
+
'@refrakt-md/next',
|
|
10
|
+
'@refrakt-md/transform',
|
|
11
|
+
],
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export default nextConfig;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2017",
|
|
4
|
+
"lib": ["dom", "dom.iterable", "esnext"],
|
|
5
|
+
"allowJs": true,
|
|
6
|
+
"skipLibCheck": true,
|
|
7
|
+
"strict": true,
|
|
8
|
+
"noEmit": true,
|
|
9
|
+
"esModuleInterop": true,
|
|
10
|
+
"module": "esnext",
|
|
11
|
+
"moduleResolution": "bundler",
|
|
12
|
+
"resolveJsonModule": true,
|
|
13
|
+
"isolatedModules": true,
|
|
14
|
+
"jsx": "preserve",
|
|
15
|
+
"incremental": true,
|
|
16
|
+
"plugins": [{ "name": "next" }],
|
|
17
|
+
"paths": { "@/*": ["./*"] }
|
|
18
|
+
},
|
|
19
|
+
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
|
20
|
+
"exclude": ["node_modules"]
|
|
21
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Getting Started
|
|
3
|
+
description: Learn how to work with your refrakt.md site
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Getting Started
|
|
7
|
+
|
|
8
|
+
This is your first documentation page. You can find this file at `content/docs/getting-started.md`.
|
|
9
|
+
|
|
10
|
+
## Project Structure
|
|
11
|
+
|
|
12
|
+
Your site has two key directories:
|
|
13
|
+
|
|
14
|
+
- `content/` — Markdown files that make up your pages
|
|
15
|
+
- `build/` — Generated HTML output (created by `npm run build`)
|
|
16
|
+
|
|
17
|
+
## Writing Content
|
|
18
|
+
|
|
19
|
+
Every Markdown file in `content/` becomes a page. Add frontmatter at the top for metadata:
|
|
20
|
+
|
|
21
|
+
```markdown
|
|
22
|
+
---
|
|
23
|
+
title: Page Title
|
|
24
|
+
description: A brief description
|
|
25
|
+
---
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Using Runes
|
|
29
|
+
|
|
30
|
+
Runes are Markdoc tags that give your Markdown semantic meaning:
|
|
31
|
+
|
|
32
|
+
{% hint type="note" %}
|
|
33
|
+
This callout is created with the `hint` rune. Try changing the `type` attribute to `warning`, `caution`, or `check`.
|
|
34
|
+
{% /hint %}
|
|
35
|
+
|
|
36
|
+
## Next Steps
|
|
37
|
+
|
|
38
|
+
- Add more pages by creating `.md` files in `content/`
|
|
39
|
+
- Edit `content/_layout.md` to customize your site's header and navigation
|
|
40
|
+
- Explore the available runes in the refrakt.md documentation
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Welcome
|
|
3
|
+
description: A new refrakt.md site
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
{% cta %}
|
|
7
|
+
|
|
8
|
+
# Welcome to your site
|
|
9
|
+
|
|
10
|
+
This site is built with refrakt.md — a content framework that extends Markdown with semantic runes.
|
|
11
|
+
|
|
12
|
+
- [Get Started](/docs/getting-started)
|
|
13
|
+
|
|
14
|
+
{% /cta %}
|
|
15
|
+
|
|
16
|
+
{% hint type="note" %}
|
|
17
|
+
Edit the files in `content/` to start building your site. Run `npm run build` to regenerate after changes.
|
|
18
|
+
{% /hint %}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { loadContent } from '@refrakt-md/content';
|
|
3
|
+
import { createTransform } from '@refrakt-md/transform';
|
|
4
|
+
import { baseConfig } from '@refrakt-md/runes';
|
|
5
|
+
import manifest from '@refrakt-md/lumina/manifest';
|
|
6
|
+
import { layouts } from '@refrakt-md/lumina/layouts';
|
|
7
|
+
const theme = { manifest, layouts };
|
|
8
|
+
import { renderPage, buildRefraktHead } from '@refrakt-md/nuxt';
|
|
9
|
+
import type { RendererNode } from '@refrakt-md/types';
|
|
10
|
+
|
|
11
|
+
const route = useRoute();
|
|
12
|
+
|
|
13
|
+
const { data } = await useAsyncData('refrakt-' + route.path, async () => {
|
|
14
|
+
const site = await loadContent('./content', '/');
|
|
15
|
+
const transform = createTransform(baseConfig);
|
|
16
|
+
|
|
17
|
+
const currentPage = site.pages.find((p: any) => p.route.url === route.path);
|
|
18
|
+
if (!currentPage) throw createError({ statusCode: 404, message: 'Page not found' });
|
|
19
|
+
|
|
20
|
+
const renderable = transform(currentPage.renderable) as RendererNode;
|
|
21
|
+
const regions: Record<string, any> = {};
|
|
22
|
+
for (const [name, region] of currentPage.layout.regions.entries()) {
|
|
23
|
+
regions[name] = {
|
|
24
|
+
name: region.name,
|
|
25
|
+
mode: region.mode,
|
|
26
|
+
content: region.content.map((c: any) => transform(c) as RendererNode),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const pages = site.pages
|
|
31
|
+
.filter((p: any) => !p.route.draft)
|
|
32
|
+
.map((p: any) => ({
|
|
33
|
+
url: p.route.url,
|
|
34
|
+
title: (p.frontmatter.title as string) ?? '',
|
|
35
|
+
draft: false,
|
|
36
|
+
}));
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
html: renderPage({
|
|
40
|
+
theme,
|
|
41
|
+
page: {
|
|
42
|
+
renderable,
|
|
43
|
+
regions,
|
|
44
|
+
title: (currentPage.frontmatter.title as string) ?? '',
|
|
45
|
+
url: currentPage.route.url,
|
|
46
|
+
pages,
|
|
47
|
+
frontmatter: currentPage.frontmatter,
|
|
48
|
+
headings: currentPage.headings,
|
|
49
|
+
},
|
|
50
|
+
}),
|
|
51
|
+
seo: buildRefraktHead({
|
|
52
|
+
title: (currentPage.frontmatter.title as string) ?? '',
|
|
53
|
+
frontmatter: currentPage.frontmatter,
|
|
54
|
+
seo: currentPage.seo,
|
|
55
|
+
}),
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
if (data.value?.seo) {
|
|
60
|
+
useHead({
|
|
61
|
+
title: data.value.seo.title,
|
|
62
|
+
meta: data.value.seo.meta,
|
|
63
|
+
script: data.value.seo.script,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
</script>
|
|
67
|
+
|
|
68
|
+
<template>
|
|
69
|
+
<div v-if="data" v-html="data.html" />
|
|
70
|
+
</template>
|