[英]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.