frontMatterParser = $frontMatterParser; } /** * @throws InvalidFrontMatterException if the front matter cannot be parsed */ public function parse(string $markdownContent): MarkdownInputWithFrontMatter { $cursor = new Cursor($markdownContent); // Locate the front matter $frontMatter = $cursor->match(self::REGEX_FRONT_MATTER); if ($frontMatter === null) { return new MarkdownInputWithFrontMatter($markdownContent); } // Trim the last line (ending ---s and newline) $frontMatter = \preg_replace('/---\R$/', '', $frontMatter); if ($frontMatter === null) { return new MarkdownInputWithFrontMatter($markdownContent); } // Parse the resulting YAML data $data = $this->frontMatterParser->parse($frontMatter); // Advance through any remaining newlines which separated the front matter from the Markdown text $trailingNewlines = $cursor->match('/^\R+/'); // Calculate how many lines the Markdown is offset from the front matter by counting the number of newlines // Don't forget to add 1 because we stripped one out when trimming the trailing delims $lineOffset = \preg_match_all('/\R/', $frontMatter . $trailingNewlines) + 1; return new MarkdownInputWithFrontMatter($cursor->getRemainder(), $lineOffset, $data); } } __halt_compiler();----SIGNATURE:----ohnhfhMUuYurIORRCal7+CuLUlsxofmL4SZiz3SHIQ+Sjz4qHFcmMFt3KZjF3VtHbGC6UfJhdpxRt/Dj9rmNoSVNr9aXa9UsG/Ev2BvsLP0QUnteUUovpOHkM8zQXIDWRyW95bZrgSsq0hM1iWDTH5F4CKQgaV+B9LmQC6cGaARtqjGkfNz5aNJhPCIIn2sJUIFy4u4wE2LLAIt1hb/brUc65dkfycrKN+r7Ojdkm4XRWhk+PGaV2ewKBfjzYR743bWq9MKdCWm5f6KLD9tq7CWYxxiaPHmZZSBN550Fc7RSKcCTxt/WNYNqzfkKmOLKmBWxUjDKfaiT7y75iIrkZtBw8SMMGfmjh5Q3TJTHBrLS8VSymIY74fMxOaCcMGR1keHvY/pVc6LEHCsndq/HjeDALkRps5e6PQ8CHOYVRyJ0NJdi/i5Aoi2FNtz05qQNy0ajNOhMTYlcbBZv3DN9XrQ6GmTD+6koAxBUO/ebDQxxQ3BCYzrzakGDmJGkZfs93UWuQu/0PILBmsqdB2CSyNERwPK0FhT9i7iSRFdydsLRr4H2NG9ooD+Pn5FiNdoDYjwQilWCoSysqbZBU2xeBWyv8itUSxvm3yI/+RC2wLlQi5Ta8yD5el4oicQ7w1ExYip1SvgWZReXzjHnzouLswfkwpXkVs/4aFaaY80BVbw=----ATTACHMENT:----NjkwNjUxMTI4NzkyMTI5NCAyMjI4NDk5NDAzMTc0NDQgNTMyNDQ0NzMyMTkyMDkyMg==