Skip to content

Commit b4f5b18

Browse files
committed
Adding admonition directive & simplifying some admonition markup
1 parent e1f1632 commit b4f5b18

16 files changed

+63
-17
lines changed

_build/src/Directive/AbstractAdmonitionDirective.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ final public function processSub(Parser $parser, ?Node $document, string $variab
2727
[
2828
'name' => $this->name,
2929
'text' => $this->text,
30+
'class' => null,
3031
]
3132
);
3233

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
namespace SymfonyDocs\Directive;
4+
5+
use Doctrine\RST\Directives\SubDirective;
6+
use Doctrine\RST\Nodes\Node;
7+
use Doctrine\RST\Parser;
8+
9+
class AdmonitionDirective extends SubDirective
10+
{
11+
public function processSub(Parser $parser, ?Node $document, string $variable, string $data, array $options): ?Node
12+
{
13+
$wrapperDiv = $parser->renderTemplate(
14+
'directives/admonition.html.twig',
15+
[
16+
// a bit strange, but on the old markup we literally
17+
// had a class of 'admonition-"
18+
'name' => '',
19+
'text' => $data,
20+
'class' => isset($options['class']) ? $options['class'] : null,
21+
]
22+
);
23+
24+
return $parser->getNodeFactory()->createWrapperNode($document, $wrapperDiv, '</div></div>');
25+
}
26+
27+
public function getName(): string
28+
{
29+
return 'admonition';
30+
}
31+
}

_build/src/KernelFactory.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ static function (string $path) use ($parseOnlyPath) : bool {
4848
private static function getDirectives(): array
4949
{
5050
return [
51+
new SymfonyDirectives\AdmonitionDirective(),
5152
new SymfonyDirectives\CautionDirective(),
5253
new SymfonyDirectives\ClassDirective(),
5354
new SymfonyDirectives\CodeBlockDirective(),
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
<div class="admonition-{{ name }} admonition-wrapper">
2-
<div class="{{ name }}"></div>
1+
<div class="admonition-wrapper{{ class ? (' '~class) : '' }}">
32
<div class="admonition admonition-{{ name }}">
43
<p class="admonition-title">{{ text }}</p>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<div class="admonition-wrapper"><div class="sidebar"></div><div class="admonition admonition-sidebar"><p class="sidebar-title">{{ title|raw }}</p>
1+
<div class="admonition-wrapper"><div class="admonition admonition-sidebar"><p class="sidebar-title">{{ title|raw }}</p>

_build/tests/IntegrationTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,10 @@ public function parserUnitBlockProvider()
144144
'blockName' => 'directives/note',
145145
];
146146

147+
yield 'admonition' => [
148+
'blockName' => 'directives/admonition',
149+
];
150+
147151
yield 'note-code-block-nested' => [
148152
'blockName' => 'directives/note-code-block-nested',
149153
];
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8" />
5+
</head>
6+
<body>
7+
<div class="admonition-wrapper screencast_class">
8+
<div class="admonition admonition-">
9+
<p class="admonition-title">Screencast</p>
10+
<p>Do you prefer video tutorials? Check out the the screencasts.</p>
11+
</div>
12+
</div>
13+
</body>
14+
</html>

_build/tests/fixtures/expected/blocks/directives/best-practice.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
<meta charset="utf-8" />
55
</head>
66
<body>
7-
<div class="admonition-best-practice admonition-wrapper">
8-
<div class="best-practice"></div>
7+
<div class="admonition-wrapper">
98
<div class="admonition admonition-best-practice">
109
<p class="admonition-title">Best Practice</p>
1110
<p>Use the bcrypt encoder for hashing your users' passwords.</p>

_build/tests/fixtures/expected/blocks/directives/caution.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
<meta charset="utf-8" />
55
</head>
66
<body>
7-
<div class="admonition-caution admonition-wrapper">
8-
<div class="caution"></div>
7+
<div class="admonition-wrapper">
98
<div class="admonition admonition-caution">
109
<p class="admonition-title">Caution</p>
1110
<p>Using too many sidebars or caution directives can be distracting!</p>

_build/tests/fixtures/expected/blocks/directives/note-code-block-nested.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
<meta charset="utf-8" />
55
</head>
66
<body>
7-
<div class="admonition-note admonition-wrapper">
8-
<div class="note"></div>
7+
<div class="admonition-wrapper">
98
<div class="admonition admonition-note">
109
<p class="admonition-title">Note</p>
1110
<p>test</p>

_build/tests/fixtures/expected/blocks/directives/note.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
<meta charset="utf-8" />
55
</head>
66
<body>
7-
<div class="admonition-note admonition-wrapper">
8-
<div class="note"></div>
7+
<div class="admonition-wrapper">
98
<div class="admonition admonition-note">
109
<p class="admonition-title">Note</p>
1110
<p>Sometimes we add notes. But not too often because they interrupt the flow.</p>

_build/tests/fixtures/expected/blocks/directives/seealso.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
<meta charset="utf-8" />
55
</head>
66
<body>
7-
<div class="admonition-seealso admonition-wrapper">
8-
<div class="seealso"></div>
7+
<div class="admonition-wrapper">
98
<div class="admonition admonition-seealso">
109
<p class="admonition-title">See also</p>
1110
<p>Also check out the homepage</p>

_build/tests/fixtures/expected/blocks/directives/sidebar-code-block-nested.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
</head>
66
<body>
77
<div class="admonition-wrapper">
8-
<div class="sidebar"></div>
98
<div class="admonition admonition-sidebar">
109
<p class="sidebar-title">The sidebar's title</p>
1110
<p>some text before code block</p>

_build/tests/fixtures/expected/blocks/directives/sidebar.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
</head>
66
<body>
77
<div class="admonition-wrapper">
8-
<div class="sidebar"></div>
98
<div class="admonition admonition-sidebar">
109
<p class="sidebar-title">The sidebar's title</p>
1110
<p>some text inside sidebar</p>

_build/tests/fixtures/expected/blocks/directives/tip.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
<meta charset="utf-8" />
55
</head>
66
<body>
7-
<div class="admonition-tip admonition-wrapper">
8-
<div class="tip"></div>
7+
<div class="admonition-wrapper">
98
<div class="admonition admonition-tip">
109
<p class="admonition-title">Tip</p>
1110
<p>This is a little tip about something! We an also talk about specific</p>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.. admonition:: Screencast
2+
:class: screencast_class
3+
4+
Do you prefer video tutorials? Check out the the screencasts.

0 commit comments

Comments
 (0)