首页 > Typecho怎样获取文章第一张图片

Typecho怎样获取文章第一张图片

由于TE采用了MD编辑器,网上的那些获取方法都是通过正则找到图片的,对MD语法没用,找不到图片。

求指一条康庄大道,主题要用到,实在好无奈啊,难道要我把文章转换成HTML?


<?php $this->attachments(1)->attachment->url(); ?>

自动提取图片不是一个好主意。就算你能够自动提取文章里面的图片,但是这个图片也不能直接用于别的目的。因为这个图片很可能不合适用于别的目的。

最好的解决办法就算增加一个选项,可以让用户自己设置主题图片。wordpress就算这么做的。这样能更加能够合适你需要实现的功能。

如果你非得提取,也可以,可以通过正则表达式提取Markdown的图片标签。

在线查看结果:http://regex101.com/r/aM4aS5/1

var mdImgRegex = /!\[[^\]]*]\([^\)]*\.(png|jpeg|jpg|gif|bmp)\)/gi;

测试匹配到的实例:

![test](http://test.com/test.png)
![test](http://test.com/test.jpg)
![test](http://test.com/test.jpeg)
![test](http://test.com/test.gif)
![test](http://test.com/test.bmp)
![](http://test.com/test.png)
![](http://test.com/test.jpg)
![](http://test.com/test.jpeg)
![](http://test.com/test.gif)
![](http://test.com/test.bmp)

![test](http://test.com/test.PNG)
![test](http://test.com/test.JPG)
![test](http://test.com/test.JPEG)
![test](http://test.com/test.GIF)
![test](http://test.com/test.BMP)
![](http://test.com/test.PNG)
![](http://test.com/test.JPG)
![](http://test.com/test.JPEG)
![](http://test.com/test.GIF)
![](http://test.com/test.BMP)

前端输出有两个接口,一个是未经过 markdown 处理的,一个是使用 markdown 处理成 HTML 后的,使用什么正则获取图片,得看你使用的是哪个接口。可以查看这里的 134 和 141 行代码。

https://github.com/typecho/typecho/blob/master/var/Widget/Abstract/Contents.php

不过,我好像记得有朋友写过缩略图插件的呀,叫 Thumbnail,题主可以去找找。

【热门文章】
【热门文章】