<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>xiaoluoboding (xiaoluoboding)</title>
    <link>https://beta.w2solo.com/xiaoluoboding</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>tech-stack.tools 创造者的技术栈工具库</title>
      <description>&lt;p&gt;&lt;a href="https://github.com/xiaoluoboding/monthly" rel="nofollow" target="_blank" title="《前端技术栈月刊》"&gt;《前端技术栈月刊》&lt;/a&gt; 又鸽了一天，坚持了 41 个月，终于写不下去了，原因不是有多难，而是该转型了。&lt;/p&gt;

&lt;p&gt;于是决定于 &lt;code&gt;2022-06-29&lt;/code&gt; 停刊啦，四年多以来收获的是一直坚持着保持记录的习惯。&lt;/p&gt;

&lt;p&gt;所以&lt;a href="https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MjM5OTY2MjAwNg==&amp;amp;action=getalbum&amp;amp;album_id=2319237207234134019&amp;amp;scene=173&amp;amp;from_msgid=2247487927&amp;amp;from_itemidx=1&amp;amp;count=3&amp;amp;nolastread=1#wechat_redirect" rel="nofollow" target="_blank" title=""&gt;《周刊》&lt;/a&gt;还在坚持着，保持每周记录的习惯。&lt;/p&gt;

&lt;p&gt;而今月刊中的内容，我将他们整理为一个 &lt;code&gt;list&lt;/code&gt; 甚至是 &lt;code&gt;database&lt;/code&gt;，记录了不少有用的工具，以一个站点的形式重现，我把它命名为 &lt;a href="http://tech-stack.tools/" rel="nofollow" target="_blank" title="tech-stack.tools"&gt;tech-stack.tools&lt;/a&gt;（技术栈工具库）&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/6b4af210-a0be-4b4d-8464-57eda57be5d0.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="动机"&gt;动机&lt;/h2&gt;
&lt;p&gt;有一个读者在发现了我的 &lt;a href="https://github.com/xiaoluoboding/monthly" rel="nofollow" target="_blank" title="monthly"&gt;monthly&lt;/a&gt; 之后，尝试自荐他的工具，说实话这是自运行以来第一次自荐，而我还没准备好接受任何的自荐形式。所以这也是我考虑到重构转型的一个原因。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/82c093d1-6c2c-4b04-a839-3a3425786c47.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="设计"&gt;设计&lt;/h2&gt;
&lt;p&gt;没什么设计，完全 copy 了 &lt;a href="https://modules.nuxtjs.org/" rel="nofollow" target="_blank" title="Nuxt Modules"&gt;Nuxt Modules&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="色彩"&gt;色彩&lt;/h3&gt;
&lt;p&gt;主色调想用一款紫色，选用了 &lt;code&gt;Tailwind CSS&lt;/code&gt; 中的 &lt;code&gt;violet&lt;/code&gt;，你懂的&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/73f852dc-8653-4c80-8255-a0dcd8b112be.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="字体"&gt;字体&lt;/h3&gt;
&lt;p&gt;有意思的是在选择字体的时候，一款叫 &lt;a href="https://fonts.google.com/specimen/Share+Tech?query=share" rel="nofollow" target="_blank" title="Share Tech"&gt;Share Tech&lt;/a&gt; 的字体出现在我眼前，名字很贴合站点的理念。所以选择了它，随了缘吧。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/b9676e4f-415b-4355-a2e6-953c1e527912.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="Logo"&gt;Logo&lt;/h3&gt;
&lt;p&gt;确实是自己瞎画的，就花了不到一小时时间（没咋用心），源自字母 tech stack tools 的缩写 TST，想表现出 Stack 这个词，层叠的感觉，自行脑补😂 &lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/9602b980-f569-4f95-bdd1-668562742024.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="开发"&gt;开发&lt;/h2&gt;&lt;h3 id="脚手架"&gt;脚手架&lt;/h3&gt;
&lt;p&gt;本次用到了自己搭建的一个模版 &lt;a href="https://github.com/xiaoluoboding/self-hosted-app-starter" rel="nofollow" target="_blank" title="self-hosted-app-starter"&gt;self-hosted-app-starter&lt;/a&gt;，一个可以帮助你快速实现一个自部署应用的全栈脚手架。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;后端：Docker + Go + SQLite&lt;/li&gt;
&lt;li&gt;前端：Vite + Vue 3 + Tailwind CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/fc878e56-d1ff-4d8a-a253-0d33c5ec01e1.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="后端实现"&gt;后端实现&lt;/h3&gt;
&lt;p&gt;技术栈&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go&lt;/li&gt;
&lt;li&gt;SQLite&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;简单设计了一个 &lt;code&gt;bookmark&lt;/code&gt; 表存储工具信息，后续可能扩展用户表。&lt;/p&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;bookmark&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt; &lt;span class="n"&gt;AUTOINCREMENT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;created_ts&lt;/span&gt; &lt;span class="nb"&gt;BIGINT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt; &lt;span class="k"&gt;DEFAULT&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'%s'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'now'&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
  &lt;span class="n"&gt;updated_ts&lt;/span&gt; &lt;span class="nb"&gt;BIGINT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt; &lt;span class="k"&gt;DEFAULT&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'%s'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'now'&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;

  &lt;span class="n"&gt;link&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;title&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;description&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;author&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;publisher&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;logo&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;tag&lt;/span&gt; &lt;span class="n"&gt;JSONB&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt; &lt;span class="k"&gt;DEFAULT&lt;/span&gt; &lt;span class="s1"&gt;'{}'&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;UNIQUE&lt;/span&gt; &lt;span class="k"&gt;INDEX&lt;/span&gt; &lt;span class="n"&gt;idx_bookmark_link&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;bookmark&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="前端实现"&gt;前端实现&lt;/h3&gt;
