@Lenciel

用 textlint 自动排版

作为一名工程师,平时写的大部分文档都会有中英文的混排。

中文文档的排版本来就有很多的讲究

当中英文混排的时候,一个主要却挺有门槛的讲究是要用空格对中英文进行隔断。

正确:

我们接下来会使用 SLI/SLO 进行关键路径的指标梳理。

错误:

我们接下来会使用SLI/SLO进行关键路径的指标梳理。

很多人会嫌这样的要求太龟毛,但 pangu.js 的作者 vinta 有句话说得好:

「有研究顯示,打字的時候不喜歡在中文和英文之間加空格的人,感情路都走得很辛苦,有七成的比例會在 34 歲的時候跟自己不愛的人結婚,而其餘三成的人最後只能把遺產留給自己的貓。畢竟愛情跟書寫都需要適時地留白。」

打算好好做人了吧?

但确实挺有门槛,即使强迫症如本座,每次输入英文的时候要手工隔断也觉得很烦。

一方面,写一篇文档得多敲几百次空格;一方面,思路也感觉遭到了隔断。

考虑到这个普遍存在的问题,国产输入法大多数都提供自动敲空格的功能。

但国产输入法我都不太敢用,哪怕是 MAC 版。

最近吐槽这个问题的时候稍微研究了一下,发现有个日本友人写了一个 npm 包叫 textlint。

安装之后,你就可以安装并配置一系列的规则包

目前主要的规则包都是日语和英文的,非常复杂,简单用用可以先从下面的入手:

  • 检查感叹号使用
  • 检查空格使用
  • 检查句子太长(需要配置阈值)
  • 检查顿号、逗号太多(需要配置阈值)
  • 检查错别字(需要配字典)
  • 检查错拼术语(需要自己建术语库)

我先安装了空格检查的规则:

npm install textlint-rule-ja-space-between-half-and-full-width --global

然后在文档的根目录做一下初始化:

textlint --init

这会生成一个textlint.rc的文件,修改它的内容为:

{
  "filters": {},
      "rules": {
          "ja-space-between-half-and-full-width": {
          "space": "always"
        }
      }
}

这样,对目录下的一些或者特定文档就可以运行textlint命令来进行扫描了。

textlint .

_posts/2020-01-02-adding-whitespace-automatically.markdown
  26:66  ✓ error  原則として、全角文字と半角文字の間にスペースを入れます。  ja-space-between-half-and-full-width
  26:71  ✓ error  原則として、全角文字と半角文字の間にスペースを入れます。  ja-space-between-half-and-full-width

✖ 2 problems (2 errors, 0 warnings)
✓ 2 fixable problems.
Try to run: $ textlint --fix [file]

正如末尾一行的友情提示所说,textlint 妙就妙在提供了fix开关进行自动修正。

因为是用 iA Writer 作为 Markdown 编辑器,所以本座自定义了一个快捷键,对当前 iA Writer 应用里最前台(其实就是正在编辑)的文档,调用 textlint 扫描然后自动修复:

source_file=$(osascript -e 'tell application "iA Writer" to set filepath to file of document 1' -e 'POSIX path of filepath')
textlint $source_file
textlint --fix $source_file

2019年终总结

今天看到 8tracks 的关门声明

内容很值得每个创业者看看,当然,祝你们永远用不上。

但抄经得来的标题也真是触目惊心:「to everything there is a season」。

凡事皆有期,万物皆有时。

该写总结了。

今年事儿挺多,节奏也乱,随便记记这会儿想到的东西吧。

首先是关于 House 的。

本座的 ID 总是 Lenciel,上班用的名字却是 House。

就老有人问,为什么叫这个。

“因为发音和中文名一样,方便国际友人”,这是严肃脸的标准答案。

“因为我想多买几套房,不是公寓,是花园老洋房”,这是活泼脸的普通玩笑。

其实是喜欢《House M.D.》里面的 House 医生。

在我心中,刻薄人排行榜,莎翁、简·奥斯汀和钱钟书长期排名前三。

