Jeremy Friesen
aa7712a80e
Extracting container for allowed tags & attrs ( #15338 )
...
* Extracting container for allowed tags & attrs
Prior to this commit, we had several different locations in which we
specified ALLOWED_TAGS and ALLOWED_ATTRIBUTES for HTML rendering and
sanitization.
Curious to see how these either intersected or didn't, I opted to
create a container module that allows for us to more readily normalize
these allowed tags and attributes. It's possible that we won't do any
normalization, but this work helps make that easier.
Ideally, I'd love us to contextualize "why did we choose the
tags/attributes we chose?" But for now, I think consolidating these
tags and attributes will help make adding a `details` and `summary` tag
easier.
This relates to forem/rfcs#296
See [Google Sheet][1] for analysis of what tags/attributes are used, the
intersection and union.
[1]:https://docs.google.com/spreadsheets/d/1yj-a1qus1o0o4cj-_gOMP5yteeg-_f3s5z7kvK0Y7RM/edit#gid=0
* Fixing misnamed constant
* Fixing misnamed constant
* Extracting additional HtmlRendering use cases
* Adding comparative documentation for HTML tags
* Fixing broken parameter signature
* Moving constants into MarkdownProcessor
2021-12-16 12:24:45 -05:00
Josh Soref
0403e78f08
Spelling ( #15702 )
...
* spelling: access
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: additional
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: administrative
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: aggregate
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: assigns
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: attributes
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: autocomplete
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: because
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: between
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: bootstrap
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: calculating
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: captcha
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: character
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: chosen
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: commenter
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: competitor
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: componentize
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: contrast
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: corresponding
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: description
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: destroyed
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: destroys
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: discussion
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: episode
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: escaped
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: evaluates
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: expired
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: explicitly
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: facebook
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: fragment
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: functionality
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: improper
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: incentive
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: interfere
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: latest
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: message
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: minimum
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: moderator
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: mouseover
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: mutual
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: nonexistent
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: notification
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: occasionally
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: occurrence
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: occurs
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: octokit
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: offset
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: omitted
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: opacity
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: organization
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: organizations
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: overridden
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: override
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: overriding
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: prefill
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: previous
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: profile
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: recycling
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: registered
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: repositories
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: rescuing
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: response
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: returns
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: second
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: separator
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: services
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: subscriber
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: subscription
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: success
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: successful
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: successfully
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: suppress
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: test
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: thought
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: uniqueness
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: unknown
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: unproductive
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: unreachable
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: unsuccessful
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: utilities
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: utility
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: valid
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: voluntarily
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: vomited
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: website
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: withholding
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2021-12-07 06:59:10 -07:00
Michael Kohl
c16ec1d53d
Remove redundant freeze calls ( #14596 )
2021-08-26 10:01:08 -04:00
Andy Zhao
864a9195a9
[15-min-fix] Add option for triple tildes for fenced codeblocks ( #13810 )
...
* Add option for triple tildes for fenced codeblocks
Note that this doesn't account for all triple backticks in fenced codeblocks situations.
* Add commented out but failing test case for the future?
* Add tests from QA instructions
2021-05-24 14:19:04 -04:00
Andy Zhao
dc30eadad8
Remove unused attributes from markdown parser ( #13484 )
...
* Remove definitely unused attributes
* Refactor and remove unused attributes
* Add parentheses
* Prevent alt tag from having Liquid tags inside
* Add test
* Remove more unused attributes
* Scrub any valid attributes
* Remove unused tags and add more tests
* Remove <i> tag; <em> is used by parser
* Remove <center> b/c it's deprecated though still valid
* <cite> is a safe tag and used by some
* Eh I changed my mind about center lol
* Add underline <u> back in
* Don't allow width changes
* Use frozen constant for regex
* Use #remove over #gsub
2021-04-27 09:33:01 -04:00
Jacob Herrington
f76a8e1e99
[15-minute fix] Don't allow markdown to use CSS classes ( #13282 )
...
* Don't allow markdown to use CSS classes
* Fix code highlighting
* Add spec for ignoring CSS classes
* Add comment
2021-04-07 11:40:39 -04:00
Miguel Guardia
2a50efb936
Fix Markdown parsing of <code> tag ( #12797 )
...
* Create a new method that replaces <code> tags to
triple back ticks (```)
* Create unit tests for add_proper_code_tags method
* Rubocop fixes
* Change method name to one that is more descriptive/accurate
Fix method to allow for triple backticks, sameline code tags and multiline codetags in the same post/article
Fix test to match with method name change
* Fix rubocop offenses
* Fix Rubocop offenses
* Add additional assertions to make sure backticks are present
2021-03-03 17:41:56 +01:00
Alex
f5ab9552d5
Move MarkdownTraverser to service ( #12282 )
2021-01-20 11:29:42 -05:00
dependabot[bot]
a63ba17b6a
Bump liquid from 4.0.3 to 5.0.0 ( #12150 )
...
* Bump liquid from 4.0.3 to 5.0.0
Bumps [liquid](https://github.com/Shopify/liquid ) from 4.0.3 to 5.0.0.
- [Release notes](https://github.com/Shopify/liquid/releases )
- [Changelog](https://github.com/Shopify/liquid/blob/master/History.md )
- [Commits](https://github.com/Shopify/liquid/compare/v4.0.3...v5.0.0 )
Signed-off-by: dependabot[bot] <support@github.com>
* Convert ActiveSupport::SafeBuffer to string
* Disable echo and render tags
* Disable liquid tag
* Add issue link
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: rhymes <rhymes@hey.com>
2021-01-15 15:37:42 -06:00
Alex
31689fd76a
Break MarkdownFixer into MarkdownProcessor::Fixer services ( #12241 )
...
* Create new MarkdownProcessor::Fixer services
* Remove old MarkdownFixer
* Code cleanup
* Capitalize Base in code comments
* Remove comments related to inheritance
* Add fix_methods method to hold METHDOS constant
2021-01-14 10:26:46 -05:00
Alex
a5e6f7942c
Rename MarkdownParser to MarkdownProcessor::Parser ( #12248 )
...
* Rename MarkdownParser to MarkdownProcessor::Parse
* Wake up, Travis
* Fix typo
2021-01-13 10:39:13 -05:00