mindnet/app/core/parser/parsing_scanner.py
2025-12-27 14:31:12 +01:00

25 lines
927 B
Python

"""
FILE: app/core/parsing/parsing_scanner.py
DESCRIPTION: Pre-Scan für den LocalBatchCache (Pass 1).
"""
import os
import re
from typing import Optional
from .parsing_models import NoteContext
from .parsing_markdown import read_markdown
def pre_scan_markdown(path: str) -> Optional[NoteContext]:
"""Extrahiert Identität und Kurz-Kontext zur Validierung."""
parsed = read_markdown(path)
if not parsed: return None
fm = parsed.frontmatter
note_id = str(fm.get("id") or os.path.splitext(os.path.basename(path))[0])
clean_body = re.sub(r'[#*`>]', '', parsed.body[:600]).strip()
summary = clean_body[:500] + "..." if len(clean_body) > 500 else clean_body
return NoteContext(
note_id=note_id,
title=str(fm.get("title", note_id)),
type=str(fm.get("type", "concept")),
summary=summary,
tags=fm.get("tags", []) if isinstance(fm.get("tags"), list) else []
)