结果新世纪伊始,虚构人物 House 医生凭实力挑落槐聚先生,挺进三甲。

评价刻薄鬼时,友善的人类常用其他词包装。

幽默、睿智、深刻……

他们应该知道刻薄鬼不会领情,只是怕引起这类怪物的攻击,示好而已。

那么究竟是什么成就了一名本座看得上的刻薄鬼呢?

首先,肯定得聪明。

不是一般的聪明。

记性好、逻辑佳、会观察、能表达,反应速度还得快,每次抖机灵让人感觉都是 hunch feeling 才算及格。

而且得有实实在在的成就,不然自负自傲的性格与嘴贱脸臭的态度就缺乏生存土壤,只能靠写点“樽前作剧莫相笑,我死诸君思此狂”这样的酸溜溜的话,卖萌续命。

其次, 还得有裂缝。

幸福的人是不会刻薄的,他们分两类,一类是不懂,傻傻的幸福。当然,另一位医生陈奕迅说这叫稳稳的幸福,随便吧。另一类是不忍,是看破不说破的慈悲。

刻薄的人,看懂了还要说破,未必是在他人的尴尬或者哄然中找到了什么切实的快乐。

只是害怕被人发现自己自卑或懦弱之处。

防御工事而已。

世界大概也确实因为他们的口无遮拦,少了一些虚伪的祥和与欢欣:大多数人,不是不懂,亦未有慈悲,只要被调侃的不是自己,他们大概也觉得说得挺酣畅挺淋漓。

一直挺喜欢 House 的我,也挺刻薄的。

然后今年为了撩教授送阿达,在一场无关紧要的比赛里,本座还没有撩上教授看清阿达,就弄断了十字韧带。

做完手术,着急上班,在电梯里偏偏倒倒,被紫荆吴彦祖撞见。

他说:“念念不忘,必有回响。你拄着拐,嗑着止痛药的样子,相当如愿以偿。”

我心里有些惊讶,“对呀,这很 House 啊,居然没有反应过来。”

就算反应过来,也没那么喜欢了。

为什么呢?

我想起手术前丁婆婆和欣别哥载我出去“再吃一顿好的上路”。

车开过草堂,突然很想进去逛逛。

我以前对杜甫好像一直没什么兴趣。

有次看到顾随说读诗一开始都喜欢李白,生活经历多了才会觉得老杜更好。

他觉得李白“浮浅“,而杜甫”有力“。

当时觉得这是偏见:老杜当然有力,因为每句都太土,加到一起,桌板都压塌了。

“南市津头有船卖,无钱即买系篱旁。”

毫无才气,土到发憨。

现在总算是懂了一些。

“天生我材必有用,千金散尽还复来。烹羊宰牛且为乐,会须一饮三百杯。”

李白是豪气,但有点像浩南哥山鸡哥的豪气。

老杜说,“莫思身外无穷事,且尽生前有限杯”。

平平淡淡,没喝三百杯,但“无为“、”无不为”都说到了。

“无为”说规律面前,无可奈何,天地不仁,只能认怂;但既然知道了规律,就能“无所不为”,天地虽大,只管放心吃肉喝酒,它又能奈我何。

像李白这样,不承认“无为”,浪漫浪到漫出来,并不是真的有力。而其他大多数人,困在“无为”里,只感觉世界不美好,越说越涩,越讲越酸。

很多时候,和杜甫这样的人比,我们缺的不是聪明伶俐,也不是方法论。

是勇气和韧性。

2020年,对国家,对企业,对个人,挑战都很大。

大家在规划里都写着深挖洞,广积粮。

对外讲,环境不好,猥琐发育,安稳过冬。

心里想,练好内功,穿越周期,一统江湖。

我觉得,没那么容易。

等你所遇都是艰难困苦,所得都是烦恼哀愁,要少装 House ,多学杜甫。

To everything there is a season.

Then don’t waste your season.

好不容易,绕回来了,那么这篇总结,就写到这里。