关于十年之约

十年之约 · 不为流量写的博客,值得被人好好读。

这是一个非营利的个人博客联盟。目前有上千个博客在约,全站收录了十万余篇成员原创文章。加入这里不只是挂个名字:「虫洞」会把访客送到成员博客,让你写的东西真的有人读。

这里更多的是摄影、视觉、旅行、生活这类「搬不走的原创内容」,技术只占其中一格。大家约好的事只有一件:博客十年不关,一直写下去。

成千上万张博客卡片从黑场深处汇聚过来,越近越清楚,汇成画面中下部一片被照亮的卡片地面 成千上万张博客卡片从黑场深处汇聚过来,越近越清楚,汇成画面中下部一片被照亮的卡片地面

1.十年之约是什么

就是一个约定:从加入那天起,博客十年不关,或者更久,并且一直在写。

一张博客卡片立在一条十格年度路的起点,十格向远处排开,第一格最亮,尽头隐约是门光 一张博客卡片立在一条十格年度路的起点,十格向远处排开,第一格最亮,尽头隐约是门光

2.怎么加入

先读一遍《十年公约》,确认你的博客符合里面的要求。读完在公约页底部就能直接提交,审核通过后,我们会把你加进来。

  1. 1阅读《十年公约》确认你的站点符合公约里的要求
  2. 2提交博客读完公约,在公约页底部直接申请
  3. 3审核通过我们会在审核后完成添加
读《十年公约》

3.加入以后会怎样

你的博客会进入「虫洞」。有人点一下,就可能被送到你那里,每一次都是真实的到访。你的文章也会出现在全站的最新文章里,让更多同好翻到。

白光门前扇形排开八张博客卡片,门里流出的粒子光带分成八股,每张卡片都接到一股,有粗有细 白光门前扇形排开八张博客卡片,门里流出的粒子光带分成八股,每张卡片都接到一股,有粗有细

我们还会给你的博客记一份十年大事记:什么时候更新、有过什么变化,都记下来;哪天停更或关站了,也照实写。有人这样记着,「坚持十年」才不只是一句口号。

一条时间线从一张博客卡片起向远处延伸,节点大多亮着,中间一小段变暗,之后又重新亮起 一条时间线从一张博客卡片起向远处延伸,节点大多亮着,中间一小段变暗,之后又重新亮起

4.为什么要做这件事

把写博客从一时兴起,变成一件坚持十年的事。在这里你不是一个人在写:身边有一群同样约好十年不关站的博主,有访客通过虫洞找到你;你写下的东西放在自己的博客里,不会哪天被平台说下架就下架。

5.谁在维护

想一起维护的,写信到 foreverblog@email.cn。

6.以前的维护者

沈唁志、雨落泪尽、工匠盒子、图南山、即刻学术参与过运营,Wisp X、吾爱bug 提供过技术支持。他们现在已经不再维护了,谢谢他们这些年的付出。

7.成员标识

放在博客的页脚或侧边栏,来的人一眼就知道:这个站约好了要写十年。

标识由「一稿计划」设计。

黑色文字(浅色背景的博客用)
© 我的博客十年之约专属标识 · 黑色文字
<a href="https://www.foreverblog.cn/" target="_blank" title="十年之约成员博客"><img src="https://www.foreverblog.cn/assets/logo/logo_v2_black.png" alt="十年之约" style="width:auto;height:32px;"></a>
浅色文字(深色背景的博客用)
© 我的博客十年之约专属标识 · 浅色文字
<a href="https://www.foreverblog.cn/" target="_blank" title="十年之约成员博客"><img src="https://www.foreverblog.cn/assets/logo/logo_v2_light.png" alt="十年之约" style="width:auto;height:32px;"></a>

8.虫洞

虫洞是十年之约的一个入口:打开 https://www.foreverblog.cn/go.html ,它会从在约、半年内还在更新的成员博客里挑一个,把你送过去。更新得勤的博客,被挑中的机会大一些,具体怎么算写在虫洞规则里。

加入十年之约,你的博客就会进入虫洞。半年没更新的会暂时停送,重新更新后自动回来。

两张博客卡片分立白光门左右,粒子光带从左边经过门流向右边,另一缕从右边经过门流回左边 两张博客卡片分立白光门左右,粒子光带从左边经过门流向右边,另一缕从右边经过门流回左边

把虫洞按钮挂在博客的页脚、侧边栏或友链页。你的读者点一下,会去到另一位成员那里;别人挂着的按钮,也在把读者往你这儿送。

