/Eden

Turns a directory of markdown files into a website with Spaced Repetition Study features

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Eden

Eden Logo

Tests

Converts an Obsidian vault into a super-charged digital garden of static html.

See CurrentTasks.md for up-to-date development tasks

Usage

Eden currently requires https://deno.com/ to run but will be made available as an executable in the future!

Usage Command
Simplest usage deno run https://deno.land/x/eden/src/mod.ts path/to/my/vault/
Generate and preview the outputted html deno run https://deno.land/x/eden/src/mod.ts --preview path/to/my/vault/ && start http://localhost:8000/
Run with permissions deno run --allow-net --allow-write --allow-read --allow-env https://deno.land/x/eden/src/mod.ts path/to/my/vault/

Features

  • Breadcrumbs
  • Metadata Support [[Metadata]]
    • Created Date (automatic)
    • Last Edited Date (automatic)
    • hidden (prevents publishing the page)
    • type
    • tags (automatically generates an index page that links to all pages with a given tag)
    • template (allows overriding html template)
    • alias (Link to a note using a metadata alias)
  • Future-proof: Exportable data, portable, control and own your data, no lock-in
  • Highly Customizable HTML and CSS [[plain]]
    • Javascript is supported and is fully optional!
  • Backlinks [[backlinks]]
  • Website icons next to external links (Like this: Youtube)
  • ️Built-in rss feed support (automatically creates /rss.xml)
  • Support for Footnotes ^[example footnote]
  • Support sizing images
  • Navigation: Support for vertical and horizontal nav depending on screen size. Collapsable sections
  • Support embeddable images [[images]]
  • Block Embedding [[embedding]]
  • Embeddable content
    • Embeddable Youtube Videos
    • Embeddable Vimeo Videos
    • Embeddable Tweets
  • Faster Execution with caching
    • Skips files if the .md is older than the .html and the template / css
  • Site search
    • make entire garden available in json at /garden.json for advanced usage
  • 🔑Backlinks should include optional context snippets
  • Metadata thumbnail for article for when it's displayed in an index page
  • Obsidian CSS Snippets
  • Ability to create different object types, ontologies, and tags
  • Expandible/collapsible blocks
  • Embed Audio files
  • Embed pdf
  • Embed search results
  • Support syntax highlighting
  • ❓Print-ready, capable of being exported to EPUB or PDF
  • Customizable header (like https://maggieappleton.com/) that works with transclusion.
  • Template Footer
    • link to rss.xml
    • social links
    • copyright

Obsidian Flavored Markdown Support

Completed Syntax Feature Name Note
[[Link]] Internal links
!​[[Link]] Embedding files
![[image.png]] Embedding image
![[Link#^id]] Block references
^id Defining a block
%%Text%% Comments
~~Text~~ Strikethroughs
==Text== Highlights
``` Code blocks Todo: Syntax highlighting lib
- [ ] Incomplete task
- [x] Completed task
> [!note] Callouts Todo: styling
[[page|modified title]] Modified title source
[[page#header1]] Link to header source
[[page#^blockId]] Link to blockId source

Easy hosting with Static.app

https://static.app/ is the simplest hosting solution for non-technical users. Simply drag-n-drop your static html files found at eden-md-out/YOUR_PROJECT_NAME and your website is live!

Complex hosting with Git and Vercel

To use Eden with Vercel and Git for Continuous Deployment, set the followin Project Settings in Vercel:

Build Command: /vercel/.deno/bin/deno run --reload --allow-net --allow-write --allow-read --allow-env https://deno.land/x/eden/src/mod.ts --parseDir .

Output Directory: eden-md-out/YOUR_PROJECT_NAME (note: YOUR_PROJECT_NAME is found in eden-md-config in your markdown vault directory)

Install Command: curl -fsSL https://deno.land/x/install/install.sh | sh

Support this Project

I've created Eden on my own time and out of my own pocket. If you benefit from it please consider donating!

https://github.com/sponsors/jdoleary