@@ -691,6 +691,26 @@ def run(self) -> list[BaseClassListNode]:
691691 return [base_class_list_node ]
692692
693693
694+ class DetailsDirective (rst .Directive ):
695+ required_arguments = 0
696+ optional_arguments = 1
697+ final_argument_whitespace = True
698+ has_content = True
699+
700+ def run (self ) -> list [FunctionNode ]:
701+ # `.. details::` used in Blender docs to denote a section
702+ # with dunder methods.
703+ # See "Special Methods" in
704+ # https://docs.blender.org/api/5.2/bmesh.types.html#bmesh.types.BMDeformVert
705+ container = nodes .Element ()
706+ self .state .nested_parse (self .content , self .content_offset , container )
707+ children = list (container .children )
708+ container .children = []
709+ for child in children :
710+ child .parent = None
711+ return children
712+
713+
694714def register_directives () -> None :
695715 rst .directives .register_directive ("module" , ModuleDirective )
696716 rst .directives .register_directive ("currentmodule" , ModuleDirective )
@@ -715,5 +735,6 @@ def register_directives() -> None:
715735 rst .directives .register_directive ("deprecated" , DocumentDirective )
716736
717737 rst .directives .register_directive ("include" , NopDirective )
738+ rst .directives .register_directive ("details" , DetailsDirective )
718739
719740 rst .directives .register_directive ("mod-type" , ModTypeDirective )
0 commit comments