Skip to main content

Markdown extension to wrap images in lightbox/lightgallery

Project description

Lightgallery markdown Extension

Markdown extension to wrap images in a lightbox.

Will only wrap images by adding "!" right after the opening "[" bracket of the image.

![!Description](/img/pic1.png)

This will Output :

<p>
  <div class="lightgallery">
    <a href="../img/pic1.png" data-sub-html="Description">
      <img alt="Description" src="../img/pic1.png" />
    </a>
  </div>
</p>

The extension is made to work with lightgallery.js a full featured JavaScript lightgallery/lightbox with no dependencies.

Extension inspired by : mardown-lightbox

To test the extension:

import markdown
from lightgallery import LightGalleryExtension

print(markdown.markdown('![!description](/img/pic1.png)', extensions=[LightGalleryExtension()]))

Install

$ pip install lightgallery

How to make it works with Mkdocs

1. Create a theme folder will the following structure in your Mkdocs folder

theme/
|_ css/
|_ fonts/
|_ img/
|_ js/

2. Go to lightgallery.js GitHub or JSDELIVR to download the following files to the theme sub-folders as listed below

  • dist/js/lightgallery.min.js -> theme/js/
  • dist/css/lightgallery.min.css -> theme/css/
  • dist/fonts/lg.* -> theme/fonts/
  • dist/img/loading.gif -> theme/img/

3. Create a theme/main.hml file and add the following code to the file

{% extends "base.html" %}

{% block styles %}
    {{ super() }}
    <link rel="stylesheet" href="{{ base_url }}/css/lightgallery.min.css">
{% endblock styles %}

{% block libs %}
    {{ super() }}
    <script src="{{ base_url }}/js/lightgallery.min.js"></script>
{% endblock libs %}

{% block scripts %}
    {{ super() }}
    <script>
    var elements = document.getElementsByClassName("lightgallery");
    for(var i=0; i<elements.length; i++) {
       lightGallery(elements[i]);
    }
    </script>
{% endblock scripts %}

4. Modify the mkdocs.yml file to add the following settings

# Documentation and theme
theme:
  custom_dir: 'theme'
# Extensions
markdown_extensions:
  - lightgallery

5. Change extension settings in mkdocs.yml

All settings of the extension are optional and can be omitted.

# Extensions
markdown_extensions:
  - lightgallery:
      show_description_in_lightgallery: true | false
      show_description_as_inline_caption: true | false
      custom_inline_caption_css_class: 'my-caption-class'
Setting Description Default Value
show_description_in_lightgallery Adds the description as caption in lightgallery dialog. true
show_description_as_inline_caption Adds the description as inline caption below the image. false
custom_inline_caption_css_class Custom CSS classes which are applied to the inline caption paragraph. Multiple classes are separated via space. Empty

License

MIT License

Project details


Release history Release notifications | RSS feed

This version

0.5

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lightgallery-0.5.tar.gz (3.6 kB view hashes)

Uploaded Source

Built Distribution

lightgallery-0.5-py2.py3-none-any.whl (4.3 kB view hashes)

Uploaded Python 2 Python 3

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