&lt;p&gt;技术栈&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nuxt 3 RC&lt;/li&gt;
&lt;li&gt;Vue 3&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;UnoCSS&lt;/li&gt;
&lt;li&gt;Pinia&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;最后使用的是 &lt;code&gt;Nuxt 3&lt;/code&gt; 来写的，因为要用到一点点 Server 端技术实现获取基于 &lt;code&gt;Notion&lt;/code&gt; 的 database 数据。&lt;/p&gt;
&lt;h3 id="站点统计"&gt;站点统计&lt;/h3&gt;
&lt;p&gt;使用的是 &lt;a href="https://umami.is/" rel="nofollow" target="_blank" title="umami"&gt;umami&lt;/a&gt; ，搭建起来很容易，后续可以讲讲如何免费搭建（baipiao）一个站点统计服务。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/8337749f-c398-4f45-a6cc-3330ee7c6e2f.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;数据表现像这样&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/0cff6c5c-ac44-4f54-8878-d78164009a1d.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="部署服务"&gt;部署服务&lt;/h3&gt;
&lt;p&gt;这里使用的是 &lt;a href="https://railway.app/" rel="nofollow" target="_blank" title="Railway"&gt;Railway&lt;/a&gt;，可以部署 &lt;code&gt;Docker&lt;/code&gt;、&lt;code&gt;Static Web Site&lt;/code&gt;、&lt;code&gt;PostgreSQL&lt;/code&gt;、&lt;code&gt;MySQL&lt;/code&gt; 等服务，类似 render、vercel、netlify 等。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/9b52d047-09a0-4b19-b3b0-c909a2aa4869.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="贡献 / 自荐"&gt;贡献 / 自荐&lt;/h2&gt;
&lt;p&gt;欢迎自荐你的 or 你发现的好用的工具，一起武装我们的技术栈工具库，&lt;a href="https://github.com/xiaoluoboding/tech-stack.tools/issues/new/choose" rel="nofollow" target="_blank" title="传送门"&gt;传送门&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;贡献采取的是提 &lt;code&gt;issue&lt;/code&gt; 的方式，采纳优秀的工具在下一周加入到工具库中。&lt;/p&gt;
&lt;h2 id="支持"&gt;支持&lt;/h2&gt;
&lt;p&gt;希望这个工具集合能帮助你更快找到你想要的工具，提升你的工作效率。&lt;/p&gt;

