render_html: randeaza si fisele din summaries/*/fise/
Cele 6 trimiteri din capitole catre fise duceau la markdown brut. Breadcrumb-ul ia acum tot lantul (Sumarizari / Strategii / fise / titlu), nu doar numele folderului parinte. Fisele nu intra in index: sunt material-sursa, se ajunge la ele din capitole. Pager-ul nu apare la ele, neavand prefix numeric. 113 pagini randate, 667 de linkuri in HTML, 0 rupte. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ThN7ixZrowca8aTGrK1MUJ
This commit is contained in:
@@ -88,14 +88,24 @@ def short_title(title: str, date_only: bool = False) -> str:
|
||||
return short.split(" — ")[0] if date_only else short
|
||||
|
||||
|
||||
SUBFOLDER_NAMES = {"fise": "fișe"}
|
||||
|
||||
|
||||
def nav_html(md_path: Path, title: str) -> tuple[str, str]:
|
||||
"""Breadcrumb sus + înainte/înapoi jos. Vecinii vin din glob pe folder,
|
||||
ca render_file să meargă apelat singur. Doar fișierele numerotate
|
||||
(lecțiile) intră în secvență — INDEX_TEMATIC nu."""
|
||||
folder = md_path.parent.name
|
||||
(lecțiile) intră în secvență — INDEX_TEMATIC nu. Fișierele cu un nivel
|
||||
în plus (ex. 17_STRATEGII/fise/*.md) primesc un segment suplimentar de
|
||||
breadcrumb și link-uri către index cu un "../" în plus."""
|
||||
rel_parts = md_path.relative_to(ROOT).parts
|
||||
up = "../" * (len(rel_parts) - 1)
|
||||
folder = rel_parts[0]
|
||||
subfolder = rel_parts[1] if len(rel_parts) == 3 else None
|
||||
sep = '<span class="sep">/</span>'
|
||||
crumbs = ['<a href="../index.html">Sumarizări</a>',
|
||||
f'<a href="../index.html#{folder}">{escape(module_name(folder))}</a>']
|
||||
crumbs = [f'<a href="{up}index.html">Sumarizări</a>',
|
||||
f'<a href="{up}index.html#{folder}">{escape(module_name(folder))}</a>']
|
||||
if subfolder:
|
||||
crumbs.append(escape(SUBFOLDER_NAMES.get(subfolder, subfolder)))
|
||||
if folder == "09_QA" and md_path.stem != "INDEX_TEMATIC":
|
||||
crumbs.append('<a href="INDEX_TEMATIC.html">index tematic</a>')
|
||||
crumbs.append(escape(short_title(title, date_only=folder == "09_QA")))
|
||||
@@ -111,7 +121,7 @@ def nav_html(md_path: Path, title: str) -> tuple[str, str]:
|
||||
if i < len(lessons) - 1:
|
||||
next_a = f'<a class="next" href="{lessons[i+1].stem}.html">{label(lessons[i+1])} →</a>'
|
||||
bottom = (f'<nav class="pager">{prev_a}'
|
||||
f'<a class="up" href="../index.html#{folder}">↑ index</a>{next_a}</nav>')
|
||||
f'<a class="up" href="{up}index.html#{folder}">↑ index</a>{next_a}</nav>')
|
||||
return top, bottom
|
||||
|
||||
|
||||
@@ -119,10 +129,12 @@ def nav_html(md_path: Path, title: str) -> tuple[str, str]:
|
||||
def link_md_to_html(md_path: Path, body: str) -> str:
|
||||
"""Trimiterile din .md duc la .md (ca să meargă și pe Gitea); în pagină
|
||||
trebuie să ducă la .html. Doar cele care rămân în summaries/ — un link
|
||||
spre triaj/ sau harvest/ n-are pagină randată."""
|
||||
spre triaj/ sau harvest/ n-are pagină randată. Acceptă și un nivel în
|
||||
plus (module/fise/x.md), care tot are pagină randată."""
|
||||
def sub(m):
|
||||
tinta = (md_path.parent / (m.group(1) + ".md")).resolve()
|
||||
if tinta.parent.parent == ROOT and tinta.exists(): # doar paginile randate
|
||||
randata = tinta.parent.parent == ROOT or tinta.parent.parent.parent == ROOT
|
||||
if randata and tinta.exists(): # doar paginile randate
|
||||
return f'href="{m.group(1)}.html{m.group(2) or ""}"'
|
||||
return m.group(0)
|
||||
return re.sub(r'href="(?!https?:)([^":]+?)\.md(#[^"]*)?"', sub, body)
|
||||
@@ -164,8 +176,13 @@ def write_index(pages: list[tuple[Path, str]]):
|
||||
def main():
|
||||
md_files = sorted(ROOT.glob("*/*.md"))
|
||||
pages = [render_file(f) for f in md_files]
|
||||
# Fișele (module/fise/*.md) sunt material-sursă citat din capitole, nu
|
||||
# intră în index.html — se randează, dar nu se listează.
|
||||
fise_files = sorted(ROOT.glob("*/fise/*.md"))
|
||||
for f in fise_files:
|
||||
render_file(f)
|
||||
write_index(pages)
|
||||
print(f"Rendered {len(pages)} page(s) + index.html")
|
||||
print(f"Rendered {len(pages) + len(fise_files)} page(s) + index.html")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user