[英]Opengraph link previews in Jekyll
当您在现代写作网站中插入链接时,它们通常会显示页面预览而不是链接(如果段落中没有周围的文本)。
当我在我的 jekyll 网站上添加一些帖子链接时,我想要同样的体验,这是一种呈现他们预览的方式。
这对读者来说非常方便。 有时预览错误地称为“嵌入”。
有没有办法在 Jekyll 页面/帖子中根据Open Graph 协议生成带有文本/图像预览的“预览卡”?
有没有办法根据 Open Graph 协议生成带有文本/图像预览的“预览卡”,而不仅仅是静态站点生成器 Jekyll 的降价站点中的普通链接?
是的,这是可能的。 jekyll-seo-tag 插件已经为你设置了 Open Graph Protocoll 的元数据属性,你可以在它的模板中看到。
Jekyll 的默认主题,
该插件从您的_config.yaml
读取值以设置属性。 一些值是
title
为og:title
和og:site_name
description
为og:description
url
为og:url
也可以使用jekyll-seo-tag
插件指定og:image
,如其文档的高级用法部分所述。 将以下内容添加到帖子的前面:
image:
path: /your/fancy/image.png
height: 100
width: 100
也可以指定默认图像,请参阅Jekyll 文档中的 front matter defaults
我用我自己的博客尝试了这一切——也是用 Jekyll 生成的。
我为这篇文章添加了一个og:image
。 您可以在GitHub 上查看其来源。
在添加图像之前,Telegram 桌面中的预览如下所示:
添加og:image
,它看起来像这样:
有几个原因。
@webpagebot
。 您可以将链接发送到此机器人,它会更新缓存。有两种方法可以为 Jekyll 站点上的链接生成预览:
存在一个 Jekyll 插件 - jekyll-preview-tag
:
首先安装所需的 gems nokogiri
、 open-uri
、 ruby-readability
nokogiri
和digest
,例如
bundle add nokogiri bundle add open-uri bundle add ruby-readability bundle add digest
现在下载文件preview_tag.rb
并将其放在站点的_plugins
文件夹中。
创建_cache
目录
将您的链接添加到您的降价中,例如:
{% preview https://mycoolsite.com %}
默认情况下,这仅呈现文本:
但是,您可以添加一个提取og:image
标签的方法:
def get_og_image_url(source)
if source.css('meta[property="og:image"]').first
return source.css('meta[property="og:image"]').first["content"]
end
return ""
end
我创建了一个分支,在我的 GitHub 个人资料中演示了这一点,您可以轻松修改它。
预览看起来像这样:
有几个可用的 JavaScript 库可以为您生成预览。
你可能想看看
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.