File size: 1,293 Bytes
dde65e8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
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() |