2
2
3
3
namespace SymfonyDocs ;
4
4
5
+ use Doctrine \RST \HTML \Document ;
6
+ use Doctrine \RST \DefaultNodeFactory ;
5
7
use Doctrine \RST \Directive ;
6
- use Doctrine \RST \Factory ;
8
+ use Doctrine \RST \NodeFactory as NodeFactoryInterface ;
7
9
use Doctrine \RST \HTML \Kernel ;
8
- use SymfonyDocs \Directive \BestPracticeDirective ;
9
- use SymfonyDocs \Directive \CautionDirective ;
10
- use SymfonyDocs \Directive \ClassDirective ;
11
- use SymfonyDocs \Directive \CodeBlockDirective ;
12
- use SymfonyDocs \Directive \ConfigurationBlockDirective ;
13
- use SymfonyDocs \Directive \IndexDirective ;
14
- use SymfonyDocs \Directive \NoteDirective ;
15
- use SymfonyDocs \Directive \RoleDirective ;
16
- use SymfonyDocs \Directive \SeeAlsoDirective ;
17
- use SymfonyDocs \Directive \SidebarDirective ;
18
- use SymfonyDocs \Directive \TipDirective ;
19
- use SymfonyDocs \Directive \VersionAddedDirective ;
20
- use SymfonyDocs \Reference \ClassReference ;
21
- use SymfonyDocs \Reference \DocReference ;
22
- use SymfonyDocs \Reference \MethodReference ;
23
- use SymfonyDocs \Reference \NamespaceReference ;
24
- use SymfonyDocs \Reference \PhpClassReference ;
25
- use SymfonyDocs \Reference \PhpFunctionReference ;
26
- use SymfonyDocs \Reference \PhpMethodReference ;
27
- use SymfonyDocs \Reference \RefReference ;
10
+ use Doctrine \RST \NodeInstantiator ;
11
+ use Doctrine \RST \NodeTypes ;
12
+ use Doctrine \RST \HTML \Nodes as ParserNodes ;
13
+ use SymfonyDocs \Directive as SymfonyDoirectives ;
14
+ use SymfonyDocs \Nodes as SymfonyNodes ;
15
+ use SymfonyDocs \Reference as SymfonyRefernces ;
28
16
29
17
class HtmlKernel extends Kernel
30
18
{
31
- /** @var NodeFactory */
32
- private $ symfonyDocsFactory ;
33
-
34
19
/** @var array */
35
20
private static $ configuration ;
36
21
@@ -52,60 +37,57 @@ public static function getVersion(): string
52
37
return self ::getConfiguration ()['version ' ];
53
38
}
54
39
55
- public function getName (): string
56
- {
57
- return parent ::getName ();
58
- }
59
-
60
- /**
61
- * @param Directive[] $directives
62
- */
63
- public function __construct (array $ directives = [])
64
- {
65
- parent ::__construct ($ directives );
66
-
67
- $ this ->symfonyDocsFactory = new NodeFactory ($ this ->getName ());
68
- }
69
-
70
- public function getFactory (): Factory
71
- {
72
- return $ this ->symfonyDocsFactory ;
73
- }
74
-
75
40
public function getDirectives (): array
76
41
{
77
42
$ directives = parent ::getDirectives ();
78
43
79
44
return array_merge (
80
45
$ directives ,
81
46
[
82
- new CautionDirective (),
83
- new ClassDirective (),
84
- new CodeBlockDirective (),
85
- new ConfigurationBlockDirective (),
86
- new IndexDirective (),
87
- new NoteDirective (),
88
- new RoleDirective (),
89
- new SeeAlsoDirective (),
90
- new SidebarDirective (),
91
- new TipDirective (),
92
- new VersionAddedDirective (),
93
- new BestPracticeDirective (),
47
+ new SymfonyDoirectives \ CautionDirective (),
48
+ new SymfonyDoirectives \ ClassDirective (),
49
+ new SymfonyDoirectives \ CodeBlockDirective (),
50
+ new SymfonyDoirectives \ ConfigurationBlockDirective (),
51
+ new SymfonyDoirectives \ IndexDirective (),
52
+ new SymfonyDoirectives \ NoteDirective (),
53
+ new SymfonyDoirectives \ RoleDirective (),
54
+ new SymfonyDoirectives \ SeeAlsoDirective (),
55
+ new SymfonyDoirectives \ SidebarDirective (),
56
+ new SymfonyDoirectives \ TipDirective (),
57
+ new SymfonyDoirectives \ VersionAddedDirective (),
58
+ new SymfonyDoirectives \ BestPracticeDirective (),
94
59
]
95
60
);
96
61
}
97
62
98
63
public function getReferences (): array
99
64
{
100
65
return [
101
- new DocReference (),
102
- new RefReference (),
103
- new ClassReference (),
104
- new MethodReference (),
105
- new NamespaceReference (),
106
- new PhpFunctionReference (),
107
- new PhpMethodReference (),
108
- new PhpClassReference (),
66
+ new SymfonyRefernces \ DocReference (),
67
+ new SymfonyRefernces \ RefReference (),
68
+ new SymfonyRefernces \ ClassReference (),
69
+ new SymfonyRefernces \ MethodReference (),
70
+ new SymfonyRefernces \ NamespaceReference (),
71
+ new SymfonyRefernces \ PhpFunctionReference (),
72
+ new SymfonyRefernces \ PhpMethodReference (),
73
+ new SymfonyRefernces \ PhpClassReference (),
109
74
];
110
75
}
111
- }
76
+
77
+ protected function createNodeFactory () : NodeFactoryInterface
78
+ {
79
+ return new DefaultNodeFactory (
80
+ new NodeInstantiator (NodeTypes::ANCHOR , SymfonyNodes \AnchorNode::class),
81
+ new NodeInstantiator (NodeTypes::CODE , SymfonyNodes \CodeNode::class),
82
+ new NodeInstantiator (NodeTypes::LIST , SymfonyNodes \ListNode::class),
83
+ new NodeInstantiator (NodeTypes::PARAGRAPH , SymfonyNodes \ParagraphNode::class),
84
+ new NodeInstantiator (NodeTypes::SPAN , SymfonyNodes \SpanNode::class),
85
+ new NodeInstantiator (NodeTypes::TABLE , SymfonyNodes \TableNode::class),
86
+ new NodeInstantiator (NodeTypes::TITLE , SymfonyNodes \TitleNode::class),
87
+ new NodeInstantiator (NodeTypes::TOC , SymfonyNodes \TocNode::class),
88
+ new NodeInstantiator (NodeTypes::DOCUMENT , Document::class),
89
+ new NodeInstantiator (NodeTypes::SEPARATOR , ParserNodes \SeparatorNode::class),
90
+ new NodeInstantiator (NodeTypes::QUOTE , ParserNodes \QuoteNode::class)
91
+ );
92
+ }
93
+ }
0 commit comments