import gradio as gr

def generate_html():
    return "<p>This is a sample HTML content.</p>"

def download_html(content):
    with open("content.html", "w") as file:
        file.write(content)
    return "content.html"

with gr.Blocks() as demo:
    html_component = gr.HTML(generate_html)
    download_button = gr.DownloadButton(label="Download HTML")

    download_button.click(
        fn=download_html,
        inputs=html_component,
        outputs=download_button,
    )

demo.launch()

# download_button = gr.DownloadButton(label="Download HTML", inputs=html_component, value=download_html)
# interface = gr.Interface(fn=generate_html, 
#                          inputs=None, 
#                          outputs=[html_component, download_button])
#
#interface.launch()