Skip to main content

Sphinx extension helper about images

Project description

sphinxcontrib-imagehelper

https://travis-ci.org/tk0miya/sphinxcontrib-imagehelper.svg?branch=master https://coveralls.io/repos/tk0miya/sphinxcontrib-imagehelper/badge.png?branch=master https://codeclimate.com/github/tk0miya/sphinxcontrib-imagehelper/badges/gpa.svg

sphinxcontrib-imagehelper is helpers for creating image Sphinx extensions.

Adding new image format support to Sphinx is too boring. This helper helps you to create image sphinx extensions.

It provides these features:

  • Caching converted images

  • Conseal sphinx directory structure; determine path of images automatically

  • Support common options for image directive (cf. :height:, :scale:, :align:, and so on)

  • Enhance standard imaging directives; image and figure get capability to embed new image format

With sphinxcontrib-imagehelper, all you have to do is only convert new image format to well known image formats.

Install

$ pip install sphinxcontrib-imagehelper

Example

from sphinxcontrib.imagehelper import (
    add_image_type, add_image_directive, add_figure_directive, ImageConverter
)

# Declare converter class inherits ImageConverter
class MyImageConverter(ImageConverter):
    # Override `get_filename_for()` to determine filename
    def get_filename_for(self, node):
        # filename is came from its URI and configuration
        hashed = sha1((node['uri'] + self.app.config.some_convert_settings).encode('utf-8')).hexdigest()
        return 'myimage-%s.png' % hashed

    # Override `convert()` to convert new image format to well known image formats (PNG, JPG and so on)
    def convert(self, node, filename, to):
        # Hint: you can refer self.app.builder.format to switch conversion behavior
        succeeded = convert_myimage_to_png(filename, to,
                                           option1=node['option'],
                                           option2=self.app.config.some_convert_settings)
        if succeeded:
            return True  # return True if conversion succeeded
        else:
            return False

def setup(app)
    # Register new image type: myimage
    add_image_type(app, 'my', 'img', MyImageConverter)

    # Register my-image directive
    add_image_directive(app, 'my')

    # Register my-figure directive
    add_figure_directive(app, 'my')

Helpers

sphinxcontrib.imagehelper.add_image_type(app, name, ext, handler)

Register a new image type which is identified with file extension ext. The handler is used to convert image formats.

sphinxcontrib.imagehelper.ImageConverter

A handler class for converting image formats. It is used at add_image_type(). The developers of sphinx-extensions should create a handler class which inherits ImageConverter, and should override two following methods:

ImageConverter.option_spec

A definition of additional options. By default, it is empty dict.

ImageConverter.get_last_modified_for(self, node)

Determine last modified time of target image. By default, this method returns the timestamp of the image file.

ImageConverter.get_filename_for(self, node)

Determine a filename of converted image. By default, this method returns the filename replaced its extension with ‘.png’:

def get_filename_for(self, node):
    return os.path.splitext(node['uri'])[0] + '.png'
ImageConverter.convert(self, node, filename, to)

Convert image to embedable format. By default, this method does nothing.

sphinxcontrib.imagehelper.add_image_directive(app, name, option_spec={})

Add a custom image directive to Sphinx. The directive is named as name-image (cf. astah-image).

If option_spec is given, the new directive accepts custom options.

sphinxcontrib.imagehelper.add_figure_directive(app, name, option_spec={})

Add a custom figure directive to Sphinx. The directive is named as name-figure (cf. astah-figure).

If option_spec is given, the new directive accepts custom options.

sphinxcontrib.imagehelper.generate_image_directive(name, option_spec={})

Generate a custom image directive class. The class is not registered to Sphinx. You can enhance the directive class with subclassing.

sphinxcontrib.imagehelper.generate_figure_directive(name, option_spec={})

Generate a custom figure directive class. The class is not registered to Sphinx. You can enhance the directive class with subclassing.

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

sphinxcontrib-imagehelper-1.1.0.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

sphinxcontrib_imagehelper-1.1.0-py2.py3-none-any.whl (9.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file sphinxcontrib-imagehelper-1.1.0.tar.gz.

File metadata

File hashes

Hashes for sphinxcontrib-imagehelper-1.1.0.tar.gz
Algorithm Hash digest
SHA256 35d8b7f9a0baad78f7ed4929a96cbfe4a262db1a7b6f228f29ab1329b65ce2f0
MD5 0fca31cd44ce4fbb04443585eb3d3e08
BLAKE2b-256 4d771d345286e5efad92121bdb33245b438145746ba78218457b7deed7055180

See more details on using hashes here.

File details

Details for the file sphinxcontrib_imagehelper-1.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for sphinxcontrib_imagehelper-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ca825498a0d6156789d684c9521e4382eea8afc7603161f09984d869540baf64
MD5 f87a49091d1dcf13d657e205b43702b6
BLAKE2b-256 d491f120087abcf72cd222ca5d71f18bf6e2738e3e2cdd2e50e43b2259c45001

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