2020-04
3

折腾md阅读器

By xrspook @ 9:29:46 归类于: 烂日记

昨天继续看Think Python,上午看得好好的,下午就发现我看的那本电子书打不开了,然后我进而发现可能不是那本电子书的问题,是那个托管电子书网站的问题。不知道出什么毛病了。墙外的东西出毛病,我觉得再正常不过了,尤其是在现在这种全世界都集体闭关的情况下,闭关的时候看书很正常。于是我就从其他地方把同一个版本的电子书下载回来了,一开始我挺高兴的,因为那是Markdown的格式,必定挺容易转格式。以前我用点点的时候电脑上就装了一个Markdown的编辑器。我个人觉得那个东西挺简单的,界面分为两半,一半是用来写Markdown代码,另外一半以HTML显示。简单来说,Markdown是一种轻代码,相比于传统HTML,Markdown标记简单非常多。你甚至可以用写脚本的工具写一个有格式的东西。如果Markdown能推行的话,甚至能颠覆Word这种可排版的传统文档,因为在格式处理方面,Markdown的快捷方便实在太强大了。点点一开始是不支持Markdown的,他们用的是普通富文本编辑器,但不知道从哪个版本开始就支持了Markdown,但你可以继续选择富文本编辑器。我从那个时候尝新,于是就认识了这种语言。

Markdown文件下载回来以后我的第一个想法是我要把下载回来的md转变为mobi。mobi是kindle支持的格式,跟pdf最大的不同在于mobi在kindle里面是可以随意变换字体大小而不影响框架结构的,这个非常重要。我之所以不想把下载回来的md变成pdf,其中一个原因就是其实我也有我正在看的那本Think Python的pdf电子书,但因为字体太小,简直把我折磨死了。所以我必须整出一个在多设备上兼容的,而且字体大小不整死我的版本。

我觉得从md变成mobi应该很简单,但实际上,我折腾了一个下午,都没找到方案。多数人都是通过电子书的托管去实现格式转换的,但实际上,线上版根本就没有转化为mobi的功能,只能转换为pdf,这不是我想要的。至于脱机的版本,还得配置一系列的环境。成本有点高,其它软件,貌似都无法做到这种功能。把md变成html,然后再从html转变为mobi,是完全有可能的,但这也太麻烦了吧。最后我突然想到,为什么我不直接把浏览器当成我的md阅读器呢。的确Firefox有这种插件,随便装了一个以后我觉得世界被拯救了!Firefox里的md插件有好几个,试了一圈以后,我觉得页面不要那么宽的,会看得舒服些。因为如果那个页面有我整个浏览器那么宽的话,我看一行字还得从西边看到东边很费劲。

电脑上的问题解决了,手机上我也试了好几个md的阅读器。不少app都可以用md去记录东西,但是要从我的手机SD卡里面读取md文件貌似就不行了。从手机内存上读取是可以的,但是从手机SD卡上读取不少软件都不行。所以最终手机上我用的是坚果云的Markdown编辑器。那个东西很小巧,跟坚果云是一家的。我第一个下载的app就是它,但之所以想尽量不用是因为我怕那会耗费我的坚果云的流量。虽然我的md文件也没多少个,而且那些md早就被我放在坚果与里同步了。手机上我也可以继续用发Firefox的插件来阅读,但相对于坚果云的Markdown编辑器来说,那个东西有点卡顿,所以我放弃了。

如果kindle自己原生就支md的阅读,那该多好。作为电子书的阅读器,其实他们应该支持。

2020-03
22

折腾不同版本的WXR

By xrspook @ 22:09:44 归类于: 烂日记

