Skip to main content

Render CLDF markdown in clld apps.

Project description

clld-markdown-plugin

Render CLDF markdown in clld apps

Usage

Include (and configure the plugin) in your app's main function:

def main(global_config, **settings):
    settings['clld_markdown_plugin'] = {
        'model_map': {'ValueTable': common.ValueSet},
        'function_map': {}
    }
    config = Configurator(settings=settings)
    config.include('clld.web.app')
    ...
    config.include('clld_markdown_plugin')

Then you can use clld_markdown_plugin.markup as follows in your templates:

<%! from clld_markdown_plugin import markdown %>

${markdown(req, '[x](LanguageTable#cldf:abad1241)')|n}

By default, links to objects in the CLDF dataset will be rendered as HTML links to the corresponding object's details page in the clld app.

Configuration

The plugin can be configured via the following four configuration options:

  • model_map: A dict mapping CLDF component names to DB model classes defined for the app. This allows for a flexible mapping between CLDF components and the clld DB classes.
  • renderer_map: See below for details.
  • extensions: A list of markdown extensions in dot notation, to be activated when calling the markdown function.
  • keep_link_labels: A boolean indicating whether to keep link labels as they appear in the CLDF Markdown text. By default (False), labels will be substituted using the linked object's name.

Renderer callables

The renderer_map configuration option for clld_markdown_plugin accepts a dict mapping CLDF component names to Python callables with the following signature:

import clld.web.app


def renderer(req: clld.web.app.ClldRequest, objid: str, table, session: clld.db.meta.DBSession, ids=None) -> str:
    """
    The returned `str` is interpreted as Markdown, so it may also include HTML.
    """

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

clld_markdown_plugin-1.0.0.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

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

clld_markdown_plugin-1.0.0-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file clld_markdown_plugin-1.0.0.tar.gz.

File metadata

  • Download URL: clld_markdown_plugin-1.0.0.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for clld_markdown_plugin-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5509fce00c072690f334a65165d104f2553594ba73e1fe603f11dd4e3245b251
MD5 f6350fe0145260f5c66c50551884784f
BLAKE2b-256 7850aa664341ea4693279d6b6cc163035a56c684c327a11387932c465748030c

See more details on using hashes here.

File details

Details for the file clld_markdown_plugin-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for clld_markdown_plugin-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b965be67527ac4498bb8561654986acf7a96f55feae60ff9465f81bce968b66f
MD5 dbd12800cbb7d821fa8a1fd86ac3a092
BLAKE2b-256 ff92236f26e4ad00e04651dbe5345f375219b719dfc80006cbf4a567808fde5c

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