2020-07
18

DIY python脚本实现静态网站生成

By xrspook @ 18:05:16 归类于: 烂日记

当所有现成的方法都解决不了问题的时候,我选择了自己写python脚本转换我的静态网站。花了一个下午的时间,居然还真做出来了。之所以可以这样,是因为我是站在巨人的肩膀上的,我用的是gitbook的格式,他们的静态网页是怎么整的,我就怎么整,毕竟在一个网页里面,哪些部分的数据需要动态变化,哪些需部分的数据无需变动是显而易见的。

之所以可以这么快,另外一个原因是我有了调试的利器。这一次,我用的是VS Code调试html代码。VS Code本来就很强大,昨天更新了个新版本以后,还自动内置了自动修改标签功能,之前这个功能需要用插件实现。大概因为要用这个功能的人实在太多了,所以还不如把它变成默认支持。默认也是需要设置的,不过那就不过是打一个勾而已。VS Code版本更新来得很及时,刚好在我需要用到这个功能的时候,他们就更新了。我还安装了美化格式的插件,这样的好处是,缩进空行什么的一键完成,虽然这个东西看上去很美好,但实际上也是有缺陷的,甚至导致我都不敢用了。因为他们为了好看做了一些不该做的事,超连接给我回车分行,并且在a和href之间再加入很多缩进,这样的话,超链接就不再是超链接了。我实在不知道他们是怎么想的,显然这是一个很大的bug。帮助我最大的是一个叫做live server的插件。这个东西可以虚拟出服务器,网页就可以直接在浏览器上实时更新了。这样的好处是显而易见的,因为这样的话,网站上的超链接全部都可用了,而不需要再按一个CTRL。那种感觉就像直接是在服务器上运行了。我觉得这个效果大概跟各种脚本建立虚拟服务器静态网站差不多。那些脚本除了建立静态网页到缓存,还开起了虚拟服务器。现在,我自己写静态网页,live server开启虚拟服务器。

从前用记事本或者Notepad++,写html的时候,标签配对从来是个大问题,虽然写好了以后,他们会提醒你标签到底配对到哪里了,但在写的时候一点都不智能。之所以这样,可能因为我一直没有去找Notepad++的相关插件。VS Code自带了智能配对的功能,当你写完半边标签以后,后半边自动跳出来了,而且标签你不用写全,写一部分他们就会提醒你,你即将要写的是什么,然后选择就可以了。这样的好处是,标签的配对再也不会出状况,而且标签也不可能写错了。当时我是在看某个介绍VS Code的视频的时候知道这个Emmet功能的,也正是因为这个功能吸引我,那天晚上就下载了个便携版。我不知道便携版和安装版有什么不一样,反正后来,VS Coe用得越来越多,安装版是必须的。如果从前就有VS Code,大概我的很多工作就不需要走那么多的弯路了。但话说回来,现在我写的是静态的网站,如果那是动态的,估计就没那么容易了,但是,就标签配对来说,VS Code还是相当棒的。

现成的各种方法用几个小时,甚至根本生成不出来的电子书是静态网站,我用120秒就搞定了。前提是我们的数据源不一样。我配给他们的数据源是9000多个markdown文件,而我自己使用的数据源是一个20多MB的XML文件。可以生成我梦寐以求的静态网页当然是件好事,但这些静态网页加起来,居然有接近8GB的大小,显然这就很逆天,没有哪个地方能供得起这样的数据。根本原因在于我的每一个页面里面都有一个800多KB的目录列表,排除那个目录列表以外,实际上每个网页文件的内容大都只有不到10KB。所以摆在我面前的是,我不能让那个目录存在于每一个页面,我需要做一个目录页,也就是归档页,我要把那个归档页的链接放到现在的目录那里,而现在的链接则放在归档页里面。只放全部文章的归档页又好像非常空旷,所以接下来,我得考虑把从前的点点分类重新带回。最终的目录那里会有全部文章归档,以及各个分类的归档链接。这个过程挺绕,是我让那些分类消失的,现在我又要把那些分类带回来。最简单的方式是我修改点点到wordrpess的转换转换,让那些分类重新回到分类那里,然后下一步的wordpress XML转化为静态网页文件才会流畅。

