Skip to content

Commit b725fba

Browse files
committed
Replace new reference by native url substitution
1 parent e1d1955 commit b725fba

File tree

9 files changed

+28
-78
lines changed

9 files changed

+28
-78
lines changed

src/KernelFactory.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ public static function createKernel(BuildConfig $buildConfig, ?UrlChecker $urlCh
4444
new SymfonyHTMLFormat(
4545
$configuration->getTemplateRenderer(),
4646
$configuration->getFormat(),
47-
$urlChecker
47+
$urlChecker,
48+
$buildConfig->getSymfonyVersion()
4849
)
4950
);
5051

@@ -103,7 +104,6 @@ private static function getReferences(BuildConfig $buildConfig): array
103104
{
104105
return [
105106
new SymfonyReferences\ClassReference($buildConfig->getSymfonyRepositoryUrl()),
106-
new SymfonyReferences\GithubReference($buildConfig->getSymfonyVersion()),
107107
new SymfonyReferences\MethodReference($buildConfig->getSymfonyRepositoryUrl()),
108108
new SymfonyReferences\NamespaceReference($buildConfig->getSymfonyRepositoryUrl()),
109109
new SymfonyReferences\PhpFunctionReference($buildConfig->getPhpDocUrl()),

src/Reference/GithubReference.php

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

src/Renderers/SpanNodeRenderer.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,27 @@ class SpanNodeRenderer extends AbstractSpanNodeRenderer
2525
private $decoratedSpanNodeRenderer;
2626
/** @var UrlChecker|null */
2727
private $urlChecker;
28+
private $symfonyVersion;
2829

2930
public function __construct(
3031
Environment $environment,
3132
SpanNode $span,
3233
BaseSpanNodeRenderer $decoratedSpanNodeRenderer,
33-
?UrlChecker $urlChecker = null
34-
) {
34+
?UrlChecker $urlChecker = null,
35+
string $symfonyVersion = null
36+
)
37+
{
3538
parent::__construct($environment, $span);
3639

3740
$this->decoratedSpanNodeRenderer = $decoratedSpanNodeRenderer;
3841
$this->urlChecker = $urlChecker;
42+
$this->symfonyVersion = $symfonyVersion;
3943
}
4044

4145
/** @inheritDoc */
4246
public function link(?string $url, string $title, array $attributes = []): string
4347
{
44-
$url = (string)$url;
48+
$url = (string) $url;
4549

4650
if (
4751
$this->urlChecker &&
@@ -55,6 +59,10 @@ public function link(?string $url, string $title, array $attributes = []): strin
5559
$attributes = $this->addAttributesForUnsafeUrl($attributes);
5660
}
5761

62+
if (null !== $this->symfonyVersion) {
63+
$url = u($url)->replace('{version}', $this->symfonyVersion)->toString();
64+
}
65+
5866
return $this->decoratedSpanNodeRenderer->link($url, $title, $attributes);
5967
}
6068

src/SymfonyHTMLFormat.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,14 @@ final class SymfonyHTMLFormat implements Format
2929
private $htmlFormat;
3030
/** @var UrlChecker|null */
3131
private $urlChecker;
32+
private $symfonyVersion;
3233

33-
public function __construct(TemplateRenderer $templateRenderer, Format $HTMLFormat, ?UrlChecker $urlChecker = null)
34+
public function __construct(TemplateRenderer $templateRenderer, Format $HTMLFormat, ?UrlChecker $urlChecker = null, string $symfonyVersion = null)
3435
{
3536
$this->templateRenderer = $templateRenderer;
3637
$this->htmlFormat = $HTMLFormat;
3738
$this->urlChecker = $urlChecker;
39+
$this->symfonyVersion = $symfonyVersion;
3840
}
3941

4042
public function getFileExtension(): string
@@ -69,7 +71,8 @@ function (SpanNode $node) {
6971
$node->getEnvironment(),
7072
$node,
7173
new BaseSpanNodeRenderer($node->getEnvironment(), $node, $this->templateRenderer),
72-
$this->urlChecker
74+
$this->urlChecker,
75+
$this->symfonyVersion
7376
);
7477
}
7578
);

tests/IntegrationTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,10 @@ public function parserUnitBlockProvider()
143143
'blockName' => 'nodes/figure',
144144
];
145145

146+
yield 'span-link' => [
147+
'blockName' => 'nodes/span-link',
148+
];
149+
146150
yield 'title' => [
147151
'blockName' => 'nodes/title',
148152
];
@@ -211,10 +215,6 @@ public function parserUnitBlockProvider()
211215
'blockName' => 'references/class',
212216
];
213217

214-
yield 'github-reference' => [
215-
'blockName' => 'references/github',
216-
];
217-
218218
yield 'namespace-reference' => [
219219
'blockName' => 'references/namespace',
220220
];
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<p><a href="https://github.com/symfony/amazon-sns-notifier/blob/4.0/README.md" class="reference external" rel="external noopener noreferrer" target="_blank">README file with version substitution</a></p>
2+
3+
<p><a href="https://github.com/symfony/amazon-sns-notifier/blob/version/README.md" class="reference external" rel="external noopener noreferrer" target="_blank">README file without version substitution</a></p>

tests/fixtures/expected/blocks/references/github.html

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
`README file with version substitution <https://github.com/symfony/amazon-sns-notifier/blob/{version}/README.md>`_
2+
3+
`README file without version substitution <https://github.com/symfony/amazon-sns-notifier/blob/version/README.md>`_

tests/fixtures/source/blocks/references/github.rst

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

0 commit comments

Comments
 (0)