{
  "slug": "ipynb-to-markdown",
  "name": "gizza-ai/ipynb-to-markdown",
  "version": "0.1.0",
  "title": "IPYNB to Markdown — Convert Jupyter Notebooks Online — gizza.ai",
  "description": "Convert Jupyter .ipynb JSON to Markdown with fenced code blocks, markdown cells, outputs, errors, HTML tables, and embedded image data URIs. Browser-only.",
  "tags": [
    "ipynb to markdown",
    "jupyter notebook markdown",
    "nbconvert markdown",
    "notebook converter",
    "export ipynb"
  ],
  "category": "documents",
  "urls": {
    "page": "https://gizza.ai/tools/ipynb-to-markdown/",
    "markdown": "https://gizza.ai/tools/ipynb-to-markdown/index.md",
    "descriptor": "https://gizza.ai/tools/ipynb-to-markdown/tool.json",
    "deep_link_example": "https://gizza.ai/tools/ipynb-to-markdown/?notebook=%7B%22cells%22%3A%5B%7B%22cell_type%22%3A%22markdown%22%2C%22source%22%3A%5B%22%23%20Title%5Cn%22%5D%7D%2C%7B%22cell_type%22%3A%22code%22%2C%22execution_count%22%3A1%2C%22source%22%3A%5B%22print%282%20%2B%202%29%22%5D%2C%22outputs%22%3A%5B%7B%22output_type%22%3A%22stream%22%2C%22name%22%3A%22stdout%22%2C%22text%22%3A%5B%224%5Cn%22%5D%7D%5D%7D%5D%2C%22metadata%22%3A%7B%22language_info%22%3A%7B%22name%22%3A%22python%22%7D%7D%2C%22nbformat%22%3A4%2C%22nbformat_minor%22%3A5%7D&include_code=true&include_outputs=true&include_markdown=true&show_prompts=true&image_mode=embed"
  },
  "cli": "gizza tool ipynb-to-markdown '{\"cells\":[{\"cell_type\":\"markdown\",\"source\":[\"# Title\\n\"]},{\"cell_type\":\"code\",\"execution_count\":1,\"source\":[\"print(2 + 2)\"],\"outputs\":[{\"output_type\":\"stream\",\"name\":\"stdout\",\"text\":[\"4\\n\"]}]}],\"metadata\":{\"language_info\":{\"name\":\"python\"}},\"nbformat\":4,\"nbformat_minor\":5}'",
  "tool": {
    "description": "Convert a Jupyter `.ipynb` notebook (paste its JSON) into a clean Markdown document. Markdown cells are emitted verbatim, code cells become fenced blocks tagged with the kernel language, and cell outputs are rendered as output sections — stream text, results, and error tracebacks (ANSI stripped). Cell order is preserved. Image outputs (PNG/JPEG/GIF/SVG) and markdown-cell attachments are embedded inline as base64 data URIs by default (image_mode='embed'; 'placeholder' or 'omit' instead). The richest representation of each output is chosen (Markdown, then image, then HTML tables, then LaTeX, then plain text). include_code=false drops code but keeps outputs (nbconvert --no-input); include_outputs=false drops outputs; include_markdown=false leaves code only; show_prompts=true adds `In [n]:`/`Out [n]:` labels. Returns the Markdown text. Runs locally.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "image_mode": {
          "default": "embed",
          "description": "How image outputs and markdown-cell image attachments are handled: 'embed' inlines them as base64 data URIs (single-file Markdown), 'placeholder' writes a short *[image output]* note, 'omit' drops them. Default 'embed'.",
          "enum": [
            "embed",
            "placeholder",
            "omit"
          ],
          "type": "string"
        },
        "include_code": {
          "default": true,
          "description": "Include code cells as fenced blocks. When false, code is dropped but outputs are still rendered (like nbconvert --no-input). Default true.",
          "type": "boolean"
        },
        "include_markdown": {
          "default": true,
          "description": "Include markdown and raw cells (verbatim). When false, only code and outputs remain. Default true.",
          "type": "boolean"
        },
        "include_outputs": {
          "default": true,
          "description": "Render each code cell's stored outputs (stream text, results, and error tracebacks) as output sections. When false, outputs are dropped. Default true.",
          "type": "boolean"
        },
        "notebook": {
          "description": "The full contents of a Jupyter `.ipynb` file (its JSON). Paste the file's text.",
          "type": "string"
        },
        "show_prompts": {
          "default": false,
          "description": "Prefix code cells with `In [n]:` and their outputs with `Out [n]:` execution-count prompts. Default false.",
          "type": "boolean"
        }
      },
      "required": [
        "notebook"
      ],
      "type": "object"
    }
  }
}