python已经成为了我的大杀器,我要学更多,让这杀器更厉害!

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的阅读,那该多好。作为电子书的阅读器,其实他们应该支持。

2018-06
17

社区动力的什么鬼CSS

By xrspook @ 17:51:27 归类于: 烂日记

用了一天时间,我熟悉了社区动力的后台。又用了一天时间,我把社区动力的一些DIY模块自己玩起来了。这种神速的掌握,让大家惊讶不已,但我觉得这其实是理所当然的。虽然以前我没玩过论坛的后台,但是博客、轻博客的后台我可是玩了不少。

中国现存的论坛,绝大多数都是以社区动力为驱动,这个东西已经有很多年历史了,有很多代产品,功能非常强大。无论是我想到的还是想不到的。也不知道是不是我正在用的那个版本太老,所以存在一些我感觉是逆天的设计。比如说他们会有一个清除所有未使用插件的按钮,但却没有一个,针对单个插件删除的按钮。无论什么系统,论坛也好博客也好,其实无非控制几个页面。主要分为主页、导航页,还有文章页。后台的框架是我们没办法定规则的,但我们可以通过后台以各种方式控制前台的表现形式。最基础的控制手段是CSS和HTML,当然也有特效,但那是后话了。在控制论坛角色行为方面社区动力的后台的确很厉害,但在控制基础制网页方面,我真的觉得他们很让我觉得无语。明明是很简单的修改,他们却搞得很复杂,大概因为这样复杂化了,一般人就不会想到要亲自去修改,而直接去购买他们的后续产品。他们最神奇的莫过于修改最基本的CSS和HTML,居然还必须使用FTP。这都什么年代了?!他们那可视化编辑界面是弱智低能的,因为上面的功能非常不齐全。说明是有等于没有。你把里面的功能全部都试一遍,还是不知道那是干嘛的。可视化的,也就是所见即所得不是这么弄的。而之所以有这样的吐槽,大概是因为很多年以前我就已经在使用世界上用户最多的后台产品WordPress。这个东西除了支持最基本的博客以外,还支持论坛,甚至网站。只要你脑洞足够大,它可以实现你想实现的功能。唯一区别在于,社区动力很多设置考虑的是人与人的交流,人对人的控制,但这不是WordPress的长处。WordPress主要是用来发布东西的。那个公司也有交流互动的功能的产品,那是专门留给论坛用的,但是知名度却远远不如WordPress,因为它们的功能的确不怎么全。

做了那么多年的网页,我觉得最让我吐槽的是社区动力的可视化DIY模块跟他们的脚本编写完全脱节。在DIY模块你只能用最基础的方式,进行拖拉,然后参数设定。接下来你却不能用纯脚本进行进一步修改。可视化和脚本修改应该是高度结合在一起了,不是吗?脚本编写对一般人很难,但对高手来说细微调整和重复使用只是弹指间的事。即便在十几年以前,那些现在已经倒闭了的BSP也能够实现很够意思的可视化编辑,为什么到现在为止要用社区动力要做那些东西还很困难呢?看过社区动力默认模板的CSS以后,我有种想死的感觉,明明不是一类的东西他们归为一谈,于是当你要控制某个参数的时候,其它的也被迫改变了。之所以这样,我觉得是因为做前台设计的那个人思路不清晰。他们也总喜欢用一两个字母的缩写当名称,于是一整CSS下来都是代码。当然,这东西不是人给人看的,而是给机器看的,缩写无所谓,但是在修改的时候,人肉读取就变得相当困难。为了解释那一堆缩写,他们还得写一大堆的注释,这又何苦呢?WordPress的模板不这样,无论是官方的还是民间的,你看到他们的英文名称就会知道那到底是干嘛的。他们只需要在某些地方做很简短的注释。研究社区动力的默认模板代码真的比我自己重新写一套更辛苦。

于是搞完以后,我感觉整个人都废了,躺在床上不想动,觉得身体不是我的。

2018-01
18

自觉学习

By xrspook @ 11:46:09 归类于: 烂日记

