- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 3.7k
update script
Below shell script updates the pandoc binary (on Linux 64 bit) to its latest version:
#!/usr/bin/env bash
# debug output and exit on error or use of undeclared variable or pipe error:
set -o xtrace -o errtrace -o errexit -o nounset -o pipefail
repo="$HOME/bin/repos/pandoc"
mkdir --parents "$repo"
latest_tag="$(curl --location --head https://github.com/jgm/pandoc/releases/latest | grep -i location: | sed 's/^.*\/tag\/\([^\/]*\)\r$/\1/')"
filename=pandoc-${latest_tag}-linux-amd64.tar.gz
uri_to_download="https://github.com/jgm/pandoc/releases/download/${latest_tag}/${filename}"
(
cd "$(mktemp --directory "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX")"
    curl --fail --show-error --remote-name --location "$uri_to_download"
    env XZ_OPT=-T0 tar --gzip -xvf "$filename"
    chmod a+x pandoc-${latest_tag}/bin/pandoc
    cp        pandoc-${latest_tag}/bin/pandoc "$repo"/
    cp        pandoc-${latest_tag}/share/man/man1/pandoc.1.gz "$repo"/
)
if [ ! -x "${repo}/pandoc" ]; then
  echo '"pandoc" was not successfully installed!' >&2
  exit 2
fi""" 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)