2020-03
23

选择我的语言

By xrspook @ 10:34:20 归类于: 烂日记

现在我到底比10年前进步了多少,我不知道,但显然,10年前我还不认识正则这种东西。后来的很多抓取需要让我不得不学习了这个。一开始,我是在PHP上面用的,而昨天,我要把这个用在Notepad++上面,正则类似,但不同地方的细则又有所不同。正则这个东西让我在Notepad++上完成了我觉得这软件可能完成不了的事情。我太低估Notepad++的实力了!简单的替换或者新增这段,对它来说毫无压力,尤其是纯粹字段的东西。昨天之前我有想过要不要这次之后我也学习一下Python。语言类的东西学习了不少,但是我的电脑里没有配置一个环境可以让某个语言做到输入输出文件。如果把Excel算上,估计那是唯一OK的。我之前用的PHP实际上在编程方面我几乎没接触过。

学习编程语言,学习什么样的编程语言,很多时候都不是由我自己说了算。遇到什么问题,看到别人用什么解决,然后我就会觉得那个东西很有用。如果现在要用一种语言去定义我自己的话,我甚至说不出来。我不需要所有语言都懂,我只需要有一个我非常懂的东西就可以了。但显然,现在我还没做到,所以接下来我需要做的是找到这种语言,然后深入的研究。无论哪种语言,深入进去以后都可以无比强大,起码我想实现的那些小愿望全部不成问题了。其实我也不能说我完全不懂PHP,我还是有点懂的,但主要还是用在一些前端方面。因为我会认识这种语言是从网页与CSS配合开始的。一直以来,我都没有深入进去。我没有在电脑上长期安装一个运行环境。每次我要测试开发WordPress模板又或者其它内容的时候,我也是到需要时才安装,不需要的时候又把它卸载掉。需要PHP的运行环境,意味着可以实现很多计算,但我并不需要一定在本地部署。我把脚本放在网上一个免费的地方,我那些小不点功能其实就可以做到。以前,我是这么干的。现在估计我依然可以这么干。我为什么要配置PHP环境而不配置其他东西呢?其他东西可能更方便快捷。我不知道语言与语言之间的差异主要有哪些。从宏观层面上看,判断和循环基本就是它们的全部,但在如何表达参数上面,各家有各家的说法,所以其实一直以来我都很蒙圈。如果你给我一堆代码,要我判断这是哪种语言的。我肯定说不上,除非有一些非常明显的标志。看看他们的声明以及执行部分,很多时候我觉得都一个样。当然这只是我肤浅的觉得,实际上不是这么回事。因为我不熟悉他们,我只是见过他们,有些更加纯粹是一面之缘。

就像我用一个数据透视表能解决几乎Excel的绝大多数问题一样,因为我熟悉它。如果我熟悉公式,我也一样可以单用公式解决Excel的绝大多数问题。我是时候在一种编程语言上下功夫了。

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共性问题*/

/*操作结束*/

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

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

2020-03
20

偶遇VSCode

By xrspook @ 9:27:33 归类于: 烂日记