浅色文字(深色背景的博客用)
© 我的博客十年之约虫洞按钮 · 浅色文字
<a href="https://www.foreverblog.cn/go.html" target="_blank" title="虫洞 · 随机访问十年之约成员博客"><img src="https://www.foreverblog.cn/assets/logo/wormhole_v2_light.webp" alt="十年之约虫洞" style="width:auto;height:32px;"></a>
深色文字(浅色背景的博客用)
© 我的博客十年之约虫洞按钮 · 深色文字
<a href="https://www.foreverblog.cn/go.html" target="_blank" title="虫洞 · 随机访问十年之约成员博客"><img src="https://www.foreverblog.cn/assets/logo/wormhole_v2_dark.webp" alt="十年之约虫洞" style="width:auto;height:32px;"></a>

虫洞这个点子,是受「开往 · 友链接力」启发的:https://github.com/travellings-link/travellings

9.B人表情包

B人是十年之约的形象:logo 外轮廓的那个 B,长出了五官和圆乎乎的身体。它带着 20 个表情,演的都是博主的日常:换友链、蹲 RSS、换主题、续域名。

把它接进你博客的评论区,来留言的人点开表情就能用。下面按评论系统写好了配置,照着复制。

B人表情包由「一稿计划」设计,版权归一稿计划所有。可以免费用在博客评论区和聊天里;不能商用,也不接受二次创作:改动过的表情、用 B人 形象画的新图,都不能发布。其他用途请写信到 foreverblog@email.cn。

嘚瑟 嘚瑟 bren_smug
猥琐笑 猥琐笑 bren_smirk
吃瓜 吃瓜 bren_melon
摆烂 摆烂 bren_lieflat
无语 无语 bren_speechless
暗中观察 暗中观察 bren_peek
你好 你好 bren_hello
OK OK bren_ok
收到 收到 bren_received
点赞 点赞 bren_like
比心 比心 bren_heart
CC攻击你 CC攻击你 bren_cc
友链一下 友链一下 bren_friendlink
RSS蹲你 RSS蹲你 bren_rss
更新了速来 更新了速来 bren_updated
装修中,勿催更 装修中,勿催更 bren_wip
主题换了,文章没写 主题换了,文章没写 bren_newtheme
403 403 bren_403
虫洞串门 虫洞串门 bren_wormhole
人可以鸽,域名得续 人可以鸽,域名得续 bren_renew

在图片上点右键,可以复制单张图片的地址。

在聊天里用:Telegram 上可以直接添加 B人表情包,微信扫下面的码添加,QQ 版正在审核。

B人表情包微信版,扫码添加

接到你的评论区

找到你用的评论系统,点开对应的一项。

Twikoo

打开 Twikoo 管理面板,进入「配置管理 → 插件」,在 EMOTION_CDN 一项填上下面这一行,保存。这一行已经带上 Twikoo 自带的表情;原来填过别的地址的,用英文逗号把它们接在一起。

https://owo.imaegoo.com/owo.json,https://www.foreverblog.cn/stickers/bren/v1/owo.json

再把下面这段样式加进博客的自定义 CSS。表情会按 120 像素显示,图上的字才看得清。

.twikoo .tk-owo-emotion[src*="/stickers/bren/"] { width: 120px; }
Waline

在 Waline 初始化参数的 emoji 一项里加上下面这个地址,原来的几项留着。用 Hexo、Hugo 主题的,写在主题配置里 Waline 的 emoji 一项。

再把下面这段样式加进博客的自定义 CSS。表情会按 120 像素显示,图上的字才看得清。

.wl-content .wl-emoji[src*="/stickers/bren/"] { height: 120px; width: auto; }
Artalk

打开 Artalk 控制中心,进入「设置 → 界面配置 → 表情包」,把地址换成下面这一个,再点顶部的「应用」。它同时带着 Artalk 自带的表情和「十年之约-B人」。

https://www.foreverblog.cn/stickers/bren/v1/artalk.json

再把下面这段样式加进博客的自定义 CSS。表情会按 120 像素显示,图上的字才看得清。

img[atk-emoticon][src*="/stickers/bren/"] { max-height: 120px; height: 120px; }
Valine

Valine 用了自定义表情,就不再显示自带的表情。把下面两项加进 Valine 的初始化参数。

