Skip to main content

A Draftail extension to add anchor identifiers to rich text

Project description

Wagtail Draftail Anchors

Adds the ability to add and edit anchors in the Draftail rich text editor, as well as automatically adding (slug-form) anchor ids to all headings.

Installation

Install using pip:

pip install wagtail-draftail-anchors

Add 'wagtail_draftail_anchors' to INSTALLED_APPS below wagtail.admin.

Add 'anchor-identifier' to the features of any rich text field where you have overridden the default feature list. The feature must be added before any heading('h1',...,'h6') feature:

body = RichTextField(features=['anchor-identifier', 'h2', 'h3', 'bold', 'italic', 'link'])

Configuration

Rendered representation of anchors

By default, anchor-identifier rich text entities will be rendered as HTML anchor elements, e.g.:

<a href="#my-element" id="my-element" data-id="my-element">My element</a>

This package provides an alternative renderer that renders anchor-identifier entities as HTML span elements, e.g.:

<span id="my-element">My element</span>

The desired renderer can be specified using the DRAFTAIL_ANCHORS_RENDERER setting. To use the span renderer, configure your application as follows:

DRAFTAIL_ANCHORS_RENDERER = "wagtail_draftail_anchors.rich_text.render_span"

It is possible to define your own renderer. It should be a callable that takes a dict of attributes, and returns a string containing the opening tag of the HTML element that represents the anchor target. The dict passed to the renderer, for an anchor with an identifier of "my-anchor", would look like the following:

{"data-id": "my-anchor", "href": "#my-anchor", "id": "my-anchor", "linktype": "my-anchor"}

If you define your own renderer, you should set the value of DRAFTAIL_ANCHORS_RENDERER to your custom renderer's import path.

See render_span and render_a in wagtail_draftail_anchors.rich_text for examples.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wagtail_draftail_anchors-0.7.0.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wagtail_draftail_anchors-0.7.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file wagtail_draftail_anchors-0.7.0.tar.gz.

File metadata

  • Download URL: wagtail_draftail_anchors-0.7.0.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for wagtail_draftail_anchors-0.7.0.tar.gz
Algorithm Hash digest
SHA256 8e2975595fb476e1b1f78ec4ff0e810fac3751956dd94b97d20b2f435536f757
MD5 aefb4a204af1ec787b2babc35a168507
BLAKE2b-256 8e33d036de1bb2c9b8139973f6955abec573c65b0e84157a216f23c00b8b6f56

See more details on using hashes here.

File details

Details for the file wagtail_draftail_anchors-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for wagtail_draftail_anchors-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 302b2b50236efed43f9d84d2a0483a9fcf31c98586ef364eb348c061877c249a
MD5 e52324b824d4a2b4a4f7f4195e88ad37
BLAKE2b-256 95fd18bcc76cf829d7c28a69acf6e7820d39bf098095bb0ebe31cd1616e31363

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page