___|  _ \   |  |    |   |_ _|\ \     / ____|
 |     |   |  |  |    |   |  |  \ \   /  __|
 |   | |   | ___ __|  ___ |  |   \ \ /   |
\____|\___/     _|   _|  _|___|   \_/   _____| 

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

PyH源码解析(6)——完结篇

BY: @brysj22952 | CREATED: Aug. 12, 2018, 9:01 a.m. | VOTES: 2 | PAYOUT: $0.00 | [ VOTE ]

这一篇是精华,基本上不用阅读之前的5篇,只看这一篇就足够了。

Tag对象

PyH的核心就是Tag对象,Tag对象属性有:
- str tagname:这个就是tag对象的tag名字。比如``对象,其名字就div。但是有一些Tag对象没有名字,当然真实的HTML是没有的,在实现代码中,没有Tag名字的对象表示它是一个容器对象,存放的是子Tag的序列,表示若干兄弟Tag的列表。
- bool isSeq:这个就是表示在tagname中提到的容器对象,也就是tagname为空的对象,它存放的Tag的序列。
- str id:表示Tag对象的索引id。特别注意的是,它不同于Tag元素的id属性。如果有ID属性,则它的值就是ID属性,如果没ID属性,它的值为Tag的名字,如果有多个相同的id,则在其后增加001等类似的序列区分。
-dict attr:这是属性字典,存放的是Tag对象的属性,key为属性名称,value是内容。需要注意的是class名称替换为cl表示。
-list self:Tag对象继承自list,list中存放的是它包括的内容和子Tag对象。

Tag对象的方法:
- bool IsSelfClose():有些Tag对象是没有内容的,比如img xxxx,这个属性就是表示这个的,它在生成HTML字符串时与普通的Tag是不同的。
- str render():返回Tag对象表示的html字符串。
- Tag add(Tag obj):+操作符重载,表示两个兄弟Tag对象,返回的是一个容器对象。
- Tag iadd(Tag obj):+=操作符重载,表示给当前Tag对象增加内容或者子Tag对象,如果obj为容器对象,则会展开分别作为子Tag加入。
- Tag lshift(Tag obj):<<操作符重载,同+=类似,只是返回的是obj对象,以便<<可以多个连接起来。
- str str():表示Tag对象的字符串表达形式。

PyH对象

PyH用于生成整个HTML对象,它继承自Tag对象,只不过增加了一些便捷的操作。如下:
- iadd():当向PyH对象添加内容或者子Tag时,相当于给其Body对象增加。
- addJS():增加JS脚本。
- addCSS():增加CSS。

TAGS: [ #cn ] [ #pyh ] [ #sourcecode ] [ #anylyse ]

Replies

NO REPLIES FOUND.

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>