emojiCDN: "https://www.foreverblog.cn/stickers/bren/v1/", emojiMaps: { "bren_smug": "bren_smug.webp", "bren_smirk": "bren_smirk.webp", "bren_melon": "bren_melon.webp", "bren_lieflat": "bren_lieflat.webp", "bren_speechless": "bren_speechless.webp", "bren_peek": "bren_peek.webp", "bren_hello": "bren_hello.webp", "bren_ok": "bren_ok.webp", "bren_received": "bren_received.webp", "bren_like": "bren_like.webp", "bren_heart": "bren_heart.webp", "bren_cc": "bren_cc.webp", "bren_friendlink": "bren_friendlink.webp", "bren_rss": "bren_rss.webp", "bren_updated": "bren_updated.webp", "bren_wip": "bren_wip.webp", "bren_newtheme": "bren_newtheme.webp", "bren_403": "bren_403.webp", "bren_wormhole": "bren_wormhole.webp", "bren_renew": "bren_renew.webp" }

再把下面这段样式加进博客的自定义 CSS。表情会按 120 像素显示,图上的字才看得清。

.v .vcontent .vemoji[src*="/stickers/bren/"] { height: 120px; max-height: 120px; width: auto; }
Discuss

Discuss 用了自定义表情,就不再显示自带的表情。在 Discuss 的初始化参数里加上下面这一项。

emotMaps: { "十年之约-B人": { "type": "image", "items": { "bren_smug": "https://www.foreverblog.cn/stickers/bren/v1/bren_smug.webp", "bren_smirk": "https://www.foreverblog.cn/stickers/bren/v1/bren_smirk.webp", "bren_melon": "https://www.foreverblog.cn/stickers/bren/v1/bren_melon.webp", "bren_lieflat": "https://www.foreverblog.cn/stickers/bren/v1/bren_lieflat.webp", "bren_speechless": "https://www.foreverblog.cn/stickers/bren/v1/bren_speechless.webp", "bren_peek": "https://www.foreverblog.cn/stickers/bren/v1/bren_peek.webp", "bren_hello": "https://www.foreverblog.cn/stickers/bren/v1/bren_hello.webp", "bren_ok": "https://www.foreverblog.cn/stickers/bren/v1/bren_ok.webp", "bren_received": "https://www.foreverblog.cn/stickers/bren/v1/bren_received.webp", "bren_like": "https://www.foreverblog.cn/stickers/bren/v1/bren_like.webp", "bren_heart": "https://www.foreverblog.cn/stickers/bren/v1/bren_heart.webp", "bren_cc": "https://www.foreverblog.cn/stickers/bren/v1/bren_cc.webp", "bren_friendlink": "https://www.foreverblog.cn/stickers/bren/v1/bren_friendlink.webp", "bren_rss": "https://www.foreverblog.cn/stickers/bren/v1/bren_rss.webp", "bren_updated": "https://www.foreverblog.cn/stickers/bren/v1/bren_updated.webp", "bren_wip": "https://www.foreverblog.cn/stickers/bren/v1/bren_wip.webp", "bren_newtheme": "https://www.foreverblog.cn/stickers/bren/v1/bren_newtheme.webp", "bren_403": "https://www.foreverblog.cn/stickers/bren/v1/bren_403.webp", "bren_wormhole": "https://www.foreverblog.cn/stickers/bren/v1/bren_wormhole.webp", "bren_renew": "https://www.foreverblog.cn/stickers/bren/v1/bren_renew.webp" } } }
Typecho · 自带 OwO 表情的主题

用自带 OwO 表情的主题:把下面这份清单里「十年之约-B人」这一组,合并进主题自己的表情清单(一般是主题目录里的 OwO.json),再照下一项放行图片标签。

https://www.foreverblog.cn/stickers/bren/v1/owo.json
<img src="" alt="" width="">
Typecho · 原生评论

Typecho 原生评论没有表情面板:先到后台「设置 → 评论」,在「允许使用的 HTML 标签和属性」里加上下面这一行,评论里就能贴图片。

<img src="" alt="" width="">
<img src="https://www.foreverblog.cn/stickers/bren/v1/bren_melon.webp" alt="吃瓜" width="120">
WordPress · 原生评论

WordPress 原生评论没有表情面板,靠输入代码显示表情:把下面这段代码加进主题的 functions.php,评论里写 :bren_melon: 就会显示「吃瓜」。每张图的代码写在上面图片下方。