&lt;p&gt;如果喜欢这个工具库，可以支持给个🌟 &lt;a href="https://github.com/xiaoluoboding/tech-stack.tools" rel="nofollow" target="_blank" title="Star"&gt;Star&lt;/a&gt;，是对我的最大的认可。或者分享给你的朋友。&lt;/p&gt;

&lt;p&gt;BTW，站点中有一些小彩蛋等你发现 ！！&lt;/p&gt;
&lt;h2 id="参考资料"&gt;参考资料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;[1]《前端技术栈月刊》: &lt;a href="https://github.com/xiaoluoboding/monthly" rel="nofollow" target="_blank"&gt;https://github.com/xiaoluoboding/monthly&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[2] tech-stack.tools: &lt;a href="http://tech-stack.tools/" rel="nofollow" target="_blank"&gt;http://tech-stack.tools/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[3] monthly: &lt;a href="https://github.com/xiaoluoboding/monthly" rel="nofollow" target="_blank"&gt;https://github.com/xiaoluoboding/monthly&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[4] Nuxt Modules: &lt;a href="https://modules.nuxtjs.org/" rel="nofollow" target="_blank"&gt;https://modules.nuxtjs.org/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[5] Share Tech: &lt;a href="https://fonts.google.com/specimen/Share+Tech?query=share" rel="nofollow" target="_blank"&gt;https://fonts.google.com/specimen/Share+Tech?query=share&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[6] self-hosted-app-starter: &lt;a href="https://github.com/xiaoluoboding/self-hosted-app-starter" rel="nofollow" target="_blank"&gt;https://github.com/xiaoluoboding/self-hosted-app-starter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[7] umami: &lt;a href="https://umami.is/" rel="nofollow" target="_blank"&gt;https://umami.is/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[8] Railway: &lt;a href="https://railway.app/" rel="nofollow" target="_blank"&gt;https://railway.app/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[9] 传送门: &lt;a href="https://github.com/xiaoluoboding/tech-stack.tools/issues/new/choose" rel="nofollow" target="_blank"&gt;https://github.com/xiaoluoboding/tech-stack.tools/issues/new/choose&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;[10] Star: &lt;a href="https://github.com/xiaoluoboding/tech-stack.tools" rel="nofollow" target="_blank"&gt;https://github.com/xiaoluoboding/tech-stack.tools&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>xiaoluoboding</author>
      <pubDate>Thu, 30 Jun 2022 09:41:29 +0800</pubDate>
      <link>https://beta.w2solo.com/topics/3394</link>
      <guid>https://beta.w2solo.com/topics/3394</guid>
    </item>
    <item>
      <title>bookmark.style: 你的链接有了新的样式</title>
      <description>&lt;p&gt;最近将一直自用的一款将任意链接转换生成分享图的工具 &lt;a href="https://bookmark.style" rel="nofollow" target="_blank" title=""&gt;bookmark.style&lt;/a&gt; 发布到了 &lt;a href="https://www.producthunt.com/posts/bookmark-style" rel="nofollow" target="_blank" title=""&gt;ProductHunt&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;bookmark.style 适用于开发者、创作者、公众号写手，它可以美化你的链接，让你的链接 “开口说话”，以下图片有 bookmark.style 生成，链接为：&lt;a href="https://www.producthunt.com/posts/bookmark-style" rel="nofollow" target="_blank"&gt;https://www.producthunt.com/posts/bookmark-style&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/374aeee4-bb90-43f2-8f82-0be7f11daee8.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="需求"&gt;需求&lt;/h2&gt;
