SlideNova / app.py
Maki
[feat] Dockerを使用したSlidevの環境構築とスライド生成の自動化
dde65e8
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'<a href="data:file/png;base64,{img_str}" download="slide_{i+1}.png">Download Slide {i+1}</a>'
st.markdown(href, unsafe_allow_html=True)
if __name__ == "__main__":
main()