@echo off REM ==================================================== REM Marp 演示批量导出脚本 (Windows) REM ==================================================== REM 用途:一键导出 Active 目录下所有演示 REM 使用方法: REM 1. 确保已安装 Marp CLI: npm install -g @marp-team/marp-cli REM 2. 双击运行此脚本 REM 3. 导出结果在 Export 目录 REM ==================================================== setlocal EnableDelayedExpansion REM 配置 set "PRESENTATIONS_DIR=%~dp0Active" set "EXPORT_DIR=%~dp0Export" set "TIMESTAMP=%date:~0,4%-%date:~5,2%-%date:~8,2%" REM 创建导出目录 if not exist "%EXPORT_DIR%" mkdir "%EXPORT_DIR%" if not exist "%EXPORT_DIR%\PDF" mkdir "%EXPORT_DIR%\PDF" if not exist "%EXPORT_DIR%\PPTX" mkdir "%EXPORT_DIR%\PPTX" if not exist "%EXPORT_DIR%\HTML" mkdir "%EXPORT_DIR%\HTML" echo ==================================================== echo Marp 演示批量导出脚本 echo ==================================================== echo. echo 源目录: %PRESENTATIONS_DIR% echo 导出目录: %EXPORT_DIR% echo 时间戳: %TIMESTAMP% echo ==================================================== echo. REM 检查源目录是否存在 if not exist "%PRESENTATIONS_DIR%" ( echo [错误] 源目录不存在: %PRESENTATIONS_DIR% echo 请先在 Active 目录中创建演示文件 pause exit /b 1 ) REM 检查是否安装了 Marp CLI where marp >nul 2>nul if %errorlevel% neq 0 ( echo [警告] 未检测到 Marp CLI echo 正在尝试安装... echo. call npm install -g @marp-team/marp-cli if %errorlevel% neq 0 ( echo [错误] Marp CLI 安装失败 echo 请手动运行: npm install -g @marp-team/marp-cli pause exit /b 1 ) echo [成功] Marp CLI 安装完成 echo. ) REM 计算文件数量 set count=0 for %%f in ("%PRESENTATIONS_DIR%\*.md") do set /a count+=1 if %count% equ 0 ( echo [提示] Active 目录中没有 .md 文件 echo 请先创建演示文件 pause exit /b 0 ) echo 找到 %count% 个演示文件 echo 开始导出... echo. REM 导出 PDF echo [1/3] 导出 PDF... for %%f in ("%PRESENTATIONS_DIR%\*.md") do ( set "filename=%%~nf" echo - !filename!... marp "%%f" --theme-set-dir "%~dp0Themes" --pdf --allow-local-files -o "%EXPORT_DIR%\PDF\!filename:.md!.pdf" if !errorlevel! neq 0 ( echo [失败] !filename! ) else ( echo [完成] !filename! ) ) REM 导出 PPTX echo. echo [2/3] 导出 PPTX... for %%f in ("%PRESENTATIONS_DIR%\*.md") do ( set "filename=%%~nf" echo - !filename!... marp "%%f" --theme-set-dir "%~dp0Themes" --pptx --allow-local-files -o "%EXPORT_DIR%\PPTX\!filename:.md!.pptx" if !errorlevel! neq 0 ( echo [失败] !filename! ) else ( echo [完成] !filename! ) ) REM 导出 HTML echo. echo [3/3] 导出 HTML... for %%f in ("%PRESENTATIONS_DIR%\*.md") do ( set "filename=%%~nf" echo - !filename!... marp "%%f" --theme-set-dir "%~dp0Themes" --html --allow-local-files -o "%EXPORT_DIR%\HTML\!filename:.md!.html" if !errorlevel! neq 0 ( echo [失败] !filename! ) else ( echo [完成] !filename! ) ) echo. echo ==================================================== echo 导出完成! echo ==================================================== echo. echo 导出目录: %EXPORT_DIR% echo. echo 文件统计: if exist "%EXPORT_DIR%\PDF" ( for /f %%a in ('dir /b "%EXPORT_DIR%\PDF\*.pdf" 2^>nul ^| find /c /v ""') do echo PDF: %%a 个 ) if exist "%EXPORT_DIR%\PPTX" ( for /f %%a in ('dir /b "%EXPORT_DIR%\PPTX\*.pptx" 2^>nul ^| find /c /v ""') do echo PPTX: %%a 个 ) if exist "%EXPORT_DIR%\HTML" ( for /f %%a in ('dir /b "%EXPORT_DIR%\HTML\*.html" 2^>nul ^| find /c /v ""') do echo HTML: %%a 个 ) echo. echo 打开导出目录? (Y/N) choice /c yn /n /m "请选择" if %errorlevel% equ 1 ( start "" "%EXPORT_DIR%" ) echo. pause