创建自定义扩展Laravel Markdown

时间:2017-05-04 11:00:23

标签: php laravel markdown

我使用Laravel Markdown来查看内容。我希望创建@image(image_id)来呈现<img src="path_to_image"></img> =&gt; @image(image_id)

我已使用此Inline Parsing但仍不明白如何检测class ImageParser extends AbstractInlineParser { /** * @return string[] */ public function getCharacters() { return ['@']; } /** * @param InlineParserContext $inlineContext * * @return bool */ public function parse(InlineParserContext $inlineContext) { $cursor = $inlineContext->getCursor(); $previous = $cursor->peek(-1); if ($previous !== null && $previous !== ' ') { return false; } $previousState = $cursor->saveState(); $cursor->advance(); $handle = $cursor->match('/image\((\d+)\)/'); if (empty($handle)) { $cursor->restoreState($previousState); return false; } $imageId = preg_replace("/image\((\d+)\)/", "$1", $handle); $image = Image::find($imageId); if (is_null($image)) { return false; } $inlineContext->getContainer()->appendChild(new HtmlInline($this->render($image))); return true; } /** * Render the image figure. * * @param \PYM\Storage\Image $image * * @return string */ protected function render(Image $image) { $source = empty($image->source) ? null : "<figcaption>{$image->source}</figcaption>"; return '<figure><img src="' . $image->getUrl('wide') . '" alt="' . $image->alt_tag . '">' . $source . '</figure>'; } }

这里是我尝试过的示例代码:

parse()

我不明白如何使用{{1}}方法。也许这里的任何人都可以向我解释或举例:)

0 个答案:

没有答案