๐Ÿณ๐Ÿ’จGustwind

Deno powered JSON oriented site generator

Gustwind is an experimental site generator built on top of JSON definitions using Deno. The goal of the design is to allow component oriented development of large scale sites. Conceptually itโ€™s split as follows:

Please see the documentation to learn more about the concepts.

Getting started๐Ÿ”—

Thereโ€™s a simple GitHub template that has basic features set up. It renders the project readme as index.html and you should expand/change the project to your liking.

Usage๐Ÿ”—

The easiest way to consume the project is to use the CLI:

deno install -A --unstable --no-check -f https://deno.land/x/gustwind/gustwind-cli/mod.ts

The APIs are also available as modules if you need more control.

Itโ€™s a good idea to use a recent version of Deno and I recommend using 1.16.0 or newer.

Data flow๐Ÿ”—

Gustwind accepts TypeScript, Markdown, JSON definitions including Twind (Tailwind) classes and emits HTML and JavaScript.

Gustwind data flow

Itโ€™s possible to customize the input formats and it can load data from asynchronous sources, say GraphQL APIs, so it can be used with headless content APIs.

Example sites๐Ÿ”—

Given Gustwind is still in a rapid development phase, the APIs change every once in a while. The source of this site is the most up to date resource and Iโ€™ve listed other examples below:

Development๐Ÿ”—

Use deno task to see available tasks and to run them.

To test the cli locally, use deno install --no-check -A -f --unstable -n gustwind ./gustwind-cli/mod.ts. A symlink would likely work as well.

Publishing to deno.land๐Ÿ”—

Publishing to deno.land goes through the publish utility.

Publishing to npm๐Ÿ”—

  1. deno task build:gustwind-for-npm <VERSION> where VERSION is 0.1.0 for example
  2. cd gustwind/npm
  3. npm publish. You may need to pass --otp here as well (preferred for security)