我在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命令-网页效果
但有两点不足:
- 每次发布必须切换到
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命令-网页效果
三、支持图片
对上面的发布方案非常满意了,特别方便。
现在唯一的遗憾是,无法发图片。以我目前的实力无能为力,与Daibor在留言区沟通,他有一些想法,期待Daibor继续优化方案,支持图片发布。
以目前的能力,若一定要发图片,可以先将图片上传到图床并获取图片URL;然后发文字内容时,加上图片URL;最后,在模板展示时,将图片URL解析为<img>
标签。
【20200427更新】
经评论区Simon提示,使用别名方式更简单:
准备好bb.py
文件后,直接使用alias bb='python3 /your/path/bb.py'
设置bb
别名,也能实现在任意目录使用bb
发送内容。
其中,/your/path/bb.py
指bb.py
的存放路径。