shell-scripte-code/convert_to_markdown-bash.sh

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