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(),
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.
132 KB
Binary file not shown.
162 KB
Binary file not shown.

0 commit comments

Comments
 (0)