Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: Stack Documentation and UX
-
Labels:
-
Story Points:6
-
Epic Link:
-
Team:SQuaRE
Description
Implement Jupyter Notebook (ipynb) to HTML conversion for the notebook-based report system (described in https://sqr-023.lsst.io/v/DM-15003). This conversion is built on nbconvert. The main contributions of this ticket are:
- Theming of the HTML to look like an LSST document
- Integration with the sqre-uservice-nbreport microservice (ideally this is done with a celery task queue)
- Upload the HTML and notebook to LSST the Docs.
Attachments
Issue Links
- relates to
-
DM-15416 Initial integration fixes for the nbreport system
- Done
-
DM-15003 Draft technote on design of notebook-based reports
- Done
-
DM-15199 Create uservice_nbreport project for publishing notebook-based reports
- Done
-
DM-15253 Add nbreport issue and other core commands that interact with api.lsst.codes/nbreport
- Done
This release is the first minimum viable product that accepts a notebook and converts it into an HTML report.
New LsstHtmlReportExporter subclass of nbconvert’s HTMLConverter. This subclass provides some defaults for the HTML converter, and also maintains knowledge of additional assets needed by the build.
New LsstOutlinePreprocessor subclass of nbconvert’s Preprocessor. This preprocessor analyzes the markdown header structure and creates a tree structure that is added to the resources dictionary under the lsst_outline key. The Jinja HTML templates use this tree to generate a hierarchical table of contents in the sidebar.
New HTML and CSS theming for the notebooks. The CSS is generated with a Gulp pipeline.
The POST /reports/<report>/instances/<instance_id>/notebook endpoint triggers a Celery queue task that actually transforms the notebook into HTML and uploads that HTML to LSST the Docs.
New GET /queue/<id> endpoint for obtaining the status of a processing item in the queue.