惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Hacker News
The Hacker News
N
News and Events Feed by Topic
Simon Willison's Weblog
Simon Willison's Weblog
博客园 - 三生石上(FineUI控件)
V
Vulnerabilities – Threatpost
T
Tenable Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Proofpoint News Feed
Security Latest
Security Latest
博客园 - 【当耐特】
腾讯CDC
The Cloudflare Blog
T
Tailwind CSS Blog
L
LINUX DO - 热门话题
博客园_首页
P
Palo Alto Networks Blog
人人都是产品经理
人人都是产品经理
P
Privacy & Cybersecurity Law Blog
阮一峰的网络日志
阮一峰的网络日志
有赞技术团队
有赞技术团队
AWS News Blog
AWS News Blog
S
Securelist
博客园 - Franky
C
Cyber Attacks, Cyber Crime and Cyber Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
S
Schneier on Security
Apple Machine Learning Research
Apple Machine Learning Research
A
Arctic Wolf
P
Privacy International News Feed
Cisco Talos Blog
Cisco Talos Blog
C
Cybersecurity and Infrastructure Security Agency CISA
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Heimdal Security Blog
Help Net Security
Help Net Security
博客园 - 叶小钗
月光博客
月光博客
I
Intezer
Cyberwarzone
Cyberwarzone
美团技术团队
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI

kok的笔记本

macOS 里 神秘的 kernel_task ,为什么一直在写入硬盘? 产品 node_modules 为什么总是这么大:一次从原理到实践的瘦身记录 谁来救救我的Mac存储空间-清理工具横评:付费vs免费,从界面到命令行 2023 读书推荐 写给播客嘉宾的录制说明书 在 Electron 中使用 Vue Devtools 几何原本中勾股定理的证明 Mac 安装软件时提示 已损坏,无法打开 应该怎么办 PegBoard 你的数字白板 少数派读者与作者的 NewsLetter 闲棋冷子-2-2021年我读过哪些很棒的书 闲棋冷子-1-相信你的身体,它不会骗你 修复 macOS 中 Cisco Anyconnect 报的奇怪Bug 我的 NAS 使用记录 Omniplan 入门教程 Hugo升级0.74记录 一年级产品经理需要掌握什么知识? 无籍之谈-3-和盖盖聊聊尼尔·盖曼与中外科幻 露营笔记-装备篇 无籍之谈-2-和鹏仔聊华尔街兴盛史,给小白投资者的一些建议 介绍一下《无籍之谈》 无籍之谈-1-和不土聊佛学,谈谈《一心走路》《僧侣与哲学家》 高达模型入门 - 工具整理 5 分钟了解 Sketch 的新特性 Tint - 色调 Hugo 主题移动端开发的一些心得 修复 macbook 键盘连击问题 选小米10 还是小米10 Pro? 利用 Python 批量合并 Excel 文件 为什么家国梦不好玩? 高雄85大楼 Mac优秀软件推荐-Itsycal 找到并和正确使用无版权资源 Excel 常用函数 一 无线吸尘器挑选指南 钢铁、蒸汽与 19 世纪 聊聊《铁道之旅》 如何挑选一个电脑电源? 有用的正则表达式 给psd瘦身 2019第二季度读书总结 组装 ITX 黑苹果主机 Intel CPU 挑选指南 常用的 Markdown 工具 2019第一季度读书总结 怎么用尺规作图画75°角? 在 Hugo 中使用 Sass 真正的换位思考-《爱的沟通》读书笔记 Hugo 中使用思维导图 反叛公司中的治理者和顾问玩法 如何搭配成为一个盐系男生? 反叛公司 Rebel Inc. 入门指南 如何评估需求,预估开发成本? 小米8、小米8SE、小米8青春版参数对比 微信外部链接内容管理规范分析 在售 iPhone 参数对比 给Hugo blog中增加一些插件 微信 MacOS 多开的一些实践 矩阵与线性变换的概念理解 尺规作图小习题 用 hugo 和 netlify 搭建blog 介绍我自己 瓜摊老板 Really? EDM邮件营销,你需要知道 果子沟大桥 喀赞其的马车 清晨的木梨硡 hexo 主题开发 青龙寺的狮子 用一个特殊方法解决同位词问题 语义化 html 标签 数模的基本思路和写作攻略 hexo blog 搭建 0.1,0.1^0.1,为什么数值是波动的? 智能手机之旅 老师和学生的博弈 这些使用抗生素的方式,你做的对吗? 炼金术与钢之炼金术师 kok的笔记本 kok的笔记本 中国长征运载火箭家族-PegBoard
在 Hugo 中使用 Open Graph 提升分享效果
kokdemo · 2020-02-20 · via kok的笔记本

