mirror of
https://github.com/discourse/discourse.git
synced 2024-12-18 20:03:47 +08:00
2ae913f45e
`escape` from `pretty-text/sanitizer` is a re-export of the same function defined in `discourse-common`. Updating the import paths across the codebase to use the `discourse-common` import path. `escape` is a rather simple function that can be accomplished with a regular expression in `discourse-common`. On the other hand, the remaining parts in `pretty-text/sanitizer` has a lot of code, PLUS it depend on the rather heavy "xss" NPM library. Currently, most of the consumers of `pretty-text/sanitizer` are of the `{ escape }` varient. This is resolved by this PR. The remaining usages are either: 1. via/through `PrettyText` which is essentially gated behind loading the markdown-it bundle, OR 2. via `sanitize` from `discourse/lib/text` I believe we may ultimately be able to move all the usages to behind the markdown-it bundle (or, equivilantly, set up another lazy bundle for `sanitize`) and be able to shed the sanitization code and the "xss" library from the initial page load. `discourse/lib/text` also defines a `sanitizeAsync` which is gated behind loading the markdown-it bundle. Looking through the usages of `sanitize`, I believe most of these can be safely switched to use `sanitizeAsync`, in that they are already in an asynchrnous path that handles a server response. Most of them are actually rendering a piece of server-generated HTML message as flash message, so I am not sure there really is value in sanitizing (we should be able to trust our own server?), but in any case, code-wise, they should already be able to absorb the async just fine. I am not sure if `sanitize` and `sanitizeAsync` are actually API compatible – they both take `options` but I think those `options` do pretty different things. This is somethign for another person to investigate down the road in another PR. According to `all-the-plugins`, `discourse-graphviz` also import from this location, so perhaps we should PR to update. That being said, it doesn't really hurt anything to keep the alias around for a while. |
||
---|---|---|
.. | ||
attribute-hook.js | ||
avatar-utils.js | ||
debounce.js | ||
deprecated.js | ||
discourse-template-map.js | ||
dom-from-string.js | ||
escape.js | ||
get-owner.js | ||
get-url.js | ||
helpers.js | ||
icon-library.js | ||
later.js | ||
loader-shim.js | ||
object.js | ||
popular-themes.js | ||
raw-handlebars-helpers.js | ||
raw-handlebars.js | ||
raw-templates.js | ||
suffix-trie.js |