Open adamralph opened 3 years ago
@adamralph, thanks for the proposal! Indeed, nuget.org doesn't support yet the full set of markdown feature GitHub does. If you are interested in contributing and sending a PR we will gladly work with you on merging and shipping it.
@skofman1 I won't be attempting a contribution here. I wouldn't know where to start.
@adamralph , sure thing. We will keep an eye up for upvotes and prioritize accordingly.
Use of HTML in Markdown - including <sub>
and <sup>
elements - is extremely common. Here are 10 popular GitHub C# projects that use HTML in their READMEs:
GitHub project | NuGet README preview | Stars |
---|---|---|
microsoft/PowerToys | Preview | 57582 |
dotnet-architecture/eShopOnContainers | Preview | 18232 |
mxgmn/WaveFunctionCollapse | Preview | 16662 |
NickeManarin/ScreenToGif | Preview | 14981 |
dotnet/roslyn | Preview | 14697 |
AvaloniaUI/Avalonia | Preview | 11675 |
files-community/Files | Preview | 11561 |
Unity-Technologies/ml-agents | Preview | 11411 |
jellyfin/jellyfin | Preview | 11319 |
huiyadanli/RevokeMsgPatcher | Preview | 10640 |
I have a breakdown of the most commonly HTML elements in C# GitHub projects here: https://github.com/loic-sharma/readme-experiments/blob/main/reports/htmlElements.csv
Currently we disable all HTML from Markdown files:
This is done for safety reasons as Markdig allows for dangerous elements like <script>
or <iframe>
. Unfortunately Markdig does not let you configure an allowlist or blocklist for HTML elements. It seems our options are:
The first option seems like the best path. If we go with the second option we'd definitely would want to get a security review from security experts.
Hey, Just want to raise my voice on this issue, as it is causing many of my packages to not render correctly on NuGet. For example: https://www.nuget.org/packages/Tomlyn/
On all my projects, I'm putting usually a html logo aligned on the right side:
<img align="right" width="160px" height="160px" src="img/logo.png">
- Contribute an allowlist feature to Markdig, or...
- Enable all HTML elements but then use something like HtmlSanitizer to block unsafe elements
The first option seems like the best path. If we go with the second option we'd definitely would want to get a security review from security experts.
As the main developer of markdig
, I would suggest more the second approach. This is what I used for the service babelmark
where I'm stripping all javascripts/events from the code with NUglify here. Can't vouch for the security, but HtmlSanitizer looks good.
Since the vast majority of README files are designed to render correctly in GitHub, it would seem sensible to replicate the HTML rendering in GitHub, in the NuGet gallery.
I just added logos to a few of my readmes only to realize after release that they don't show on nuget.org. github/cmark-gfm is the markdown library used by GitHub.
Please support \ too (or ignore it by not displaying the HTML tag)
I disagree with @wiz0u, I'd rather see the ugly HTML (so people know something is there, even if it's not currently rendered properly) than to have it hidden away, which developers would find even more perplexing.
And put me on the list of people using HTML in Markdown which looks awful on NuGet.
@bradwilson Thank you for your feedback. Please free feel to upvote this issue so that we could reprioritize.
@bradwilson Thank you for your feedback. Please free feel to upvote this issue so that we could reprioritize.
If you don't mind me asking, is liking this issue considered an upvote or somewhere else?
@bradwilson Thank you for your feedback. Please free feel to upvote this issue so that we could reprioritize.
If you don't mind me asking, is liking this issue considered an upvote or somewhere else?
Thumb up(👍 )on issue description on the top! currently, it has 20 👍
Currently this issue is 4th most upvoted, while being just 2 years old; other 3 issues are 5+ y/o with not much more votes. Can we hope to see this implemented in the near future?
Just thought I'd chime in that the image tag is not rendering for my Nuget package, despite the image host being on the allowed domain list (imgur).
I don't necessarily need to use html. Does Nuget support native image markdown?
@lyndaidaii As of today, this issue has the second most upvotes on this repository, so I think it's fair to say that this is a highly sought-after feature request. That being said, are there any plans to put this task on a roadmap? I am not feeling like anybody (from NuGet) is currently keeping an eye on that.
@StefanGreve, thank you for feedback. I will bring this up to team for planning see if we could prioritize work.
What other tags do people want to see supported or even features from Markdig supported here?
https://github.com/xoofx/markdig?tab=readme-ov-file#features
I will need to take a long look at this issue and create another list on what we need to support in bite-sized chunks. Thanks for your patience.
<sub>
and <sup>
tags are not rendered correctly.<img>
tags, especially with fixed width or height, are not supported.<br>
tags are not rendered as expected.<p>
tags with center alignment are not supported.<a>
tags are not functioning as intended.<div>
tags with center alignment are not rendered properly.<h1>
and other heading tags have issues.
Is your feature request related to a problem? Please describe.
GitHub renders
<sub>
and<sup
> E.g.This is
<sub>
text.This is
<sup>
text.Edit by @joelverhagen: the following list of HTML tags should be considered:
<sub>
(this issue)<sup>
(this issue and https://github.com/NuGet/NuGetGallery/issues/8913)<img>
, especially with fixed width or height (https://github.com/NuGet/NuGetGallery/issues/8828)<br>
(https://github.com/NuGet/NuGetGallery/issues/8836, workaround: https://github.com/NuGet/NuGetGallery/issues/8836#issuecomment-985963667)<p>
with center (https://github.com/NuGet/NuGetGallery/issues/9186)<a>
(https://github.com/NuGet/NuGetGallery/issues/9186)<div>
with center (https://github.com/NuGet/NuGetGallery/issues/8828)<h1>
and other sides (https://github.com/NuGet/NuGetGallery/issues/8828)Describe the solution you'd like
I'd like this to be supported in the rendering of package readme's in the NuGet gallery.
Additional context
<sub>
and<sup>
are currently not rendered. E.g. from https://www.nuget.org/packages/SimpleExec/8.0.0-alpha.4 —