fluence

WYSIWYG wiki powered by Crystal, markdown, and Git wiki wiki-engine wysiwyg markdown tables media wysiwyg-editor markdown-editor
0.4.0 released
docelic/fluence
46 1 26
Davor Ocelic

Build status: Build Status Version License

Project status: [X] Being developed [X] Usable [ ] Functionally complete

Fluence

Elegant wiki powered by Crystal, with markdown as native format and a WYSIWYG editor.

It uses file-based storage versioned using Git. Wiki pages are created as files and directories on disk and they can be modified in Fluence or via filesystem directly. (Please submit any opinions on this approach in Storage backend - files or database?.)

Fluence uses Bootstrap 4 and jQuery 3.3.1 slim.

Installation and Startup

Fluence is implemented in Crystal and you will need a Crystal compiler. Obtain it from https://crystal-lang.org/docs/installation/.

To download and compile Fluence, do:

git clone https://github.com/crystallabs/fluence
cd fluence
shards
bin/ameba      # Warnings reported here are non-critical
crystal spec
make           # or 'make release'

The result of the compilation will be one executable file — bin/fluence.

Run this file and visit http://localhost:3000/ in your browser.

To configure Fluence, please do so in config/options.cr. After changing the options, you need to re-start and/or re-build Fluence.

Example

Here's how it currently looks:

Fluence Wiki Screenshot

Maintenance Tips

When Fluence starts, by default it will create two subdirectories in the current directory:

  1. data/ (further subdivided into pages/ and media/) for actual Wiki pages and their attached media files
  2. meta/ for metadata, which currently consists of files users, acl, pages, and media

There are no files or directories required to pre-exist for Fluence to work. Feel free to delete any part of data or metadata as long as you restart Fluence after that. Files meta/pages and meta/media contain indexes of pages and media content respectively. If you believe their contents have gone out of sync with the actual on-disk state (possibly due to a bug or external modifications to files which Fluence didn't auto-detect and update), delete these files and restart Fluence; the indices will be regenerated from actual on-disk contents.

Current State / Usability

The Fluence Wiki is usable. On-disk format for data won't change so you will be able to upgrade in the future without trouble.

Important things to have in mind currently:

  1. The default permissions scheme (which works and can be configured via both meta/acls and GUI) by default makes all registered users automatically be admin, and registrations are always open and don't require any confirmation. Therefore, the initial target for deployment and test of Fluence are small/trusted intranets and teams.

Things we have in mind or are working on are listed in project issues. Your comments will help us decide on priorities.

Contributors

  • Nephos Arthur Poulet - Fluence was originally developed based on Arthur's Wikicr. Thanks!
fluence:
  github: docelic/fluence
  version: ~> 0.4.0
License GPL-3
Crystal 0.26.0

Authors

Dependencies 5

  • kemal master
    {'branch' => 'master', 'github' => 'kemalcr/kemal'}
  • kemal-flash master
    {'branch' => 'master', 'github' => 'neovintage/kemal-flash'}
  • kemal-session master
    {'branch' => 'master', 'github' => 'kemalcr/kemal-session'}
  • markd master
    {'branch' => 'master', 'github' => 'icyleaf/markd'}
  • slang master
    {'branch' => 'master', 'github' => 'jeromegn/slang'}

Development Dependencies 1

  • ameba ~> 0.8.0
    {'github' => 'veelenga/ameba', 'version' => '~> 0.8.0'}

Dependents 0

Last synced .
search fire star recently