diff --git a/CHANGELOG.md b/CHANGELOG.md index 13b2530..63f0e21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,10 +29,6 @@ Versionsnummern nach [Semantic Versioning](https://semver.org/lang/de/). ### Behoben -- CSS-Auswertung: Es zählen nur noch Stylesheets, die ein Dokument per `` (oder `@import`) einbindet. - Bisher wirkten alle CSS-Dateien des Manifests, auch mitgelieferte Layouts anderer Buchreihen. Im C-Buch - machte das aus fetten Buchstaben Inline-Code (`` `st`an`d`ard ``) und setzte falsche ``; eine - fremde `display:none`-Regel hätte Text gelöscht (QA3-01, Regressionstests in `tests/test_styles.py`). - `pandoc/callouts.lua`: Die Kästen blieben ohne Rahmen, wenn man Pandoc zusätzlich `-H`/`--include-in-header` übergab, und im EPUB hatten nur die Titelseite, nicht die Kapitel, das Kasten-CSS. Das CSS steht jetzt in `pandoc/callouts.css`; der Filter setzt es bei HTML an den Anfang des Dokuments und fügt es bei EPUB den diff --git a/README.md b/README.md index b5ea70c..3e07c04 100644 --- a/README.md +++ b/README.md @@ -249,8 +249,6 @@ weil CommonMark keine `[^…]`-Syntax kennt. - **CSS-Formatierung:** Viele Verlage setzen Hervorhebungen nur über Stylesheets. epub2md wertet die CSS-Dateien des Buches aus: Klassen-, Element- und ID-Selektoren, Nachfahren- und Kind-Kombinatoren, Spezifität und `style`-Attribute. `@media`-Blöcke und Selektoren mit Pseudoklassen werden ignoriert. - Berücksichtigt werden nur Stylesheets, die ein Dokument per `` (oder `@import`) einbindet; - mitgelieferte Layouts anderer Buchreihen bleiben wie im E-Book-Reader wirkungslos (Info `css-unlinked`). Direkt aneinanderstoßende gleiche Hervorhebungen werden zusammengefasst (`*x**y*` → `*xy*`). - **Farben und Schriften:** Markdown kennt keine Farben, Schriftarten oder -größen. Mit `--styles html` bleiben sie als HTML-Stil erhalten. Übernommen wird nur, was vom Grundstil abweicht (häufigste Werte aller diff --git a/epub2md/html_converter.py b/epub2md/html_converter.py index 15ff259..5ce4bb9 100644 --- a/epub2md/html_converter.py +++ b/epub2md/html_converter.py @@ -1233,8 +1233,8 @@ class Renderer: finally: self.strong -= 1 if name in ("del", "s", "strike"): - del_open, del_close = ("~~", "~~") if self.opt.format == "gfm" else ("", "") - return pre + self._wrap(self.inline_children(el), del_open, del_close) + marker = ("~~", "~~") if self.opt.format == "gfm" else ("", "") + return pre + self._wrap(self.inline_children(el), marker[0], marker[1]) if name in ("u", "ins", "mark", "kbd", "sup", "sub"): if name in ("sup", "sub"): elems = [c for c in el if is_element(c)] diff --git a/epub2md/pipeline.py b/epub2md/pipeline.py index 9f1f68e..bc10e24 100644 --- a/epub2md/pipeline.py +++ b/epub2md/pipeline.py @@ -13,7 +13,6 @@ from dataclasses import asdict, dataclass, field from datetime import datetime, timezone from pathlib import Path from typing import Any -from urllib.parse import unquote from . import TOOL_NAME, __version__ from .chapters import ChapterBuilder @@ -28,7 +27,7 @@ from .media import MediaRegistry from .models import Chapter from .normalize import Doc, book_uses_title_tables, is_html_toc_doc, make_doc, normalize_doc, remove_keep_tail from .references import LinkResolver -from .utils import is_element, is_inside, iter_elements, local, resolve_href, sha256_file, slugify, text_content +from .utils import is_element, is_inside, iter_elements, local, sha256_file, slugify, text_content from . import writer MARKER_FILES = ("conversion-report.json", "manifest.json") @@ -234,39 +233,18 @@ def _build_structure(docs: list[Doc], package: Any, opts: Options, return notes, chapters, resolver -CSS_IMPORT = re.compile(r"""@import\s+(?:url\(\s*)?["']?([^"')\s;]+)""", re.I) - - def _load_stylesheet(reader: EpubReader, package: Any, docs: list[Doc], diag: Diagnostics) -> StyleSheet: - """The book's CSS: manifest stylesheets that a spine document links (directly or via @import), in manifest - order, plus