39 lines
1,003 B
Bash
Executable file
39 lines
1,003 B
Bash
Executable file
#!/bin/bash
|
|
|
|
# Konfiguration
|
|
INPUT_FILE=$1
|
|
OUTPUT_FILE=$2
|
|
SPACES_PER_LEVEL=4
|
|
LIST_INDENTATION=2
|
|
HEADER_LEVELS=3
|
|
|
|
# Tabs zu Leerzeichen konvertieren
|
|
sed 's/\t/ /g' "$INPUT_FILE" > temp_processed.txt
|
|
|
|
# Ausgabedatei leeren
|
|
> "$OUTPUT_FILE"
|
|
|
|
# Verarbeitung jeder Zeile
|
|
while IFS= read -r line; do
|
|
# Führende Leerzeichen ermitteln
|
|
leading_spaces=${line%%[! ]*}
|
|
total_spaces=${#leading_spaces}
|
|
|
|
# Ebene berechnen
|
|
level=$((total_spaces / SPACES_PER_LEVEL))
|
|
content="${line:total_spaces}"
|
|
|
|
if (( level <= HEADER_LEVELS )); then
|
|
# Überschriften formatieren
|
|
hashtags=$(printf "%0.s#" $(seq 0 $level))
|
|
echo "${hashtags} ${content}" >> "$OUTPUT_FILE"
|
|
else
|
|
# Listen formatieren
|
|
list_level=$((level - HEADER_LEVELS - 1))
|
|
indent=$(printf "%*s" $((LIST_INDENTATION * list_level)) "")
|
|
echo "${indent}- ${content}" >> "$OUTPUT_FILE"
|
|
fi
|
|
done < temp_processed.txt
|
|
|
|
# Temporäre Datei aufräumen
|
|
rm temp_processed.txt
|