我只是想把自己从前的东西重新拿出来,原来这也会很难,这是我完全没想到的。要找回那些尘封10年的文档,并不算太难,翻一下电脑也就找到了,虽然有点坎坷,因为当时备份的时候,我没有标注是哪个网站的,xml都放在一起,我以为那都是我主站的,后来,同一个日期不同的文件大小才让我觉得有蹊跷。xml文档找到了,接着要把它转化为WordPress的格式。当年用来转换文档的脚本找不到了,翻遍家里电脑的各个盘都没找到。之所以在家的电脑找不到,是因为当时干这事我是在单位完成的。所以理论上单位的电脑应该有,但是因为换过电脑,我也清理过同步盘,所以会不会也因此清理掉呢?这个我不确定。我觉得,在我转格式的时候,我仍然在用Dropbox,里面的很多东西我的确已经清理了,于是这也很好解释,为什么我家里电脑的Dropbox文件夹里找不到那个脚本。家里的电脑没有,单位的电脑可能有,但还有一种可能性,我把那上传到网盘,于是就把那同步软件里撤掉了。我只会上传到两个地方,一个是百度,一个是115。115打开很麻烦,我也懒得下载打开它的工具。百度上果然就有我要找的东西,但当我想把整个文件夹下载回来的时候,问题严重了,那里居然有4000多个文件。下大文件的时候度娘就很慢,下小文件的时候度量更慢,那是直接10KB以下的速度。我直接去网页版的度娘找到我要的东西,不在客户端里等它慢慢下载了。

东西下载回来以后,我再翻查我的日志,我需要安装一个Python。我默认安装的是现在最新的版本3.7.7,但运行脚本以后却发现才刚刚开始读取脚本,就马上报错。查找原因,原来是版本之间的语法差异。才刚刚开始就错,要运行完整个脚本,我真不知道还得修改我根本不懂的语法。所以,我把最新的Python卸载掉了,重新安装当时我就在那个版本下转换的2.6.5。2.6.5是一个什么概念?这意味着时光倒流10年。

出乎我意料,软件装好以后,我几乎没遇到困难就可以把BlogBus的文档成功转为了WordPress的格式。在下载Python的时候,我顺便下载了XAMPP,同样下载的是最新的版本。前段时间我才刚用过,觉得挺爽。我也下载了最新版的WordPress的5.3.2。同时把导入插件也装。当我试图上传,已经转过格式的xml是,上传报错。原来这才是噩梦的开始!不同版本的WordPress里的xml格式各不相同,几乎可以这么说,越往后越严格越来越严格了。于是我又安装了WordPress 3.9和2.8。3.9的WordPress在PHP 7之下马马虎虎可以运行,2.8是直接连数据库都连不上…… 于是我甚至不能从通过低版本的WordPress N轮导入导出拯救世界……

没办法,我只能研究我手头上的xml,看看和现在的标准版差多少。首先,必备填写一个WXR的版本号。在旧版本里,这条规则是这是不存在的,所以要手动加入。同样需要手动加入的就是,即文件类型,因为现在的WordPress把文章分成了post和page。把这些搞定以后,基本上正文就可以导进去了,但是分类和标签还是不行。因为现在的分类和标签,WordPress使用的是一个叫做nice name的东西,你必须在分类和标签那里,加上这个标注0才能识别的出来。评论那里,当年就试过在2.8的版本里面评论正常,但是在2.9里面,有评论的话会只剩下一条评论。研究发现,那是因为评论有了一个id号。BlogBus转码过来的东西没有id号,所以大概东西就自动覆盖了。除了这些BlogBus和WordPress之间的格式问题以外。我的文章里还有格式的=问题,因为有些东西,不完全是我自己的东西,好些是我从网络上搜集回来的。当时我保存了网页,在BlogBus发布的时候直接复制到可视化编辑器,所以格式也带入了。如果当时我懂得先把东西贴到记事本,然后再剪切粘贴一次,就不会存在这种问题。除了格式以外,从前的blog里还有图片,但经过这么多年,图片都已经失效了,链接摆在那里只会浪费加载时间和访客的期待,所以我要把图片链接也尽可能去掉。有些图片链接是我没办法去掉的,因为用正则筛选的时候会遇到一些很屌丝的句子,到了某个点,就卡住了,但实际上那并不是这个标签的结束。

搞清那些规则,总结出我的对策。一次又一次查找替换,一次又一次导入删除再导入。花了一整个下午加半个晚上的时间,我总算搞定了从前BlogBus上的BLF!文章238篇齐全,评论56条也齐全!!!其中可能会有一些小格式上毛病,但是那并不是共性的问题,后续还得靠运气慢慢修改。

非常有必要记录一下我在Notepad++上做的WordPress不同版本xml转换操作

