chenshenhai / blog

个人博客,没事写写玩玩~~~
146 stars 21 forks source link

基于JSON Schema的HTML解析器 #30

Open chenshenhai opened 6 years ago

chenshenhai commented 6 years ago

前言

写这篇文章主要是近年来前端服务端渲染框架层出不穷,开发的选择眼花缭乱。最近有个想法,把HTML的DOM树抽象成用JSON schema 语言描述,可以用于HTML渲染描述中间层抹平框架的差异。

注意:只是作为中间层抹平差异,不是代替框架 。更好地抽象处理HTML的DOM节点在前端渲染,或者服务端渲染。

具体的渲染设想如下:

HTML的基本要素

如果要实现以上解析功能,就先抽象出前端、后端的HTML渲染的元素。

Schema解析实现

设定tag


- 不闭合的tag
```js
const notClosingTags = {
  'area': true,
  'base': true,
  'br': true,
  'col': true,
  'hr': true,
  'img': true,
  'input': true,
  'link': true,
  'meta': true,
  'param': true,
  'embed': true
}

解析tag的schema

参考

https://github.com/caolan/pithy