# How to share a Jupyter notebook as an HTML report

Export saved notebook results to HTML, review code and data exposure, and publish a report your audience can read without Jupyter.

Source: https://staging.publidock.com/blog/share-jupyter-notebook-as-html

Published: 2026-10-09
Topic: Guides

A notebook is a useful place to do analysis, but a colleague reviewing the result may only need the explanation, tables and charts. An HTML export gives them a readable page without asking them to install Jupyter or run your code.

Publidock can publish that export at a browser URL. The key is to export the result you want people to read, check its dependencies, then choose the audience before making it live.

## Save the results you want to share

Review the notebook in your own environment and save it with the intended outputs. Put the reporting period, data source and main conclusion in Markdown cells so a reader can understand the report without following every calculation.

The export command below converts saved content; it does not rerun the notebook. If an output is stale, refresh it in your working environment first. Resolve errors and check the numbers before publishing.

## Convert the notebook to HTML

With nbconvert installed in your notebook environment, run:

```sh
jupyter nbconvert --to html --embed-images analysis.ipynb
```

The export produces `analysis.html`. The image option embeds images in the HTML; it does not guarantee that every script, widget or external data dependency is included. Open the exported file and check the actual output. The [nbconvert command-line documentation](https://nbconvert.readthedocs.io/en/latest/usage.html) covers the HTML format and export options.

If the audience needs results without code inputs, use:

```sh
jupyter nbconvert --to html --embed-images --no-input analysis.ipynb
```

`--no-input` removes code inputs and their prompts from the rendered report. Review the resulting tables, text and chart data too: removing code does not remove sensitive information printed in an output. The [nbconvert configuration reference](https://nbconvert.readthedocs.io/en/latest/config_options.html) explains the input exclusion settings.

## Check the report outside Jupyter

Close the notebook view and open `analysis.html` in a browser. Read it from the perspective of someone who has not seen the project.

- Confirm the tables and images are present, with labels that make sense on their own.
- Follow links to supporting documents and check whether the viewer can access them.
- Test any chart interactions in the exported page, rather than assuming notebook controls survived.
- Remove credentials, internal file paths and data the audience should not receive.

An export has no live Python kernel. Controls that depend on executing Python need another hosting approach. For a saved interactive figure, the [Plotly HTML guide](/blog/share-interactive-plotly-charts) describes a useful export path.

## Publish the file and test the audience

[Sign in to Publidock](/login) and upload the HTML file. If your export has supporting files, upload the complete folder or ZIP instead. Keep the generated structure intact; the [missing assets guide](/blog/fix-missing-images-and-css-in-html-uploads) helps diagnose a page that loses images or styling.

In the browser flow, select who can open the site, check the preview and choose **Go Live**. New sites use link sharing unless a different rule is saved; automated API or MCP uploads can publish immediately. Set the required rule before uploading confidential material through those routes. The [access guide](/blog/restrict-access-to-published-html) explains the choices and viewer checks.

## Refresh the report at its existing URL

When the analysis changes, save the intended outputs, export again and publish a new version of the same site. Check that the updated version is live before sending a status message. The address and sharing rule remain in place, so readers can return to the same link.

Keep the notebook as your analysis source and treat the HTML as a dated deliverable. Publidock serves that deliverable; it does not execute the notebook or refresh its data. The [publishing docs](/docs#how) cover the upload workflow when you are ready to share the next report.
