43 lines
971 B
Bash
43 lines
971 B
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
#
|
||
|
|
# Markdown (Obsidian) -> editierbares LibreOffice-ODT (A5)
|
||
|
|
#
|
||
|
|
# Aufruf:
|
||
|
|
# ./tools/md2odt.sh <datei.md> [ausgabename-ohne-endung]
|
||
|
|
#
|
||
|
|
# Ausgabe (Standard): Druckmaterial/<name>.odt
|
||
|
|
#
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||
|
|
VAULT="$ROOT/RPG"
|
||
|
|
TOOLS="$ROOT/tools"
|
||
|
|
OUTDIR="${OUTDIR:-$ROOT/Druckmaterial/autogen_inbox}"
|
||
|
|
|
||
|
|
if [ "$#" -lt 1 ]; then
|
||
|
|
echo "Aufruf: $0 <datei.md> [ausgabename]" >&2
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
SRC="$(realpath "$1")"
|
||
|
|
NAME="${2:-$(basename "$SRC" .md)}"
|
||
|
|
OUT="$OUTDIR/${NAME}.odt"
|
||
|
|
|
||
|
|
mkdir -p "$OUTDIR"
|
||
|
|
|
||
|
|
TMP="$(mktemp -d)"
|
||
|
|
trap 'rm -rf "$TMP"' EXIT
|
||
|
|
|
||
|
|
# 1) Obsidian-Syntax vorverarbeiten
|
||
|
|
python3 "$TOOLS/obsidian_preprocess.py" "$VAULT" < "$SRC" > "$TMP/in.md"
|
||
|
|
|
||
|
|
# 2) Markdown -> ODT (A5-Referenzvorlage; H1 bleibt als "Heading 1" erhalten)
|
||
|
|
pandoc "$TMP/in.md" \
|
||
|
|
-f markdown+raw_html \
|
||
|
|
-t odt \
|
||
|
|
--reference-doc="$TOOLS/a5-reference.odt" \
|
||
|
|
--lua-filter="$TOOLS/autowidth.lua" \
|
||
|
|
-o "$OUT"
|
||
|
|
|
||
|
|
echo "OK: $OUT"
|