~lown/mimir

🍄 Tiny 🤖 Go ✨ Markdown 🔮 Wiki
Improved code styling
fix: show contents when no backlinks
Remove console logs

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~lown/mimir
read/write
git@git.sr.ht:~lown/mimir

You can also use your local clone with git send-email.

#Mimir

Mimir is a small, opinionated Markdown wiki, knowledge base, or digital garden written in Go. It is named after the Norse mythological figure Mímir, who seemed like a nice dude and knew a lot of things.

Mimir has the following features:

  • A simple, themeable online interface with a nice Markdown editor (using Ace).
  • No database. Wiki pages are stored as simple Markdown files in the filesystem.
  • Versioning (also flat file) and an online diff viewer.
  • Optional multi-user authentication with per-user viewing and editing permissions.
  • Auto-linking of [[Double Brackets]]. A link like this would lead to the page /double-brackets.
  • A backlinks display, showing pages which link to the current page.
  • A media upload library.

Mimir is built entirely around the things that I want from a wiki engine, but I am very open to ideas for new features and improvements on current ones, and will be delighted if anyone finds it useful!

#Installation

Mimir requires Go to be installed.

Mimir requires an directory to create its wiki documents, and a config.toml file. These do not have to be in the same directory, but can be:

mkdir ~/wiki
touch ~/wiki/config.toml

An example config.toml looks like this:

site_title = "Mimir"
# If true, viewing will be restricted to signed in users with can_view = true.
# If false, any visitor can view the wiki.
restrict_viewing = true
# If true, editing and diff viewing will be restricted to signed in users with can_edit = true.
# If false, any visitor can edit and view page diffs.
restrict_editing = true
show_backlinks = true
# The media upload directory will be the /media subdirectory in your base wiki directory.
media_directory = "media"

# This user, 'admin', can both view and edit pages.
[[users]]
username = "admin"
password = "admin"
can_view = true
can_edit = true

# The user 'user' can only view pages.
[[users]]
username = "user"
password = "user"
can_view = true
can_edit = false

Clone this repository and run the program:

go run . --dir ~/wiki --config ~/wiki/config.toml

Alternatively, build the binary, then run it from somewhere on your $PATH:

go build .
mv mimir /usr/local/bin
mimir --dir ~/wiki --config ~/wiki/config.toml

#Theming

The default theme for Mimir is intentionally bare-bones (some would say 'hideous'). If your wiki directory is ~/wiki and the theme = "themename" property is specified in config.toml, Mimir will attempt to load the file ~/wiki/themes/themename.css after the basic styles. An example nicer theme is provided in this repository under themes/default.css.