搜索
首页web前端css教程使用RESOC创建自己的自动社交图像

利用HTML和CSS创建自动化社交图片,并将其集成到Eleventy博客中,最终部署到Netlify平台。本文将逐步指导您完成整个过程,无需复杂的代码编写,即可实现高水平的社交图片自动化。

Create Your Own Automated Social Images With Resoc

近期,自动化社交图片成为热门话题,GitHub、Jetpack等都推出了相关工具。Ryan Filler和Zach Leatherman等开发者也已在其网站上实现了此功能,但需要大量的自定义代码。如今,借助一些新工具,我们可以简化这一流程。

本教程将指导您使用HTML和CSS创建自定义的自动化社交图片,并通过配置将其集成到Eleventy博客,最后部署到Netlify。

如果您迫不及待想查看最终效果,请访问项目链接或浏览项目代码!

社交图片是什么?

在HTML的部分,我们插入一些Open Graph元数据:

<meta content="The blue sky strategy" property="og:title">
<meta content="Less clouds, more blue" property="og:description">
<meta content="/sky-with-clouds.jpg" property="og:image">

当我们在Facebook上分享此页面时,我们和我们的朋友会看到:

LinkedIn、Twitter、WhatsApp、Slack、Discord、iMessage……所有这些网站的行为方式都大致相同:它们提供一个带有视觉“卡片”的链接,使其更具空间感和上下文信息。

Twitter有自己的一套元数据标记——Twitter Cards,但它们非常相似。当Twitter找不到Twitter Cards时,会回退到Open Graph。

页面标题和描述是必不可少的,但在上面的截图中,它们与天空和云彩图片相比显得非常小,更不用说可点击区域的大小了。这就是社交图片的力量。当链接被分享时,很容易理解这些图片的影响力。

从Level 0到Level 3

并非所有社交图片都是平等的。以下并非官方术语,但让我们考虑一下这些社交图片卡片的影响力级别:

Level 0

最基本的社交图片是没有图片。链接可能会淹没在大量内容中,可视区域小且缺乏视觉吸引力。

Level 1

一种经典技术是创建全站统一的社交图片。虽然这种解决方案似乎具有良好的投入产出比,但有人可能会认为它比没有图片更糟糕。当然,我们会获得一些关注,但反应可能是否定的,尤其当人们看到很多来自同一个网站的链接都看起来一样时。它容易显得重复且不必要。

Level 2

下一个级别是博客和媒体网站的标准做法:每篇文章都有其自己的特色图片,并且彼此不同。对于新闻网站来说,这种做法是完全合理的,因为照片可以补充页面内容。这里的潜在缺点是,需要为每一篇已发布的文章寻找和创建图片素材。

这可能会导致一些懒惰。我们都见过那些显然是库存照片的图片。它可能会引起注意,但可能不是你真正想要的关注。

Level 3

最终级别:每个页面都有内容丰富、有意义的社交图片。CSS-Tricks就是这样做的。该团队的社交图片具有品牌特色。它们共享相同的布局。它们提到了文章标题,以及作者姓名和个人资料图片,这是普通的标题和描述无法显示的。它们引人注目且令人难忘。

这种方法有一个显而易见的先决条件:自动化。为每个可能的链接创建独特的图片是不可能的。想想看这需要多少额外工作。我们需要一些程序化的解决方案来帮助我们完成繁重的工作。

让我们创建一个具有独特社交图片的博客

为了给自己一个构建独特社交图片的良好理由(和沙盒),我们将创建一个简单的博客。当我撰写和发布文章到这个博客时,我遵循一个简单的两步过程:

  1. 撰写和发布文章
  2. 将已发布的URL发布到我的社交网络帐户

这时社交图片必须发挥作用。我们希望让我们的博客尽可能引人注目。但这并不是我们的唯一目标。这个博客应该树立我们的个人品牌。我们希望当我们的朋友、同事和粉丝看到我们的社交帖子时,能记住我们。我们想要一些可重复、可识别且具有代表性的东西。

创建博客需要大量工作。虽然自动化社交图片很酷,但花太多时间在这上面是不明智的。(Chris在2020年底得出了同样的结论)。因此,为了提高效率,我们正在制作一个Eleventy网站。Eleventy是一个简单的静态网站生成器。与其从头开始,不如使用现有的入门项目。事实上,让我们选择第一个,eleventy-base-blog。

访问eleventy-base-blog GitHub页面并将其用作模板:

让我们创建存储库,并设置存储库名称和描述。我们可以将其设置为公开或私有,这无关紧要。

接下来,我们将存储库克隆到本地,安装软件包并运行站点:

git clone [你的仓库URL]
cd my-demo-blog ### 或者你命名的任何名称
npm install
npm run serve

我们的网站正在http://localhost:8080运行。

现在让我们部署它。Netlify使这项任务变得非常快速(且免费!)。(哦,剧透警告:我们的社交图片自动化依赖于Netlify函数。)

因此,让我们访问Netlify并创建一个帐户,如果您还没有帐户的话。无论哪种方式,创建一个新的站点:

允许Netlify访问博客存储库。

Netlify部署我们的站点:

大约一分钟后,博客就部署好了:

一个图像模板统治所有

