Spaces:
Running
Running
import json | |
import gradio as gr | |
def convert_notebook_to_markdown(file): | |
""" | |
Convert a Jupyter notebook file to Markdown format. | |
Args: | |
file: Uploaded file object from Gradio | |
Returns: | |
str: Converted markdown content | |
""" | |
try: | |
# Read the notebook content | |
content = json.load(file) | |
# Initialize markdown output | |
markdown_output = [] | |
# Process each cell | |
for cell in content['cells']: | |
# Handle markdown cells | |
if cell['cell_type'] == 'markdown': | |
markdown_output.extend(cell['source']) | |
markdown_output.append('\n') | |
# Handle code cells | |
elif cell['cell_type'] == 'code': | |
markdown_output.append('```python\n') | |
markdown_output.extend(cell['source']) | |
markdown_output.append('\n```\n') | |
# Join all content | |
final_markdown = ''.join(markdown_output) | |
return final_markdown | |
except Exception as e: | |
return f"Error converting notebook: {str(e)}" | |
# Create Gradio interface | |
iface = gr.Interface( | |
fn=convert_notebook_to_markdown, | |
inputs=gr.File( | |
label="Upload Jupyter Notebook (.ipynb)", | |
file_types=[".ipynb"] | |
), | |
outputs=gr.Textbox( | |
label="Converted Markdown", | |
lines=20 | |
), | |
title="Jupyter Notebook to Markdown Converter", | |
description="Upload a Jupyter notebook (.ipynb) file to convert it to Markdown format. Code cells will be wrapped in Python code blocks.", | |
examples=[], | |
cache_examples=False | |
) | |
# Launch the app | |
iface.launch() |