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" %}
    
    {% block custom_assets %}
    {{ block.super }}
    {% include "wagtail_crx_block_frontend_assets/includes/block_assets.html" with required_file_extension=".css" %}
    {% endblock custom_assets %}
    
    {% block custom_scripts %}
    {{ block.super }}
    {% include "wagtail_crx_block_frontend_assets/includes/block_assets.html" with 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

Built Distribution

File details

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

File metadata

File hashes

Hashes for wagtail_crx_block_frontend_assets-0.0.4.tar.gz
Algorithm Hash digest
SHA256 a2f122b7a7f24cd2fa95e135d323badacdb54522e4351e934be6d7b48258f58b
MD5 b8e5b21afa5c819c045547333aae1215
BLAKE2b-256 4459d1c9d1f6e1d0361c05c04ab4cd431dacfa119a4e016d4d06f1f45dd45721

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wagtail_crx_block_frontend_assets-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e3f7bd1c787210fe53dd62a3867cc0ae787d5bf62cd09d45e40cf8b6d0f0b14f
MD5 3cd7d8ea5fd0fdc585e398651c5069b7
BLAKE2b-256 532ad67d6ab12e70c05fb6c4bc2dea2fef54f6ef36733c7e08f7c71faeb7b322

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