a CKAN extension creating previews for markdown files
Compatibility with core CKAN versions:
| CKAN version | Compatible? |
|---|---|
| 2.9 and arlier | not tested |
| 2.10 | yes |
| 2.11 | yes |
- "yes"
- "not tested" - I can't think of a reason why it wouldn't work
- "not yet" - there is an intention to get it working
- "no"
To install the extension:
- Activate your CKAN virtual environment, for example:
. /usr/lib/ckan/default/bin/activate- Use pip to install package
pip install ckanext-markdown_view-
Add
markdown_viewto theckan.pluginssetting in your CKAN config file (by default the config file is located at/etc/ckan/default/ckan.ini). -
Restart CKAN. For example, if you've deployed CKAN with Apache on Ubuntu:
sudo service apache2 reloadYou can set the default formats to preselected for upload by setting the formats,
CKANINI__CKANEXT__MARKDOWN__FORMATS = 'text/markdown'else it will react to the listed formats by default
This extension overrides CKAN's core render_markdown helper to automatically handle list/tuple data structures. This is particularly useful when using ckanext-scheming with the multiple_text preset, which stores field values as lists.
Problem Solved: When scheming fields use both preset: multiple_text and display_snippet: markdown.html, the core CKAN helper would crash with AttributeError: 'list' object has no attribute 'strip'.
Solution: The custom render_markdown helper automatically converts lists to newline-separated strings before rendering as markdown, providing seamless compatibility with scheming's multiple_text fields.
Example field that now works correctly:
- field_name: rights
label: Rights
form_snippet: markdown.html
display_snippet: markdown.html
preset: multiple_text
validators: ignore_missing scheming_multiple_textEach resource can be rendered by highlighting some markdown passage. The markdown content to highlight must be passed as post to the /highlight url, for example:
curl -X POST 'https://<ckan_url>/dataset/<dataset_d>/resource/<res_id>/highlight' -F highlight="<markdown code to highlight>"