&lt;p&gt;去年写了一篇文章&lt;a href="https://www.xlbd.me/posts/2021-08-16-how-to-create-a-visual-web-bookmark.html" rel="nofollow" target="_blank" title=""&gt;《如何创建可视化的 Web Bookmark》&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;了解了一下 OG 协议，以及从搭建一个 &lt;code&gt;Serveless&lt;/code&gt; 服务，到最终前端展现 &lt;code&gt;Web Bookmark&lt;/code&gt; 样式。最终输出的内容有点类似 &lt;code&gt;Twitter Card&lt;/code&gt; 或者 &lt;code&gt;Notion 中的 Web Bookmark&lt;/code&gt; 的站点元信息。&lt;/p&gt;

&lt;p&gt;这个需求也源自于我一直在维护的&lt;a href="https://xiaoluoboding.github.io/monthly/" rel="nofollow" target="_blank" title=""&gt;《前端技术栈月刊》&lt;/a&gt;，每次分享的工具、资源、教程链接好像很枯燥，所以我都会截取站点的图片加以说明，希望带给读者更好的体验，那么如何将一个链接自动就转变为带图文的卡片呢，实际上浏览器早就有了相关规范，就是 Open Graph 协议，只要遵循协议在站点中添加相关规则，即可让一个浏览器更好地去辨认，OG 协议是一种为社交分享而生的协议。&lt;/p&gt;
&lt;h2 id="演进"&gt;演进&lt;/h2&gt;&lt;h3 id="Metafy"&gt;Metafy&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/one-tab-group/metafy" rel="nofollow" target="_blank" title=""&gt;Metafy&lt;/a&gt; 是最底层的 &lt;code&gt;Serveless&lt;/code&gt; 服务，基于 &lt;code&gt;Vercel&lt;/code&gt; 搭建，它能够根据给定的 URL 输出相关 &lt;code&gt;metadata&lt;/code&gt; 信息&lt;/p&gt;

&lt;p&gt;比如：&lt;/p&gt;

&lt;p&gt;输入：&lt;code&gt;https://metafy.vercel.app/api?url=https://github.com/xiaoluoboding/metafy&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;输出：&lt;/p&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;audio:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;author:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"one-tab-group"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;date:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;description:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Easily scrape metadata from websites as a service. - GitHub - one-tab-group/metafy: Easily scrape metadata from websites as a service."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;image:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://opengraph.githubassets.com/e855dfcc905f5f459056c93be62b72fdf1f109124878a366a01a738f3d9921a8/one-tab-group/metafy"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;logo:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://github.com/fluidicon.png"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;lang:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;publisher:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"GitHub"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;title:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"GitHub - one-tab-group/metafy: Easily scrape metadata from websites as a service."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;video:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;抓取到的站点元信息可以用于可视化展示&lt;/p&gt;
&lt;h3 id="Chrome Extension"&gt;Chrome Extension&lt;/h3&gt;
&lt;p&gt;于是有了 &lt;a href="https://chrome.google.com/webstore/detail/web-visual-bookmark/jcfidgjldodhkpiebmemhnhgpgdakham/" rel="nofollow" target="_blank" title=""&gt;Web Visual Bookmark&lt;/a&gt; 插件的诞生，底层基于 metafy ，编写了可以一键将站点转化为一个可视化的 Web Bookmark 卡片的小插件，感兴趣的童鞋可以尝试下&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/b6655532-07de-4842-afe1-bdc1fa333339.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;其实到这里个人用着已经很爽了，可能我的技术栈刊物系列的读者会发现，我的很多配图都已经使用这个工具生成了，我也很少去分享链接，因为在微信公众号中打不开，你懂的，所以 Web Visual Bookmark 就厉害了，其特点是带一个二维码，可以在微信中可以长按二维码识别打开的，解决了这个痛点。&lt;/p&gt;

