挖井

类库大魔王的挖井日记

挖一口属于自己的井


基本实现ZenHTML

  ZenCoding由2部分组成,ZenCSS和ZenHTML。其中ZenCSS只要简单的查表替换就可以实现,而ZenHTML相对要复杂得多。为了比较完整地给CodingStudio添加ZenCoding支持,花费了我一周时间,当然这一周我也是堕落了,工作时间和效率都很不乐观。
  本来我已经发现用LPeg实现ZenCoding将是非常合适的解决方案,但看了一两天LPeg的文档后,还是有点迷糊,再看看ZenHTML的规则很少,硬编码实现也不是太复杂。
  首先扫描是否当前表中已经有对应的项,如果没有,则下一步。
  匹配E+E,将表达式按+分隔成多个子表达式,然后针对每个子表达式进行处理。
  对子表达式匹配E>E,将子表达式按>分隔成多个包含关系的表达式,对各个表达式分别进行处理。
  对表达式匹配E#name和E.name,到这步之后,E就可以查表了,而name部分仍然需要继续处理。
  对name匹配E*N$和E*N,到这步后,就可以获取到所有信息了,然后向前回溯,组合成最终的字符串。
  我这里的实现跟官方ZenCoding还是有点区别,官方ZenHTML是先匹配E>E,再匹配E+E的,我想我还是得照官方的改一下的。

本文地址:

https://minidump.info/blog/2010/04/e5-9f-ba-e6-9c-ac-e5-ae-9e-e7-8e-b0zenhtml/

上一篇

磨刀也费时

  俗话说,磨刀不误砍柴功。对于这句话,我一直都自认为是辩证地看待的,在某些工作前,先做些准备工作可以极大地提高之后的效率,好比Kunth老爹的TeX。不过很多时候,磨刀也是件很费时费力的事情,好比Kunth老爹的TeX。  这几天一直在考虑实现ZenHTML,这是一种极大提高hard cod...…

Lua,Script 全文阅读
下一篇

做个源代码浏览工具

  Source Insight有大半年没更新了,我觉得以前一个同事说的没错,Source Insight可算是最不思进取的软件了,最后的几次小版本更新,都不知道到底有什么变动,反正我们最关心的一些问题都在。包括缺少Tab,缺少代码折叠,中文支持极差。不过总的说来,Source Insight...…

Shareware 全文阅读