They can cause instability, introduce issues and may conflict with future updates. Apply at your own risk!
Page Export Contents List
This hack uses the visual theme system to customize the page export template file, used for both PDF and HTML exports, to add a simple linked “Contents” list to the top of the file, generated from the headers within the document.
Considerations
- The “Page Contents” header is hardcoded in English.
- This contents list will not show page numbers for the PDF export.
- The contents will show when headers are used in page content.
- This hack uses internal an “PageContent” content class, and it’s methods, which will likely change in future BookStack versions.
Code
exports/page.blade.php
|
|
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/page-export-contents.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. »