add_filter('smilies', function ($smilies) { return array_merge($smilies, array ( ':bren_smug:' => 'bren_smug.webp', ':bren_smirk:' => 'bren_smirk.webp', ':bren_melon:' => 'bren_melon.webp', ':bren_lieflat:' => 'bren_lieflat.webp', ':bren_speechless:' => 'bren_speechless.webp', ':bren_peek:' => 'bren_peek.webp', ':bren_hello:' => 'bren_hello.webp', ':bren_ok:' => 'bren_ok.webp', ':bren_received:' => 'bren_received.webp', ':bren_like:' => 'bren_like.webp', ':bren_heart:' => 'bren_heart.webp', ':bren_cc:' => 'bren_cc.webp', ':bren_friendlink:' => 'bren_friendlink.webp', ':bren_rss:' => 'bren_rss.webp', ':bren_updated:' => 'bren_updated.webp', ':bren_wip:' => 'bren_wip.webp', ':bren_newtheme:' => 'bren_newtheme.webp', ':bren_403:' => 'bren_403.webp', ':bren_wormhole:' => 'bren_wormhole.webp', ':bren_renew:' => 'bren_renew.webp', )); }); add_filter('smilies_src', function ($url, $image) { if (strpos($image, 'bren_') === 0) { return 'https://www.foreverblog.cn/stickers/bren/v1/' . $image; } return $url; }, 10, 2);

再把下面这段样式加进博客的自定义 CSS。表情会按 120 像素显示,图上的字才看得清。

img.wp-smiley[src*="/stickers/bren/"] { height: 120px !important; max-height: 120px !important; width: auto !important; }
WordPress · Argon 主题

用 Argon 主题的,把下面这段代码加进主题的 functions.php,表情面板里会多出「十年之约-B人」一组。

add_filter('argon_emotion_list', function ($groups) { $groups[] = array ( 'groupname' => '十年之约-B人', 'list' => array ( 0 => array ( 'type' => 'sticker', 'code' => 'bren_smug', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_smug.webp', ), 1 => array ( 'type' => 'sticker', 'code' => 'bren_smirk', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_smirk.webp', ), 2 => array ( 'type' => 'sticker', 'code' => 'bren_melon', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_melon.webp', ), 3 => array ( 'type' => 'sticker', 'code' => 'bren_lieflat', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_lieflat.webp', ), 4 => array ( 'type' => 'sticker', 'code' => 'bren_speechless', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_speechless.webp', ), 5 => array ( 'type' => 'sticker', 'code' => 'bren_peek', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_peek.webp', ), 6 => array ( 'type' => 'sticker', 'code' => 'bren_hello', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_hello.webp', ), 7 => array ( 'type' => 'sticker', 'code' => 'bren_ok', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_ok.webp', ), 8 => array ( 'type' => 'sticker', 'code' => 'bren_received', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_received.webp', ), 9 => array ( 'type' => 'sticker', 'code' => 'bren_like', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_like.webp', ), 10 => array ( 'type' => 'sticker', 'code' => 'bren_heart', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_heart.webp', ), 11 => array ( 'type' => 'sticker', 'code' => 'bren_cc', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_cc.webp', ), 12 => array ( 'type' => 'sticker', 'code' => 'bren_friendlink', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_friendlink.webp', ), 13 => array ( 'type' => 'sticker', 'code' => 'bren_rss', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_rss.webp', ), 14 => array ( 'type' => 'sticker', 'code' => 'bren_updated', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_updated.webp', ), 15 => array ( 'type' => 'sticker', 'code' => 'bren_wip', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_wip.webp', ), 16 => array ( 'type' => 'sticker', 'code' => 'bren_newtheme', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_newtheme.webp', ), 17 => array ( 'type' => 'sticker', 'code' => 'bren_403', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_403.webp', ), 18 => array ( 'type' => 'sticker', 'code' => 'bren_wormhole', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_wormhole.webp', ), 19 => array ( 'type' => 'sticker', 'code' => 'bren_renew', 'src' => 'https://www.foreverblog.cn/stickers/bren/v1/bren_renew.webp', ), ), ); return $groups; });
WordPress · Sakurairo 主题

用 Sakurairo 主题的,把上面的表情图逐张另存下来,放进 wp-content/uploads 下新建的一个文件夹(例如 bren)。再到主题设置的「评论区域表情」里选上「自定义表情包」,在「自定义表情包路径」填 /bren,然后点这一项说明里的链接,更新表情列表。

只能贴图片的(Halo、Giscus、Gitalk、Utterances、Remark42、Isso、Emlog)

这些评论系统没有表情面板,但评论里能贴图片:复制图片地址,按下面的写法贴进评论。

![吃瓜](https://www.foreverblog.cn/stickers/bren/v1/bren_melon.webp)
[img]https://www.foreverblog.cn/stickers/bren/v1/bren_melon.webp[/img]

Cusdis、Commento 和 Z-Blog 的评论里显示不了图片;Disqus 没查到加自定义表情的办法。

随机去一个
还在更新的博客

点一下虫洞,随机降落在一个还在更新的成员博客上,遇见一篇你没读过的原创。

穿过虫洞 只抽半年内更新过的成员博客 · 访客点进博客才记一次送达