33"""
44
55import json
6- from collections .abc import Callable
76from dataclasses import dataclass
87from functools import singledispatch
98from pathlib import Path
10- from typing import TYPE_CHECKING , Any , ClassVar
9+ from typing import Any
1110
1211import sphinxnotes .strike
1312from atsphinx .audioplayer .nodes import ( # pyright: ignore[reportMissingTypeStubs]
1615from beartype import beartype
1716from docutils import nodes
1817from docutils .nodes import NodeVisitor
19- from docutils .parsers .rst import Directive , directives
2018from sphinx .application import Sphinx
2119from sphinx .builders .text import TextBuilder
2220from sphinx .util import docutils as sphinx_docutils
2321from sphinx .util .typing import ExtensionMetadata
22+ from sphinx_simplepdf .directives .pdfinclude import ( # pyright: ignore[reportMissingTypeStubs]
23+ PdfIncludeDirective ,
24+ )
2425from sphinx_toolbox .collapse import CollapseNode
2526from sphinxcontrib .video import ( # pyright: ignore[reportMissingTypeStubs]
2627 video_node ,
6364from ultimate_notion .obj_api .enums import BGColor , CodeLang
6465from ultimate_notion .rich_text import Text , text
6566
66- if TYPE_CHECKING :
67- from _typeshed import Incomplete
68-
6967
7068@beartype
7169def _serialize_block_with_children (
@@ -87,30 +85,19 @@ def _serialize_block_with_children(
8785
8886
8987@beartype
90- class _PdfNode (nodes .Element ):
88+ class _PdfNode (nodes .raw ): # pylint: disable=too-many-ancestors
9189 """
9290 Custom PDF node for Notion PDF blocks.
9391 """
9492
9593
9694@beartype
97- class _NotionPdfIncludeDirective (Directive ):
95+ class _NotionPdfIncludeDirective (PdfIncludeDirective ):
9896 """
9997 PDF include directive that creates Notion PDF blocks.
10098 """
10199
102- has_content = False
103- required_arguments = 1
104- optional_arguments = 0
105- final_argument_whitespace = True
106- option_spec : ClassVar [dict [str , Callable [[str ], "Incomplete" ]] | None ] = {
107- "width" : directives .length_or_percentage_or_unitless ,
108- "height" : directives .length_or_percentage_or_unitless ,
109- "page" : directives .positive_int ,
110- "toolbar" : directives .nonnegative_int ,
111- }
112-
113- def run (self ) -> list [_PdfNode ]:
100+ def run (self ) -> list [nodes .raw ]:
114101 """
115102 Create a Notion PDF block.
116103 """
0 commit comments