intro_content = $intro_content; foreach ( $intro_links as $link ) { $this->add_link( $link ); } } /** * Returns the prefix of the intro section. * * @return string */ public function get_prefix(): string { return ''; } /** * Adds a link to the intro section. * * @param Link $link The link to add. * * @return void */ public function add_link( Link $link ): void { $this->intro_links[] = $link; } /** * Returns the content of the intro section. * * @return string */ public function render(): string { if ( \count( $this->intro_links ) === 0 ) { return $this->intro_content; } $rendered_links = \array_map( static function ( $link ) { return $link->render(); }, $this->intro_links ); $this->intro_content = \sprintf( $this->intro_content, ...$rendered_links ); return $this->intro_content; } /** * Escapes the markdown content. * * @param Markdown_Escaper $markdown_escaper The markdown escaper. * * @return void */ public function escape_markdown( Markdown_Escaper $markdown_escaper ): void { foreach ( $this->intro_links as $link ) { $link->escape_markdown( $markdown_escaper ); } } }