@chronocide/spider
v0.7.0
Published
Simple static HTML generator
Readme
Install
Install using npm:
npm i @chronocide/spiderUsage
spider only supports JavaScript ESM exports. If you wish to use TypeScript, JSX or anything else, your code must be transpiled to JS ESM.
See @chronocide/esbuild-plugin-spider for an example.
Simple
// src/index.js
export const url = '/';
export default '<h1>Hello world!</h1>';// build.js
import fsp from 'fs/promises';
import spider from '@chronocide/spider';
const page = await spider({ outdir: 'dist' })('/src/index.js');
await fsp.writeFile(page.path, page.html); // dist/index.htmlAdvanced
// src/index.js
export const meta = {
title: 'Home',
url: '/'
}
export default `<h1>${meta.title}</h1>`;// build.js
import fsp from 'fs/promises';
import spider from '@chronocide/spider';
const page = await spider({
outdir: 'dist',
properties: { url: raw => raw.meta.url }
})('/src/index.js');
await fsp.writeFile(page.path, page.html); // dist/index.htmlRSS
// src/rss.js
export const url = 'rss.xml';
export default `
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Example Feed</title>
<link href="http://example.org/"/>
<updated>2003-12-13T18:30:02Z</updated>
<author>
<name>John Doe</name>
</author>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
<entry>
<title>Atom-Powered Robots Run Amok</title>
<link href="http://example.org/2003/12/13/atom03"/>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated>
<summary>Some text.</summary>
</entry>
</feed>
`;// build.js
import fsp from 'fs/promises';
import spider from '@chronocide/spider';
const page = await spider({ outdir: 'dist' })('/src/rss.js');
await fsp.writeFile(page.path, page.html); // dist/rss.xml