shell-scripte-code/convert_to_markdown.sh

41 lines
1.1 KiB
Bash
Raw Normal View History

2025-02-13 17:49:56 +01:00
#!/bin/bash
# Variablen definieren
INPUT_FILE=$1
OUTPUT_FILE=$2
SPACES_PER_LEVEL=4
LIST_INDENTATION=2
HEADER_LEVELS=3
2025-02-13 17:49:56 +01:00
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 '
2025-02-13 17:49:56 +01:00
{
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)
2025-02-13 17:49:56 +01:00
}
# 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)
2025-02-13 17:49:56 +01:00
}
2025-02-13 17:49:56 +01:00
print
}' temp_processed.txt > "$OUTPUT_FILE"
rm temp_processed.txt