Commit graph

101 commits

Author SHA1 Message Date
Art4
95b3322731 Fix many strict errors 2025-06-06 10:55:59 +00:00
Random Penguin
403b0672e6
Strip HTML tags from content sent as Markdown
The "toMarkdown" function prepares content to be sent, primarily, to Diaspora.

The HTML to Markdown converter by default "preserves HTML tags without Markdown equivalents like <span> and <div>." At least according to the README in /friendica/vendor/league/html-to-markdown/ - which also says "To strip HTML tags that don’t have a Markdown equivalent while preserving the content inside them, set strip_tags..."

Diaspora, however, does not appear to know what to DO with the HTML sent to it. It actually appears to encode the HTML and displays the code in the post body rather than rendering it as HTML. In which case it would make more sense to strip out all tags that have no Markdown equivalents.
Example
The post as sent from Friendica mixed BBcode and Markdown:
[class=postbox-ocean]Norddeutscher Bürger ![Noddeutscher Bürger - Bismark Brötchen (Roger Cziwerny - pixapay)](/rscamo/……)[/class]
The BBcode gets converted into an HTML <span> tag. 

It also looks like Diaspora encoded the Markdown for the image rather than parsing it, or at the very least didn't parse it as Markdown. Yet another reason to strip out HTML that has no Markdown equivalents. It looks like it may be encoding the tags and the content inside the tags.

And, yes, I'm aware the [class] BBcode was marked as "deprecated" in the Friendica code, but it's the only way my Bookface scheme for the "Frio" theme could implement both profile "Cover Photos" and "Postboxes." Which won't display to other platforms anyway, so I don't want to see this custom BBcode removed, I just think it needs to be stripped out before content is delivered to other platforms.

(There is a related issue with Hubzilla where the raw BBcode is coming through unparsed because the [class] code apparently does not exist in Hubzilla's BBcodes. But I've no clue where or how to fix that in Friendica or if it can be as it may need to be handled on Hubzilla's end).
2025-04-26 16:44:14 -05:00
Random Penguin
09c6061810
Strip HTML tags from content sent as Markdown
The "toMarkdown" function prepares content to be sent, primarily, to Diaspora.

The HTML to Markdown converter by default "preserves HTML tags without Markdown equivalents like `<span>` and `<div>.`" At least according to the README in _/friendica/vendor/league/html-to-markdown/_ - which also says "To strip HTML tags that don’t have a Markdown equivalent while preserving the content inside them, set strip_tags..."

Diaspora, however, does not appear to know what to DO with the HTML sent to it. It actually appears to _encode_ the HTML and displays the *code* in the post body rather than rendering it as HTML. In which case it would make more sense to strip out all tags that have no Markdown equivalents.
2025-04-20 12:05:26 -05:00
Art4
27a7735c65 Fix code style 2025-02-17 10:56:04 +00:00
Art4
3d3e34865b Create event for html2bbcode hook 2025-02-17 10:55:05 +00:00
Art4
fb3a3ea7e6 Fix errors in Content namespace 2024-12-01 22:53:53 +00:00
Tobias Diekershoff
30a5ef33b0 REUSE src directory 2024-08-24 15:27:00 +02:00
Michael
c42cff691a Issue 14295: Store the return url as hex string 2024-07-14 11:14:37 +00:00
Michael
1c66d49599 "Network::unparseURL" is replaced with "Uri::fromParts" 2024-05-14 21:47:57 +00:00
Michael
bca86beda0 Support for non HTML content for feed imports 2024-05-11 20:03:19 +00:00
Michael
38da9013ff The BBCode conversion is split into several smaller functions 2024-04-14 07:45:56 +00:00
Michael
7e88b703d8 Import the image attribut "title" 2024-01-22 07:47:38 +00:00
Michael
89e7420237 Friendica copyright changed from 2023 to 2034 2024-01-02 20:57:26 +00:00
Michael
4c3f2441f7 Display the contact alias if the URL is no HTTP link 2023-06-18 16:49:38 +00:00
Hypolite Petovan
3385147f25 Replace "forum" by "group" in the rest of the code 2023-06-02 13:52:41 -04:00
Hypolite Petovan
4f7740264e Replace "group" with "circle" in the rest of the code
- Remaining mentions already mean "forum"
2023-05-27 22:01:45 -04:00
Michael
1010443031 Simplify image url 2023-05-17 20:30:45 +00:00
Josh Soref
765891f070 spelling: widget
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-03-26 20:04:18 -04:00
Michael
9f11d189c8 Issue 12842: Use BBCode elements that are Markdown agnostic 2023-03-21 20:32:34 +00:00
Hypolite Petovan
1ce438e964 Rework new lines around list BBCode
- Remove blanket new lines remover in HTML::toBBCode
- Add test to ensure the commutativity of the markups
2023-03-18 23:35:51 -04:00
Hypolite Petovan
200bdb55ba Normalize [ul] and [ol] BBCode output to <ul> and <ol> HTML tags 2023-03-18 23:35:51 -04:00
Hypolite Petovan
7e618856ab Replace deprecated use of "self" in callables
- Address part of https://github.com/friendica/friendica/issues/12011#issuecomment-1383147421
2023-01-21 14:25:21 -05:00
Hypolite Petovan
5e2b655b43 Add implementation of HTTP Media Type
- Add charset extraction from DOMDocument
- TESTS!
2023-01-10 10:36:58 -05:00
Hypolite Petovan
1874a32728 Happy New Year 2023! 2023-01-01 09:36:24 -05:00
Hypolite Petovan
91c4ab2359 Add new xpathQuote and checkRelMeLink methods to Content\Text\HTML class
- Add tests for both methods
2022-12-23 02:41:22 -05:00
Hypolite Petovan
39607b20e2 Convert custom profile field URL values to rel="me" links 2022-12-18 23:24:59 -05:00
Hypolite Petovan
4a626ef101 Create new Contact\Redir module class
- Move /redir route to /contact/redir
2022-11-08 20:12:23 -05:00
Hypolite Petovan
3e1b6890b7 Fix removing falsy text nodes in HTML::tagToBBCodeSub
- This wrongly removed text nodes containing just '0'
2022-09-24 22:03:49 -04:00
Roland Häder
962b06bf41
Added check as suggested by @MrPetovan for empty $message. 2022-06-16 16:54:51 +02:00
Roland Häder
143e4c4a18
Added more known type-hints
Signed-off-by: Roland Häder <roland@mxchange.org>
2022-06-15 21:52:50 +02:00
Hypolite Petovan
237492979c Add rel="tag" to the HTML Purifier allow list in BBCode::convert
- This enables Mastodon to recognize hashtag links and prevent unwarranted link previews
2022-02-01 08:20:45 -05:00
Balázs Úr
e56a53647b Update copyright 2022-01-02 08:27:47 +01:00
Michael
eb1b2256a0 Removed and replaced deprecated functionalities 2021-11-07 14:00:47 +00:00
Hypolite Petovan
f9165fbaf0 Decode HTML entities in code blocks in HTML::toBBCode
- Replace PHP_EOL uses with the more common \n
2021-10-15 11:36:40 -04:00
Michael
c89533a70b Support for stacked profiler analysis 2021-07-27 04:57:29 +00:00
Michael
2502a9192d Many more app-variables removed 2021-07-24 10:09:39 +00:00
Michael
5a00902e11 Avoid HTML parsing of an empty body 2021-04-10 05:46:19 +00:00
Hypolite Petovan
3027b7d3aa Prevent HTMLPurify from removing ForkAwesome icon tags 2021-04-04 20:21:31 -04:00
Hypolite Petovan
62e7d0f40a Update HTML::purify debug comment formatting 2021-04-04 20:21:10 -04:00
Balázs Úr
054c301ef0 Update copyright 2021-03-29 08:40:20 +02:00
Hypolite Petovan
93823ecef5 Move HTML purification to own method in Content\Text\HTML 2021-03-14 14:19:33 -04:00
Adam Clark
995d53ebfc Missed this file when adding. 2021-02-23 10:18:56 -08:00
Michael
312c01a517 Several speed improvements (magiclink, caching, indexes) 2021-02-17 18:59:19 +00:00
Michael
3ec1270fde Quit when message is empty 2020-12-19 18:17:32 +00:00
Hypolite Petovan
ec0c9dcdb1 Remove support for [iframe] BBCode
- It was a huge gaping security hole, and now HTML Purify will remove the src attribute of all non-allowed sources anyway.
2020-12-18 10:32:36 -05:00
Hypolite Petovan
a0f6d678c4 Add HTML Purify to BBCode::convert
- Replace previous HTML cleanup using DOMDocument
- Remove obsolete HTML::sanitizeCSS method
- Use Strings::autoLinkRegEx for PageInfo::getRelevantUrlFromBody
- Update previous tests expectations
- Add new specific XSS tests
2020-12-04 07:29:48 -05:00
Michael
71b6226909 Some more avatar function replacements 2020-07-28 19:30:55 +00:00
Hypolite Petovan
0bc7b89530 Replace existing block escaping by performWitEscaped* calls 2020-06-08 18:40:20 -04:00
Michael
a3c4021f12 Issue 8514: Make paging for searcg items work again
Fixes #8514
2020-05-17 13:51:56 +00:00
Hypolite Petovan
b100b9600e Add rel="noopener noreferrer" to all target="_blank" links
See https://mathiasbynens.github.io/rel-noopener/
2020-02-24 20:07:34 -05:00