thumbnail.js 970 B

123456789101112131415161718192021222324252627282930
  1. /**
  2. * Thumbnail Helper
  3. * @description Get the thumbnail url from a post
  4. * @example
  5. * <%- thumbnail(post) %>
  6. */
  7. hexo.extend.helper.register('thumbnail', function (post) {
  8. var url = post.thumbnail || post.banner || '';
  9. if (!url) {
  10. var imgPattern = /\<img\s.*?\s?src\s*=\s*['|"]?([^\s'"]+).*?\>/ig;
  11. var result = imgPattern.exec(post.content);
  12. if (result && result.length > 1) {
  13. url = result[1];
  14. }
  15. if(url.length > 0) {
  16. var pattern = /^[\\{0,1}\/{0,1}]([^\/^\\]+)/,
  17. pattern_ = /([^\/^\\]+)/;
  18. if ((ret = pattern.exec(url)) != null) {
  19. if(ret[0].length == url.length) {
  20. url = post.path + ret[1];
  21. }
  22. } else if ((ret = pattern_.exec(url)) != null) {
  23. if(ret[0].length == url.length) {
  24. url = post.path + ret[1];
  25. }
  26. }
  27. }
  28. }
  29. return url;
  30. });