Markdown-Studio / app.py
Nymbo's picture
adding basic markdown live previeww
3cf27bd verified
raw
history blame
1.31 kB
import gradio as gr
import markdown
from markdown.extensions.tables import TableExtension
from markdown.extensions.fenced_code import FencedCodeExtension
from markdown.extensions.toc import TocExtension
from markdown.extensions.attr_list import AttrListExtension
from markdown.extensions.codehilite import CodeHiliteExtension
# Function to render markdown to HTML with extensions
def render_markdown(md_text):
return markdown.markdown(
md_text,
extensions=[
TableExtension(),
FencedCodeExtension(),
TocExtension(baselevel=2),
AttrListExtension(),
CodeHiliteExtension(linenums=False, css_class="highlight"),
],
)
# Creating the Gradio Interface
with gr.Blocks(theme="Nymbo/Nymbo_Theme") as demo:
gr.Markdown("# Markdown Suite")
with gr.Row():
with gr.Column():
md_input = gr.Textbox(
lines=20,
placeholder="Write your markdown here...",
label="Markdown Input",
elem_classes=["gr-textbox"]
)
with gr.Column():
md_output = gr.HTML(label="Rendered Output", elem_classes=["gr-html"])
md_input.change(render_markdown, inputs=md_input, outputs=md_output)
# Launch the app
demo.launch()