diff --git a/app/Entities/Tools/Markdown/CustomImageConverter.php b/app/Entities/Tools/Markdown/CustomImageConverter.php index 97b7afd1a..6642b292a 100644 --- a/app/Entities/Tools/Markdown/CustomImageConverter.php +++ b/app/Entities/Tools/Markdown/CustomImageConverter.php @@ -16,6 +16,7 @@ class CustomImageConverter extends ImageConverter if ($withinDrawing) { $src = e($element->getAttribute('src')); $alt = e($element->getAttribute('alt')); + return "\"{$alt}\"/"; } diff --git a/app/Entities/Tools/Markdown/HtmlToMarkdown.php b/app/Entities/Tools/Markdown/HtmlToMarkdown.php index 8c13ee028..473435c7f 100644 --- a/app/Entities/Tools/Markdown/HtmlToMarkdown.php +++ b/app/Entities/Tools/Markdown/HtmlToMarkdown.php @@ -5,12 +5,10 @@ namespace BookStack\Entities\Tools\Markdown; use League\HTMLToMarkdown\Converter\BlockquoteConverter; use League\HTMLToMarkdown\Converter\CodeConverter; use League\HTMLToMarkdown\Converter\CommentConverter; -use League\HTMLToMarkdown\Converter\DivConverter; use League\HTMLToMarkdown\Converter\EmphasisConverter; use League\HTMLToMarkdown\Converter\HardBreakConverter; use League\HTMLToMarkdown\Converter\HeaderConverter; use League\HTMLToMarkdown\Converter\HorizontalRuleConverter; -use League\HTMLToMarkdown\Converter\ImageConverter; use League\HTMLToMarkdown\Converter\LinkConverter; use League\HTMLToMarkdown\Converter\ListBlockConverter; use League\HTMLToMarkdown\Converter\ListItemConverter; diff --git a/composer.lock b/composer.lock index 478affb95..4b0cd13d3 100644 --- a/composer.lock +++ b/composer.lock @@ -58,16 +58,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.220.3", + "version": "3.222.1", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "fbb2d7349916c15758ee02dfd001a714883a9adf" + "reference": "632621d97180e82d3adc1245a7b272774c30dbf5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/fbb2d7349916c15758ee02dfd001a714883a9adf", - "reference": "fbb2d7349916c15758ee02dfd001a714883a9adf", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/632621d97180e82d3adc1245a7b272774c30dbf5", + "reference": "632621d97180e82d3adc1245a7b272774c30dbf5", "shasum": "" }, "require": { @@ -143,9 +143,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.220.3" + "source": "https://github.com/aws/aws-sdk-php/tree/3.222.1" }, - "time": "2022-04-22T18:18:31+00:00" + "time": "2022-04-28T18:17:24+00:00" }, { "name": "bacon/bacon-qr-code", @@ -978,16 +978,16 @@ }, { "name": "dompdf/dompdf", - "version": "v1.2.1", + "version": "v1.2.2", "source": { "type": "git", "url": "https://github.com/dompdf/dompdf.git", - "reference": "c6dfd9bb8b0040609f04754f729d4cb3016e0575" + "reference": "5031045d9640b38cfc14aac9667470df09c9e090" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/c6dfd9bb8b0040609f04754f729d4cb3016e0575", - "reference": "c6dfd9bb8b0040609f04754f729d4cb3016e0575", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/5031045d9640b38cfc14aac9667470df09c9e090", + "reference": "5031045d9640b38cfc14aac9667470df09c9e090", "shasum": "" }, "require": { @@ -998,6 +998,8 @@ "php": "^7.1 || ^8.0" }, "require-dev": { + "ext-json": "*", + "ext-zip": "*", "mockery/mockery": "^1.3", "phpunit/phpunit": "^7.5 || ^8 || ^9", "squizlabs/php_codesniffer": "^3.5" @@ -1039,9 +1041,9 @@ "homepage": "https://github.com/dompdf/dompdf", "support": { "issues": "https://github.com/dompdf/dompdf/issues", - "source": "https://github.com/dompdf/dompdf/tree/v1.2.1" + "source": "https://github.com/dompdf/dompdf/tree/v1.2.2" }, - "time": "2022-03-24T12:57:42+00:00" + "time": "2022-04-27T13:50:54+00:00" }, { "name": "dragonmantank/cron-expression", @@ -1788,16 +1790,16 @@ }, { "name": "laravel/framework", - "version": "v8.83.9", + "version": "v8.83.10", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "ac6e16bb56510eda2e373c6365d5c92da3fd559d" + "reference": "148ae59b7da6c3db6736374d357c5aaef9506fb7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/ac6e16bb56510eda2e373c6365d5c92da3fd559d", - "reference": "ac6e16bb56510eda2e373c6365d5c92da3fd559d", + "url": "https://api.github.com/repos/laravel/framework/zipball/148ae59b7da6c3db6736374d357c5aaef9506fb7", + "reference": "148ae59b7da6c3db6736374d357c5aaef9506fb7", "shasum": "" }, "require": { @@ -1957,7 +1959,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-04-19T15:01:38+00:00" + "time": "2022-04-27T14:07:37+00:00" }, { "name": "laravel/serializable-closure", @@ -4955,16 +4957,16 @@ }, { "name": "symfony/console", - "version": "v5.4.7", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "900275254f0a1a2afff1ab0e11abd5587a10e1d6" + "reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/900275254f0a1a2afff1ab0e11abd5587a10e1d6", - "reference": "900275254f0a1a2afff1ab0e11abd5587a10e1d6", + "url": "https://api.github.com/repos/symfony/console/zipball/ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b", + "reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b", "shasum": "" }, "require": { @@ -5034,7 +5036,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.7" + "source": "https://github.com/symfony/console/tree/v5.4.8" }, "funding": [ { @@ -5050,7 +5052,7 @@ "type": "tidelift" } ], - "time": "2022-03-31T17:09:19+00:00" + "time": "2022-04-12T16:02:29+00:00" }, { "name": "symfony/css-selector", @@ -5187,16 +5189,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.7", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "060bc01856a1846e3e4385261bc9ed11a1dd7b6a" + "reference": "c1fcde614dfe99d62a83b796a53b8bad358b266a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/060bc01856a1846e3e4385261bc9ed11a1dd7b6a", - "reference": "060bc01856a1846e3e4385261bc9ed11a1dd7b6a", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/c1fcde614dfe99d62a83b796a53b8bad358b266a", + "reference": "c1fcde614dfe99d62a83b796a53b8bad358b266a", "shasum": "" }, "require": { @@ -5238,7 +5240,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.7" + "source": "https://github.com/symfony/error-handler/tree/v5.4.8" }, "funding": [ { @@ -5254,7 +5256,7 @@ "type": "tidelift" } ], - "time": "2022-03-18T16:21:29+00:00" + "time": "2022-04-12T15:48:08+00:00" }, { "name": "symfony/event-dispatcher", @@ -5422,16 +5424,16 @@ }, { "name": "symfony/finder", - "version": "v5.4.3", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d" + "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d", + "url": "https://api.github.com/repos/symfony/finder/zipball/9b630f3427f3ebe7cd346c277a1408b00249dad9", + "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9", "shasum": "" }, "require": { @@ -5465,7 +5467,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.3" + "source": "https://github.com/symfony/finder/tree/v5.4.8" }, "funding": [ { @@ -5481,20 +5483,20 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:34:36+00:00" + "time": "2022-04-15T08:07:45+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.6", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "34e89bc147633c0f9dd6caaaf56da3b806a21465" + "reference": "ff2818d1c3d49860bcae1f2cbb5eb00fcd3bf9e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/34e89bc147633c0f9dd6caaaf56da3b806a21465", - "reference": "34e89bc147633c0f9dd6caaaf56da3b806a21465", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ff2818d1c3d49860bcae1f2cbb5eb00fcd3bf9e2", + "reference": "ff2818d1c3d49860bcae1f2cbb5eb00fcd3bf9e2", "shasum": "" }, "require": { @@ -5538,7 +5540,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.6" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.8" }, "funding": [ { @@ -5554,20 +5556,20 @@ "type": "tidelift" } ], - "time": "2022-03-05T21:03:43+00:00" + "time": "2022-04-22T08:14:12+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.7", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "509243b9b3656db966284c45dffce9316c1ecc5c" + "reference": "cf7e61106abfc19b305ca0aedc41724ced89a02a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/509243b9b3656db966284c45dffce9316c1ecc5c", - "reference": "509243b9b3656db966284c45dffce9316c1ecc5c", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/cf7e61106abfc19b305ca0aedc41724ced89a02a", + "reference": "cf7e61106abfc19b305ca0aedc41724ced89a02a", "shasum": "" }, "require": { @@ -5650,7 +5652,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.7" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.8" }, "funding": [ { @@ -5666,20 +5668,20 @@ "type": "tidelift" } ], - "time": "2022-04-02T06:04:20+00:00" + "time": "2022-04-27T17:22:21+00:00" }, { "name": "symfony/mime", - "version": "v5.4.7", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "92d27a34dea2e199fa9b687e3fff3a7d169b7b1c" + "reference": "af49bc163ec3272f677bde3bc44c0d766c1fd662" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/92d27a34dea2e199fa9b687e3fff3a7d169b7b1c", - "reference": "92d27a34dea2e199fa9b687e3fff3a7d169b7b1c", + "url": "https://api.github.com/repos/symfony/mime/zipball/af49bc163ec3272f677bde3bc44c0d766c1fd662", + "reference": "af49bc163ec3272f677bde3bc44c0d766c1fd662", "shasum": "" }, "require": { @@ -5733,7 +5735,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.7" + "source": "https://github.com/symfony/mime/tree/v5.4.8" }, "funding": [ { @@ -5749,7 +5751,7 @@ "type": "tidelift" } ], - "time": "2022-03-11T16:08:05+00:00" + "time": "2022-04-12T15:48:08+00:00" }, { "name": "symfony/polyfill-ctype", @@ -6570,16 +6572,16 @@ }, { "name": "symfony/process", - "version": "v5.4.7", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "38a44b2517b470a436e1c944bf9b9ba3961137fb" + "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/38a44b2517b470a436e1c944bf9b9ba3961137fb", - "reference": "38a44b2517b470a436e1c944bf9b9ba3961137fb", + "url": "https://api.github.com/repos/symfony/process/zipball/597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", + "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", "shasum": "" }, "require": { @@ -6612,7 +6614,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.7" + "source": "https://github.com/symfony/process/tree/v5.4.8" }, "funding": [ { @@ -6628,20 +6630,20 @@ "type": "tidelift" } ], - "time": "2022-03-18T16:18:52+00:00" + "time": "2022-04-08T05:07:18+00:00" }, { "name": "symfony/routing", - "version": "v5.4.3", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "44b29c7a94e867ccde1da604792f11a469958981" + "reference": "e07817bb6244ea33ef5ad31abc4a9288bef3f2f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/44b29c7a94e867ccde1da604792f11a469958981", - "reference": "44b29c7a94e867ccde1da604792f11a469958981", + "url": "https://api.github.com/repos/symfony/routing/zipball/e07817bb6244ea33ef5ad31abc4a9288bef3f2f7", + "reference": "e07817bb6244ea33ef5ad31abc4a9288bef3f2f7", "shasum": "" }, "require": { @@ -6702,7 +6704,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.3" + "source": "https://github.com/symfony/routing/tree/v5.4.8" }, "funding": [ { @@ -6718,7 +6720,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-04-18T21:45:37+00:00" }, { "name": "symfony/service-contracts", @@ -6805,16 +6807,16 @@ }, { "name": "symfony/string", - "version": "v5.4.3", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10" + "reference": "3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10", + "url": "https://api.github.com/repos/symfony/string/zipball/3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8", + "reference": "3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8", "shasum": "" }, "require": { @@ -6871,7 +6873,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.3" + "source": "https://github.com/symfony/string/tree/v5.4.8" }, "funding": [ { @@ -6887,20 +6889,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-04-19T10:40:37+00:00" }, { "name": "symfony/translation", - "version": "v5.4.7", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "e1eb790575202ee3ac2659f55b93b05853726f8e" + "reference": "f5c0f6d1f20993b2606f3a5f36b1dc8c1899170b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/e1eb790575202ee3ac2659f55b93b05853726f8e", - "reference": "e1eb790575202ee3ac2659f55b93b05853726f8e", + "url": "https://api.github.com/repos/symfony/translation/zipball/f5c0f6d1f20993b2606f3a5f36b1dc8c1899170b", + "reference": "f5c0f6d1f20993b2606f3a5f36b1dc8c1899170b", "shasum": "" }, "require": { @@ -6968,7 +6970,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.4.7" + "source": "https://github.com/symfony/translation/tree/v5.4.8" }, "funding": [ { @@ -6984,7 +6986,7 @@ "type": "tidelift" } ], - "time": "2022-03-24T17:09:09+00:00" + "time": "2022-04-22T08:14:12+00:00" }, { "name": "symfony/translation-contracts", @@ -7066,16 +7068,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.4.6", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0" + "reference": "cdcadd343d31ad16fc5e006b0de81ea307435053" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/294e9da6e2e0dd404e983daa5aa74253d92c05d0", - "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cdcadd343d31ad16fc5e006b0de81ea307435053", + "reference": "cdcadd343d31ad16fc5e006b0de81ea307435053", "shasum": "" }, "require": { @@ -7135,7 +7137,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.6" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.8" }, "funding": [ { @@ -7151,7 +7153,7 @@ "type": "tidelift" } ], - "time": "2022-03-02T12:42:23+00:00" + "time": "2022-04-26T13:19:20+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -9003,16 +9005,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.5.7", + "version": "1.6.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "7fb7e2e1e9f3d59a26a413b2d3d5e47f0edb75ac" + "reference": "6128620b98292e0b69ea6d799871d77163681c8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/7fb7e2e1e9f3d59a26a413b2d3d5e47f0edb75ac", - "reference": "7fb7e2e1e9f3d59a26a413b2d3d5e47f0edb75ac", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/6128620b98292e0b69ea6d799871d77163681c8e", + "reference": "6128620b98292e0b69ea6d799871d77163681c8e", "shasum": "" }, "require": { @@ -9038,7 +9040,7 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.5.7" + "source": "https://github.com/phpstan/phpstan/tree/1.6.3" }, "funding": [ { @@ -9058,7 +9060,7 @@ "type": "tidelift" } ], - "time": "2022-04-20T12:20:27+00:00" + "time": "2022-04-28T11:27:53+00:00" }, { "name": "phpunit/php-code-coverage", diff --git a/tests/Entity/MarkdownToHtmlTest.php b/tests/Entity/MarkdownToHtmlTest.php index 5a2b63c78..158103c7e 100644 --- a/tests/Entity/MarkdownToHtmlTest.php +++ b/tests/Entity/MarkdownToHtmlTest.php @@ -73,5 +73,4 @@ class MarkdownToHtmlTest extends TestCase static::assertEquals($expectedMarkdown, $markdown); } } - }