Skip to content

Commit 4c01163

Browse files
committed
handle version number in external references
1 parent fac4092 commit 4c01163

File tree

11 files changed

+40
-13
lines changed

11 files changed

+40
-13
lines changed

_build/composer.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

_build/conf.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"version": "4.0"
3+
}

_build/src/HtmlKernel.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,27 @@ class HtmlKernel extends Kernel
3030
/** @var NodeFactory */
3131
private $symfonyDocsFactory;
3232

33+
/** @var array */
34+
private static $configuration;
35+
36+
public static function getConfiguration(): array
37+
{
38+
if (null === self::$configuration) {
39+
self::$configuration = json_decode(file_get_contents(__DIR__.'/../conf.json'), true);
40+
}
41+
42+
return self::$configuration;
43+
}
44+
45+
public static function getVersion(): string
46+
{
47+
if (!isset(self::getConfiguration()['version'])) {
48+
throw new \RuntimeException('The version must be defined in "/_build/conf.json"');
49+
}
50+
51+
return self::getConfiguration()['version'];
52+
}
53+
3354
public function getName(): string
3455
{
3556
return parent::getName();

_build/src/Reference/ClassReference.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Doctrine\RST\Environment;
66
use Doctrine\RST\Reference;
77
use Doctrine\RST\References\ResolvedReference;
8+
use SymfonyDocs\HtmlKernel;
89

910
class ClassReference extends Reference
1011
{
@@ -21,7 +22,7 @@ public function resolve(Environment $environment, string $data): ResolvedReferen
2122

2223
return new ResolvedReference(
2324
$className,
24-
sprintf('%s/%s/%s.html', self::BASE__URL, '4.1', str_replace('\\', '/', $className)),
25+
sprintf('%s/%s/%s.html', self::BASE__URL, HtmlKernel::getVersion(), str_replace('\\', '/', $className)),
2526
[],
2627
[
2728
'class' => 'reference external',

_build/src/Reference/MethodReference.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Doctrine\RST\Environment;
66
use Doctrine\RST\Reference;
77
use Doctrine\RST\References\ResolvedReference;
8+
use SymfonyDocs\HtmlKernel;
89

910
class MethodReference extends Reference
1011
{
@@ -24,7 +25,7 @@ public function resolve(Environment $environment, string $data): ResolvedReferen
2425

2526
return new ResolvedReference(
2627
$methodName.'()',
27-
sprintf('%s/%s/%s.html#method_%s', self::BASE__URL, '4.1', str_replace('\\', '/', $className), $methodName),
28+
sprintf('%s/%s/%s.html#method_%s', self::BASE__URL, HtmlKernel::getVersion(), str_replace('\\', '/', $className), $methodName),
2829
[],
2930
[
3031
'class' => 'reference external',

_build/src/Reference/NamespaceReference.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Doctrine\RST\Environment;
66
use Doctrine\RST\Reference;
77
use Doctrine\RST\References\ResolvedReference;
8+
use SymfonyDocs\HtmlKernel;
89

910
class NamespaceReference extends Reference
1011
{
@@ -21,7 +22,7 @@ public function resolve(Environment $environment, string $data): ResolvedReferen
2122

2223
return new ResolvedReference(
2324
substr(strrchr($className, '\\'), 1),
24-
sprintf('%s/%s/%s.html', self::BASE__URL, '4.1', str_replace('\\', '/', $className)),
25+
sprintf('%s/%s/%s.html', self::BASE__URL, HtmlKernel::getVersion(), str_replace('\\', '/', $className)),
2526
[],
2627
[
2728
'class' => 'reference external',

_build/src/Reference/RefReference.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ public function getName(): string
1717
public function resolve(Environment $environment, string $data): ResolvedReference
1818
{
1919
$resolver = new Resolver();
20-
$resolvedReference = $resolver->resolve($environment, $data);
20+
$resolvedReference = $resolver->resolve($environment, $data, ['class' => 'reference internal']);
2121
if ($resolvedReference->getTitle() === '(unresolved)') {
2222
throw new \RuntimeException(sprintf('Reference "%s" could not be resolved', $data));
2323
}
2424

2525
return $resolvedReference;
2626
}
27-
}
27+
}

_build/tests/fixtures/expected/blocks/class-reference.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
<meta charset="utf-8" />
55
</head>
66
<body>
7-
<p><a href="https://api.symfony.com/4.1/Symfony/Component/HttpKernel/DependencyInjection/ContainerAwareHttpKernel.html" class="reference external" title="Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel">Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel</a></p>
7+
<p><a href="https://api.symfony.com/4.0/Symfony/Component/HttpKernel/DependencyInjection/ContainerAwareHttpKernel.html" class="reference external" title="Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel">Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel</a></p>
88
</body>
99
</html>

_build/tests/fixtures/expected/blocks/method-reference.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
<meta charset="utf-8" />
55
</head>
66
<body>
7-
<p><a href="https://api.symfony.com/4.1/Symfony/Component/HttpFoundation/RequestStack.html#method_getCurrentRequest" class="reference external" title="Symfony\Component\HttpFoundation\RequestStack::getCurrentRequest()">getCurrentRequest()</a></p>
7+
<p><a href="https://api.symfony.com/4.0/Symfony/Component/HttpFoundation/RequestStack.html#method_getCurrentRequest" class="reference external" title="Symfony\Component\HttpFoundation\RequestStack::getCurrentRequest()">getCurrentRequest()</a></p>
88
</body>
99
</html>

_build/tests/fixtures/expected/blocks/namespace-reference.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
<meta charset="utf-8" />
55
</head>
66
<body>
7-
<p><a href="https://api.symfony.com/4.1/Symfony/Component/HttpFoundation.html" class="reference external" title="Symfony\Component\HttpFoundation">HttpFoundation</a></p>
7+
<p><a href="https://api.symfony.com/4.0/Symfony/Component/HttpFoundation.html" class="reference external" title="Symfony\Component\HttpFoundation">HttpFoundation</a></p>
88
</body>
99
</html>

_build/tests/fixtures/expected/ref-reference/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
<meta charset="utf-8" />
55
</head>
66
<body>
7-
<p><a href="file.html#ref-test">A ref test</a>.</p>
7+
<p><a href="file.html#ref-test" class="reference internal">A ref test</a>.</p>
88
</body>
99
</html>

0 commit comments

Comments
 (0)