记一次手机下载知乎视频。
首先用一加3T自带浏览器缓存到本地,得到了一堆ts文件。接下来就是想办法把它们合并成一个完整的视频文件,既然是手机操作,自然是交给termux。
因为不久前切换到oreo系统,termux-setup-storage不起作用,google到的解决办法:

ln -s /storage/emulated/0 storage

合并自然使用cat命令,但ts文件的命名类似’0.ts, 1.ts, 2.ts … 11.ts, 12.ts’,如果用通配符会打乱合并顺序。最快的解决办法就是重命名成’00.ts, 01.ts’这样,继续google,得到解决方案:

for a in [0-9]*.ts; do
mv $a `printf %02d.%s ${a%.*} ${a##*.}`
done

然后再

cat *.ts > all.ts

微信分享出去,完美

以lazyload插件为例,需要替换src标签为data-original,如果还想使用默认的markdown格式,势必要对img的渲染过程进行重载。

阅读全文 »

全面解析.gitignore文件中的模式匹配。原文

.gitignore文件里的模式匹配有时真的让人很无语,看似非常简单,实则到处是坑, 本文我们来个彻底解析。本文来自git文档加上自己的理解,以及总结了一些常用实例,git文档可以参考文末的链接。

语法(pattern format)

第一部分语法规则

  1. 空行被忽略
  2. #开头的行视为注释,需要#的地方要进行转意
  3. 其余每行表示一个pattern
  4. 行尾 的空格被忽略,需要行尾空格的地方要进行转意
  5. !意味着取反,即原本被匹配上的文件被忽略,加上!后,这些文件则被包含进来,需要!的地方要要进行转意。但是如果一个文件的parent directory被忽略,则该文件不会被包含进来
  6. /结尾的pattern,/将会被移除,然后按照下面的规则进行匹配,但是只匹配目录
  7. 如果pattern中没有/,则git把该pattern当作一个shell glob去匹配文件路径
  8. 如果pattern中包含/,则git把该pattern当作一个受限的shell glob去匹配文件路径:此时wildcards(*)不能匹配/符号
  9. /开头的pattern,/匹配文件路径的开始,如/*.c匹配cat.c而不匹配mozilla/cat.c
阅读全文 »

安装最新版ggplot2,导入数据:

>library(ggplot2)
>data=read.table('clipboard', T, sep="\t")
>data$pathway <- factor(data$pathway, levels=unique(data$pathway)) #固定顺序
阅读全文 »

这篇文章的启发,决定改下主题使得手机(平板)浏览器也能弹出侧边栏。当然,iissnan最初决定在小屏幕上block掉侧栏是有原因的,这个副作用在这番改动之后也依然存在:极端尺寸设备上会出现侧栏完全覆盖主体甚至显示不全。改动的好处也很明显,页面内容展示更完全。毕竟H5普及之后,小型网站越来越不需要考虑兼容性问题,权衡利弊,这样做还是有意义的。

阅读全文 »
0%