Skip to content

Commit 3117161

Browse files
authored
Merge pull request #596 from phpDocumentor/task/organize-directives
[Task] organize directives
2 parents 07f584a + 14e9e4d commit 3117161

File tree

11 files changed

+91
-95
lines changed

11 files changed

+91
-95
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{#
2+
A topic is like a block quote with a title, or a self-contained section with no subsections. Use the "topic" directive to indicate a self-contained idea that is separate from the flow of the document. Topics may occur anywhere a section or transition may occur. Body elements and topics may not contain nested topics.
3+
4+
The directive's sole argument is interpreted as the topic title; the next line
5+
must be blank. All subsequent lines make up the topic body, interpreted as body
6+
elements. For example:
7+
8+
.. topic:: Topic Title
9+
10+
Subsequent indented lines comprise
11+
the body of the topic, and are
12+
interpreted as body elements.
13+
14+
https://docutils.sourceforge.io/docs/ref/rst/directives.html#topic
15+
#}
16+
17+
<div class="topic{% if node.classes %} {{ node.classesString }}{% endif %}">
18+
<p class="topic-title">{{ renderNode(node.content) }}</p>
19+
{{ renderNode(node.value) }}
20+
</div>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{%- if node.classes %}
2+
<div class="{{ node.classesString }}">{{ renderNode(node.value) }}</div>
3+
{% else %}
4+
{{ renderNode(node.value) }}
5+
{% endif -%}

packages/guides-restructured-text/src/RestructuredText/Directives/MetaDirective.php

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
namespace phpDocumentor\Guides\RestructuredText\Directives;
66

77
use phpDocumentor\Guides\Nodes\Metadata\MetaNode;
8-
use phpDocumentor\Guides\Nodes\Node;
98
use phpDocumentor\Guides\RestructuredText\Parser\BlockContext;
109
use phpDocumentor\Guides\RestructuredText\Parser\Directive;
1110

@@ -15,24 +14,19 @@
1514
* .. meta::
1615
* :key: value
1716
*/
18-
class MetaDirective extends BaseDirective
17+
class MetaDirective extends ActionDirective
1918
{
2019
public function getName(): string
2120
{
2221
return 'meta';
2322
}
2423

25-
/** {@inheritDoc} */
26-
public function process(
27-
BlockContext $blockContext,
28-
Directive $directive,
29-
): Node|null {
24+
public function processAction(BlockContext $blockContext, Directive $directive): void
25+
{
3026
$document = $blockContext->getDocumentParserContext()->getDocument();
3127

3228
foreach ($directive->getOptions() as $option) {
3329
$document->addHeaderNode(new MetaNode($option->getName(), (string) $option->getValue()));
3430
}
35-
36-
return null;
3731
}
3832
}

packages/guides-restructured-text/src/RestructuredText/Directives/TitleDirective.php

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace phpDocumentor\Guides\RestructuredText\Directives;
66

7-
use phpDocumentor\Guides\Nodes\Node;
87
use phpDocumentor\Guides\RestructuredText\Parser\BlockContext;
98
use phpDocumentor\Guides\RestructuredText\Parser\Directive;
109

@@ -13,21 +12,16 @@
1312
*
1413
* .. title:: Page title
1514
*/
16-
class TitleDirective extends BaseDirective
15+
class TitleDirective extends ActionDirective
1716
{
1817
public function getName(): string
1918
{
2019
return 'title';
2120
}
2221

23-
/** {@inheritDoc} */
24-
public function process(
25-
BlockContext $blockContext,
26-
Directive $directive,
27-
): Node|null {
22+
public function processAction(BlockContext $blockContext, Directive $directive): void
23+
{
2824
$document = $blockContext->getDocumentParserContext()->getDocument();
2925
$document->setMetaTitle($directive->getData());
30-
31-
return null;
3226
}
3327
}

packages/guides-restructured-text/src/RestructuredText/Directives/TodoDirective.php

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,21 @@
44

55
namespace phpDocumentor\Guides\RestructuredText\Directives;
66

7-
use phpDocumentor\Guides\Nodes\CollectionNode;
8-
use phpDocumentor\Guides\Nodes\Node;
7+
use phpDocumentor\Guides\RestructuredText\Parser\BlockContext;
98
use phpDocumentor\Guides\RestructuredText\Parser\Directive;
109

1110
/**
1211
* Todo directives are treated as comments, omitting all content or options
1312
*/
14-
class TodoDirective extends SubDirective
13+
class TodoDirective extends ActionDirective
1514
{
1615
public function getName(): string
1716
{
1817
return 'todo';
1918
}
2019

21-
protected function processSub(
22-
CollectionNode $collectionNode,
23-
Directive $directive,
24-
): Node|null {
25-
return null;
20+
public function processAction(BlockContext $blockContext, Directive $directive): void
21+
{
22+
// Todo directives are treated as comments
2623
}
2724
}

packages/guides-restructured-text/src/RestructuredText/Directives/TopicDirective.php

Lines changed: 0 additions & 38 deletions
This file was deleted.

packages/guides-restructured-text/src/RestructuredText/Directives/WrapDirective.php

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<title>Directive tests</title>
5+
6+
</head>
7+
<body>
8+
<div class="section" id="directive-tests">
9+
<h1>Directive tests</h1>
10+
11+
12+
<div class="topic someclass">
13+
<p class="topic-title">This is the <strong>topic</strong></p>
14+
<p>Lorem Ipsum Dolor</p><div class="rubric">Some Rubric</div>
15+
<p>Dolor sit!</p>
16+
</div>
17+
18+
</div>
19+
20+
</body>
21+
</html>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Directive tests
2+
===============
3+
4+
.. topic:: This is the **topic**
5+
:class: someClass
6+
7+
Lorem Ipsum Dolor
8+
9+
.. rubric:: Some Rubric
10+
11+
Dolor sit!
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<title>Directive tests</title>
5+
6+
</head>
7+
<body>
8+
<div class="section" id="directive-tests">
9+
<h1>Directive tests</h1>
10+
11+
<div class="someclass"><p>Lorem Ipsum Dolor</p></div>
12+
13+
</div>
14+
15+
</body>
16+
</html>

0 commit comments

Comments
 (0)