Skip to main content

A collection of Sphinx (and Jupyter Book) extensions for authoring interactive ProbLog code blocks.

Project description

Licence Python PyPI Documentation

:orange_book: ProbLog extension for Jupyter Book (and Sphinx)

This repository holds a ProbLog extensions for Sphinx, designed to be used with the Jupyter Book platform. It implements interactive ProbLog code blocks that can be executed directly in the browser via ProbLog API.

This readme file holds a technical documentation of the sphinx-problog extension. For a Jupyter Book usage example of interactive ProbLog code boxes visit the ProbLog template and its source hosted in the simply-logical/problog-book-template GitHub repository.

This readme file uses Jupyter Book's MyST Markdown syntax for roles and directives -- see MyST overview for more details. For use with Sphinx, please refer to the reStructuredText syntax.

:snake: Installing sphinx-problog

To get started with sphinx-problog, first install it via pip:

pip install sphinx-problog

then, add the problog module of the sphinx_problog extension to the Sphinx extensions list in your conf.py

...
extensions = ['sphinx_problog.problog']
...

:chart_with_upwards_trend: ProbLog directive

The sphinx_problog.problog module defines the problog directive, which is used for building interactive ProbLog code boxes executed directly in the browser.

Usage

A ProbLog code box is included with the problog directive:

```{problog} problog:1.2.3
optional :- content.
```

Each ProbLog code box can be referenced with its name using the ref role, e.g., {ref}`problog:1.2.3`, which produces ProbLog code box hyper-link.

Configuration parameters

The problog extension uses the following Sphinx configuration parameters:

Arguments, parameters and content

Each ProbLog code box has one required argument that specifies the unique id of this particular interactive code block. This id must start with the problog: prefix. The content of a ProbLog box can either be provided explicitly within the directive, or -- when the content is left empty -- it is pulled from a code file whose name is derived from the code box id, and which should be located in the directory specified via the sphinx_problog_code_directory configuration parameter. The code file name is expected to be the code block id without the problog: prefix and with the .pl extension. For example, for a code block with problog:my_code id, the code file should be named my_code.pl. The problog Sphinx extension monitors the code files for changes and automatically regenerates the affected pages.


The CSS and JS files used by this Sphinx extension (namely sphinx-problog.css, mode-problog.js and problog_editor_advanced.js, as well as their CDN-pulled dependencies ace.js, jquery.min.js, jquery-ui.min.js and md5.js) can be found in the sphinx_problog/_static directory of this repository.

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

sphinx-problog-0.1.post4.tar.gz (112.8 kB view hashes)

Uploaded Source

Built Distribution

sphinx_problog-0.1.post4-py3-none-any.whl (112.8 kB view hashes)

Uploaded 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