Typora 导出 HTML 时将外链图片以 base64 形式嵌入

经过测试,在最新版的 typora 中粘贴网络上的图片时,typora 自动下载下来的图片会始终添加后缀名。
所以各位有 图片无后缀名 这个烦恼的可以更新下 typora。

好的,感谢~

赞,收下了。明天发。

厉害!特来点赞

俩发现:

  1. Singlefile 有个办法可以处理 file:/// 协议的文件(也就是浏览器打开的本地 HTML 文件),即在扩展选项里面这么设置:


    顺便一提 singlefile 官方倒是有个 CLI,不过只能用 http 协议的 url 作为参数,而且还要装 nodejs,有依赖。因此 compact_html.exe 在这些时候还是很方便的。

  2. Typora 默认的 github 主题有引用外部 css 资源:
    image
    所以如果用的这个主题且使用 compact_html.exe 生成的 html 文件,其在断网和联网两种情况下的渲染效果可能有点区别(然而我还真没看出来有啥区别。另外 linux 下 firefox 在离线时打开此文件居然会崩溃…Chrome 即 Blink 内核的浏览器则正常打开)。如果对此有强迫症,可以改/换主题,不引用外部资源的主题还是很容易找到的。

从github下载的exe edge报告有危害,烦死了

image

估计在网上下个没签名的 exe 都这样,
不过也可以选择保留,只是层数深了点。

自己写了一个php脚本,抛砖引玉吧。有php2exe,但打包也很大,给机器上本身就有php的朋友参考。

<?php $html=file_get_contents($argv[1]); $reps=array(); preg_match_all("|(?<=img src=)\"[^\"]*\"|",$html,$rep,PREG_PATTERN_ORDER); foreach($rep[0] as $f){ $filepath= str_replace("\"","", join("/",explode("\\",$f))); if(file_exists($filepath)){ $r="\"data:image/png;base64,".(base64_encode(file_get_contents($filepath)))."\""; $reps[]=array($f,$r);; } } var_dump($reps); foreach($reps as $a){ $html=(str_replace($a[0],$a[1],$html)); } file_put_contents($argv[1],$html);

哈哈,我本人其实主用 python 的,C艹 工作里没用过,要不是想着为了无依赖或者体积小点,就用 python 写这个程序了,至少比写 C艹 简单,还TM快

其实不复杂,就自己的工作环境写个代码呗。你看,php也就20行

哈哈,我不是说复杂,我只是说我当时为啥没用 python 写… php 和 python 的情况是差不多的。

按理说写这个用 go 最合适,编译出来无依赖,写起来又快。奈何我不会 go。

1 个赞

非常感谢,这个功能真是太实用了