Skip to content

rosano/hyperdraft

Repository files navigation

Project logo

Turn your text notes into a website

Hyperdraft helps you organize your thinking with text notes, and makes it simple to turn them into a website. Inspired by modeless and keyboard-centric Notational Velocity it lets you quickly and easily network your ideas via a simple double-bracket syntax. Use it for ideas, todo lists, brainstorming, recipes, reading notes, journaling, or anything involving writing. Read the guide for more details.

Open app

Architecture

The project follows a Universal folder structure and is a large collection of mostly small modules or functions that are put together using Svelte and Rollup. With the exception of a few 'global' or 'magic' things such as the localization function OLSKLocalized, most resources used by a module should be in the same folder or referenced by path name.

Routing, rendering markdown content, and serving pages is done via a Node.js server (usually configured in the controller.js files).

Development Setup

(For a deeper dive, watch the tutorial).

Install Node.js and npm, then:

npm run setup

This should create an .env file if there is none. If you encounter errors referring to this file, you can find missing variables in .env-sample.

Running

Start the Rollup process to build and reload automatically

npm run watch

Start the Node.js server to view in the browser

npm start

It should be accessible at http://localhost:3000.

Testing

See Testing logic and interfaces for a tutorial.

Run logic tests

npm test

Run interface tests

npm test ui

To filter interface test paths by string:

npm test ui match=write

To filter interface test paths by JavaScript regular expressions:

npm test ui match='/(detail|vitrine)/'

❤️

Help me keep creating projects that are public, accessible for free, and open-source.

Become a backer

License

The code is released under a Hippocratic License, modified to exclude its use for surveillance capitalism and also to require large for-profit entities to purchase a paid license.

Questions

Feel free to reach out on Mastodon or Twitter.