昨天和同学的聊天几乎到达了吵架的地步(或者说已经在吵架了)。之所以这样是因为我们看到的某些东西和我们持有的某些观点不一致。工作了10年多以后我意识到辩证法的重要性,不把话说死是非常有必要的,因为实际上真的是100%的事少之又少。因为我和我的同学从工作开始走上的就是不同的道路,所以看到的问题和个人感悟相差很远。

让我觉得很神奇的是我的同学为什么会觉得我学得比她快她压力大呢?几乎可以这么说,离开学校以后我自学的东西更多更杂更深入。学校学的那些东西都是基础,没有之前的根基我估计也不会养成往后的自学习惯,但显然脱离了那个被迫学习的体制以后我根据自己的情况上手各种东西其用功程度比我在学校被严格要求要考多少分好很多。我不再为分数奋斗,我为自己的兴趣奋斗,有些时候那些也谈不上是兴趣,而只能说是自己对自己的要求。我没办法接受自己本可以做得更好却因为懒而让重复无聊的东西一再每天都持续上演。再深层次地挖掘大概因为我很早以前就开始当码农,一开始的时候写的是HTML和CSS,后来变成了PHP,期间又在学校学了C语言,因为要写某个可视化封装起来的程序学了VB。一开始我就选择了折腾的路,所以往后当我要学习什么Excel公式,SQL规则的时候我会觉的一切都很正常且理所当然的事。明明做网页的时候我可以选择可视化的方式,当时可用的是Frontpage和Dreamweaver,但可视化的东西总不能精准到位,且生成的东西过于拖沓,所以我宁愿自己写HTML,然后用浏览器去测试我的敲键盘成果。没有人强迫我必须得这样,但我觉得这样有意思,完成了以后有成就感。很多人都有自己的网站,但不是每个人的网站都是自己亲手敲键盘写出来的。他们可以通过直接给钱别人,提出要求让别人设计出现成的,也可以利用网站后台的可视化模块以拖拉的方式组建。要自己写网站就意味着要学习理解各种规律,然后把自己的意愿按照约定的格式输出。我不喜欢你直接给我鱼,我更喜欢你给我一本钓鱼教学手册。

理解规律,认清自己的需要,最终恰当成功地输出。我觉得这几条就是学习的真谛。最终神一样的境界一定是无招胜有招。如果我们根本不去学习规律,也不知道我们自己要怎么着,又怎么会有后续的东西呢。有没有学习的心跟身份地位有钱没钱做的是哪份工作没关,这真的只是各人想不想这么干而已。有些人会自觉学习,但有些人要别人逼迫着才去学习。如果是前者,放在任何环境都无所谓,但如果是后者,环境貌似就很重要了。我觉得最根本的还是主观的人本身。学生年代当过班级里的鸡头与凤尾的我有深刻的体会。我不觉得名校里的普通学生就一定比九流学校的尖子生优秀,虽然外人看来二者的学习环境和受教育师资相差九万八千里。

环境或许不容得我们去选择,但我们可以选择改变自己。

2011-11
27

REALEZA不成TEA EXPO去

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

我真的已经很用力地去想解决“a div a”这个三角恋问题了!不过,还是没想出对策,哭~~~

这“a div a”三角恋是这样的:第一个“a”嵌套着第二个“div”,第二个“div”嵌套着第三个“a”,理论上,第二个“div”肯定被第一个“a”包含,但如果“div”里含有第三层的“a”,那么“div”就会自动脱离第一个“a”的嵌套,第一个“a”和第二个“div”变成同级关系。这会导致什么结果呢?第一层“a”和第三层“a”同时存在!但我的目标是当鼠标滑过div这个片区时只有一种链接即只有第一个“a”起作用,第三层“a”必须的只保留纯文本或者干脆拜拜。

没看懂我上面话的可以直接看源文件:HTML + CSS

这貌似很简单,但我至今没找到对策,尤其是适合各种主流浏览器的(Chrome,Firefox,IE8等)方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// SH想出了这个
 
jQuery(".postmetadata1").each( function() {
	jQuery(this).html(jQuery(this).html().replace(/<a [^>]*>|< \/a>/gi,""));
});
 
