Merge pull request #10888 from MrPetovan/task/10887-bbcode-style-block

Add conditional block output for BBCode tag [style]
This commit is contained in:
Michael Vogel 2021-10-18 20:19:53 +02:00 committed by GitHub
commit df99ca8d82
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 6 deletions

View file

@ -644,10 +644,16 @@ On Mastodon this field is used for the content warning.
</td>
<td>;-) :-O</td>
</tr>
<tr>
<td>Custom block styles<br>
<br>
[style=text-shadow: 0 0 4px #CC0000;]You can change all the CSS properties of this block.[/style]</td>
<td><div style="text-shadow: 0 0 4px #cc0000;;">You can change all the CSS properties of this block.</div></td>
</tr>
<tr>
<td>Custom inline styles<br>
<br>
[style=text-shadow: 0 0 4px #CC0000;]You can change all the CSS properties of this block.[/style]</td>
<td><span style="text-shadow: 0 0 4px #cc0000;;">You can change all the CSS properties of this block.</span></td>
<td>You can change all <span style="text-shadow: 0 0 4px #cc0000;;">the CSS properties of this inline text.</span></td>
</tr>
</table>

View file

@ -603,11 +603,17 @@ Dieses Feld wird von Mastodon f&uuml;r die Inhaltswarnung (content warning) verw
</td>
<td>;-) :-O</td>
</tr>
<tr>
<td>Benutzerdefinierte Block-Styles<br>
<br>
[style=text-shadow: 0 0 4px #CC0000;]Du kannst alle CSS-Eigenschaften eines Blocks &auml;ndern-[/style]</td>
<td><div style="text-shadow: 0 0 4px #cc0000;;">Du kannst alle CSS-Eigenschaften eines Blocks &auml;ndern.</div></td>
</tr>
<tr>
<td>Benutzerdefinierte Inline-Styles<br>
<br>
[style=text-shadow: 0 0 4px #CC0000;]Du kannst alle CSS-Eigenschaften eines Blocks &auml;ndern-[/style]</td>
<td><span style="text-shadow: 0 0 4px #cc0000;;">Du kannst alle CSS-Eigenschaften eines Blocks &auml;ndern-</span></td>
<td>Du kannst alle <span style="text-shadow: 0 0 4px #cc0000;;">CSS-Eigenschaften dieses Inline-Textes &auml;ndern-</span></td>
</tr>
</table>

View file

@ -1560,9 +1560,6 @@ class BBCode
$text = self::convertAttachment($text, $simple_html, $try_oembed, [], $uriid);
}
// Add HTML new lines
$text = str_replace("\n", '<br>', $text);
$nosmile = strpos($text, '[nosmile]') !== false;
$text = str_replace('[nosmile]', '', $text);
@ -1645,7 +1642,10 @@ class BBCode
// Check for list text
$text = str_replace("[*]", "<li>", $text);
// Check for style sheet commands
// Check for block-level custom CSS
$text = preg_replace('#(?<=^|\n)\[style=(.*?)](.*?)\[/style](?:\n|$)#ism', '<div style="$1">$2</div>', $text);
// Check for inline custom CSS
$text = preg_replace("(\[style=(.*?)\](.*?)\[\/style\])ism", '<span style="$1">$2</span>', $text);
// Mastodon Emoji (internal tag, do not document for users)
@ -1654,6 +1654,8 @@ class BBCode
// Check for CSS classes
// @deprecated since 2021.12, left for backward-compatibility reasons
$text = preg_replace("(\[class=(.*?)\](.*?)\[\/class\])ism", '<span class="$1">$2</span>', $text);
// Add HTML new lines
$text = str_replace("\n", '<br>', $text);
// handle nested lists
$endlessloop = 0;