Skip to main content

This package allows you to define and organise static assets for your Wagtail blocks frontend.

Project description

Wagtail CRX block frontend assets rendering

Define and organize frontend assets (like js or css files) for your Wagtail CRX blocks.

Getting started

  1. Add the app to INSTALLED_APPS:

    INSTALLED_APPS = [
     ...
     "wagtail_crx_block_frontend_assets",
     ...
     ]
    
  2. Integrate your blocks with this app.

     from wagtail.blocks import CharBlock, StructBlock
     from wagtail_crx_block_frontend_assets.blocks import BlockStaticAssetsRegistrationMixin
    
     class FrontendAssetsBlock(BlockStaticAssetsRegistrationMixin, StructBlock):
    
         title = CharBlock(
             required=False,
             label="Title",
         )
    
         def register_assets(self, block_value):
             static_assets = []
    
             static_assets += [
                 self.StaticAsset("path/to/asset.js", target="_blank"),
                 self.StaticAsset("path/to/style.css", media="print"),
    
             ]
    
             return static_assets
    

    Your block class has to inherit from BlockStaticAssetsRegistrationMixin and you have to implement register_assets function. This function returns array of BlockStaticAssetsRegistrationMixin.StaticAsset instances. You can use block_value parameter to conditionally render assets based on current block values.

  3. Then you can define place in your templates where you want your block assets to be rendered like this:

    {% extends "coderedcms/pages/base.html" %}
    {% load block_assets_tags %}
    
    {% block custom_assets %}
    {{ block.super }}
    {% render_block_assets required_file_extension=".css" %}
    {% endblock custom_assets %}
    
    {% block custom_scripts %}
    {{ block.super }}
    {% render_block_assets required_file_extension=".js" %}
    {% endblock custom_scripts %}
    

Development

  1. Make sure you have Python virtual env installed
    $ python -m venv .venv
    
  2. Install this app in editable mode
    $ pip install -e .
    
  3. Migrate testapp DB
    $ python manage.py migrate
    
  4. Run the testapp
    $ python manage.py runserver
    
    Or hit F5 if you use Visual Studio Code

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_crx_block_frontend_assets-1.0.0.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

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

File details

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

File metadata

File hashes

Hashes for wagtail_crx_block_frontend_assets-1.0.0.tar.gz
Algorithm Hash digest
SHA256 2ca04d592ae399ae1b4f81e2e11dd9ae98a65ca9a9575833e1ec53f46599dc0f
MD5 5558884217450ebdd43df5135ebad94d
BLAKE2b-256 2dd329f45fe7478a73bb3c81cd87e42a095e16dfcbc26c94fc0cbedbea312873

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wagtail_crx_block_frontend_assets-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5863e00ceeb56ec5bcf223a40b5aab3547a82035a86b3f811530ae60b9263c55
MD5 724a28d248b729b26951d7dd09670d90
BLAKE2b-256 9d5e44aea5fe1933457120bd1ca4e0401f169a69d7c3ec0d31ea3e99222ff7b1

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