Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fl.pdf

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for welefen welefen
September 21, 2012
8.3k

 Fl.pdf

Avatar for welefen

welefen

September 21, 2012

Transcript

  1. HTML词法分析需要注意的点   •  IE的条件注释 - <!—[if •  一些通用的status ok -

    <!—status okà •  文本中<>字符与tag中的<>识别 - <div>welefen<<<</div> •  Pre, textarea, script等特殊tag - script的type=“text/html” •  Tag名可能是模版语法的识别 - <{%$tagName%} class=“cls” > - <<&$tagName&> class=“cls” > •  XML的兼容
  2. HTML标签属性切割   •  标签名 - <script/defer src=“xxx.js”> •  属性列表 -

    属性值2边的引号 - 2边没有引号,但有空格隔开       -  只有属性名,没有属性值 http://www.w3.org/TR/html5/syntax.html
  3. HTML压缩   •  移除注释 •  简化doctype, charset •  将多个空格替换为一个 • 

    移除相邻2个块级元素之间的空格 •  移除可选的闭合标签 •  移除可选的属性 •  移除可选的属性值 •  移除属性值2边的引号 •  移除http和https协议 •  压缩style值 •  压缩内联的JS和CSS •  去除空的script和style •  合并相邻内联的JS和CSS
  4. HTML压缩   •  移除注释 •  简化doctype, charset •  将多个空格替换为一个 • 

    移除相邻2个块级元素之间的空格 •  移除可选的闭合标签 •  移除可选的属性 •  移除可选的属性值 •  移除属性值2边的引号 •  移除http和https协议 •  压缩style值 •  压缩内联的JS和CSS •  去除空的script和style •  合并相邻内联的JS和CSS 所有的功能 都可配置  
  5. XSS自动修复   •  一切用户输入的数据都是不安全的 •  转义环境 - HTML环境 - JS环境

    - URL环境 - 异步接口数据innerHTML环境        - HTML里事件参数环境 •  自动识别,并添加对应的转义方式
  6. CSS词法分析   •  @相关 - @import url - @media -

    @charset - @namespace - @font-face - @-xxx-keyframes - @-moz •  IE的* _ \9 等hack •  [;color:red;] •  Expression - 需要调用JS的词法分析,通过匹配()个数
  7. CSS  Selector相关   •  CSS3 Selector Id, Type, Class, Attribute,

    PseudoElement, PseudoClass •  计算Selector的优先级 http://www.w3.org/TR/selectors/#specificity
  8. CSS 压缩   •  移除空格注释等 •  移除最后一个分号 •  移除空的Selector • 

    覆盖相同的属性 - 需要识别hack •  简化value •  对属性和选择器重排 - 需要识别hack •  合并选择器里相同的属性 - 需要识别hack
  9. 后续规划   •  开发其他的功能 •  提供NodeJS版本 •  官网 - http://www.flkit.org/

     官网 - http://www.flkit.org/test/ 单元测试 - https://github.com/welefen/Fl github
  10. 谢  谢  !   北京市朝阳区建国路71号惠通时代广场D座1号楼  100025 Block 1, Area D,

    Huitong Times Plaza No.71 JianGuo Road, ChaoYang District Beijing 100025, P.R.C. Tel: +86 10 5878 1000 Fax: +86 10 5878 1001