我在2016-2018年期间,使用微博较多,但又不喜欢微博数据的封闭性,所以定期将微博的内容整理到博客,形成「微言小义」系列文章。2018年年底打算转移到豆瓣写短内容,但没有坚持下来。

我更想建私人微博,记录些零碎的想法与生活,再定期整理成「微言小义」系列,考虑过下面两个方式,都被否了。

  • mastodon类程序:只为建私人微博再搭一套程序,觉得太重。
  • typecho增加微博分类:然后首页过滤掉微博分类,另建独立页展示微博内容。这是不错的方式,但MWeb发typecho需要选择分类,发微博的场景略显复杂。同时,我也不希望因为一些碎碎念数据导致typecho数据过渡膨胀。

直接前几天看到Daibor的保卫表达:利用后端BaaS快速搭建专属无点赞评论版微博——b言b语,非常符合我的需求,于是搭建了微言小义页。

使用过程中,我意识到,使用微博时,为了发微博需要打开APP,很容易被信息流吸引而进入到浏览状态,最后浪费时间。但这套方案将发布与浏览分开,发布时能保持专注。

Daibor的教程非常详细,本文记录我的一些实践。

一、typecho模板

Daibor提供了模板文件,只需将该模板文件上传到typecho主题目录,并进行如下调整:

第一,文件重命名为bb.php。(typecho只能识别php模板)

第二,在<!DOCTYPE html>前面添加如下代码。(typecho模板说明信息)

<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit;
/**
 * B言B语
 *
 * @package custom
 */
?>

第三,到typecho后台创建独立页面,自定义模板选择「B言B语」,正文内容空着,直接发布。

访问该页面,就是B言B语的内容了。

二、MAC发布方法

Daibor提供了iOS和Windows的发布方案。我的日常设备是iPhone和MAC,于是开始琢磨MAC的发布方案。

因为会一点Python,且leancloud提供Python SDK,最后决定使用命令行+Python的方式。

1、准备Python程序

以下是基于Python3的实现

第一,安装leancloud的python包。

pip3 install leancloud

第二,创建python文件,保存为bb.py,内容如下:

#!/usr/bin/env python3

import sys
import leancloud

leancloud.init("leancloud后台的appId", master_key="leancloud后台master_key")

query = ""
for i in sys.argv[1:]:
    query = query + i + " "


Content = leancloud.Object.extend('content')
content = Content()

content.set('content', query)

content.save()

print('done')

(编程小白,代码很糙)

至此,可以通过执行python3 bb.py 要发的内容发布B言B语,命令行与网页效果如下:

python3命令-终端交易
python3命令-终端交易

python3命令-网页效果
python3命令-网页效果

但有两点不足:

  • 每次发布必须切换到bb.py所在的目录
  • 前缀python3 bb.py还是有点复杂

希望简化为:在任何目录下执行bb 要发的内容发布B言B语。

其实,只要将bb.py转化为可执行文件,并放到命令行工具(我用的是zsh)的PATH目录。

继续折腾。

2、准备命令行环境

第一,在用户目录(/User/用户名)创建一个bin目录,用于存放自定义的可执行文件。

第二,将该目录(User/用户名/bin)添加到命令行工具的配置文件中,以zsh为例,配置文件是/User/用户名/.zshrc,在.zshrc文件末尾追加如下代码。关键是第二行,将目录用:号接在$PATH后面。(skyue是我的MAC用户名)

# my program path
export PATH=$PATH:/Users/skyue/bin

注:如果使用bash,则配置文件是/User/用户名/.bashrc

第三,将bb.py复制到上述的bin文件夹,并重命名为bb,就是把扩展名.py去掉。

第四,执行chmod a+x bb,将bb文件设置为可执行文件。

大功告成,现在可以用bb命令发B言B语了。现在发布效果如下图:

bb命令-终端效果
bb命令-终端效果

bb命令-网页效果
bb命令-网页效果

三、支持图片

对上面的发布方案非常满意了,特别方便。

现在唯一的遗憾是,无法发图片。以我目前的实力无能为力,与Daibor在留言区沟通,他有一些想法,期待Daibor继续优化方案,支持图片发布。

以目前的能力,若一定要发图片,可以先将图片上传到图床并获取图片URL;然后发文字内容时,加上图片URL;最后,在模板展示时,将图片URL解析为<img>标签。


【20200427更新】

经评论区Simon提示,使用别名方式更简单:

准备好bb.py文件后,直接使用alias bb='python3 /your/path/bb.py'设置bb别名,也能实现在任意目录使用bb发送内容。

其中,/your/path/bb.pybb.py的存放路径。

分类: 折腾 标签: none

🔔 Email RSS订阅本博客

已有 15 条评论

  1. 初阳 初阳

    在typecho添加了bb的页面,发布内容就是要用博主上面说的方法吗?

    1. 是的,不晓得你是什么平台,这个套方案没有前端界面,各个平台都是使用第三方工具实现发布的:

      mac可以用我上面说的
      ios直接用原作者做的捷径(shortcut)
      windows原作者也给出了发布方式
      android没研究,但也有发布工具。

      各发布方式在原作者的github项目页有收集和汇总,可以研究下,地址: https://github.com/daibor/nonsense.fun/

  2. 这个个人博客不错,ghost 博客 可以用吗

    1. 可以的,这套方案应该不受博客程序的限制。

  3. Simon Simon

    为什么不用个别名代替呢,bb.py可以写上路径啊

    1. 哈哈,好像是的。没想到。

  4. 超级棒!Mac 上这个解决方案很优雅,教程也很详细!我把链接贴到 Github 的 README 上~

    1. 哈哈,感谢。
      自己瞎折腾,没有正规编程经验,Python代码完全没考虑健壮性,请求失败之类的情况没处理。甚在日常够用。

  5. 赞!!!

    1. 搞起来,哈哈。

  6. 感觉比较有趣,但是无互动的短内容,感觉就失去了些什么。
    同样地,我一开始有在用 Weibo,也曾经有大几 K 粉丝,好像有点权重。但是自从我被动关注了一些我不认识的网红,整个时间线被无耻地污染,再加上内容审查,就用不下去了。Twitter 有在写写 E 文,似乎不适合中文语境,每每想写中文总觉得别扭,加埋 Ins。朋友圈太封闭,不过熟人社交气氛更轻松,这类熟人社交更喜欢 QQ 的空间,好多老朋友都用 QQ 多些。
    与其去造这个轮子,倒不如说结果上跟那些单页面的静态博客更像了。
    PC 端的样式是否太窄。

    1. 内容的私密性也有层次,就像博客长文,有些内容我会同步发在知乎、公众号等平台,有些只发这个博客。
      短内容也这样,有些内容不适合发微博、朋友圈,但又想有个地方吐吐槽,且不需要互动。这个就是个好地方。
      其实,原作者的 shortcut 发布 BB 的流程中,有个选项,是否同步到「Twitter」,这就非常好。想获得互动的,就同步到其它平台,不想互动的,就只发这里。
      最后,互动也有很多限制,在朋友圈互动会多些,但都是熟人。在微博想有互动,需要有一定粉丝基础。

      我对这个的定位,大概就是所有短内容会发这里,如果有想互动的,会同步发在别的地方。就像博客长文一样。
      最后的结果是,我在互联网上的主要言论和行为,在 skyue.com 域名下都能找到。把这个域,当作 web home。

      1. Cool.
        有时间打算自己造一个类似物,更多是想以爬虫的形式输出静态页面吧。

        1. 对,我以后很想自动把微博内容回流到博客存档,但没搞定。

          1. 错字:以后——>以前

添加新评论