Skip to main content

Simple shortcodes resolver utility lib.

Project description

Text shortcodes resolver

Installation

pip install wc-shortcodes

Usage

Simple usage:

from wc_shortcodes.registry import CodesRegistry
from wc_shortcodes.transformer import transform


registry = CodesRegistry()


# Adding handler for a specific shortcode:
@registry.register()
def shortcode(entity, context={}):
  return entity.content


# Transforming some content using registered resolvers.
transform(registry, '''
[shortcode unhandled-parameter="it's value"]
Content.
[/shortcode]
''')
# Result will be:
# > 'Content.'

Shortcode handler can also be defined with additional parameters:

@registry.register(
  # Shortcode custom name:
  'name',
  # Does this shortcode can handle multiple entities at a time.
  # `False` by default.
  multiple=False,
  # Should entity's `content` property be parsed and resolved before it
  # passed to this handler.
  # Or you should do something with raw content instead.
  # `True` by default.
  autoresolve_content=True,
)

Multiresolver

Multiresolver is not the same as singular one(duh..).

This configuration was made for performance reasons.

For example if there is, lets say, 10 same shortcuts with different parameters passed inside one text. It's obvious that whose 10 items will do same work for 10 times. So to prevent such unefficiency multihandlers had been added.

@registry.register(multiple=True)
def shortcode(
  # They receive all current entities as `*args`.
  entities: List[Entity],
  context={}
) -> List[str]:
  return [
    # And must return result in the exact same order as they have been passed.
    entity.content for entity in entities
  ]

Django

Installation

In settings.py:

INSTALLED_APPS += [
  'wc_shortcodes.contrib.django',
]

Usage

Specific implementation not yet ready. Can be used as described before.

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[0.1.0]

Initial version.

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

wc-shortcodes-0.1.0.tar.gz (9.7 kB view details)

Uploaded Source

File details

Details for the file wc-shortcodes-0.1.0.tar.gz.

File metadata

  • Download URL: wc-shortcodes-0.1.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for wc-shortcodes-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e17fd8eeb1fad8e878678b38a6ec3a4af4aba9caa7a004d729bdce8137b06277
MD5 d27682bd5ac560016786a9f16546e237
BLAKE2b-256 5f4e4a1c78725ac3425e314a9570164457df7754f2622f9fd4b3ebfe6a928c0d

See more details on using hashes here.

Supported by

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