They can cause instability, introduce issues and may conflict with future updates. Apply at your own risk!
WYSIWYG Editor Footnotes
This hack adds some level of “footnote” support to the WYSIWYG editor. A new “Footnote” button is added to the toolbar, next to the “Italic” button, that allows you to insert a new footnote reference. Footnotes will automatically be listed at the bottom of the page content. The reference numbering is automatic, chronologically from page top to bottom. New references will change existing numbering if inserted before.
This hack provides significant examples of TinyMCE (The library used for the WYSIWYG) content manipulation and extension. The code is heavily commented to assist as a helpful example. For significant alterations, you’ll likely want to review the TinyMCE documentation to understand the full set of available capabilities and actions within the TinyMCE editor API.
Considerations
- This heavily relies on internal methods of TinyMCE, which may change upon any BookStack release as we update the editor libraries.
- All logic is within the WYSIWYG editor, and therefore you won’t get the same functionality via the API or other editors.
- The syntax & code used likely won’t be cross-compatible with the markdown editor.
- The footnotes list will be generated when content is saved from the editor, so is not updated live but should always be auto-updated before save.
- This has been tested to some degree but there’s a reasonable chance of bugs or side affects, since there’s quite a lot going on here.
- There’s a lot of custom code here. You could instead put this code (without the HTML
<script>tags) in an external JavaScript file and then just use a single<script src="/path/to/file.js"></script>within the custom head setting.
Code
head.html
|
|
Install as Module (Beta)
If using BookStack v26.03 or later, you can install this hack as a theme module on your BookStack instance by running the below artisan command from your BookStack installation folder:
php artisan bookstack:install-module https://www.bookstackapp.com/hack-modules/wysiwyg-footnotes.zip
Request an Update
Hack not working on the latest version of BookStack?
You can request this hack to be updated & tested for a small one-time fee.
This helps keeps these hacks updated & maintained in a sustainable manner.
Latest Hacks
View Block: Developer Info
This hack registers a custom view block which will show developer-focused details such as: ID for the current item viewed (With click-to-copy ID) A link to open that item in the API A link to the relevant section in the docs This is available to be added to all content-based layouts. »
View Block: Instance Total Stats
This hack registers a custom view block which can be used on any type of home page. This block lists total counts for shelves, books, chapters, pages and users in the system. »
Azure/Entra OIDC User Avatar Images on Initial Login
This hack hooks into the OIDC login process to fetch and assign user avatar images from Azure/Entra on first user login/registration. »
Tag Values in Page Content via Includes
This hack allows you to dynamically pull in the value of tags into page content, via customizing how page include tags are parsed. This hack will attempt to use tags on the page itself, then look to the parent chapter (if existing), then the parent book’s tags. »