1616latex_admonition_end = "\\ end{sphinxadmonition}" + CR
1717
1818
19- class proof_node (nodes .Admonition , nodes .Element ):
20- pass
21-
22-
23- class enumerable_node (nodes .Admonition , nodes .Element ):
24- pass
25-
26-
27- class unenumerable_node (nodes .Admonition , nodes .Element ):
28- pass
29-
30-
3119def visit_enumerable_node (self , node : Node ) -> None :
3220 if isinstance (self , LaTeXTranslator ):
3321 docname = find_parent (self .builder .env , node , "section" )
@@ -40,14 +28,14 @@ def visit_enumerable_node(self, node: Node) -> None:
4028def depart_enumerable_node (self , node : Node ) -> None :
4129 typ = node .attributes .get ("type" , "" )
4230 if isinstance (self , LaTeXTranslator ):
43- number = get_node_number (self , node )
31+ number = get_node_number (self , node , typ )
4432 idx = list_rindex (self .body , latex_admonition_start ) + 2
4533 self .body .insert (idx , f"{ typ .title ()} { number } " )
4634 self .body .append (latex_admonition_end )
4735 else :
4836 # Find index in list of 'Proof #'
49- number = get_node_number (self , node )
50- idx = self .body .index (f"Proof { number } " )
37+ number = get_node_number (self , node , typ )
38+ idx = self .body .index (f"{ typ } { number } " )
5139 self .body [idx ] = f"{ typ .title ()} { number } "
5240 self .body .append ("</div>" )
5341
@@ -86,9 +74,8 @@ def depart_proof_node(self, node: Node) -> None:
8674 pass
8775
8876
89- def get_node_number (self , node : Node ) -> str :
77+ def get_node_number (self , node : Node , typ ) -> str :
9078 """Get the number for the directive node for HTML."""
91- key = "proof"
9279 ids = node .attributes .get ("ids" , [])[0 ]
9380 if isinstance (self , LaTeXTranslator ):
9481 docname = find_parent (self .builder .env , node , "section" )
@@ -97,7 +84,7 @@ def get_node_number(self, node: Node) -> str:
9784 ) # Latex does not have builder.fignumbers
9885 else :
9986 fignumbers = self .builder .fignumbers
100- number = fignumbers .get (key , {}).get (ids , ())
87+ number = fignumbers .get (typ , {}).get (ids , ())
10188 return "." .join (map (str , number ))
10289
10390
@@ -127,3 +114,80 @@ def list_rindex(li, x) -> int:
127114 if li [i ] == x :
128115 return i
129116 raise ValueError ("{} is not in list" .format (x ))
117+
118+
119+ class proof_node (nodes .Admonition , nodes .Element ):
120+ pass
121+
122+
123+ class axiom_node (nodes .Admonition , nodes .Element ):
124+ pass
125+
126+
127+ class theorem_node (nodes .Admonition , nodes .Element ):
128+ pass
129+
130+
131+ class lemma_node (nodes .Admonition , nodes .Element ):
132+ pass
133+
134+
135+ class algorithm_node (nodes .Admonition , nodes .Element ):
136+ pass
137+
138+
139+ class definition_node (nodes .Admonition , nodes .Element ):
140+ pass
141+
142+
143+ class remark_node (nodes .Admonition , nodes .Element ):
144+ pass
145+
146+
147+ class conjecture_node (nodes .Admonition , nodes .Element ):
148+ pass
149+
150+
151+ class corollary_node (nodes .Admonition , nodes .Element ):
152+ pass
153+
154+
155+ class criterion_node (nodes .Admonition , nodes .Element ):
156+ pass
157+
158+
159+ class example_node (nodes .Admonition , nodes .Element ):
160+ pass
161+
162+
163+ class property_node (nodes .Admonition , nodes .Element ):
164+ pass
165+
166+
167+ class observation_node (nodes .Admonition , nodes .Element ):
168+ pass
169+
170+
171+ class proposition_node (nodes .Admonition , nodes .Element ):
172+ pass
173+
174+
175+ class unenumerable_node (nodes .Admonition , nodes .Element ):
176+ pass
177+
178+
179+ NODE_TYPES = {
180+ "axiom" : axiom_node ,
181+ "theorem" : theorem_node ,
182+ "lemma" : lemma_node ,
183+ "algorithm" : algorithm_node ,
184+ "definition" : definition_node ,
185+ "remark" : remark_node ,
186+ "conjecture" : conjecture_node ,
187+ "corollary" : corollary_node ,
188+ "criterion" : criterion_node ,
189+ "example" : example_node ,
190+ "property" : property_node ,
191+ "observation" : observation_node ,
192+ "proposition" : proposition_node ,
193+ }
0 commit comments