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