Updated to fix issue.

This commit is contained in:
Discsearcher
2026-09-01 12:43:26 -04:00
parent bbd2df680b
commit 80927a1400
+62
View File
@@ -144,6 +144,65 @@ def is_hidden_path(file_path):
# Check all parts of the path including the filename # Check all parts of the path including the filename
return any(part.startswith('.') for part in path_obj.parts) return any(part.startswith('.') for part in path_obj.parts)
def normalize_list_indentation(md_content):
"""
Normalize list indentation from 2-space to 4-space for proper markdown parsing.
Python-Markdown requires 4 spaces for nested lists, but many editors use 2 spaces.
Also ensures blank lines before lists when needed.
"""
lines = md_content.split('\n')
normalized_lines = []
def is_list_item_line(text):
"""Check if a line is actually a list item, not bold/italic markdown."""
stripped = text.lstrip(' ')
if not stripped:
return False
# Check for unordered list (- or + or single * followed by space)
if stripped[0] in '-+':
return len(stripped) > 1 and stripped[1] == ' '
elif stripped[0] == '*':
# Make sure it's not ** (bold) and is actually a list marker
return len(stripped) > 1 and stripped[1] == ' ' and not (len(stripped) > 2 and stripped[2] == '*')
# Check for ordered list (digits followed by . and space)
if stripped[0].isdigit():
i = 0
while i < len(stripped) and stripped[i].isdigit():
i += 1
return i < len(stripped) and stripped[i] == '.' and i + 1 < len(stripped) and stripped[i + 1] == ' '
return False
for i, line in enumerate(lines):
# Count leading spaces
leading_spaces = len(line) - len(line.lstrip(' '))
stripped = line.lstrip(' ')
is_list = is_list_item_line(line)
if is_list:
# Check if previous line exists and is not empty and is not a list item and is not a blank line
if i > 0 and normalized_lines:
prev_line = normalized_lines[-1]
prev_is_list = is_list_item_line(prev_line)
# If previous line exists, is not empty, and is not a list item, add blank line
if prev_line.strip() and not prev_is_list and prev_line != '':
normalized_lines.append('')
if leading_spaces > 0 and leading_spaces % 2 == 0:
# Convert 2-space indentation to 4-space for nested lists
# Each 2-space indent becomes 4-space
new_spaces = (leading_spaces // 2) * 4
normalized_lines.append(' ' * new_spaces + stripped)
else:
normalized_lines.append(line)
else:
normalized_lines.append(line)
return '\n'.join(normalized_lines)
def rewrite_image_paths(md_content, filepath): def rewrite_image_paths(md_content, filepath):
"""Rewrite relative image paths to be served by Flask.""" """Rewrite relative image paths to be served by Flask."""
# Get the directory of the current file # Get the directory of the current file
@@ -403,6 +462,9 @@ def view_file(filepath):
# Rewrite image paths to be served by Flask # Rewrite image paths to be served by Flask
md_content = rewrite_image_paths(md_content, filepath) md_content = rewrite_image_paths(md_content, filepath)
# Normalize list indentation for proper markdown parsing
md_content = normalize_list_indentation(md_content)
# Convert markdown to HTML # Convert markdown to HTML
html_content = markdown.markdown( html_content = markdown.markdown(
md_content, md_content,