昨天晚上但我吃完饭回到宿舍,拖完地要去办公室之前,我跟书桌上的外婆说,今晚总算没那么多板上的任务,我会早点回来。结果我还是很晚才回宿舍,甚至比平时还要晚,因为我洗完澡的时候已经超过了晚上11点。昨天跟之前几天不一样,因为昨天单位有卸船作业,所以我还得在手提电脑上忙一阵单位的事情。我很痛恨自己的拖延症,跟之前几晚相比,昨晚我的确是很闲的,但正是因为我很闲,所以我就去看了一下自己订阅的东西,结果就发现一个,很好玩的跨平台,出自微软,轻量级的编程软件。之前基本上可以这么说,我没用过编程软件,一直用的最多的是Notepad++,但那只是个代替Windows记事本的工具。的确很便携,而且在处理代码的时候也有高亮显示,字体大小和格式很自由,体积很小,我已经用了很多年,一直觉得很爽,因为用那个东西,有后悔药。即便我按了保存,还是可以后退很多步,至于一共能后退多少,我还真没研究过,装上插件以后,可以有跟多形式的自动保存,比如当光标离开软件以后,东西就自动保存了。又或者我可以设置,多少时间就保存一次。写代码这种东西,最慌的就是改完以后才发现,没改之前更好,但是软件不能后退,没有后悔药。跟Office软件比起来,Notepad++的后悔药好用多了。因为Office软件一旦按了保存,之前的东西就后退不了了。而且Notepadd++打开文件的速度非常快,即便是很大的数据文件也没有问题,比如说,几十MB的XML文件。为什么会有那种东西?其实那个就是我WordPress导出的数据,是我10多年来blog的日志数据。我不知道如果那些东西拿去出书的话,那本书得有多少页。其实我还真有想过会不会有一天无聊地把自己的blog拿去出书。但为什么要出纸质版的书呢?电子书其实也行。把我的blog静态打包下来,就是一本电子书。

回到Notepad++加上,虽然那个东西可以用来写代码,但跟专业的写码软件比起来,还是挺不方便的。虽然其实Notepadd++也有不少插件,但是跟别人的插件比起来,好像还是欠缺点什么。如果纯粹是文字,不是代码的话,我觉得它非常优秀了。比如说我经常用来核对字幕哪里修改了。之前我并不觉得Notepad++不适合用来写代码,直到昨天我看到了那个VSCode以后。在那里保存一个后缀为HTML的文件以后,你只需在那里输入一个东西,之前之后的那些格式全部都自动生成了,而且全部都已经标记好颜色,做好了缩进。那个东西自带了emmet功能,快速写码变得易如反掌,因为只需要写一点点东西,一大串成对的代码就出来了,于是,妈妈再也不用担心我丢三落四,因为成对的代码会自动出来,代码可以出来,我觉得自动缩进不会有啥状况。一直我都在搞blog,我一直都只是在做前端的设计,看到这些功能以后,我简直震惊了,用这个东西写码,只要你有思路。只要你有灵感,写一个网页相当快捷简单。不过绝大多数时候,我觉得前端设计还是需要一些脑洞的,比如说你根本没想到可以那样做的话,你怎么可能写得出来。

因为看到那个让我兴奋的软件,而且还是便携的,直接解压使用,无需安装(但是很大,解压后200多MB),所以洗澡的时候我考虑过要不要再写一个WordPress模板,那个blog用来存放我从前做过的那些blog。那些不是我主站的blog,比如说BLF的、JEA的、以及ADR的。那里的东西有些不是我的,但是很大一部分都是我磨出来的。曾经,我在那里倾注了非常多心血。那是我曾经的兴趣所在。那些东西是我人生的一部分,但是,他们以前的家已经消失了。BlogBus没有了,点点也没有了……我觉得我应该让他们重生。

写一个网站的前端需要灵感,但网站的核心是内容。首先,我要考虑怎么把BlogBus和点点导出来的数据转化为WordPress可以理解的内容。

2020-03
18

全屏搜索大功告成

By xrspook @ 20:04:21 归类于: 烂日记

昨天,我把COLOR3模板的搜索功能终于做上去了。从前的搜索都非常简单,就是在网页上做一个输入框,然后再加一个提交按钮,搜索都这样。我有想过要不要在WordPress里形成一个搜索的页面,然后要搜索的话就到那里输入内容然后提交,最后返回搜索结果。这样做显然就绕了一圈,我在任何一个页面想搜索,就必须先到达那里,于是网站就要在那两个地方跳转。对于我来说这个体验肯定是不好的。因为这就意味着又要重新把网页加载一次。直接在任何一个页面就能提交搜索然后反馈得出答案跟多绕一圈差别很大,起码我个人觉得这样很折腾。

