type = $type; foreach ( $links as $link ) { $this->add_link( $link ); } } /** * Adds a link to the list. * * @param Link $link The link to add. * * @return void */ public function add_link( Link $link ): void { $this->links[] = $link; } /** * Returns the prefix of the link list section. * * @return string */ public function get_prefix(): string { return '## '; } /** * Renders the link item. * * @return string */ public function render(): string { if ( empty( $this->links ) ) { return ''; } $rendered_links = []; foreach ( $this->links as $link ) { $rendered_links[] = '- ' . $link->render(); } return $this->type . \PHP_EOL . \implode( \PHP_EOL, $rendered_links ); } /** * Escapes the markdown content. * * @param Markdown_Escaper $markdown_escaper The markdown escaper. * * @return void */ public function escape_markdown( Markdown_Escaper $markdown_escaper ): void { $this->type = $markdown_escaper->escape_markdown_content( $this->type ); foreach ( $this->links as $link ) { $link->escape_markdown( $markdown_escaper ); } } }