Feather Wiki

A tiny tool for simple, self-contained wikis!

Extension Development

Created:

Though Feather Wiki itself is developed using modern, module-based web development techniques, writing extensions requires a bit of a different, more traditional web development approach, utilizing global variables directly from the window. In most cases you're simply modifying the window's DOM after Feather Wiki finishes rendering, but the potential results are nearly infinite!

Using the "Custom JS" text area on the Wiki Setting page, you can access the underlying customized nanochoo framework for Feather Wiki from window.FW, Choo's nanohtml from window.html, nanohtml's raw HTML component from window.html.raw, and several other useful things like Feather Wiki's default views and helper functions. Using these, you can access the app's state and emitter to modify the app in many different ways.

If you want to be effective at creating extensions for Feather Wiki, you will need to be willing to look at its source code when you want to override existing behaviors. You will also benefit from understanding the way Choo operates and how to use JavaScript to manipulate the browser DOM after Choo renders a view.

Get Started #

If that sounds doable to you, then get started with the links below!

The tutorial will walk through the basics and caveats of writing a Feather Wiki extension, and the documentation will explain the structure of the Feather Wiki app and explain its source code and methods so you can have a better understanding of how everything fits together.