Skip to content

Commit 7051804

Browse files
committed
update
1 parent 1585447 commit 7051804

4 files changed

Lines changed: 46 additions & 5 deletions

File tree

docs/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Introduction
5050

5151
{{ content }}
5252

53-
.. data:: Shengyu Zhang
53+
.. data::
5454
:github: SilverRainZ
5555
:homepage: https://silverrainz.me/
5656

src/sphinxnotes/data/adhoc.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,9 @@ def run(self) -> list[nodes.Node]:
6767
return []
6868

6969

70-
class FreeDataDefineDirective(BaseDataDefineDirective, FreeStyleDirective):
70+
from .auto import AutoDataDefineDirective
71+
72+
class FreeDataDefineDirective(AutoDataDefineDirective, FreeStyleDirective):
7173
optional_arguments = 1
7274
has_content = True
7375

src/sphinxnotes/data/auto.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
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+
class AutoDataDefineDirective(BaseDataDefineDirective):
23+
external_name_template = Template(phase=Phase.Parsed, debug=True, text="wow {{ name }}")
24+
25+
@override
26+
def current_raw_data(self) -> RawData:
27+
data = super().current_raw_data()
28+
if data.name is None:
29+
return data
30+
31+
if title := find_titular_node_upward(self.state.parent):
32+
data.name = title.astext()
33+
# pending_data = PendingData(data, self.current_schema())
34+
# pending_title = pending_node(pending_data, self.external_name_template)
35+
# title.clear()
36+
# title += pending_title
37+
return data

src/sphinxnotes/data/derive.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
from __future__ import annotations
1212
from typing import TYPE_CHECKING, override
1313

14+
from docutils import nodes
1415
from docutils.parsers.rst import directives
1516

16-
from .data import Field, Schema
17-
from .template import Template
18-
from .render import BaseDataDefineDirective
17+
from .data import RawData, PendingData, Field, Schema
18+
from .template import Template, Phase
19+
from .render import BaseDataDefineDirective, pending_node
20+
from .utils import find_titular_node_upward
1921

2022
class StrictDataDefineDirective(BaseDataDefineDirective):
2123
final_argument_whitespace = True

0 commit comments

Comments
 (0)