Skip to content

Commit eba648f

Browse files
committed
remove test, output to head.api
1 parent 396ec5c commit eba648f

File tree

3 files changed

+20
-23
lines changed

3 files changed

+20
-23
lines changed

src/generators/jsx-ast/test/utils.test.mjs

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,12 @@
11
import assert from 'node:assert/strict';
22
import test from 'node:test';
33

4-
import remarkParse from 'remark-parse';
5-
import remarkStringify from 'remark-stringify';
6-
import { unified } from 'unified';
7-
84
import { AST_NODE_TYPES } from '../constants.mjs';
95
import { createJSXElement } from '../utils/ast.mjs';
106
import {
117
buildSideBarDocPages,
128
buildMetaBarProps,
139
} from '../utils/buildBarProps.mjs';
14-
import buildContent from '../utils/buildContent.mjs';
1510

1611
const sampleEntry = {
1712
api: 'sample-api',
@@ -68,15 +63,3 @@ test('createJSXElement builds correct JSX tree', () => {
6863
assert.ok(Array.isArray(el.children));
6964
assert.ok(el.attributes.some(attr => attr.name === 'dataAttr'));
7065
});
71-
72-
test('buildContent processes entries and includes JSX wrapper elements', () => {
73-
const processor = unified().use(remarkParse).use(remarkStringify);
74-
const tree = buildContent([sampleEntry], sampleEntry, {}, processor);
75-
76-
const article = tree.children.find(
77-
child => child.name === AST_NODE_TYPES.JSX.ARTICLE
78-
);
79-
assert.ok(article);
80-
assert.ok(article.children.some(c => c.name === AST_NODE_TYPES.JSX.SIDE_BAR));
81-
assert.ok(article.children.some(c => c.name === AST_NODE_TYPES.JSX.FOOTER));
82-
});

src/generators/web/index.mjs

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { readFile } from 'node:fs/promises';
1+
import { readFile, writeFile } from 'node:fs/promises';
2+
import { join } from 'node:path';
23

34
import { generate } from '@babel/generator';
45
import Mustache from 'mustache';
@@ -24,30 +25,43 @@ export default {
2425
* Generates a JavaScript / HTML / CSS bundle
2526
*
2627
* @param {import('../jsx-ast/utils/buildContent.mjs').JSXContent[]} entries
28+
* @param {Partial<GeneratorOptions>} options
2729
*/
28-
async generate(entries) {
30+
async generate(entries, { output }) {
2931
const template = await readFile(
30-
new URL('template.html.tpl', import.meta.url),
32+
new URL('template.html', import.meta.url),
3133
'utf-8'
3234
);
3335

36+
let css;
37+
3438
const bundles = await Promise.all(
3539
entries.map(async entry => {
3640
const program = buildProgram(entry);
3741
const { code } = generate(program);
3842
const bundled = await bundle(code);
3943

44+
// All bundles share the same CSS
45+
if (!css) {
46+
css = bundled.css;
47+
}
48+
4049
const rendered = Mustache.render(template, {
4150
title: entry.data.heading.data.name,
42-
css: bundled.css,
4351
javascript: bundled.js,
4452
});
4553

54+
if (output) {
55+
await writeFile(join(output, `${entry.data.api}.html`), rendered);
56+
}
57+
4658
return rendered;
4759
})
4860
);
4961

50-
console.log(bundles[0]);
62+
if (output) {
63+
await writeFile(join(output, 'styles.css'), css);
64+
}
5165

5266
return bundles;
5367
},

src/generators/web/template.html.tpl renamed to src/generators/web/template.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<head>
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<link rel="stylesheet" href="./styles.css" />
67
<title>{{title}}</title>
7-
<style>{{{css}}}</style>
88
</head>
99
<body>
1010
<div id="root"></div>

0 commit comments

Comments
 (0)