# app.py import streamlit as st import os import subprocess def main(): st.title("Markdown to Slidev") # マークダウンファイルの内容を入力するテキストエリア markdown_text = st.text_area("Enter your markdown content here:", height=400) # スライドを生成するボタン if st.button("Generate Slides"): # 一時ファイルにマークダウンの内容を書き込む with open("temp.md", "w") as f: f.write(markdown_text) # slidevコマンドを実行してスライドを生成 subprocess.run(["npx", "slidev", "export", "temp.md", "--format", "png", "--output", "slides/out/", "--dark", "-t"]) # 生成されたスライドを表示 slides = [] for filename in os.listdir("slides/out"): if filename.endswith(".png"): slides.append(filename) slides.sort() for slide in slides: st.image(f"slides/out/{slide}") # 一時ファイルを削除 os.remove("temp.md") if __name__ == "__main__": main()