@ -42,11 +42,34 @@ final class ArticleCardCoverExtension extends AbstractExtension
@@ -42,11 +42,34 @@ final class ArticleCardCoverExtension extends AbstractExtension
{
return [
new TwigFunction('article_card_cover', $this->articleCardCover(...)),
new TwigFunction('prefetch_article_card_covers', $this->prefetchArticleCardCovers(...)),
new TwigFunction('article_og_image', $this->articleOgImage(...)),
new TwigFunction('site_og_image', $this->siteOgImage(...)),
];
}
/**
* Batch kind-0 profile lookups before a list of cards (one relay REQ per chunk, not per tile).
*
* @param iterable<mixed> $items Rows with optional `pubkey` (64-char hex)
*/
public function prefetchArticleCardCovers(iterable $items): void
* Branded site Open Graph image (home, category lists, base layout default): not tied to any article or author.
*
@ -167,4 +190,23 @@ final class ArticleCardCoverExtension extends AbstractExtension
@@ -167,4 +190,23 @@ final class ArticleCardCoverExtension extends AbstractExtension
@ -134,6 +134,7 @@ final class ArticleBodyHighlightInjectorTest extends TestCase
@@ -134,6 +134,7 @@ final class ArticleBodyHighlightInjectorTest extends TestCase
private function createInjector(): ArticleBodyHighlightInjector
@ -104,6 +104,7 @@ final class ArticleHighlightCommonMarkPipelineTest extends KernelTestCase
@@ -104,6 +104,7 @@ final class ArticleHighlightCommonMarkPipelineTest extends KernelTestCase
private function createInjector(): ArticleBodyHighlightInjector