Provides previews with syntax highlight for multiple formats
Project description
ckanext-pygments
This extension provides a preview with syntax highlight for multiple text resources formats.
Caching
There is a caching mechanism implemented in this extension. It is disabled by default. To enable it, set ckanext.pygments.cache.enable
to True
. You can also set the time to live for the cache in seconds with ckanext.pygments.cache.ttl
. The default is 7200 seconds (2 hours). You can also set the maximum size of the resource to cache in bytes with ckanext.pygments.cache.resouce_max_size
. The default is 20MB.
Why cache is disabled by default?
We use Redis for caching and it uses memory. If you have a lot of resources and they are big, you can run out of memory. That's why it is disabled by default. It's still debatable if we need cache at all. Big resource processed with pygments will be even bigger. So we can have a lot of memory usage. But if we have a lot of resources and many users access it, we can save a lot of time on processing.
Admin configuration page
If you're using the ckanext-admin-panel extension, you can configure the pygments settings from the admin panel.
Otherwise, you can configure it in the ckan.ini
file.
Config settings
Supported config options:
- key: ckanext.pygments.supported_formats
type: list
description: Specify a list of supported formats
default: sql html xhtml htm xslt py pyw pyi jy sage sc rs rs.in rst rest md markdown xml xsl rss xslt xsd wsdl wsf json jsonld yaml yml dtd php inc rdf ttl js
- key: ckanext.pygments.max_size
type: int
description: Specify how many bytes we are going to render from file. Default to 1MB
default: 1048576
- key: ckanext.pygments.include_htmx_asset
description: Include HTMX asset
default: true
type: bool
- key: ckanext.pygments.default_theme
description: Default theme for preview
default: default
- key: ckanext.pygments.cache.enable
description: Enable cache
default: false
type: bool
- key: ckanext.pygments.cache.preview_max_size
description: Specify what is the maximum size of a preview we are going to cache
default: 20971520 # 20MB
type: int
- key: ckanext.pygments.cache.ttl
description: Specify the time to live of the cache
default: 7200 # 2 hours
type: int
Tests
To run the tests, do:
pytest --ckan-ini=test.ini
License
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 ckanext_pygments-1.2.0.tar.gz
.
File metadata
- Download URL: ckanext_pygments-1.2.0.tar.gz
- Upload date:
- Size: 42.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea68fbd5fdd8bb6f3c6f81f127b1e5b47f3e2869cb60683647ed8766be857ada |
|
MD5 | aac782201a884d85489700035c7c140c |
|
BLAKE2b-256 | 34abf5d4ed4a95061bac8d55d561e78daf478d7b8d3d68275cad3413a162f3e4 |
File details
Details for the file ckanext_pygments-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: ckanext_pygments-1.2.0-py3-none-any.whl
- Upload date:
- Size: 46.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 219656362d3a76286666699bda069c28edf86b869b12dd1a919671a20b762c05 |
|
MD5 | a1f7b0cfb5d36ff1aaae2459e7d564b9 |
|
BLAKE2b-256 | 0bf635a4e59cf92c3be2c034fdd1491984066033fc933f2dbbd310e211a223fc |