···7from abc import abstractmethod
8from collections.abc import Mapping, Sequence
9from pathlib import Path
10-from typing import Any, cast, ClassVar, Generic, get_args, NamedTuple, Optional, Union
1112-import markdown_it
13from markdown_it.token import Token
1415from . import md, options
···17from .html import HTMLRenderer, UnresolvedXrefError
18from .manual_structure import check_structure, FragmentType, is_include, TocEntry, TocEntryType, XrefTarget
19from .md import Converter, Renderer
20-from .utils import Freezeable
2122class BaseConverter(Converter[md.TR], Generic[md.TR]):
23 # per-converter configuration for ns:arg=value arguments to include blocks, following
···519 # we use blender-style //path to denote paths relative to the origin file
520 # (usually index.html). this makes everything a lot easier and clearer.
521 if not into.startswith("//") or '/' in into[2:]:
522- raise RuntimeError(f"html:into-file must be a relative-to-origin //filename", into)
523 into = token.meta['include-args']['into-file'] = into[2:]
524 if into in self._redirection_targets:
525 raise RuntimeError(f"redirection target {into} in line {token.map[0] + 1} is already in use")
···617 for item in xref_queue:
618 try:
619 target = item if isinstance(item, XrefTarget) else self._render_xref(*item)
620- except UnresolvedXrefError as e:
621 if failed:
622 raise
623 deferred.append(item)
···7from abc import abstractmethod
8from collections.abc import Mapping, Sequence
9from pathlib import Path
10+from typing import Any, cast, ClassVar, Generic, get_args, NamedTuple
11012from markdown_it.token import Token
1314from . import md, options
···16from .html import HTMLRenderer, UnresolvedXrefError
17from .manual_structure import check_structure, FragmentType, is_include, TocEntry, TocEntryType, XrefTarget
18from .md import Converter, Renderer
01920class BaseConverter(Converter[md.TR], Generic[md.TR]):
21 # per-converter configuration for ns:arg=value arguments to include blocks, following
···517 # we use blender-style //path to denote paths relative to the origin file
518 # (usually index.html). this makes everything a lot easier and clearer.
519 if not into.startswith("//") or '/' in into[2:]:
520+ raise RuntimeError("html:into-file must be a relative-to-origin //filename", into)
521 into = token.meta['include-args']['into-file'] = into[2:]
522 if into in self._redirection_targets:
523 raise RuntimeError(f"redirection target {into} in line {token.map[0] + 1} is already in use")
···615 for item in xref_queue:
616 try:
617 target = item if isinstance(item, XrefTarget) else self._render_xref(*item)
618+ except UnresolvedXrefError:
619 if failed:
620 raise
621 deferred.append(item)