@page.title: wikifier; @page.author: Mitchell Cooper; @page.created: 1357899400; @category.software; @category.wiki; infobox { image { file: quiki.png; }; :The quiki logo, created in [[ Microsoft[®] Word | wp: Microsoft Word ]]; Type: [[ Wiki engine | wp: Wiki software ]]; Initial release: February 2013; Author: [[ Mitchell Cooper | https://github.com/cooper ]]; Repository: [[ wikifier on GitHub | https://github.com/cooper/wikifier ]]; Website: [[ https://wikifier.mitchellcooper.me ]]; } sec { wikifier is a file-based wiki engine. It is unique in that it requires no database. It is so simple that it can be managed with nothing more than a plain text editor. Yet, it offers page and image caching, image sizing, authentication/session management, and lots of other things that fancy wikis use databases for. wikifier is accompanied by [[ quiki | https://github.com/cooper/quiki ]], a standalone web server and wiki frontend, as well as [[ adminifier | https://github.com/cooper/adminifier ]], a web-based wiki administration panel. history { February 2013: The first commit of wikifier is published.; December 2013: [[ wp: Nelson Mandela ]] passes away.; February 2014: [[ wp: Ebola virus ]] spreads across West Africa.; July 2015: [[ wp: NASA ]] takes a close-up photo of Pluto.; } } ~sec [Documentation] { $documentation {} } sec [Components] { wikifier is split up into several packages. They are listed below, with each subsequent one built atop the previous. sec [Wikifier] { Responsible for parsing and other low-level functions. While typically not used directly, this package provides the most basic implementation of the wikifier language. } sec [Wikifier::Page] { An object representing a single page. This package provides a programming interface for working with a single wikifier page. The included [c]wikifier[/c] executable uses this to read a page file and output HTML. } sec [Wikifier::Wiki] { A full wiki suite, capable of managing a diverse collection of content. Features page categories, templates, image generation, revision tracking, and much more. This package provides a programming interface that can be used directly from a web server script, but running a standalone wikiserver is preferred. } sec [Wikifier::Server] { The included [c]wikiserver[/c] executable runs an instance of Wikifier::Server. A single wikiserver can manage any number of wikis. It monitors source files for changes and generates content immediately as it is modified. The result is a faster page load time since the content has been pregenerated. wikiservers do not deliver the content directly to the user. Instead, frontends connect to and communicate with them. These frontends, in turn, make it possible to view and manage wikifier wikis from the web. This makes it easy to incorporate wikifier into almost any web server without having to use disgusting Perl HTTPd modules, and it allows the wikiserver to perform scheduled operations independently of the web server. } } sec [Frontends] { These frontends connect to a wikiserver and deliver content to end users. sec [quiki] { [[ quiki | https://github.com/cooper/quiki ]] is a standalone web server for wikifier. Because it is designed specifically for wikifier, it is by far the easiest option to get a wiki up and running in a few simple steps. It can be incorporated into an existing web environment using a reverse proxy. } sec [adminifier] { [[ adminifier | https://github.com/cooper/adminifier ]] is a web-based administrative panel to manage wikifier wikis. It is written in PHP and therefore runs on a variety of web servers. } } sec [Interfaces] { These programming interfaces can be used to incorporate wikifier into other web servers. list { [[ go-wikiclient | https://github.com/cooper/go-wikiclient ]] - Go programming interface; [[ php-wikiclient | https://github.com/cooper/php-wikiclient ]] - PHP programming interface; } }