/*操作开始*/

普通替换《channel》为《channel》《wp:wxr_version》1.1《/wp:wxr_version》 /*WP XML共性问题*/
普通替换《category domain=”category”》为《category domain=”tag”》
普通替换《dc:creator》《/dc:creator》
为《dc:creator》《![CDATA[xrspook]]》《/dc:creator》《wp:post_type》《![CDATA[post]]》《/wp:post_type》《category domain=”category”》《![CDATA[回到过去——Betty迷的独白]]》《/category》 /*《/wp:post_type》前是WP XML共性问题*/
普通替换《BR》《BR》为《BR》
普通替换《!–msnavigation–》为无
普通替换[summary_of_BLF]为[summary_of_BLF(from_rincondebetty)]
普通替换[summary_of_EcoModa]为[summary_of_EcoModa(from_rincondebetty)]
普通替换《category domain=”tag”》《![CDATA[(from_rincondebetty)]]》《/category》为无
普通替换[Yo soy Betty, la Fea]为[Yo_soy_Betty,_la_fea]
普通替换[JEA’s Writting]为[JEA’s_Writting]
普通替换”博主”为”xrspook”
普通替换《i》为无
普通替换《/i》为无

正则替换category\”》《\!\[CDATA\[(.*?)\]为category\” nicename=\”\1\”》《\!\[CDATA\[\1\] /*WP XML共性问题*/
正则替换tag\”》《\!\[CDATA\[(.*?)\]为post_tag\” nicename=\”\1\”》《\!\[CDATA\[\1\] /*WP XML共性问题*/
正则替换《[TDSFHI].*?》为无
正则替换《/[TDSFHI].*?》为无
正则替换《P.*?》为《P》
正则替换《(table|tbody|tr|td|div|span|img|script|font|hr).*?》为无
正则替换《/(table|tbody|tr|td|div|span|img|script|font).*?》为无

《wp:comment》《/wp:comment》中增加《wp:comment_id》1《/wp:comment_id》,id数字递增 /*WP XML共性问题*/

/*操作结束*/

注:请自行替换《》为<>,用尖括号那是全部都挂掉无法显示的节奏啊啊啊

这个是一次死去活来的经历啊啊啊啊啊啊啊啊啊啊啊啊!奇怪的知识又增长了不少……

2012-07
10

转换点点第二代模板mars中

By xrspook @ 22:26:06 归类于: 烂日记

今天一整天都在研究把第一代的点点模板转为第二代的mars模板。准确来说这个操作昨晚就开始了,昨晚我没有看已经下载好的TNA PPV,却开始了点点的模板转换。

理论上说,这就只是XHTML部分修改而已,但实际上这种操作除了符号转换外,编程的规则也用到了,已经不只是纯粹XHTML的格式问题。在第一代模板里,循环用配对的loop就能完成,但在新的模板里,由于是基于javascript的mars,所以那些已经设置好的标签没了,要循环就要自己用for语句实现目标。我的编程数组类一直不很好,但我的for用得还凑合着,我学的基础得不能再基础的C语言里基本上不会用到forEach,这个我直觉认为是个历遍所有某玩意内所有元素的命令。当然啦,forEach可以做到的东西for ++神马也是能做到的,不过长一点而已。

我就只剩下2个循环没有通过测试了,整个网站就只剩下2个循环。在我已经完成的部分里,我做过2个循环。我至今不明白为什么会循环失败。我会在脑子更加清醒的时候继续尝试的。所以,我不打算今晚能解决掉这个问题了。

然后,Principe将成为点点第一个完全由mars写成的模板。这是完全有可能的。所以这也意味着可能有很多人会以这个为蓝本创造属于他们自己的东西,所以,这就必须更过细了。没有人强迫我这么做,但我却自主地觉得既然我可以这么做为什不呢?这个Principe的描述是“little prince little dream”,我们不可能都是小王子,但我们都会有我们的小梦想。让那些dream的玩意come true吧!谁说有钱才有快乐呢?今天就有人在点点模板开发者的群里出RMB 30让人帮他做一个页面,没有人当众答应,首先,30,太少了,其次,那人的口吻是有钱就能干任何事,他肯出钱他就可以做任何人的老大。这恐吓谁呢?我不是一个专业的程序员,所以如果有人这么“大”我的话,我会觉得这是侮辱,所以即便我能轻易做到我也绝对不会帮忙。我不缺那30块钱过日子。

我这个怪人啊,总把精神看得比$$$重要很多。

2010-01
14

累但快乐着

By xrspook @ 23:59:58 归类于: 烂日记

昨天晚上我是凌晨一点回去睡觉的。

今天晚上我是凌晨一点离开办公室的,还没洗澡,躺在床上的时候已经是凌晨一点半。

我很累,在上班时间里被检验、文档排版、数据抄写榨干。下班后,成为小村屋群的义务核心技术员,被代码转化和CSS修整榨干。CSS修整本是很简单的事,FF+Firebug+css code就能得心应手,需要做的就只是修改和刷新,但是,偏偏某村友的blog用的插件却把该死的CSS可视化了,分开一小段一小段,加上说明,却不显示最最原始的代码,还得让你一个个翻,要多按好多次保存,还经常会找偏。结果最后我气了,直接用Firebug去找我要找的地方,在自定义的CSS里敲打一番,嘿,终于可以了,真邪恶!

今天的重头戏是帮一位有困难的村友搬家,听村屋首领说他帮忙搬的时候失败了,于是,在危难的时候,当大家有需要我的时候,xrspook挺身而出了!接到从BlogBus弄出的代码,马上用Python转换,得出如下结果:


很诡异,我之前遇到的错误代码可不是这样的哦。我第一个反应是时间有问题,应该是某个设定的时间不对劲,但到底在哪里呢?94、268、371、376(此数字为行数)我都排查过,没有。于是,我第二个反应是人肉排查替换。把376以前的先删掉,转换后面的。OK,没问题。再把前面的转换,同样结果。接着,把94-376的删掉,转换94以前的,一切正常。然后,把94-376的转换,嘿!还是那个界面,但现在根本就不存在376啦!所以我意识到从那些行根本不会找到突破口。重复以上操作大概3、4以后,剩下3篇文章,卡住。剩下2篇!最后一篇!肯定是这里的问题。村友们,你知道我发现什么了吗?见下图:


LogDate包围的日期居然是0000-00-00 00:00:00!!!!难怪Python会报错!而这等事情是怎么发生的呢?fish故意的吗?不是,是BlogBus可以算bug也可以不算bug的地方。为什么这么说呢?因为我是那种在记事本写完日志往blog上贴的人,记事本时间提取是用F5,只有yyyy-mm-dd hh:mm,而BlogBus的格式是yyyy-mm-dd hh:mm:ss,所以,我就要把前面的粘上去,留默认的秒数,但如果我一不小心粘错粘漏了呢?BlogBus会默认把时间设定为0000-00-00 00:00:00!于是,发现新文章不见了的xrspook就会翻到日志的最后一页把那个莫名其妙的日期改回来。大概当时fish没发现这等问题,以为是自己出错了就没去理会,所以,导出数据中就存在了个那么匪夷所思的日期。程序是认规律不认人的,它觉得年一定是从1开始,月只有12个数,日是1-31,若超出范围,它就笨蛋不懂了,前提是,它不会BlogBus的日期潜规则,若有人让它增强读取BlogBus的潜规则并把那个诡异数转化为转换当场时间的话,杯具就不会发生。所以,看来很严重的问题,把几个0改为正常数就行。解决方法很简单,但查找就异常曲折。成功那一刹那我是多么的高兴啊!!!

信心满满地把转换好的数据传给村屋首领,却又出现怎么都导入不了报错的现象。难道fish就那么背?在多次尝试,包括重装WP之后,首领提出会不会是导入.xml的格式不对,解释错误导致报错?接着,我发现他装的居然是2.8.5,我转换用的是2.8.6啊!转出来的数据适用于2.8.6后(即2.9系列),新数据导入老系统,不错就见鬼了。于是,我把经过一层转换的导进去,问题解决。大功告成,村友们,我们狠狠地拥抱一下吧!

以前都是自己解决自己的问题,或者请求别人解决自己的问题,但这次居然是xrspook帮助他人解决问题,真让人有飘飘欲仙的感觉。几个即时通讯工具闪个不停~~~

妹爱的不是钱,妹爱的是成就感!

于是,你知道我为什么乐了:)

2010-01
10

BlogBus到WordPress镜像小记

By xrspook @ 20:00:08 归类于: 烂日记

紧急告知该方法不能用于WordPress 2.9.1,会出现每篇文章的评论丢失(如果某篇文章有评论且有多条,只会剩下一条),强烈建议使用2.8.*(我用的是2.8.6),可以用2.8.* 的做WP导入再升级到2.9.*!!!!

坐在电脑前折腾了一个下午的WordPress,但我最希望的还是BlogBus能回归。

金窝银窝,还不如自家的狗窝。

今天在G老师的帮助下找到了几个文章,终于把非标准的BlogBus .xml导出数据转变为标准的WordPress eXtended RSS (WXR) .xml,然后又在yo2老大oneoo设计的DivXml.exe帮助下把转换成功的文件分割为小块。

具体操作嘛,很简单,分享一下前辈们的好东西。

感谢ant21Daniel阿七!!!

用的是Python转换法,程序是用Daniel的(下载:bus2wp_modified),因为他说已经解决了BlogBus到WordPress的分类及标签问题。至于方法嘛,原创是ant21的,但阿七说得更具体,如下:

1.在BlogBus的后台导出日志,保存XML文档。具体方法:进入BlogBus后台,博客>博客设置>导入导出>导出日志>保存为XML格式,假定保存的名字为bus.xml。放在D盘根目录,即D:\bus.xml。

2. 下载python以及bus2wp.zip。python的下载地址是:http://www.python.org/ftp/python/2.5.1/python-2.5.1.msi(我已经在用2.6版本了),bus2wp_modified。下载python后,安装,解压下载的bus2wp_modified到D盘根目录,即D:\bus2wp.py。

3. 点击开始菜单>运行>输入cmd,回车进入Windows的命令行窗口>输入d:,回车,转到D盘目录下。输入bus2wp.py bus.xml wp.xml,回车,等待转换…>如果没有出错,就成功了!如果提示出错,检查导出的bus.xml,发现并解决问题(会提示是哪行哪列出错的)!建议用Notepad++进行检修,毕竟用系统自带的记事本实在太简陋。xrspook在转换过程中就出现过问题,不知道为什么代码里有些很诡异的“sub”,每次都会卡死。

4. 登录安装好的WordPress后台,导入日志。具体方法:管理>导入>选择“WordPress”,从WordPress导出文件中导入日志、评论、自定义字段、页面和分类。选择导入文件D:\wp.xml,导入>选择导入后日志所属作者,确定导入(可选上导入附件)。成功!

下图就是xrspook转换过程中的坎坷,修改多次才成功啊!转换共用66秒。原BlogBus的.xml大小为11.1MB,转换成WP型后减肥了,只有8.87MB。原先的.xml不能用DivXml.exe切分,但转换后的就可以了,呵呵,再次谢谢oneoo。


单机是用xampp搭建的php,而强大的它允许上传的WXR能达到128MB,所以切不切分无所谓,但是转换时间较长,我可有接近2300篇历史记录啊!但如果用在线上服务器不切分基本是不行的,所以测试不切无所谓,动真格的时候就得切了。

导入部分切分后的文件你就会发现虽然数据从BlogBus全部转化为WordPress了的,但还是有点瑕疵。我暂时发现的是:在评论的回复中,BlogBus把客人的留言和blog主的回复都放到<CommentText></CommentText>里,而且都是显示为“博主 对 ** 的回复:****-**-** **:**:**(后面那个为日期及时间)”。“博主”这个好不刺眼,于是我就全部重新替换为“xrspook”了,否则,真的让人很头大。不知道WordPress的导出数据是如何区分留言者和回复者呢,应该不会像BlogBus这般囫囵吞枣吧,毕竟WP是支持多层回复的,不像BlogBus那样只局限于blog主人对客人的回应。

如释重负般完成了WP模板的初步修改和历史数据导入。

但说到底,这还不是我从前大家所熟知的老家啊!

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress