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,
nacowikimain class that integrates everything together.
Core: main WIKI functionality
Cli: CLI interface
PluginCollection: plugin support
CodeMirrorsupport now in the
Core(instead of depending of Plugin implementations.
- Re-organized CSS files
- Raw/source code display.
- Page handlers:
- NEW source code
- NEW YouTube Links
- NEW Static site generator
- 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 is now handled by phpDocumentor plus HTML generated using
SiteGen plugin. You can find that here: