Skip to content

Commit f89a98a

Browse files
nikophilweaverryan
authored andcommitted
add read the docs layout
1 parent 42d98b5 commit f89a98a

16 files changed

+2947
-0
lines changed

src/Command/BuildDocsCommand.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use SymfonyDocsBuilder\Generator\HtmlForPdfGenerator;
1919
use SymfonyDocsBuilder\Generator\JsonGenerator;
2020
use SymfonyDocsBuilder\KernelFactory;
21+
use SymfonyDocsBuilder\Listener\AssetsCopyListener;
2122
use SymfonyDocsBuilder\Listener\BuildProgressListener;
2223
use SymfonyDocsBuilder\Listener\CopyImagesDirectoryListener;
2324

@@ -171,6 +172,13 @@ private function initializeListeners(EventManager $eventManager)
171172
new CopyImagesDirectoryListener($this->buildContext)
172173
);
173174

175+
if (!$this->buildContext->getParseSubPath()) {
176+
$eventManager->addEventListener(
177+
[PostBuildRenderEvent::POST_BUILD_RENDER],
178+
new AssetsCopyListener($this->buildContext->getOutputDir())
179+
);
180+
}
181+
174182
$progressListener = new BuildProgressListener($this->io);
175183
$progressListener->attachListeners($eventManager);
176184
}

src/KernelFactory.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33
namespace SymfonyDocsBuilder;
44

55
use Doctrine\RST\Configuration as RSTParserConfiguration;
6+
use Doctrine\RST\Event\PostBuildRenderEvent;
67
use Doctrine\RST\Kernel;
78
use SymfonyDocsBuilder\CI\UrlChecker;
89
use SymfonyDocsBuilder\Directive as SymfonyDirectives;
910
use SymfonyDocsBuilder\Reference as SymfonyReferences;
11+
use SymfonyDocsBuilder\Listener\AssetsCopyListener;
12+
use SymfonyDocsBuilder\Twig\AssetsExtension;
1013

1114
/**
1215
* Class KernelFactory
@@ -41,6 +44,9 @@ static function (string $path) use ($parseSubPath) : bool {
4144
);
4245
}
4346

47+
$twig = $configuration->getTemplateRenderer()->getTwigEnvironment();
48+
$twig->addExtension(new AssetsExtension($buildContext->getHtmlOutputDir()));
49+
4450
return new Kernel(
4551
$configuration,
4652
self::getDirectives(),

src/Listener/AssetsCopyListener.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php declare(strict_types=1);
2+
3+
namespace SymfonyDocsBuilder\Listener;
4+
5+
use Symfony\Component\Filesystem\Filesystem;
6+
7+
final class AssetsCopyListener
8+
{
9+
/** @var string */
10+
private $targetDir;
11+
12+
public function __construct(string $targetDir)
13+
{
14+
$this->targetDir = $targetDir;
15+
}
16+
17+
public function postBuildRender()
18+
{
19+
$fs = new Filesystem();
20+
$fs->mirror(
21+
sprintf('%s/../Templates/default/assets', __DIR__),
22+
sprintf('%s/assets', $this->targetDir)
23+
);
24+
}
25+
}

src/Templates/default/assets/css/badge_only.css

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

src/Templates/default/assets/css/theme.css

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)