当前位置:  开发笔记 > 编程语言 > 正文

Parsedown设置图像宽度和高度

如何解决《Parsedown设置图像宽度和高度》经验,为你挑选了1个好方法。

目前我使用CodeIgniter 3.1.3和Parsedown/Markdown Guide

解析后,我希望能够设置图像的宽度和高度

![enter image description][1]

[1]: https://img.devbox.cn/3cccf/16086/243/2fcde13858a61eac.png '100x200' <-- widthxheight

我尝试上面的方式,但设置图像标题.

输出将是

enter image description

解析库中的问题是否有任何方法可以修改它,以便获取和设置图像的宽度和高度?

protected function inlineImage($Excerpt)
{
    if ( ! isset($Excerpt['text'][1]) or $Excerpt['text'][1] !== '[')
    {
        return;
    }

    $Excerpt['text']= substr($Excerpt['text'], 1);

    $Link = $this->inlineLink($Excerpt);

    if ($Link === null)
    {
        return;
    }

    $Inline = array(
        'extent' => $Link['extent'] + 1,
        'element' => array(
            'name' => 'img',
            'attributes' => array(
                'src' => $Link['element']['attributes']['href'],
                'alt' => $Link['element']['text'],
                'width' => '',
                'height' => ''
            ),
        ),
    );

    $Inline['element']['attributes'] += $Link['element']['attributes'];

    unset($Inline['element']['attributes']['href']);

    return $Inline;
}

小智.. 5

此(引用)语法的最后一个元素 [1]: https://img.devbox.cn/3cccf/16086/243/2fcde13858a61eac.png '100x200'

将作为title属性传递,因此您可以这样做:

class MyParsedown extends Parsedown
{
    protected function inlineImage($Excerpt)
    {
        $Inline = parent::inlineImage($Excerpt);

        if (!isset($Inline['element']['attributes']['title'])) { return $Inline; }

        $size = $Inline['element']['attributes']['title'];

        if (preg_match('/^\d+x\d+$/', $size)) {
            list($width, $height) = explode('x', $size);

            $Inline['element']['attributes']['width'] = $width;
            $Inline['element']['attributes']['height'] = $height;

            unset ($Inline['element']['attributes']['title']);
        }

        return $Inline;
    }
}

如果匹配模式,属性将更改为width+ .您可以限制数字或大小以保护打破页面,也应排除前导0(或仅限大小). heighttitleNUMERICxNUMERIC0



1> 小智..:

此(引用)语法的最后一个元素 [1]: https://img.devbox.cn/3cccf/16086/243/2fcde13858a61eac.png '100x200'

将作为title属性传递,因此您可以这样做:

class MyParsedown extends Parsedown
{
    protected function inlineImage($Excerpt)
    {
        $Inline = parent::inlineImage($Excerpt);

        if (!isset($Inline['element']['attributes']['title'])) { return $Inline; }

        $size = $Inline['element']['attributes']['title'];

        if (preg_match('/^\d+x\d+$/', $size)) {
            list($width, $height) = explode('x', $size);

            $Inline['element']['attributes']['width'] = $width;
            $Inline['element']['attributes']['height'] = $height;

            unset ($Inline['element']['attributes']['title']);
        }

        return $Inline;
    }
}

如果匹配模式,属性将更改为width+ .您可以限制数字或大小以保护打破页面,也应排除前导0(或仅限大小). heighttitleNUMERICxNUMERIC0

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有