现在跟10年前的区别大概在于搜索的花样多了很多,比如现在终于可以通过CSS做出比较好看的效果,从前那只是CSS的一个美好梦想。CSS的改进让我印象深刻的是鼠标悬停时的过渡效果以及半透明的展示。从前要展示半透明,每个浏览器出来的东西还不一样,所以写一个效果还得备着多个浏览器的不同选择版本。如果是Chrome和Firefox还好一点,版本兼容性还不错。如果遇到不同版本的IE,出来的东西千差万别。我没有去研究过现在主流的浏览器都有哪些,但可以肯定的是,非常大一部分用户是的是智能设备,而不是传统的PC电脑,所以即便是看到主流浏览器的使用比例,参考性也不大。

从前,当我有了自己的网站,又或者说我有了自己的blog以后,即便blog在BSP上,我已经试图在做网站优化,尽量的让搜索网站能找到我的东西。但现在我已经完全不在乎那些东西了。所以,我连Google的SEO插件也直接删掉。百度也好,Google也好,其它搜索引擎也好,收不收录,收录多少我根本无所谓,搜索得到,搜索不到,我没兴趣去知道,从前我隔一段时间就会神经病地在搜索网站上找自己,但现在我完全不这么干了。那对我来说毫无意义。比如说我在B站上有了账号,而某些视频的点击率又很高。非常有可能,在搜索网站输入我的网名出来的大都是那些点击率很高的东西,不知道看到多少条才看到我自己的blog,但什么重要,什么不重要,哪些有价值,哪些才是我的代表作,我心里明白,我不需要知你们觉得,我不需要知道网页爬虫觉得。之所以要把网站搞好,是因为我要对自己负责。首先网站要让我自己觉得顺眼好看,我自己用得舒服,其次才是别人的浏览体验到底如何,或者我是否应该根据访客的需求进行改进。这么多年以来,我已经习惯了网站一直都冷冷清清。对我来说,有人评论是稀罕事,没人评论是再正常不过的常态,但因为我每天都会写blog,所以即便没有评论,我也要去那里去看一眼,但非常有可能一天就只看那么一眼。

回到搜索功能这个话题上,这一次我给网站配置的搜索是一个全屏搜索。因为我把链接做在版头的导航栏上,所以blog里任何网页都能到达,但是连接我做得有点隐晦,不是正常人所熟知的那种放大镜,所以要找到那个功能,可能会有点难。搜索很简单,就是点击一个像链接一样东西,然后就会有个全屏的搜索框,把需要搜索的关键字敲进去,回车就能得到结果。那个全屏搜索的界面很简洁,甚至没有提交按钮,只有右上角的一个X,作为关闭窗口。会不会有人不知道如何提交搜索内容,有没有人找不到右上角的X把这个搜索界面关掉呢?我不知道,但我相信,可能会有这种存在。这个炫酷的搜索功能是CSS和JS的配合,但是JS只用了非常简单的两条语句。我在CSS那里用了半透明的句子,从前这种东西在浏览器可能行不通,但现在无论是IE还是非IE,效果都很好。因为我是一个懒到了极点的人,所以在做这种全屏搜索的时候,我并没有加其它特效,比如说渐变。那的确很好看,但意味着要加载更多的语句。现在我已经很满意搜索界面的效果了,我把字体搞得很大。能摸到那个搜索入口,试用过以后,估计会觉得很爽,起码我自己是这么觉得的。

过去几天我就像一个少年一样,改进自己的东西,这种专心致志的感觉非常好。

2020-03
17

页码导航,搞定!

By xrspook @ 10:44:11 归类于: 烂日记

昨天突然发现,备份下来的COLOR3模板的截图是2014年的,所以这个模板是不是没有10年历史这么悠久呢?WordPress我用了10年,但这个模板用了多少年?我真的没有仔细翻查过资料。(发布这篇blog之前我又验证了一下,COLOR3的确是2010年的作品)。就怪当年设计好模板之后,我没有在上面标注时间,现在完成改版以后,我会在CSS上标注上版本的更新信息。我会不会把这个模板用一辈子呢?真不知道,又或者不知道多年以后我不用WordPress了呢。

