NacoWiki
A few months ago I extensibly modify picowiki and creeated NanoWiki.
After using NanoWiki for a few months, the code became somewhat of an spaghetti mess. This has to do that picowiki was designed as a single file, single class application with Plugin extension. Since every change went to a single class this quickly became difficult to manage.
Additionally, I realized that "NanoWiki" was not a very good name as this name was used by several projects and organizations.
So, I went ahead and re-wrote the whole thing into NacoWiki. These are the changes:
- Cleaner and more functional UI.
- Initial REST-API support.
- Added a CLI interface.
- Off-tree installation, with the option of co-existing multiple instances.
- Code modularization,
nacowiki
main class that integrates everything together.Core
: main WIKI functionalityCli
: CLI interfacePluginCollection
: plugin support
CodeMirror
support now in theCore
(instead of depending of Plugin implementations.- Re-organized CSS files
- Raw/source code display.
As plugins:
- Page handlers:
- HTML
- Markdown
- NEW source code
- NEW YouTube Links
- NEW Static site generator
- Emojis
- File includes
- Var snippets
- WikiLinks (NEW: search article names)
Features/improvements over picowiki:
- file management: create, delete, rename, modify, attach, etc.
- hooks for access control
- meta data support
- Disabled code execution. This can be considered a "security" feature.
- Support for byte ranges. This lets you stream video files directly from the wiki.
- toggable, folder or document views.
- theme support
- Multiple file type handling
Documentation
Documentation is now handled by phpDocumentor plus HTML generated using
NacoWiki's own SiteGen
plugin. You can find that here: