diff --git a/docs/src/markdown/about/changelog.md b/docs/src/markdown/about/changelog.md index 3e584e2..a62af66 100644 --- a/docs/src/markdown/about/changelog.md +++ b/docs/src/markdown/about/changelog.md @@ -41,11 +41,11 @@ - **NEW**: Officially support Python 3.10. - **NEW**: Add static typing. -- **NEW**: `:has()`, `:is()`, and `:where()` now use use a forgiving selector list. While not as forgiving as CSS - might be, it will forgive such things as empty sets and empty slots due to multiple consecutive commas, leading - commas, or trailing commas. Essentially, these pseudo-classes will match all non-empty selectors and ignore empty - ones. As the scraping environment is different than a browser environment, it was chosen not to aggressively forgive - bad syntax and invalid features to ensure the user is alerted that their program may not perform as expected. +- **NEW**: `:has()`, `:is()`, and `:where()` now use a forgiving selector list. While not as forgiving as CSS might + be, it will forgive such things as empty sets and empty slots due to multiple consecutive commas, leading commas, or + trailing commas. Essentially, these pseudo-classes will match all non-empty selectors and ignore empty ones. As the + scraping environment is different than a browser environment, it was chosen not to aggressively forgive bad syntax + and invalid features to ensure the user is alerted that their program may not perform as expected. - **NEW**: Add support to output a pretty print format of a compiled `SelectorList` for debug purposes. - **FIX**: Some small corner cases discovered with static typing. @@ -86,7 +86,7 @@ - **NEW**: `SelectorSyntaxError` is derived from `Exception` not `SyntaxError`. - **NEW**: Remove deprecated `comments` and `icomments` from the API. - **NEW**: Drop support for EOL Python versions (Python 2 and Python < 3.5). -- **FIX**: Corner case with splitting namespace and tag name that that have an escaped `|`. +- **FIX**: Corner case with splitting namespace and tag name that have an escaped `|`. ## 1.9.6 @@ -94,7 +94,7 @@ /// - **FIX**: Prune dead code. -- **FIX**: Corner case with splitting namespace and tag name that that have an escaped `|`. +- **FIX**: Corner case with splitting namespace and tag name that have an escaped `|`. ## 1.9.5 diff --git a/docs/src/markdown/about/contributing.md b/docs/src/markdown/about/contributing.md index f912bc8..74a9e5e 100644 --- a/docs/src/markdown/about/contributing.md +++ b/docs/src/markdown/about/contributing.md @@ -41,7 +41,7 @@ they are asking about. Feel free to share your experience to help others. ## Pull Requests -Pull requests are welcome, and a great way to help fix bugs and add new features. If you you are interested in directly +Pull requests are welcome, and a great way to help fix bugs and add new features. If you are interested in directly contributing to the code, please check out [Development](./development.md) for more information on the environment and processes. diff --git a/docs/src/markdown/about/development.md b/docs/src/markdown/about/development.md index a25b21e..da08a61 100644 --- a/docs/src/markdown/about/development.md +++ b/docs/src/markdown/about/development.md @@ -33,7 +33,7 @@ Usually this can be automated with Tox (assuming it is installed): `tox -e lint` ## Building and Editing Documents -Documents are in Markdown (with with some additional syntax provided by extensions) and are converted to HTML via Python +Documents are in Markdown (with some additional syntax provided by extensions) and are converted to HTML via Python Markdown. If you would like to build and preview the documentation, you must have these packages installed: - @Python-Markdown/markdown: the Markdown parser. @@ -194,7 +194,7 @@ object that may chain other `SelectorLists` objects depending on the complexity a selector list, then you will get multiple `Selector` objects (one for each compound selector in the list) which in turn may chain other `Selector` objects. -To view the selector list in in a compiled object for debugging purposes, one can access it via `SoupSieve.selectors`, +To view the selector list in a compiled object for debugging purposes, one can access it via `SoupSieve.selectors`, though it is recommended to pretty print them: ```pycon3 @@ -358,7 +358,7 @@ class SelectorContains: Attribute | Description ------------------- | ----------- -`text` | A tuple of acceptable text that that an element should match. An element only needs to match at least one. +`text` | A tuple of acceptable text that an element should match. An element only needs to match at least one. ### `SelectorNth` diff --git a/docs/src/markdown/differences.md b/docs/src/markdown/differences.md index 28d519f..ec2754c 100644 --- a/docs/src/markdown/differences.md +++ b/docs/src/markdown/differences.md @@ -93,7 +93,7 @@ el.select(':scope > .class') In the case where the element is the document node, `:scope` would simply represent the root element of the document. -So, if you used to to have selectors such as: +So, if you used to have selectors such as: ```py3 soup.select('> div') diff --git a/docs/src/markdown/selectors/pseudo-classes.md b/docs/src/markdown/selectors/pseudo-classes.md index 66fe628..f0bc5f6 100644 --- a/docs/src/markdown/selectors/pseudo-classes.md +++ b/docs/src/markdown/selectors/pseudo-classes.md @@ -1587,9 +1587,9 @@ not used in the context of nesting is treated as the scoping root per the specif `#!py3 sv.select('& > p', soup.div)` is equivalent to `#!py3 sv.select(':scope > p', soup.div)`. /// -`:scope` represents the the element a `match`, `select`, or `filter` is being called on. If we were, for instance, -using `:scope` on a div (`#!py3 sv.select(':scope > p', soup.div)`) `:scope` would represent **that** div element, and -no others. If called on the Beautiful Soup object which represents the entire document, it would simply select +`:scope` represents the element a `match`, `select`, or `filter` is being called on. If we were, for instance, using +`:scope` on a div (`#!py3 sv.select(':scope > p', soup.div)`) `:scope` would represent **that** div element, and no +others. If called on the Beautiful Soup object which represents the entire document, it would simply select [`:root`](#:root). /// tab | Syntax @@ -1708,7 +1708,7 @@ which includes all descendants. Using highly specific selectors can reduce how o ## `:-soup-contains-own()`:material-star:{: title="Custom" data-md-color-primary="green" .icon} {:#:-soup-contains-own} Selects elements that contain the provided text. Text must be found in the target element and not in its descendants. If -text is broken up with with descendant elements, each text node will be evaluated separately. +text is broken up with descendant elements, each text node will be evaluated separately. Syntax is the same as [`:-soup-contains()`](#:-soup-contains). diff --git a/docs/src/markdown/selectors/unsupported.md b/docs/src/markdown/selectors/unsupported.md index 21fe336..9ca060e 100644 --- a/docs/src/markdown/selectors/unsupported.md +++ b/docs/src/markdown/selectors/unsupported.md @@ -31,7 +31,7 @@ Selects active elements. ## `:focus`:material-language-html5:{: title="HTML" data-md-color-primary="orange" .icon} {:#:focus} -Represents an an element that has received focus. +Represents an element that has received focus. /// tab | Syntax ```css