昨天我把之前用插件解决的页码导航也实现了,但实际上不知道从第几个版本的WordPress开始,已经内置了页码导航,但很多个版本的官方标准模板上面的只有上一页和下一页。上一页跟下一页的设置非常原始,对内容有非常多的blog来说,这简直就是把人杀死的节奏,虽然有一点观察力的访客会发现,除了主页是没有页码以外,只要你翻到第2页,从网址上你就已经能看到页码了,所以接下来你只需要天马行空地在那里输入你想要的数字,就能跳转到那个地方,但问题是,对一个路人甲来说。页面只显示了上一页跟下一页,但最后一页是多少呢?难道还要搞一个猜谜游戏?于是,这又让我想起了那个什么逼近法。用靠谱的页码导航就不会有这种烦恼,那些算数问题全部都留给服务器了,因为任何一个导航页面都会有首页和最后一页的锚点(最后一页其实是算出来的),上一页跟下一页的锚点也是有的,当然如果那是最前头和最末末,会缺少了其中一个方向的锚点。中间的页面要展示多少个锚点,系统预留了控制点。我不知道这么好用的功能,为什么WordPress不把它光明正大读放出来,当然,没有很光明正大放出来的还有很多神奇的函数,比如,里面有很好几个预设参数,没有评论的时候可以显示一个信息,一条评论的时候可以显示一个信息,多条评论的时候可以显示一个信息,不允许评论的时候又可以有另外一个信息。对中文用户来说,一条评论和多条评论从语句设定上没有区别,但是,对英文来说,就有一个单数跟复数的区别,WordPress是外国人开发的,当然就会有把这两种分开来预设。昨天我没花什么功夫就找到了WordPress原生自带的那个页码导航,这纯粹是我运气好,万一我搜索了好几个小时才找到呢?找到那个原生的函数以后,我只需要对里面的东西进行格式化。WordPress肯定也知道。他们没有格式过的界面是没办法直接使用的,所以早就放好了各种关键字,只要你对那些东西进行合适的处理,就能做出你想要的效果。

在使用原生页码导航之前我查看了WordPress最新官方模板2020的代码,那个模板用的就是原生的页码导航,但经过高度的格式化处理。不知道现在的开发理念是不是区块管理,所以在2020模板里一个php又引用了另外无数的php。一个模板里有好几个文件夹,一个文件夹里有好几个php。当你打开一个以后,你不得不又继续跳到另外一个,继续有可能还要到其它地方。我是个很懒惰的人,基本上我把我需要引用的函数都丢到我的functions.php里。之前的COLOR3有好几个sidebar相关的php,但现在通过用函数判断,我直接把它们都缩到一个里。十年之前的COLOR3,基本上我都只是对CSS动刀,但现在,我会自己研究php里面的判断。其实无论是哪个编程语言,我觉得最终都可以变成简单的几条。第1条是分配,第2条是判断,第3条是循环,第4条是输出。基本上可以这么说,所有编程语言都在玩这几条,尤其是判断跟循环,不断地组合搭配,就能得出你想要的东西。现在回想起来,当年学习C语言的时候,冒泡法基本上可以被称作是终极大boss。当时老师觉得那是教学大纲里最高端的了,搞懂了那个,其它基本上不成问题,而冒泡法这种东西,连老师自己上课的时候也说得小心翼翼,因为她自己也没达到可以随便就脱口而出谈冒泡法的境界。估计现在再让我去冒泡法,我会得心应手很多。

大概当我彻底完成COLOR3模板升级以后,我会重新开始学习Java。几年前那本深入浅出学习Java的书看得我直接投降,因为后面的习题我就没做对几个,如果现在再去看的话,估计会有一些长进了。

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