&lt;p&gt;后来有几位童鞋问我你的图片生成工具是什么，我说自研的，又问我能否定制，额这个，🤔&lt;/p&gt;
&lt;h3 id="Web APP"&gt;Web APP&lt;/h3&gt;
&lt;p&gt;于是，能定制的来了，&lt;a href="https://bookmark.style" rel="nofollow" target="_blank" title=""&gt;bookmark.style&lt;/a&gt;，下面是使用 bookmark.style 抓取的 bookmark.style&lt;/p&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/0ada6ed7-6e61-4050-b2e2-18b09a705abd.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;提供了一些简单的定制需求：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;将任意链接转化为可视化 Web Bookmark 卡片&lt;/li&gt;
&lt;li&gt;类似 Twitter Card 布局&lt;/li&gt;
&lt;li&gt;类似 Notion Web bookmark 布局&lt;/li&gt;
&lt;li&gt;美化渐变背景&lt;/li&gt;
&lt;li&gt;开启磨砂效果&lt;/li&gt;
&lt;li&gt;卡片圆角设置&lt;/li&gt;
&lt;li&gt;二维码显隐&lt;/li&gt;
&lt;li&gt;一键拷贝、下载图片（&lt;a href="/2x" class="user-mention" title="@2x"&gt;&lt;i&gt;@&lt;/i&gt;2x&lt;/a&gt;）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="https://img.way2solo.com/photo/xiaoluoboding/f636f3e7-62ac-484f-93dc-69d48d97544a.png?imageView2/2/w/1920/q/100" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;生成的图片在公众号中展示的效果：&lt;a href="https://mp.weixin.qq.com/s/ZrSZI22D2zfF9kqiObHXMg" rel="nofollow" target="_blank" title=""&gt;参见文章&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="资源"&gt;资源&lt;/h2&gt;
&lt;p&gt;最后顺手骗个 star，上述提到的工具均开源在 GitHub，如果你有什么需求，可以在仓库中以 issue 的形式提出&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/one-tab-group/metafy" rel="nofollow" target="_blank" title=""&gt;metafy&lt;/a&gt; - &lt;a href="https://github.com/one-tab-group/metafy" rel="nofollow" target="_blank"&gt;https://github.com/one-tab-group/metafy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/one-tab-group/chrome-web-bookmark" rel="nofollow" target="_blank" title=""&gt;chrome-web-bookmark&lt;/a&gt; - &lt;a href="https://github.com/one-tab-group/chrome-web-bookmark" rel="nofollow" target="_blank"&gt;https://github.com/one-tab-group/chrome-web-bookmark&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/one-tab-group/bookmark.style" rel="nofollow" target="_blank" title=""&gt;bookmark.style&lt;/a&gt; - &lt;a href="https://github.com/one-tab-group/bookmark.style" rel="nofollow" target="_blank"&gt;https://github.com/one-tab-group/bookmark.style&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.xlbd.me/posts/2021-08-16-how-to-create-a-visual-web-bookmark.html" rel="nofollow" target="_blank" title=""&gt;如何创建可视化的 Web Bookmark&lt;/a&gt; - &lt;a href="https://www.xlbd.me/posts/2021-08-16-how-to-create-a-visual-web-bookmark.html" rel="nofollow" target="_blank"&gt;https://www.xlbd.me/posts/2021-08-16-how-to-create-a-visual-web-bookmark.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ogp.me/" rel="nofollow" target="_blank" title=""&gt;The Open Graph Protocol&lt;/a&gt; - &lt;a href="https://ogp.me/" rel="nofollow" target="_blank"&gt;https://ogp.me/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="支持"&gt;支持&lt;/h2&gt;
&lt;p&gt;如果 bookmark.style 帮助到了你，希望你也不要吝啬您的赞，在 &lt;a href="https://www.producthunt.com/posts/bookmark-style" rel="nofollow" target="_blank" title=""&gt;ProductHunt&lt;/a&gt; 上帮忙投票支持，又或者 ☕️ 请我喝杯咖啡。&lt;/p&gt;</description>
      <author>xiaoluoboding</author>
      <pubDate>Thu, 19 May 2022 10:42:24 +0800</pubDate>
      <link>https://beta.w2solo.com/topics/3322</link>
      <guid>https://beta.w2solo.com/topics/3322</guid>
    </item>
  </channel>
</rss>