一直以来,我的 blog 分享到社交平台中的时候一直不能被很好的解析成卡片,只能展示成链接,应该怎么优化呢?

经过查询,发现官方教程 中有相关的指导。

里面写了怎么使用 meta 标签来标记卡片的内容。翻到最后一段,写着他们和 Open Graph 的关系,原文翻译过来是这么说的:

这个标签和 Open Graph 看起来很相似,他们也是基于同样的 Open Graph 协议的约定。使用 OG 标签描述页面的时候,也很容易在不额外复制标签的情况下生成分享卡片。

当解析器找不到卡片标签的时候,它就会解析 OG 协议的标签。这样就可以独立定义两者,最大程度的减少重复标记。

看到这里我立马去查了 Open Graph 的官网,里面写的很详细:

基本的标签

基本的标签包括 title,type,image,url 四个。写的时候别忘了html开头的 prefix属性。

官网示例如下:

<html prefix="og: http://ogp.me/ns#">
<head>
<meta property="og:title" content="The Rock" />
<meta property="og:type" content="video.movie" />
<meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
<meta property="og:image" content="http://ia.media-imdb.com/images/rock.jpg" />

一些其他的标签

这里还有一些标签会比较有用,比如:

  • og:description:描述
  • og:locale:文章中使用的语言,默认是 en_US

别的还有不少,比如 audio,video之类的,作为blog基本用不上了。

meta 标签需要在页面模板中进行修改,对于主题,应该在 themes/your-theme/layouts/ 下的某个html文件中。

我摘选以下我的 blog 的头部:

<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="renderer" content="webkit">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <!-- Title -->
  <title>title部分</title>
  <!-- Meta -->
  <meta name="description" content="{{ .Summary }}">
  <meta name="author" content="{{ .Params.author | default .Site.Params.author }}">
  <meta content="{{ delimit .Keywords ", " }}" name="keywords">
  <!-- Styles -->
  <link href="{{ $mainStyles.RelPermalink }}" integrity="{{ $mainStyles.Data.Integrity }}" media="screen" rel="stylesheet">
  <!-- Favicons -->
  <link rel="icon" href="{{ .Site.Params.favicon }}"> 
  <link rel="apple-touch-icon" href="{{ .Site.Params.appleTouchIcon }}">
  <!-- Generator -->
  <meta name="generator" content="Hugo {{ hugo.Version }}">
  <!-- RSS -->
  <link rel="alternate" type="application/atom+xml" href="{{.Site.BaseURL}}index.xml" title="{{ .Site.Title }}">
</head>

按照 Open Graph 的要求,改完之后长这样(这里隐藏不相关的部分):

<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}" prefix="og: http://ogp.me/ns#">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="renderer" content="webkit">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <!-- Title -->
  <title>title部分</title>
  <!-- Meta -->
  <meta name="description" content="{{ .Summary }}">
  <meta name="author" content="{{ .Params.author | default .Site.Params.author }}">
  <meta content="{{ delimit .Keywords ", " }}" name="keywords">
  <!-- Open Graph -->
  {{- if eq .Kind "page" }}
  <meta property="og:title" content="{{ .Title }}" />
  <meta property="og:type" content="blog" />
  <meta property="og:url" content="{{ .Permalink }}" />
  {{- if .Params.album -}}
  <meta property="og:image" content="{{ .Params.album }}" />
  {{ end }}
  <meta property="og:description" content="{{ .Params.Summary }}" />
  <meta property="og:locale" content="{{ .Site.LanguageCode }}" />
  {{ end }}
</head>

可以看出这里有几个特殊的判断:

  1. 只有在页面类型为 page 的时候才展示 OG 标签。
  2. 只有页面中加入了 album 参数,才展示缩略图。这个字段需要加在文章的信息区,和title放在一个区块里。

预览效果

看起来还是很不错的,我要的都展示出来了。

预览效果