CommonMark\Interfaces\IVisitor::leave()

在 CommonMark 解析过程中对节点进行离开操作的回调

首字母:C

函数名称:leave()

适用版本:CommonMark 0.18.1

用法:leave() 函数用于在 CommonMark 解析过程中对节点进行离开操作的回调。

示例:

use CommonMark\Interfaces\IVisitor;
class MyVisitor implements IVisitor
{
 public function leave(IVisitable $node)
 {
 if ($node instanceof \CommonMark\Block\Element\AbstractBlock) {
 // 在离开块级元素时执行的操作
 // 例如,可以在这里处理代码块、段落等
 // $node 是当前离开的块级元素对象
 // 示例:将代码块转换成 HTML 的 
标签 if ($node instanceof \CommonMark\Block\Element\FencedCode) { $infoWords = explode(" ", $node->getInfoWords()); $language = htmlspecialchars($infoWords[0]); $code = htmlspecialchars($node->getStringContent()); $html = '
' . $code . '
'; echo $html; } } if ($node instanceof \CommonMark\Inline\Element\AbstractInline) { // 在离开行内元素时执行的操作 // 例如,可以在这里处理链接、加粗、斜体等 // $node 是当前离开的行内元素对象 // 示例:将链接转换成 HTML 的 标签 if ($node instanceof \CommonMark\Inline\Element\Link) { $url = htmlspecialchars($node->getUrl()); $title = htmlspecialchars($node->getTitle()); $label = htmlspecialchars($node->getLabel()); $html = '' . $label . ''; echo $html; } } } } // 使用 MyVisitor 进行解析 $parser = new \League\CommonMark\Parser\MarkdownParser(); $document = $parser->parse('

Hello, [CommonMark](https://commonmark.org/)!

'); $visitor = new MyVisitor(); $document->accept($visitor);

在上述示例中,我们自定义了一个 MyVisitor 类,实现了 IVisitor 接口的 leave() 方法。该方法根据节点类型执行不同的操作,例如将代码块转换成 HTML 的

标签,将链接转换成 HTML 的 标签。最后,我们使用 MyVisitor 来解析并访问 CommonMark 文档中的节点,实现相应的操作。

同首字母函数