Add footnotes functionality to your Wagtail project.
- Add the app to
INSTALLED_APPS:INSTALLED_APPS = [ ... "wagtail_footnotes", ... ]
- Add the footnotes
urls.pyto your project'surls.py:Note: The URL has to be defined as above as it is currently hardcoded in the Javascript.from wagtail_footnotes import urls as footnotes_urls urlpatterns = [ ... path("footnotes/", include(footnotes_urls)), ... ]
- Update your page models to show the footnotes field:
class InformationPage(BasePage): ... content_panels = [ ... InlinePanel("footnotes", label="Footnotes"), ]
- Update your
RichTextBlocks- Add
"footnotes"to thefeaturesarg for eachRichTextBlockthat you want to have this functionality - You will also need to change any
RichTextBlocks towagtail_footnotes.blocks.RichTextBlockWithFootnotes - You can add the footnotes to
RichTextBlocks across the project by updatingWAGTAILADMIN_RICH_TEXT_EDITORS["default"]["OPTIONS"]["features"]:WAGTAILADMIN_RICH_TEXT_EDITORS = { "default": { "WIDGET": "wagtail.admin.rich_text.DraftailRichTextArea", "OPTIONS": {"features": ["bold", "italic", "h3", "h4", "ol", "ul", "link", "footnotes"]}, } }
- Add
- Update your page templates to include
{% include "wagtail_footnotes/includes/footnotes.html" %} - Make and run migrations:
./manage.py makemigrations ./manage.py migrate
- I click on the
Fnbutton in the editor and it stops working- This is likely because the URL in the JS does not match the URL of the footnotes view. Check the URL in
wagtail_footnotes/static/footnotes/js/footnotes.jsmatches the URL you set.
- This is likely because the URL in the JS does not match the URL of the footnotes view. Check the URL in
NoneTypeerror when rendering page.- Make sure you are rendering the field in the template using
{% include_block page.field_name %}
- Make sure you are rendering the field in the template using