我们的社交图片将基于一个图像模板。为了设计这个模板,我们将使用我们已经了解和喜爱的技术:HTML和CSS。HTML不会自动将自身转换为图像,但有一些工具可以做到这一点,最著名的就是带有Puppeteer的headless Chrome。

但是,与其自己构建社交图片堆栈,不如使用Resoc Image Template Development Kit。因此,从项目根目录,我们可以在终端中运行:

npx itdk init resoc-templates/default -m title-description

此命令在resoc-templates/default目录中创建一个新的图像模板。它还会在新浏览器窗口中打开。

我们可以按原样使用此模板,但这只能让我们在“有影响力”的范围内达到Level 2。我们需要让它达到Level 3并匹配CSS-Tricks模板的是:

  • 标题右对齐,左侧留有一些负空间。
  • 底部有一个页脚,其中包含由我们将在整个博客中使用的两种颜色组成的背景渐变。
  • 文章作者的姓名和个人资料图片。

如果我们回到浏览器,我们可以在模板查看器的“参数”面板中看到模板需要两个参数:标题和描述。这正是我们在终端中运行-m title-description时选择的模板。但我们可以通过编辑resoc-templates/default/resoc.manifest.json来添加更多参数。具体来说,我们可以删除第二个参数以获得:

{
  "partials": {
    "content": "./content.html.mustache",
    "styles": "./styles.css.mustache"
  },
  "parameters": [
    {
      "name": "title",
      "type": "text",
      "demoValue": "A picture is worth a thousand words"
    }
  ]
}

浏览器中的查看器会反映更改:

是时候设计图像本身了,我们可以在resoc-templates/default/content.html.mustache中进行设计:

<div>
  <main><h1 id="title">{{ title }}</h1></main>
  <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174226994887403.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="Create Your Own Automated Social Images With Resoc ">
  <h2 id="Philippe-Bernard">Philippe Bernard</h2>
</div>

这只是普通的HTML。好吧,除了{{ title }}。这是Mustache,Resoc用来将参数值注入模板的模板引擎。我们甚至可以在“标题”字段中键入一些文本以查看它的工作原理:

查看预览时,请注意我们缺少一个图像profil-pic.jpg。将您最好的个人资料图片复制到resoc-templates/default/profil-pic.jpg

是时候在resoc-templates/default/styles.css.mustache中编写CSS了。这篇文章的重点不是如何设置模板样式,但这是我最终使用的样式:

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Raleway&display=swap');

/* ... CSS 代码 ... */

大部分尺寸依赖于vw和vh单位,以帮助预测模板可能呈现的各种上下文。我们将遵循Facebook的建议,即1200×630。另一方面,Twitter Cards的尺寸不同。我们可以以低分辨率(如600×315)呈现图像,但让我们使用1200×630,这样我们只需要使用像素即可。

查看器以1200×630呈现Facebook预览,并将其缩小以适应屏幕。如果预览符合您的期望,那么实际的Open Graph图像也会如此。

到目前为止,模板符合我们的需求:

(以下内容继续按照原文结构,对剩余部分进行类似的改写,保持内容一致性的同时,调整语言表达和段落结构,使之更流畅自然。)

以上是使用RESOC创建自己的自动社交图像的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
迭代使用样式组件的React设计迭代使用样式组件的React设计Apr 21, 2025 am 11:29 AM

在一个完美的世界中,我们的项目将拥有无限的资源和时间。我们的团队将开始使用经过深思熟虑的UX设计进行编码。

哦,制作三角形面包丝带的许多方法!哦,制作三角形面包丝带的许多方法!Apr 21, 2025 am 11:26 AM

哦,制作三角形面包屑丝带的许多方法

CSS指南中的SVG属性CSS指南中的SVG属性Apr 21, 2025 am 11:21 AM

SVG具有自己的一套元素,属性和属性集,以至于内联SVG代码可能会变得漫长而复杂。通过利用CSS和SVG 2规范的一些即将到来的功能,我们可以减少该代码以进行清洁标记。

交叉观察者的一些功能用途可以知道何时在元素中查看交叉观察者的一些功能用途可以知道何时在元素中查看Apr 21, 2025 am 11:19 AM

您可能不知道这一点,但是JavaScript最近偷偷地积累了许多观察者,而交叉观察者是其中的一部分

恢复偏爱减少运动恢复偏爱减少运动Apr 21, 2025 am 11:18 AM

我们可能不需要扔掉所有CSS动画。请记住,这更喜欢减少动作,而不喜欢不运动。

如何将进步的Web应用程序进入Google Play商店如何将进步的Web应用程序进入Google Play商店Apr 21, 2025 am 11:10 AM

PWA(Progressive Web应用程序)已经与我们在一起了一段时间。但是,每次我尝试向客户解释它时,同样的问题都会出现:“我的用户会成为

处理HTML的最简单方法包括处理HTML的最简单方法包括Apr 21, 2025 am 11:09 AM

这对我来说非常令人惊讶,HTML从未在其中包含其他HTML文件。似乎也没有任何东西

更改悬停在悬停的SVG的颜色更改悬停在悬停的SVG的颜色Apr 21, 2025 am 11:04 AM

使用SVG有很多不同的方法。取决于哪种方式,在不同状态或条件下重新定制该SVG的策略 - 悬停,

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具