-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Creating impress.js slide shows with pandoc
First, clone a copy of the impress.js repository:
git clone https://github.com/bartaz/impress.js.git
Next, get the custom template:
wget https://gist.github.com/jgm/5665065/raw/impress-template.html
Or use halloleo's custom template which supports standard meta variables like
wget https://gist.githubusercontent.com/halloleo/3177e019f7544f08af467feb8511d90c/raw/5c74a92e1f918cef240ee6ccff3fc9b27ebbd08a/impress-template.html
Create a file impress.txt with this content:
# {#overview .step data-scale=10}
# Bored? {.step}
Aren't you **bored** with slides?
# {.step data-x=2000}
Their limits are annoying?
# {.step data-rotate=90}
Then you should try **impress.js**
Now create your slide show:
pandoc --template impress-template.html -V impress-url=impress.js -s -t html5 --section-divs -o impress.html impress.txt
""" XXX DEX PPT Generator - 主入口文件 生成深色科技风格的XXX DEX产品演示PPT """
from fastapi import FastAPI, File, UploadFile, HTTPException from fastapi.responses import FileResponse from fastapi.middleware.cors import CORSMiddleware from src.ppt_generator import XXXDEXPPTGenerator import uvicorn import os import tempfile
app = FastAPI( title="XXX DEX PPT Generator", description="生成XXX DEX产品演示PPT的自动化工具", version="1.0.0" )
app.add_middleware( CORSMiddleware, allow_origins=[""], allow_credentials=True, allow_methods=[""], allow_headers=["*"], )
@app.post("/generate-ppt") async def generate_ppt(): """生成PPTX文件并返回下载链接""" try: generator = XXXDEXPPTGenerator()
# 创建临时文件
with tempfile.NamedTemporaryFile(suffix='.pptx', delete=False) as tmp_file:
tmp_path = tmp_file.name
# 生成PPT
generator.create_presentation(tmp_path)
return FileResponse(
tmp_path,
media_type="application/vnd.openxmlformats-officedocument.presentationml.presentation",
filename="XXX-DEX-产品演示.pptx"
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@app.get("/health") async def health_check(): """健康检查接口""" return {"status": "healthy", "service": "XXX DEX PPT Generator"}
if name == "main": uvicorn.run(app, host="0.0.0.0", port=8000)