BookStack

Overview

What is BookStack?

Overview

About BookStack

BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information.

-- BookStack

 

Overview

References

Setup

Setup

Caddy Webserver

    # Bookstack
    @bookstack_statics {
        path /bookstack/*.png /bookstack/*.ico /bookstack/dist/* /bookstack/libs/*
    }
    handle @bookstack_statics {
        file_server
    }
    redir /bookstack /bookstack/
    handle /bookstack/* {
        rewrite /bookstack/* /bookstack/index.php?{query}&p={path}
        php_fastcgi /bookstack/* unix//var/run/php/php7.4-fpm.sock {
            resolve_root_symlink
        }
    }

Wishlist

Wishlist

User Interface

Easy

UX

Reduce visual distraction

Code Editor Pains

Previous - Next Navigation

Challenging

Dynamic Heading Level

Change Heading level with indent/outdent just like list nesting level, instead of selecting the format manually.

In the "Formats" dropdown, there would just be one "Heading" item.

Personal experience shows, that it is practical to select by default the previous heading level when writing text.

Reorder content directly

Instead of a separate menu, activate drag - sorting directly on the overview pages of books and chapters

Semantic Editing

Add html5 semantic elements, mostly inline: strong, em, kbd, abbr, cite, dfn, q, var, ...

Wishlist

Functionality

For each Page all (internal) references to it can be listed. E.g. in original Wikis the page title is clickable, in "newer" wikis a "backlinks" or "references" menu entry allows to list them.

A "macro" is available to show backlinks to a specific page (by default the current)

Page search for referring pages can be done with "linkto:pagename" or similar syntax.

Wishlist

Completely New Page Organisation

Overview

Changes for two concepts:

  1. Organising Content: Potentially infinite nesting of collections, which are an ordered list of collections and topics
  2. Reusing Page Content: any content can be 'mounted' into collections.

Organising Content

Topic (Page)

A topic is HTML5 Text with it's respective media.

Collection

A collection is a sorted list of topics and (sub)collections.

Collections are typed and parameterized:

Reusing Page Content

Any content can be added multiple times to any collection.

Reference counting is used and content is only deleted until it does not appear in any collection.

Implementation idea:

All Editors have a "Scrapbook" where newly created topics are added to automatically, even if it is added initially to a book or chapter.  So even if content is removed from all books, it still appears in the scrapbook.

If an Editor account is deleted it can be decided to move over orphaned topics to a different account, a global scrapbook, or to delete it definitely

If a topic is removed from the last book and the creating Editor account does not exist anymore it can be decided if it is moved to a different account, a global scrapbook or deleted.