Skip to content

Commit f23a204

Browse files
authored
Merge pull request AngleSharp#1137 from AngleSharp/devel
Release 1.0.5
2 parents f2dee02 + 7dcc353 commit f23a204

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1032
-529
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 0 additions & 39 deletions
This file was deleted.
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: Bug Report
2+
description: "Create a report to help us improve"
3+
labels: ["bug"]
4+
body:
5+
- type: checkboxes
6+
id: prerequisites
7+
attributes:
8+
label: Prerequisites
9+
description: For more information, see the [CONTRIBUTING guide](https://github.com/AngleSharp/AngleSharp/blob/devel/.github/CONTRIBUTING.md).
10+
options:
11+
- label: Can you reproduce the problem in a [MWE](https://en.wikipedia.org/wiki/Minimal_working_example)?
12+
required: true
13+
- label: Are you running the latest version of AngleSharp?
14+
required: true
15+
- label: Did you check the FAQs to see if that helps you?
16+
required: true
17+
- label: Are you reporting to the correct repository? (there are multiple AngleSharp libraries, e.g., `AngleSharp.Css` for CSS support)
18+
required: true
19+
- label: Did you perform a search in the issues?
20+
required: true
21+
22+
- type: textarea
23+
id: description
24+
attributes:
25+
label: Description
26+
description: Share a clear and concise description of the problem.
27+
placeholder: Description
28+
validations:
29+
required: true
30+
31+
- type: textarea
32+
id: reproduction-steps
33+
attributes:
34+
label: Steps to Reproduce
35+
description: |
36+
Include minimal steps to reproduce the problem if possible. E.g.: the smallest possible code snippet; or a small project, with steps to run it. Make sure to include logs and exceptions as text rather than screenshots.
37+
placeholder: Minimal Reproduction
38+
validations:
39+
required: true
40+
41+
- type: textarea
42+
id: expected-behavior
43+
attributes:
44+
label: Expected Behavior
45+
description: |
46+
Provide a description of the expected behavior.
47+
placeholder: Expected Behavior
48+
validations:
49+
required: true
50+
51+
- type: textarea
52+
id: actual-behavior
53+
attributes:
54+
label: Actual Behavior
55+
description: |
56+
Provide a description of the actual behavior observed. If applicable, include the error messages and the exception stacktrace.
57+
placeholder: Actual Behavior
58+
validations:
59+
required: true
60+
61+
- type: textarea
62+
id: known-workarounds
63+
attributes:
64+
label: Possible Solution / Known Workarounds
65+
description: |
66+
Provide a description of any possible solution or known workarounds.
67+
placeholder: Possible Solution / Known Workarounds
68+
validations:
69+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Documentation
4+
url: https://anglesharp.github.io/
5+
about: Read our comprehensive documentation

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Feature Idea
2+
description: "Suggest an idea for this project"
3+
labels: ["enhancement"]
4+
body:
5+
- type: textarea
6+
attributes:
7+
label: Description
8+
description: What should the new feature do?
9+
validations:
10+
required: true
11+
12+
- type: textarea
13+
attributes:
14+
label: Background
15+
description: Provide any additional background for the feature. e.g., user scenarios.
16+
17+
- type: textarea
18+
attributes:
19+
label: Specification
20+
description: In case of updates that adhere to specification changes, please reference the used specification.

CHANGELOG.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
# 1.0.5
2+
3+
Released on Tuesday, October 3 2023
4+
5+
- Improved codebase (#1128, #1126, #1133) @matkoch @ivandrofly
6+
- Improved documentation (#1127)
7+
- Improved child selector performance (#1135) @lahma
8+
- Improved query selector all performance (#584, #1134) @lahma
9+
- Fixed issue with foreign content using end tags
10+
- Fixed typo `descendants` (#1136) @SimonCropp
11+
- Added a way to resolve symbols by their name to `HtmlEntityProvider` (#396)
12+
113
# 1.0.4
214

315
Released on Saturday, June 24 2023

CONTRIBUTORS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ AngleSharp contains code written by (in order of first pull request / commit):
4747
* [Simon Cropp](https://github.com/SimonCropp)
4848
* [Bjørn Olav Ringstad ](https://github.com/bjornri)
4949
* [Martin Welsch](https://github.com/MartinWelsch)
50+
* [Matthias Koch](https://github.com/matkoch)
51+
* [Marko Lahma](https://github.com/lahma)
52+
* [Ivandro Jao](https://github.com/ivandrofly)
5053

5154
Without these awesome people AngleSharp could not exist. Thanks to everyone for your contributions! :beers:
5255

docs/general/01-Basics.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ section: "AngleSharp.Core"
66

77
## Requirements
88

9-
AngleSharp comes currently in two flavors: on Windows for .NET 4.6.1 or newer and in general targetting .NET Standard 2.0 platforms.
9+
AngleSharp comes currently in two flavors: on Windows for .NET 4.6.1 or newer and in general targeting .NET Standard 2.0 platforms.
1010

1111
Most of the features of the library do not require .NET 4.6.1, which means you could create your own fork and modify it to work with previous versions of the .NET-Framework.
1212

@@ -80,7 +80,7 @@ So what is the `IHtmlParser`? This is a class that represents the HTML5 parser f
8080

8181
## Exploring the Web
8282

83-
The idea behind AngleSharp is to provide state-of-the-art parsers (for CSS, HTML and related objects, such as URLs), which generate the same DOM as a modern browser would do. The same DOM means that the same API is used as known from JavaScript / from current browsers. This API is standardized and well-known among web developers. Also the liveliness of DOM interaction is then not only restricted to JavaScript, or browser hosting scenarios. AngleSharp will make it possible to basically bring the core of a modern browser to your code.
83+
The idea behind AngleSharp is to provide state-of-the-art parsers (for CSS, HTML and related objects, such as URLs), which generate the same DOM as a modern browser would do. The same DOM means that the same API is used as known from JavaScript / from current browsers. This API is standardized and well-known among web developers. Also, the liveliness of DOM interaction is then not only restricted to JavaScript, or browser hosting scenarios. AngleSharp will make it possible to basically bring the core of a modern browser to your code.
8484

8585
### The DOM
8686

@@ -120,15 +120,15 @@ This works and directly returns an object of type `IHtmlParagraphElement`. No ca
120120

121121
### Beyond the DOM
122122

123-
AngleSharp provides several properties and methods that are not accessible via the standardized DOM properties and methods. To distinguish between standardized and extended a simple attribute class called `DomNameAttribute` has been added. The attribute is applied in those cases, where the decorated class / event / method or property is also specified in the official W3C standard. Additionally the official name is set, since AngleSharp follows the PascalCase convention, while the DOM follows the camelCase convention.
123+
AngleSharp provides several properties and methods that are not accessible via the standardized DOM properties and methods. To distinguish between standardized and extended a simple attribute class called `DomNameAttribute` has been added. The attribute is applied in those cases, where the decorated class / event / method or property is also specified in the official W3C standard. Additionally, the official name is set, since AngleSharp follows the PascalCase convention, while the DOM follows the camelCase convention.
124124

125-
AngleSharp also provides objects that are not listed at all in the official W3C specification. Sometimes those classes are specializations of W3C defined objects (e.g. `MathElement` is derived from `Element`, however, while `Element` is also specified in the official specification, `MathElement` is not), or just part of the AngleSharp eco-system.
125+
AngleSharp also provides objects that are not listed at all in the official W3C specification. Sometimes those classes are specializations of W3C defined objects (e.g. `MathElement` is derived from `Element`, however, while `Element` is also specified in the official specification, `MathElement` is not), or just part of the AngleSharp ecosystem.
126126

127127
The interface `IConfiguration` can be used to configure the behavior of AngleSharp. It is possible to derive from a sample implementation called `Configuration`, to use the sample implementation directly (e.g. `new Configuration()`) or to start by implementing our own configuration via `IConfiguration`.
128128

129129
If no configuration is provided, AngleSharp will use a default configuration. The default configuration can also be set, removing any configuration transportation requirements at all. In most scenarios using `Configuration.Default` makes sense. Note that the `Configuration` is immutable and that all extension methods for `IConfiguration` will never try to modify the passed object. They will always return an unmodified object, or a new object with the modifications.
130130

131-
Finally AngleSharp also brings some very helpful extension methods that try to be similar for what jQuery offers in JavaScript. Using the namespace `AngleSharp` one can access methods like `Html`, `Css`, `Attr` or `Text`. These methods operate on a given `IEnumerable<IElement>` like an existing `IHtmlCollection`. The purpose is quite simple: To easily modify the given DOM.
131+
Finally, AngleSharp also brings some very helpful extension methods that try to be similar to what jQuery offers in JavaScript. Using the namespace `AngleSharp` one can access methods like `Html`, `Css`, `Attr` or `Text`. These methods operate on a given `IEnumerable<IElement>` like an existing `IHtmlCollection`. The purpose is quite simple: To easily modify the given DOM.
132132

133133
```c#
134134
// using AngleSharp.Html.Parser;
@@ -145,6 +145,6 @@ IDocument document = await context.OpenAsync(req => req.Content("<ul><li>First e
145145
IHtmlCollection<IElement> elements = document.QuerySelectorAll("li").Attr("test", "test");
146146
```
147147

148-
It should be noted that applying `Text` or `Html` will have consequences for the DOM. For example if we apply it to a list of several elements, where some elements of the list contain other elements of the same list, the resulting list will still contain all those elements, however, the document will not.
148+
It should be noted that applying `Text` or `Html` will have consequences for the DOM. For example, if we apply it to a list of several elements, where some elements of the list contain other elements of the same list, the resulting list will still contain all those elements; however, the document will not.
149149

150150
The reason for this behavior is quite simple: Applying e.g. `Html` will remove all children of a node and append new children, which have been obtained by parsing the given source. Similarly `Text` will remove all children and append an `IText` node with the given textual content.

0 commit comments

Comments
 (0)