/emanote

Spiritual successor to neuron, based on Ema.

Primary LanguageHaskellGNU Affero General Public License v3.0AGPL-3.0

emanote

AGPL built with nix FAIR Matrix Liberapay

Spiritual successor to neuron, based on Ema.

Create beautiful websites -- such as personal webpage, blog, wiki, Zettelkasten, notebook, knowledge-base, documentation, etc. from future-proof plain-text notes and arbitrary data -- with live preview that updates in real-time.

Project Status: In beta phase, but is nearly 1.0.

Installing and using

# Install (`cachix use srid` for cached binaries)
nix-env -if https://github.com/srid/emanote/archive/refs/heads/master.tar.gz
# Or, from the Git repo: nix-env -if ./default.nix

# Run live server (HOST and PORT are optional)
cd /path/to/notebook
HOST=0.0.0.0 PORT=8001 emanote

# Generate static files (-L defaults to current directory)
mkdir /tmp/output
emanote -L /path/to/notebook gen /tmp/output

For other installation methods, see here.

Examples

https://note.ema.srid.ca/examples

Developing

Emanote is written in Haskell. Thanks to Nix, this repository is pre-configured to provide a delightful development experience with full IDE support in Visual Studio Code. Follow these steps:

  • Install Nix & enable Flakes
  • Run nix-shell --run haskell-language-server to sanity check your environment (Expect it to download and build a bunch of things the first time)
  • Open the repository as single-folder workspace in Visual Studio Code
    • Install the workspace recommended extensions
    • Ctrl+Shift+P to run command "Nix-Env: Select Environment" and select shell.nix. The extension will ask you to reload VSCode at the end.
  • Press Ctrl+Shift+B in VSCode, or run bin/run (bin/run-via-tmux if you have tmux installed) in terminal, to launch the dev version Emanote on ./docs, then navigate to http://localhost:9010/
    • Changing the Haskell sources will recompile and reload this instance automatically.

All but the final step need to be done only once. See architecture.md for a high-level overview of the codebase.

Discussion

To discuss the emanote project, join Matrix or post in GitHub Discussions.