shell-scripte-code/convert_to_markdown.sh

40 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
# Variablen definieren
INPUT_FILE=$1
OUTPUT_FILE=$2
SPACES_PER_LEVEL=4
LIST_INDENTATION=2
HEADER_LEVELS=3
sed 's/\t/ /g' "$INPUT_FILE" > temp_processed.txt
awk -v spaces_per_level=$SPACES_PER_LEVEL -v list_indentation=$LIST_INDENTATION -v header_levels=$HEADER_LEVELS '
{
match($0, /^ */)
total_spaces = RLENGTH
level = int(total_spaces / spaces_per_level)
# Überschriften (bis zur angegebenen Ebene)
if (level <= header_levels) {
hashtags = ""
for (i = 0; i <= level; i++) {
hashtags = hashtags "#"
}
$0 = hashtags " " substr($0, total_spaces + 1)
}
# Listen (ab der nächsten Ebene)
else {
list_level = level - header_levels - 1
# Anpassung der Einrückung basierend auf LIST_INDENTATION
adjusted_indent = ""
for (i = 0; i < list_indentation * list_level; i++) {
adjusted_indent = adjusted_indent " "
}
$0 = adjusted_indent "- " substr($0, total_spaces + 1)
}
print
}' temp_processed.txt > "$OUTPUT_FILE"
rm temp_processed.txt