---
title: WikiJS
git: https://github.com/Requarks/wiki
link: https://wiki.js.org/
date: 2020-09-28
modified: 2021-01-24
---
_[[Wiki]] software built on [[NodeJS]]. Has great [[Deploy To Heroku]] support_
* Home page https://wiki.js.org/
* OpenCollective Donations https://opencollective.com/wikijs
* Github https://github.com/Requarks/wiki
* Deploy via Heroku https://github.com/Requarks/wiki-heroku
An open source, modern and powerful wiki app built on Node.js, Git and Markdown. Can be maintained through a git repo (public or private, Github, Gitlab, etc) with standard git commits, as well as allowing edits through the front end, which writes back to the git repo.
Runs this site!
## Tips
### Keyboard Shortcuts
CMD + S on Mac (and iOS with external keyboard) will save the page you are working on.
### Footnotes
Uses [Markdown-It footnotes](https://github.com/markdown-it/markdown-it-footnote)
```
Here is a footnote reference,[^1] and another.[^longnote]
[^1]: Here is the footnote.
[^longnote]: Here's one with multiple blocks.
Subsequent paragraphs are indented to show that they
belong to the previous footnote.
```
#### Inline Footnote
```
Here is an inline note.^[Inlines notes are easier to write, since
you don't have to pick an identifier and move down to type the
note.]
```
## Bugs
### Task list items break all other formatting
https://github.com/Requarks/wiki/issues/1908
```
- [ ] Task list [link](/path/to/page)
- [ ] Task next https://example.com
- [ ] Task the **third**
```
(I can't show this live because it screws up formatting for the whole rest of the page)
### Moving files in Git
https://github.com/Requarks/wiki/issues/1358
Still trying to confirm this as I mass edit my files locally in git. May be "fixed" if I know which cache button to purge.
---
## Wish List
### Wiki-linking of pages
Some way to indicate that a page doesn't exist yet, so that you can come back and create it. `[[Double Square Brackets]]` might get used, or really, just single `[square brackets]` which might be more native
Also, a global list of linked-to-but-not-created pages. I don't know what the common term for this is.
### Tag-linking
#tips links to the [tips tag](/t/tips) automatically.
([Discourse](/software/discourse) does this for categories and tags)
### Global link count
Count and store all of the external links. Have a page that shows all of the external links, how many times they are linked from a page
### Backlinks
Show backlinks to pages that link to the current page
### OEmbed support
Rich embeds of links
### Check off "checkmark" lists without full page edit
You can make checkmark lists, but you have to go into full edit mode to "check them off". Either a separate permission, or just link it to page permission and allow checking them off through the front end.
Global view of all un-checked and checked checkmarks, filterable by tag.
### Allow for in-page view / edit of frontmatter
Currently, front matter is written back correctly to the git repo, but you need to use the UI to edit all of the options.
As an option, enable the ability to display the frontmatter inline.
For reference, the frontmatter includes:
```
---
title:
description:
published: true
date: 2020-05-20T04:02:00.507Z
tags: comma, separate, can use spaces, even
---
```
### Mobile Editing Interface
Probably not going to happen with the full app, but there **is** a GraphQL endpoint.
The project itself could ship with `/m/`, with a mobile optimized interface. Specifically for editing, adding notes, etc.
Syncing the entire git repo to your phone and searching / editing that "works", too :)
### RSS Feed
A feed of (public) updates
Bonus: per-tag feeds, per-"folder" feeds
### Auto-save mode
I have several pages that I keep open, and edit over time, especially my worklog pages. Default to an auto-save mode, which saves automatically (at the very least, locally to the DB).