visdom 0.2.4

A html document syntax and operation library, use APIs similar to jquery, easy to use for web scraping and confused html.
Documentation
# Changelog

0.2.1 版本后各个接口方法已经基本趋于稳定,后面将不会做大的调整。

## [0.2.4] - 2021-03-2

### 修改

- 修复 issue #2 中提到的标签名、属性名大小写问题,增加标签名支持英文冒号:

## [0.2.3] - 2021-02-24

### 修改

- 修改 `load``load_catch` 方法默认解析 html 采用最兼容的模式
- 增加 `load_options``load_options_catch` 两个方法,上述两个方法是对应此两个方法、使用最兼容模式参数的调用。
- 对应增加导出 `html::ParseOptions`,以便需要调用新增 options 方法调用时使用

## [0.2.2] - 2021-02-24

### 修改

- 升级 `rphtml`,去除掉了 wasm 的部分,修改部分数据结构和逻辑,使得解析更为快速且保持更好的兼容性
- 修复了 `rphtml` 中节点判断 `is_document` 的逻辑,新增加了解析参数允许纠错没有实体转译的 `<`- `visdom` 中因 `rphtml` 升级导致的部分同步修改

## [0.2.1] - 2021-02-20

### 修改

- 修改 `mesdoc``slice` 方法支持 `RangeBounds` 参数
- 重新导出 `mesdoc` 中各个 trait 里用到的返回类型等,方便在逻辑处理时可能会用到时做各种处理

## [0.2.0] - 2021-02-19

### 修改

- 修复 `rphtml` 中解析 `pre` 标签、自闭合标签不正确的问题,重新修改文档节点与根节点的引用关系
- `mesdoc` 中针对 `IDocumentTrait` 增加 `source_code`, `title`, `body`, `head` 方法等,方便快速获取文档信息,同时针对 `Elements` 增加 `document` 方法方便快速获取 `IDocumentTrait` 文档节点
- `visdom` 中修改针对 `rphtml``mesdoc` 升级做对应的修改

## [0.1.12] - 2021-02-17

### 修改

- 优化 `mesdoc` 中元素去重逻辑

## [0.1.11] - 2021-02-17

### 修改

- 升级 `mesdoc`,修复部分选择器没有去重的问题

## [0.1.10] - 2021-02-16

### 修改

- 进一步完善 `mesdoc` 中的代码细节,减少耦合逻辑
- 升级 rphtml, 修改`pre`等标签的调用 `html` 方法没有被`encode`的问题
- 增加更多测试代码

## [0.1.9] - 2021-02-16

### 修改

- `mesdoc` 补充 `id` 选择器的逻辑,完善可从缓存中快速获取的元素
- 修改 README 等

## [0.1.8] - 2021-02-15

### 修改

- `mesdoc` 去掉无用的生命周期声明,优化 `:only-child` 伪类选择器和 `select` 方法
- 修改 README 等

## [0.1.7] - 2021-02-14

### 修改

- `mesdoc` 中伪类选择器`:first-child`,`:last-child`,`:first-of-type`,`:last-of-type`改为别名选择器,减少代码
- 微调 `mesdoc``filter` 方法的实现,逻辑更为清晰

## [0.1.6] - 2021-02-13

### 修改

- 优化 `mesdoc` `:nth-child`等伪类选择器的性能
- 重写了`mesdoc``filter` 方法的逻辑,去掉了 id 选择器 `in_cache` 的逻辑,减少复杂度
- 修复了部分选择器不能正确匹配的问题

## [0.1.5] - 2021-02-10

### 修改

- 继续优化 `mesdoc` 中伪类选择器的性能

## [0.1.4] - 2021-02-09

### 修改

- 优化 `mesdoc` 中部分伪类选择器的性能
- 增加更多测试

### 修改

- 修复 `mesdoc``[attr|=value]` 选择器逻辑逻辑不正确的问题,优化 `value` 正则的匹配逻辑
- `mesdoc` 新增 `:contains` 内容选择器
- 增加更多测试用例、完善文档

## [0.1.3] - 2021-02-09

### 修改

- 修复 `mesdoc``[attr|=value]` 选择器逻辑逻辑不正确的问题,优化 `value` 正则的匹配逻辑
- `mesdoc` 新增 `:contains` 内容选择器
- 增加更多测试用例、完善文档

## [0.1.2] - 2021-02-08

### 修改

- `mesdoc``unique` 方法改为对外公共方法 `add`,增加 eq 的快捷方法`first`,`last`
- 修复 `mesdoc` `add` 排序方法存在的错误逻辑,增强了缓存的逻辑
- 修改部分判断逻辑为函数式写法
- 增加更多测试用例以及修改文档中的错误、完善部分文档说明

## [0.1.1] - 2021-02-07

### 修改

- 修复 `mesdoc` 中对比元素位置时的 bug
- 修复了 `mesdoc``parent``prev_all` 等所有需要去重的方法缺少去重而导致的重复节点错误
- 重写了 `mesdoc``closest``siblings` 方法,增加去重和排序
- 修改针对 text 节点`set_text`方法为直接修改内容,修复了原方法设置父节点错误导致的问题
- 增加 rust doc 注释和更多测试用例

## [0.1.0] - 2021-02-06

### 修改

- 去掉了 `mesdoc` 的 sort 方法
- 重写了 `unique` 方法以实现快速合并选择器的重复节点,速度有了大幅提升
- 修复了节点操作缺少父节点字段导致的节点丢失