// 我折腾出了这个
 
jQuery(".postmetadata1 a").each( function() {
	$(this).replaceWith($(this).html());
});
 
// 点点的Lei给出了这个
 
$(".postmetadata1").each(function() {
	var str = jQuery(this).html(),
	code = str.replace(/</a><a [^>]*>|< \/a>/gi,"");
	console.log(str);
	console.log(code);
	$(this).html(code);
	console.log($(this).html());
});
</a>

在Firebug看,这三种方法都能把第三层a干掉,不过,三个方法都会把第一层“a”和第二层“div”变成同级,即第一层“a”失效,无法做到当鼠标移过第二层“div”片区的时候出现正确链接。三种方法在Chrome和Firefox下片区链接都浮云了,展示效果一样。SH的方法在IE8下可以实现我的目标功能;我的方法在IE8下显示诡异,第二层“div”片区有第一层“a”的导航但无法打开链接;Lei的方法在IE8下会显示怪异,第二层“div”片区有第一层“a”的导航但无法打开链接,也有第三层“a”的导航且可以打开。各种怪异,各种神奇!!!!为什么用点点的“description|nohtml”就能轻易除去内容里的各种HTML标记,要在浏览器层面单纯干掉这般嵌套的“a”却这么难呢????

期望高人想出解决问题的JavaScript(可以包含jQuery)!

昨晚在电脑前抓了几个小时的头,凌晨1点+才睡觉,今天在早上继续抓了1个多小时,未果,不能再纠结了,我答应了妈要陪她去茶博会的,茶博会今天是最后一天。于是,大概在中午1点,我暂时放下包袱,出门口了。

茶博会么,有茶的,也有咖啡的。今天我花掉了95元,20元的入场费(10元/人),10元的espresso体验(5元/杯,250mL),15元的2罐玄米茶叶,50元1套的250g纯咖啡粉越南滤杯套装送了5条同一牌子的三合一咖啡。妈花了10元买胎菊。最让我兴奋的收获该数各种咖啡的试喝。第一次喝espresso呢!漂亮是有了,但我觉得有点怪怪的,味道有点淡,5元250mL我就不奢求什么了。虹吸式咖啡壶煮出来的波多黎各咖啡,这种波多黎各咖啡酸味挺弱,基本没有,苦味中偏强,苦后会甘。喝了不知道是不是猫屎咖啡的猫屎咖啡,酸味和苦味都要比波多黎各的重,味道也更活泼延绵,苦后甘,但感觉跟我平时喝的不太一样,我不是很喜欢。最痛苦的要数某个意大利咖啡,估计那是要弄espresso的,但没有奶没有发泡,所以,杯具啊~~~ 不酸、苦得很彻底,是我喝过所有咖啡中最苦的!苦完以后还不甘,内牛满面,不习惯咖啡的小盆友别自残试这个,即便30mL都会让你抓狂死…… 现在我仍无睡意,今晚或许要看着蚊帐顶发呆了。可能是我来得不是时候吧,这个咖啡展区已经有很多单位撤场了,而且随着时间的推移,各个商家都在打包降价促销想赶快走人,这有好有不好。

我可以明确地说,我对茶叶没什么爱的,对茶具也没什么爱的。

茶博会出来,本来想去员村的知名外国超市麦德龙见识一下,但那个鬼地方需要会员卡,我那个去!为啥不在门口写?!保安站在入口查会员卡,我分明的木有。这让我想起了很久很久以前机场路附近的万客隆,也就是现在的易初莲花,也是要会员卡,大概是10年+以前的事了,但那时万客隆就已经不免费提供塑料袋,但入场人流依旧变态,那是我第一次见识什么叫做Supermarket!后来,好又多遍地开花了,家乐福来了,吉之岛越来越多了,华润万家、百佳雨后春笋,超市成了普通事物,但第一次的万客隆经历还是很惊艳。今天在麦德龙吃到了闭门羹,很不爽,但总有一次,我会去那里见识的!

下午5点多回到家,继续纠结我的“a div a”三角恋,依旧未果,呜呜呜~~~

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