File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2727from .render import (
2828 Caller ,
2929 pending_node ,
30- RenderedNode ,
3130 rendered_node ,
32- rendered_inline_node ,
3331 BaseDataDefiner ,
3432 BaseDataDefineRole ,
3533 BaseDataDefineDirective ,
5957 'Template' ,
6058 'Caller' ,
6159 'pending_node' ,
62- 'RenderedNode' ,
6360 'rendered_node' ,
64- 'rendered_inline_node ' ,
61+ 'rendered_node ' ,
6562 'BaseDataDefiner' ,
6663 'BaseDataDefineRole' ,
6764 'BaseDataDefineDirective' ,
Original file line number Diff line number Diff line change 1313"""
1414
1515from __future__ import annotations
16+ from typing import TYPE_CHECKING , override
17+
1618from typing import TYPE_CHECKING , cast , override
1719
1820from docutils import nodes
2123
2224from .data import Field , Schema
2325from .template import Template , Phase
26+ from .render import BaseDataDefineDirective
2427from .utils .freestyle import FreeStyleDirective , FreeStyleOptionSpec
2528from . import preset
2629
@@ -66,10 +69,12 @@ def run(self) -> list[nodes.Node]:
6669 return []
6770
6871
69- from .auto import AutoDataDefineDirective
72+
73+ if TYPE_CHECKING :
74+ ...
7075
7176
72- class FreeDataDefineDirective (AutoDataDefineDirective , FreeStyleDirective ):
77+ class FreeDataDefineDirective (BaseDataDefineDirective , FreeStyleDirective ):
7378 optional_arguments = 1
7479 has_content = True
7580
Original file line number Diff line number Diff line change 1- """
2- sphinxnotes.data.derive
3- ~~~~~~~~~~~~~~~~~~~~~~~
4-
5- Module for rendering data to doctree nodes.
6-
7- :copyright: Copyright 2025 by the Shengyu Zhang.
8- :license: BSD, see LICENSE for details.
9- """
10-
11- from __future__ import annotations
12- from typing import TYPE_CHECKING , override
13-
14- from .data import RawData , PendingData
15- from .template import Template , Phase
16- from .render import BaseDataDefineDirective , pending_node
17- from .utils import find_titular_node_upward
18-
19- if TYPE_CHECKING :
20- ...
21-
22-
23- class AutoDataDefineDirective (BaseDataDefineDirective ):
24- external_name_template = Template (
25- phase = Phase .Parsed ,
26- debug = True ,
27- text = """wow *{{ name }}*
28- .. note:: hi here :""" ,
29- )
30-
31- @override
32- def current_raw_data (self ) -> RawData :
33- data = super ().current_raw_data ()
34- if data .name is None :
35- return data
36-
37- if title := find_titular_node_upward (self .state .parent ):
38- data .name = title .astext ()
39- pending_data = PendingData (data , self .current_schema ())
40- pending_title = pending_node (pending_data , self .external_name_template )
41- pending_title .seamless = True
42- pending_title .inline = True
43- title .clear ()
44- title += pending_title
45- return data
You can’t perform that action at this time.
0 commit comments