Update convert-md.bat

This commit is contained in:
Ivo Oskamp 2025-06-20 23:17:36 +02:00
parent e1ecee80e8
commit 1e05af4508

View File

@ -1,31 +1,63 @@
@echo off
setlocal enabledelayedexpansion
:: ============================================================
:: EPUB Conversiescript - .md naar .epub met Pandoc
:: Laatste update: 2025-06-20
::
:: Changelog:
:: - Vervanging van verouderde 'wmic' door PowerShell Get-Date
:: - Fallback op datum van vandaag bij lege invoer
:: - Overstap van --epub-metadata XML naar --metadata vlaggen
:: - Vermeden gebruik van systeemvariabele %DATE%
:: - Invoervelden ontdaan van spaties en line breaks via PowerShell .Trim()
:: - Gebruik van !VAR! (delayed expansion) om correcte waardes te behouden
:: - PowerShell Console.Write gebruikt om onzichtbare tekens zoals '=' of '+' te voorkomen
:: - Alle metadata wordt correct opgenomen in EPUB (title, author, publisher, date)
:: - Pauzes verwijderd voor geautomatiseerd gebruik, metadata wordt alleen getoond
:: - Eindpauze toegevoegd zodat resultaat zichtbaar blijft
:: - Spaties toegevoegd bij invoer voor leesbaarheid
:: ============================================================
cd /d "C:\Users\ms-iv\Downloads"
:: Huidige datum ophalen in formaat yyyy-mm-dd
for /f "tokens=2 delims==" %%i in ('"wmic os get LocalDateTime /value"') do set dt=%%i
set TODAY=%dt:~0,4%-%dt:~4,2%-%dt:~6,2%
:: Datum ophalen in jjjj-mm-dd formaat
powershell -NoProfile -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = 'en-US'; Get-Date -Format 'yyyy-MM-dd'" > temp_datum.txt
set /p TODAY=<temp_datum.txt
del temp_datum.txt
:: Metadata invoer
set /p TITLE=Voer de titel van het boek in:
set /p AUTHOR=Voer de auteur in:
set /p PUBLISHER=Voer de uitgever (publisher) in:
set /p DATE=Voer de publicatiedatum in (formaat: jjjj-mm-dd, leeg = vandaag):
set /p BOOKDATEINPUT=Voer de publicatiedatum in (formaat: jjjj-mm-dd of leeg = vandaag):
:: Als DATE leeg is, gebruik vandaag
if "%DATE%"=="" set DATE=%TODAY%
:: Invoer normaliseren via PowerShell (verwijdert CR/LF/spaties)
for /f %%x in ('powershell -NoProfile -Command "[Console]::Write((\"%BOOKDATEINPUT%\").Trim())"') do set BOOKDATEINPUT=%%x
:: Boekdatum instellen (fallback op TODAY)
if not "!BOOKDATEINPUT!"=="" (
set "BOOKDATE=!BOOKDATEINPUT!"
) else (
set "BOOKDATE=!TODAY!"
)
:: Metadata tonen vóór conversie
echo.
echo Titel: %TITLE%
echo Auteur: %AUTHOR%
echo Uitgever: %PUBLISHER%
echo Publicatiedatum: %DATE%
echo Titel: !TITLE!
echo Auteur: !AUTHOR!
echo Uitgever: !PUBLISHER!
echo Publicatiedatum: !BOOKDATE!
echo.
:: Converteren van elk .md bestand
for %%f in (*.md) do (
echo Converting "%%f"...
pandoc "%%f" -o "%%~nf.epub" --metadata title="%TITLE%" --metadata author="%AUTHOR%" --metadata publisher="%PUBLISHER%" --metadata date="%DATE%"
pandoc "%%f" -o "%%~nf.epub" ^
--metadata=title:"!TITLE!" ^
--metadata=author:"!AUTHOR!" ^
--metadata=publisher:"!PUBLISHER!" ^
--metadata=date:"!BOOKDATE!"
)
echo.