Add stevebauman/purify for HTML sanitization and update project configuration to allow HTML input in Markdown rendering.

This commit is contained in:
HolgerHatGarKeineNode
2026-04-05 18:53:16 +01:00
parent 0c3b98a195
commit 8e7672691d
4 changed files with 131 additions and 3 deletions

View File

@@ -35,6 +35,7 @@
"spatie/laravel-sluggable": "^3.6",
"spatie/laravel-tags": "^4.9.2",
"staudenmeir/eloquent-has-many-deep": "^1.7",
"stevebauman/purify": "^6.3",
"swentel/nostr-php": "^1.4"
},
"require-dev": {

129
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "b5121eada64499feb19cf07e547b35e6",
"content-hash": "9f7945982c4b7a31492454e52872e1a2",
"packages": [
{
"name": "akuechler/laravel-geoly",
@@ -1135,6 +1135,67 @@
},
"time": "2023-08-08T05:53:35+00:00"
},
{
"name": "ezyang/htmlpurifier",
"version": "v4.19.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
"reference": "b287d2a16aceffbf6e0295559b39662612b77fcf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/b287d2a16aceffbf6e0295559b39662612b77fcf",
"reference": "b287d2a16aceffbf6e0295559b39662612b77fcf",
"shasum": ""
},
"require": {
"php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0"
},
"require-dev": {
"cerdic/css-tidy": "^1.7 || ^2.0",
"simpletest/simpletest": "dev-master"
},
"suggest": {
"cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.",
"ext-bcmath": "Used for unit conversion and imagecrash protection",
"ext-iconv": "Converts text to and from non-UTF-8 encodings",
"ext-tidy": "Used for pretty-printing HTML"
},
"type": "library",
"autoload": {
"files": [
"library/HTMLPurifier.composer.php"
],
"psr-0": {
"HTMLPurifier": "library/"
},
"exclude-from-classmap": [
"/library/HTMLPurifier/Language/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-2.1-or-later"
],
"authors": [
{
"name": "Edward Z. Yang",
"email": "admin@htmlpurifier.org",
"homepage": "http://ezyang.com"
}
],
"description": "Standards compliant HTML filter written in PHP",
"homepage": "http://htmlpurifier.org/",
"keywords": [
"html"
],
"support": {
"issues": "https://github.com/ezyang/htmlpurifier/issues",
"source": "https://github.com/ezyang/htmlpurifier/tree/v4.19.0"
},
"time": "2025-10-17T16:34:55+00:00"
},
{
"name": "fruitcake/php-cors",
"version": "v1.4.0",
@@ -8234,6 +8295,72 @@
},
"time": "2026-02-28T21:33:50+00:00"
},
{
"name": "stevebauman/purify",
"version": "v6.3.2",
"source": {
"type": "git",
"url": "https://github.com/stevebauman/purify.git",
"reference": "deba4aa55a45a7593c369b52d481c87b545a5bf8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/stevebauman/purify/zipball/deba4aa55a45a7593c369b52d481c87b545a5bf8",
"reference": "deba4aa55a45a7593c369b52d481c87b545a5bf8",
"shasum": ""
},
"require": {
"ezyang/htmlpurifier": "^4.17",
"illuminate/contracts": "^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
"illuminate/support": "^7.0|^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
"php": ">=7.4"
},
"require-dev": {
"orchestra/testbench": "^5.0|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0",
"phpunit/phpunit": "^8.0|^9.0|^10.0|^11.5.3|^12.5.12"
},
"type": "library",
"extra": {
"laravel": {
"aliases": {
"Purify": "Stevebauman\\Purify\\Facades\\Purify"
},
"providers": [
"Stevebauman\\Purify\\PurifyServiceProvider"
]
}
},
"autoload": {
"psr-4": {
"Stevebauman\\Purify\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Steve Bauman",
"email": "steven_bauman@outlook.com"
}
],
"description": "An HTML Purifier / Sanitizer for Laravel",
"keywords": [
"Purifier",
"clean",
"cleaner",
"html",
"laravel",
"purification",
"purify"
],
"support": {
"issues": "https://github.com/stevebauman/purify/issues",
"source": "https://github.com/stevebauman/purify/tree/v6.3.2"
},
"time": "2026-03-18T16:42:42+00:00"
},
{
"name": "swentel/nostr-php",
"version": "1.9.4",

View File

@@ -36,7 +36,7 @@ return [
* More info: https://spatie.be/docs/laravel-markdown/v1/using-the-blade-component/passing-options-to-commonmark
*/
'commonmark_options' => [
'html_input' => 'escape',
'html_input' => 'allow',
'allow_unsafe_links' => false,
],

View File

@@ -138,7 +138,7 @@ new class extends Component {
{{ $projectProposal->name }}
</h1>
<x-markdown>
{!! $projectProposal->description !!}
{!! \Stevebauman\Purify\Facades\Purify::clean($projectProposal->description) !!}
</x-markdown>
</header>