import streamlit as st from marp import Marp import base64 from io import BytesIO def main(): st.title("Marp Slide Generator") # マークダウン入力欄 markdown_text = st.text_area("Enter your markdown text here:", height=400) if st.button("Generate Slides"): # Marpオブジェクトの作成 marp = Marp() # マークダウンからスライドを生成 slides = marp.convert(markdown_text) # スライドを画像に変換 images = [] for slide in slides: image_data = slide.render(format="png") images.append(image_data) # 画像を表示 st.subheader("Generated Slides") for i, image in enumerate(images): st.image(image, caption=f"Slide {i+1}", use_column_width=True) # 画像をダウンロード可能なリンクとして提供 buffered = BytesIO() image.save(buffered, format="PNG") img_str = base64.b64encode(buffered.getvalue()).decode() href = f'Download Slide {i+1}' st.markdown(href, unsafe_allow_html=True) if __name__ == "__main__": main()