• Stars
    star
    216
  • Rank 183,179 (Top 4 %)
  • Language
    HTML
  • License
    BSD 3-Clause "New...
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A workflow for creating and editing publication ready scientific reports and presentations, from one or more Jupyter Notebooks, without leaving the browser!

IPyPublish

A program for creating and editing publication ready scientific reports and presentations, from one or more Jupyter Notebooks.

Documentation: ipypublish.readthedocs.io

CI Status Coverage Status PyPI DOI Conda Code Style

Attention: This package is still maintained, but it is envisaged that it will eventually be superceeded by the Executable Book Project toolchain. So definitely also check that out, and feedback any improvement suggestions! 😀

Conversion Process

For an example of the potential input/output, see: Example.ipynb, Example.pdf, Example.html and Example.slides.html.

Or, for a practical example of the ipypublish capability, see these documents on Atomic 3D Visualisation: Notebook, PDF, HTML or Reveal.JS slideshow.

Design Philosophy

In essence, the dream is to have the ultimate hybrid of Jupyter Notebook, WYSIWYG editor (e.g. MS Word) and document preparation system (e.g. TexMaker), being able to:

  • Dynamically (and reproducibly) explore data, run code and output the results
  • Dynamically edit and visualise the basic components of the document (text, math, figures, tables, references, citations, etc).
  • Have precise control over what elements are output to the final document and how they are layed out and typeset.
    • Also be able to output the same source document to different layouts and formats (pdf, html,presentation slides, etc).

Workflow

  1. Create a notebook with some content!
  2. optionally create a .bib file and external images
  3. Adjust the notebook and cell metadata.
  4. install ipypublish and run the nbpublish for either the specific notebook, or a folder containing multiple notebooks.
  5. A converted folder will be created, into which final .tex .pdf and .html files will be output, named by the notebook or folder input

The default latex template outputs all markdown cells (unless tagged latex_ignore), and then only code and output cells with latex metadata tags. See Example.ipynb, Example.pdf, Example.html and Example.slides.html for examples of the potential input and output.

WorkFlow Example

See the project site for more info!

Acknowledgements

IPyPublish is built as an extension to nbconvert.

I also took strong influence from:

More Repositories

1

pytest-notebook

A pytest plugin for regression testing and regenerating Jupyter Notebooks
Jupyter Notebook
41
star
2

ase-notebook

Highly configurable 2D (SVG) & 3D (threejs) visualisations for ASE/Pymatgen structures, within the Jupyter Notebook.
Python
27
star
3

PyGauss

An interactive tool for supporting the lifecycle of a computational molecular chemistry investigation
Python
24
star
4

markdown-it-pyrs

A Python interface for markdown-it.rs, using Rust for blazingly fast parsing ⚡️
Rust
21
star
5

rst-language-server

An LSP server for ReStructuredText, as implemented by Sphinx (under development)
Python
13
star
6

sphinx-timeline

A sphinx extension to create timelines
Python
11
star
7

docutils

A migration of docutils
Python
10
star
8

ipymd

Analysis of Molecular Dynamics output in the IPython Notebook
Jupyter Notebook
9
star
9

atomic-hpc

A package for running multiple executable scripts on both local and remote hosts, configured using a modern standard YAML file
Python
9
star
10

sphinx-subfigure

A sphinx extension to create figures with multiple images
Python
8
star
11

pandas3js

a pandas dataframe interface for traitlets and pythreejs
Jupyter Notebook
7
star
12

sphinx-tippy

Get rich tool tips in your sphinx documentation!
Python
7
star
13

aiida-install

Tutorial for installing AiiDA
Jupyter Notebook
6
star
14

jsonextended

Extending the python json package functionality
Python
6
star
15

aiida_eos

A demonstration aiida-plugin package
Python
5
star
16

sphinx-pyscript

A sphinx extension for adding pyscript to a page
Python
5
star
17

myst-lsp

A Language Server Protocol provider for MyST Markdown
JavaScript
5
star
18

sphinx-pytest

Helpful pytest fixtures for sphinx extensions
Python
5
star
19

pytest-param-files

parametrize pytests via external files, with automatic regeneration
Python
5
star
20

react-aiida-app

A React application and component library for interfacing with AiiDA
TypeScript
4
star
21

pymonorepo

A Python package build tool for handling monorepos
Python
4
star
22

process-plot

Create plots of resource usage for a process (memory, CPU, etc).
Python
3
star
23

sphinx-glossary

A sphinx extension for creating glossaries and bibliographies from external files
Python
3
star
24

aiida-vcode-ext

A VSCode Extension for visualising AiiDA repositories
TypeScript
3
star
25

fireflow

A simple async workflow engine for interfacing with FirecREST
Python
2
star
26

sphinx-sqlalchemy

Sphinx extension for documenting SQLAlchemy ORMs
Python
2
star
27

myst-spec

A specification for a CommonMark compliant AST format
Python
2
star
28

vscode-myst-syntax

VS Code Syntax highlighter for MyST Markdown
Jinja
2
star
29

Measurement_Science_II

exemplar code fo MS2
HTML
1
star
30

furo-topbar

Adding a topbar, with pluggable widgets, to the furo sphinx theme
Python
1
star
31

aiida-process-coordinator

A prototype for a non-RabbitMQ `Process` execution coordinator.
Python
1
star
32

ejplugins

parser plugins for the jsonextended package
Python
1
star
33

WaveRider

team B's super cool project
MATLAB
1
star
34

aiida-crystal

This package has been moved to aiida-crystal17
Python
1
star
35

sphinx-process-graph

Python
1
star