Compare commits

...

2 commits

Author SHA1 Message Date
OfficialCRUGG 4ca967ff4d chore: add readme 2024-02-02 15:08:31 +01:00
OfficialCRUGG 1499b9aa3c feat: remove style tags 2024-02-02 15:08:26 +01:00
2 changed files with 16 additions and 2 deletions

14
README.md Normal file
View file

@ -0,0 +1,14 @@
# fanwikis/Description2
This is a fork of the MediaWiki Description2 extension maintained by the fanwikis.org Team with tweaks and improvements for use on fanwikis.org's MediaWiki installation.
## Changes
### Removing <style> tags
When using the TemplateStyles extension at the top of an article, the Description may end up being just CSS. This is not what we want, so we remove the <style> tags from the description.
```diff
- $pattern = '%<table\b[^>]*+>(?:(?R)|[^<]*+(?:(?!</?table\b)<[^<]*+)*+)*+</table>%i';
+ $pattern = '%<(table|style)\b[^>]*+>(?:(?R)|[^<]*+(?:(?!</?(table|style)\b)<[^<]*+)*+)*+</(table|style)>%i';
```

View file

@ -8,7 +8,7 @@ class SimpleDescriptionProvider implements DescriptionProvider {
* Extracts description from the HTML representation of a page.
*
* The algorithm:
* 1. Removes all <table> elements and their contents.
* 1. Removes all <table> and <style> elements and their contents.
* 2. Selects all <p> elements.
* 3. Iterates over those paragraphs, strips out all HTML tags and trims white-space around.
* 4. Then the first non-empty paragraph is picked as the result.
@ -17,7 +17,7 @@ class SimpleDescriptionProvider implements DescriptionProvider {
* @return string
*/
public function derive( string $text ): ?string {
$pattern = '%<table\b[^>]*+>(?:(?R)|[^<]*+(?:(?!</?table\b)<[^<]*+)*+)*+</table>%i';
$pattern = '%<(table|style)\b[^>]*+>(?:(?R)|[^<]*+(?:(?!</?(table|style)\b)<[^<]*+)*+)*+</(table|style)>%i';
$myText = preg_replace( $pattern, '', $text );
$paragraphs = [];