1<?php 2 3/* 4 * This file is part of the league/commonmark package. 5 * 6 * (c) Colin O'Dell <colinodell@gmail.com> 7 * 8 * Original code based on the CommonMark JS reference parser (https://bitly.com/commonmark-js) 9 * - (c) John MacFarlane 10 * 11 * For the full copyright and license information, please view the LICENSE 12 * file that was distributed with this source code. 13 */ 14 15namespace League\CommonMark\Block\Parser; 16 17use League\CommonMark\Block\Element\BlockQuote; 18use League\CommonMark\ContextInterface; 19use League\CommonMark\Cursor; 20 21final class BlockQuoteParser implements BlockParserInterface 22{ 23 public function parse(ContextInterface $context, Cursor $cursor): bool 24 { 25 if ($cursor->isIndented()) { 26 return false; 27 } 28 29 if ($cursor->getNextNonSpaceCharacter() !== '>') { 30 return false; 31 } 32 33 $cursor->advanceToNextNonSpaceOrTab(); 34 $cursor->advanceBy(1); 35 $cursor->advanceBySpaceOrTab(); 36 37 $context->addBlock(new BlockQuote()); 38 39 return true; 40 } 41} 42