• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Yoast / wordpress-seo / 481faf637ba3a7c1e5f2bfef59b582ac39523de6

21 May 2025 09:11AM UTC coverage: 46.174%. First build
481faf637ba3a7c1e5f2bfef59b582ac39523de6

Pull #22291

github

web-flow
Merge pull request #22278 from Yoast/577-sanitize-and-deal-with-special-markdown-characters-before-writing-to-file

577 sanitize and deal with special markdown characters before writing to file
Pull Request #22291: Introduce the llms.txt feature

52 of 403 new or added lines in 30 files covered. (12.9%)

15586 of 33755 relevant lines covered (46.17%)

3.67 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/llms-txt/application/markdown-builders/markdown-builder.php
1
<?php
2
// phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong
3
namespace Yoast\WP\SEO\Llms_Txt\Application\Markdown_Builders;
4

5
use Yoast\WP\SEO\Llms_Txt\Application\Markdown_Escaper;
6
use Yoast\WP\SEO\Llms_Txt\Domain\Markdown\Llms_Txt_Renderer;
7

8
/**
9
 * The builder of the markdown file.
10
 */
11
class Markdown_Builder {
12

13
        /**
14
         * The renderer of the LLMs.txt file.
15
         *
16
         * @var Llms_Txt_Renderer
17
         */
18
        protected $llms_txt_renderer;
19

20
        /**
21
         * The intro builder.
22
         *
23
         * @var Intro_Builder
24
         */
25
        protected $intro_builder;
26

27
        /**
28
         * The title builder.
29
         *
30
         * @var Title_Builder
31
         */
32
        protected $title_builder;
33

34
        /**
35
         * The description builder.
36
         *
37
         * @var Description_Builder
38
         */
39
        protected $description_builder;
40

41
        /**
42
         * The link lists builder.
43
         *
44
         * @var Link_Lists_Builder
45
         */
46
        protected $link_lists_builder;
47

48
        /**
49
         * The markdown escaper.
50
         *
51
         * @var Markdown_Escaper
52
         */
53
        protected $markdown_escaper;
54

55
        /**
56
         * The constructor.
57
         *
58
         * @param Llms_Txt_Renderer   $llms_txt_renderer   The renderer of the LLMs.txt file.
59
         * @param Intro_Builder       $intro_builder       The intro builder.
60
         * @param Title_Builder       $title_builder       The title builder.
61
         * @param Description_Builder $description_builder The description builder.
62
         * @param Link_Lists_Builder  $link_lists_builder  The link lists builder.
63
         * @param Markdown_Escaper    $markdown_escaper    The markdown escaper.
64
         */
NEW
65
        public function __construct(
×
66
                Llms_Txt_Renderer $llms_txt_renderer,
67
                Intro_Builder $intro_builder,
68
                Title_Builder $title_builder,
69
                Description_Builder $description_builder,
70
                Link_Lists_Builder $link_lists_builder,
71
                Markdown_Escaper $markdown_escaper
72
        ) {
NEW
73
                $this->llms_txt_renderer   = $llms_txt_renderer;
×
NEW
74
                $this->intro_builder       = $intro_builder;
×
NEW
75
                $this->title_builder       = $title_builder;
×
NEW
76
                $this->description_builder = $description_builder;
×
NEW
77
                $this->link_lists_builder  = $link_lists_builder;
×
NEW
78
                $this->markdown_escaper    = $markdown_escaper;
×
79
        }
80

81
        /**
82
         * Renders the markdown.
83
         *
84
         * @return string The rendered markdown.
85
         */
NEW
86
        public function render(): string {
×
NEW
87
                $this->llms_txt_renderer->add_section( $this->intro_builder->build_intro() );
×
NEW
88
                $this->llms_txt_renderer->add_section( $this->title_builder->build_title() );
×
NEW
89
                $this->llms_txt_renderer->add_section( $this->description_builder->build_description() );
×
90

NEW
91
                foreach ( $this->link_lists_builder->build_link_lists() as $link_list ) {
×
NEW
92
                        $this->llms_txt_renderer->add_section( $link_list );
×
93
                }
94

NEW
95
                foreach ( $this->llms_txt_renderer->get_sections() as $section ) {
×
NEW
96
                        $section->escape_markdown( $this->markdown_escaper );
×
97
                }
98

NEW
99
                return $this->llms_txt_renderer->render();
×
100
        }
101
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc