Reusing Page Content
Within Signature you may find that you want to include the same block of content in multiple places. You could copy and paste that content into multiple pages but then, if that content needs to be changed, you’d have to update it multiple times across different pages. Introduced in BookStack v0.14 is the ability to include other pages and to also include single blocks of content from other pages.
Note that the includeincluded behaviour is non-recursive so including will only work to a single level. This ensures performance and prevents users from breaking pages by creating include loops.
Include Tags
To include the content of a page within another you can use the following syntax:
{{@page_id}}
or {{@page_id#content_id}}
Here are some examples of this in use:
{{@5}}
- Includes all the content from the page with an id of ‘5’.{{@10#bkmrk-copyright-year}}
- Includes the content within the element of idbkmrk-copyright-year
in the page with an id of ‘10’.
You simply enter that in the page editor and then, when the page is viewed, the content will be dynamically be fetched. This means you can update the referenced content and it will show the same changes on any page the content is included within.
Easily Grabbing the Syntax
Finding the id of a page can be difficult so a quick and easy way to find include tags is built into Signature. View a page with some content you want to re-use. Use your mouse to select some content and you will see a popup appear. By default this contains a direct link to that content. If you click the link icon on the left it will switch to show you the include tag for that content. Simply copy that and place it in another page. Remove the #
and content id to include the whole content of the page instead of just a single block.