jekyll: Github pages jekyll renderer entity error

My Environment

Software Version(s)
Operating System
jekyll Latest
github-pages Latest

Expected Behaviour

HTML and SGML entities should be passed through. Entities unknown to jekyll should not be modified.



Current Behavior

HTML and SGML entities unknown to Jekyll appear to be represented as literals by commenting out their ampersand as &. This was discovered because the platform is missing one that I just tried to use.

image

I tried several themes; same results each. And then I remembered that 1/3 was actually added in HTML5, so I tried 𝔽, another entity that was added in HTML5; it’s borked too.

Yes, they’re borked outside of tables. Yes, they work as expected on Github proper.

So I tried &ename;, which is valid in xhtml and xml, but not html. Same thing: no bueno.

So next I tried one of the really gross corners of HTML. Some of the entities changed between HTML4.01 and HTML5. By example, ⟨ in HTML4.01 refers to U+27E8 left-pointing angle bracket, which is a mistake. Left-pointing angle bracket is a French quote mark, not the expected math bracket symbol. This was repaired, in HTML5, to point to U+2329 LeftAngleBracket.

And … and you’re emitting the entity, so it gets interpreted by the browser as HTML5, not HTML4. So it’s a mixed bag: you can use anything known by 4.01, but you will get results from your browser, which at this point will fairly universally be whatwg 5. So that’s fun.

Similar things happened with the card suits, the lozenge math symbol, the math ceiling and floor operators, the math bottom tack operator, the math circled-plus and circled-times, the logical subset superset subset-eq superset-eq, the geometry approx-eq thick-approx ne leq geq congruent similar therefore wedge vee angle prop-to, etc; there’s maybe 200 total.

There is exactly one entity in XHTML that isn’t in HTML4.01: '. (It’s in HTML5 though.) This becomes a useful test case. Jekyll renders it correctly.

And then, what about the weird HTML5 upper-case variants, eg &, or the lowercases like Å? Github’s UI renders them, yours doesn’t.

What about the HTML5 non-official pseudo-standards, like ⃜? Github honors them (this surprises me a little bit,) and you do not.

My current suspicion is that all non-HTML5 entities fail in Jekyll, but that all HTML5 replaced entities emerge as HTML5.

Some of the HTML5 entities don’t suck. This is the complete list of HTML5 entities, as characters (tab and newline are missing but exist.) I tried half a dozen of these; none of the ones I tried worked.

! # $ % ( ) * + , . / : ; = ? @ [ \ ] ^ _ ` { | } Ā ā Ă ă Ą ą Ć ć Ĉ ĉ Ċ ċ Č č Ď ď Đ đ Ē ē Ė ė Ę ę Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ģ Ĥ ĥ Ħ ħ Ĩ ĩ Ī ī Į į İ ı IJ ij Ĵ ĵ Ķ ķ ĸ Ĺ ĺ Ļ ļ Ľ ľ Ŀ ŀ Ł ł Ń ń Ņ ņ Ň ň ʼn Ŋ ŋ Ō ō Ő ő Ŕ ŕ Ŗ ŗ Ř ř Ś ś Ŝ ŝ Ş ş Ţ ţ Ť ť Ŧ ŧ Ũ ũ Ū ū Ŭ ŭ Ů ů Ű ű Ų ų Ŵ ŵ Ŷ ŷ Ź ź Ż ż Ž ž Ƶ ǵ ȷ ˇ ˘ ˙ ˚ ˛ ˝ ̑ ϕ Ϝ ϝ ϰ ϱ ϵ ϶ Ё Ђ Ѓ Є Ѕ І Ї Ј Љ Њ Ћ Ќ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я ё ђ ѓ є ѕ і ї ј љ њ ћ ќ ў џ           ​ ‐ ― ‖ ‥ ‱ ‴ ‵ ⁁ ⁃ ⁏ ⁗   ⁠ ⁡ ⁢ ⁣ ℂ ℅ ℊ ℋ ℌ ℍ ℎ ℏ ℐ ℒ ℓ ℕ № ℗ ℙ ℚ ℛ ℝ ℞ ℤ ℧ ℨ ℩ ℬ ℭ ℯ ℰ ℱ ℳ ℴ ℶ ℷ ℸ ⅅ ⅆ ⅇ ⅈ ⅓ ⅔ ⅕ ⅖ ⅗ ⅘ ⅙ ⅚ ⅛ ⅜ ⅝ ⅞ ↕ ↖ ↗ ↘ ↙ ↚ ↛ ↝ ↞ ↟ ↠ ↡ ↢ ↣ ↤ ↥ ↦ ↧ ↩ ↪ ↫ ↬ ↭ ↮ ↰ ↱ ↲ ↳ ↶ ↷ ↺ ↻ ↼ ↽ ↾ ↿ ⇀ ⇁ ⇂ ⇃ ⇄ ⇅ ⇆ ⇇ ⇈ ⇉ ⇊ ⇋ ⇌ ⇍ ⇎ ⇏ ⇕ ⇖ ⇗ ⇘ ⇙ ⇚ ⇛ ⇝ ⇤ ⇥ ⇵ ⇽ ⇾ ⇿ ∁ ∄ ∌ ∐ ∓ ∔ ∖ ∘ ∟ ∡ ∢ ∣ ∤ ∥ ∦ ∬ ∭ ∮ ∯ ∰ ∱ ∲ ∳ ∵ ∶ ∷ ∸ ∺ ∻ ∽ ∾ ∿ ≀ ≁ ≂ ≃ ≄ ≆ ≇ ≉ ≊ ≋ ≌ ≍ ≎ ≏ ≐ ≑ ≒ ≓ ≔ ≕ ≖ ≗ ≙ ≚ ≜ ≟ ≢ ≦ ≧ ≨ ≩ ≪ ≫ ≬ ≭ ≮ ≯ ≰ ≱ ≲ ≳ ≴ ≵ ≶ ≷ ≸ ≹ ≺ ≻ ≼ ≽ ≾ ≿ ⊀ ⊁ ⊈ ⊉ ⊊ ⊋ ⊍ ⊎ ⊏ ⊐ ⊑ ⊒ ⊓ ⊔ ⊖ ⊘ ⊙ ⊚ ⊛ ⊝ ⊞ ⊟ ⊠ ⊡ ⊢ ⊣ ⊤ ⊧ ⊨ ⊩ ⊪ ⊫ ⊬ ⊭ ⊮ ⊯ ⊰ ⊲ ⊳ ⊴ ⊵ ⊶ ⊷ ⊸ ⊹ ⊺ ⊻ ⊽ ⊾ ⊿ ⋀ ⋁ ⋂ ⋃ ⋄ ⋆ ⋇ ⋈ ⋉ ⋊ ⋋ ⋌ ⋍ ⋎ ⋏ ⋐ ⋑ ⋒ ⋓ ⋔ ⋕ ⋖ ⋗ ⋘ ⋙ ⋚ ⋛ ⋞ ⋟ ⋠ ⋡ ⋢ ⋣ ⋦ ⋧ ⋨ ⋩ ⋪ ⋫ ⋬ ⋭ ⋮ ⋯ ⋰ ⋱ ⋲ ⋳ ⋴ ⋵ ⋶ ⋷ ⋹ ⋺ ⋻ ⋼ ⋽ ⋾ ⌅ ⌆ ⌌ ⌍ ⌎ ⌏ ⌐ ⌒ ⌓ ⌕ ⌖ ⌜ ⌝ ⌞ ⌟ ⌢ ⌣ ⌭ ⌮ ⌶ ⌽ ⌿ ⍼ ⎰ ⎱ ⎴ ⎵ ⎶ ⏜ ⏝ ⏞ ⏟ ⏢ ⏧ ␣ Ⓢ ─ │ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼ ═ ║ ╒ ╓ ╔ ╕ ╖ ╗ ╘ ╙ ╚ ╛ ╜ ╝ ╞ ╟ ╠ ╡ ╢ ╣ ╤ ╥ ╦ ╧ ╨ ╩ ╪ ╫ ╬ ▀ ▄ █ ░ ▒ ▓ □ ▪ ▫ ▭ ▮ ▱ △ ▴ ▵ ▸ ▹ ▽ ▾ ▿ ◂ ◃ ○ ◬ ◯ ◸ ◹ ◺ ◻ ◼ ★ ☆ ☎ ♀ ♂ ♪ ♭ ♮ ♯ ✓ ✗ ✠ ✶ ❘ ❲ ❳ ⟈ ⟉ ⟦ ⟧ ⟪ ⟫ ⟬ ⟭ ⟵ ⟶ ⟷ ⟸ ⟹ ⟺ ⟼ ⟿ ⤂ ⤃ ⤄ ⤅ ⤌ ⤍ ⤎ ⤏ ⤐ ⤑ ⤒ ⤓ ⤖ ⤙ ⤚ ⤛ ⤜ ⤝ ⤞ ⤟ ⤠ ⤣ ⤤ ⤥ ⤦ ⤧ ⤨ ⤩ ⤪ ⤳ ⤵ ⤶ ⤷ ⤸ ⤹ ⤼ ⤽ ⥅ ⥈ ⥉ ⥊ ⥋ ⥎ ⥏ ⥐ ⥑ ⥒ ⥓ ⥔ ⥕ ⥖ ⥗ ⥘ ⥙ ⥚ ⥛ ⥜ ⥝ ⥞ ⥟ ⥠ ⥡ ⥢ ⥣ ⥤ ⥥ ⥦ ⥧ ⥨ ⥩ ⥪ ⥫ ⥬ ⥭ ⥮ ⥯ ⥰ ⥱ ⥲ ⥳ ⥴ ⥵ ⥶ ⥸ ⥹ ⥻ ⥼ ⥽ ⥾ ⥿ ⦅ ⦆ ⦋ ⦌ ⦍ ⦎ ⦏ ⦐ ⦑ ⦒ ⦓ ⦔ ⦕ ⦖ ⦚ ⦜ ⦝ ⦤ ⦥ ⦦ ⦧ ⦨ ⦩ ⦪ ⦫ ⦬ ⦭ ⦮ ⦯ ⦰ ⦱ ⦲ ⦳ ⦴ ⦵ ⦶ ⦷ ⦹ ⦻ ⦼ ⦾ ⦿ ⧀ ⧁ ⧂ ⧃ ⧄ ⧅ ⧉ ⧍ ⧎ ⧏ ⧐ ⧜ ⧝ ⧞ ⧣ ⧤ ⧥ ⧫ ⧴ ⧶ ⨀ ⨁ ⨂ ⨄ ⨆ ⨌ ⨍ ⨐ ⨑ ⨒ ⨓ ⨔ ⨕ ⨖ ⨗ ⨢ ⨣ ⨤ ⨥ ⨦ ⨧ ⨩ ⨪ ⨭ ⨮ ⨯ ⨰ ⨱ ⨳ ⨴ ⨵ ⨶ ⨷ ⨸ ⨹ ⨺ ⨻ ⨼ ⨿ ⩀ ⩂ ⩃ ⩄ ⩅ ⩆ ⩇ ⩈ ⩉ ⩊ ⩋ ⩌ ⩍ ⩐ ⩓ ⩔ ⩕ ⩖ ⩗ ⩘ ⩚ ⩛ ⩜ ⩝ ⩟ ⩦ ⩪ ⩭ ⩮ ⩯ ⩰ ⩱ ⩲ ⩳ ⩴ ⩵ ⩷ ⩸ ⩹ ⩺ ⩻ ⩼ ⩽ ⩾ ⩿ ⪀ ⪁ ⪂ ⪃ ⪄ ⪅ ⪆ ⪇ ⪈ ⪉ ⪊ ⪋ ⪌ ⪍ ⪎ ⪏ ⪐ ⪑ ⪒ ⪓ ⪔ ⪕ ⪖ ⪗ ⪘ ⪙ ⪚ ⪝ ⪞ ⪟ ⪠ ⪡ ⪢ ⪤ ⪥ ⪦ ⪧ ⪨ ⪩ ⪪ ⪫ ⪬ ⪭ ⪮ ⪯ ⪰ ⪳ ⪴ ⪵ ⪶ ⪷ ⪸ ⪹ ⪺ ⪻ ⪼ ⪽ ⪾ ⪿ ⫀ ⫁ ⫂ ⫃ ⫄ ⫅ ⫆ ⫇ ⫈ ⫋ ⫌ ⫏ ⫐ ⫑ ⫒ ⫓ ⫔ ⫕ ⫖ ⫗ ⫘ ⫙ ⫚ ⫛ ⫤ ⫦ ⫧ ⫨ ⫩ ⫫ ⫬ ⫭ ⫮ ⫯ ⫰ ⫱ ⫲ ⫳ ⫽ ff fi fl ffi ffl 𝒜 𝒞 𝒟 𝒢 𝒥 𝒦 𝒩 𝒪 𝒫 𝒬 𝒮 𝒯 𝒰 𝒱 𝒲 𝒳 𝒴 𝒵 𝒶 𝒷 𝒸 𝒹 𝒻 𝒽 𝒾 𝒿 𝓀 𝓁 𝓂 𝓃 𝓅 𝓆 𝓇 𝓈 𝓉 𝓊 𝓋 𝓌 𝓍 𝓎 𝓏 𝔄 𝔅 𝔇 𝔈 𝔉 𝔊 𝔍 𝔎 𝔏 𝔐 𝔑 𝔒 𝔓 𝔔 𝔖 𝔗 𝔘 𝔙 𝔚 𝔛 𝔜 𝔞 𝔟 𝔠 𝔡 𝔢 𝔣 𝔤 𝔥 𝔦 𝔧 𝔨 𝔩 𝔪 𝔫 𝔬 𝔭 𝔮 𝔯 𝔰 𝔱 𝔲 𝔳 𝔴 𝔵 𝔶 𝔷 𝔸 𝔹 𝔻 𝔼 𝔽 𝔾 𝕀 𝕁 𝕂 𝕃 𝕄 𝕆 𝕊 𝕋 𝕌 𝕍 𝕎 𝕏 𝕐 𝕒 𝕓 𝕔 𝕕 𝕖 𝕗 𝕘 𝕙 𝕚 𝕛 𝕜 𝕝 𝕞 𝕟 𝕠 𝕡 𝕢 𝕣 𝕤 𝕥 𝕦 𝕧 𝕨 𝕩 𝕪 𝕫 <⃒ =⃥ >⃒ fj    ↝̸ ∂̸ ∠⃒ ∩︀ ∪︀ ∼⃒ ∽̱ ∾̳ ≂̸ ≋̸ ≍⃒ ≎̸ ≏̸ ≐̸ ≡⃥ ≤⃒ ≥⃒ ≦̸ ≧̸ ≨︀ ≩︀ ≪̸ ≪⃒ ≫̸ ≫⃒ ≿̸ ⊂⃒ ⊃⃒ ⊊︀ ⊋︀ ⊏̸ ⊐̸ ⊓︀ ⊔︀ ⊴⃒ ⊵⃒ ⋘̸ ⋙̸ ⋚︀ ⋛︀ ⋵̸ ⋹̸ ⤳̸ ⧏̸ ⧐̸ ⩭̸ ⩰̸ ⩽̸ ⩾̸ ⪡̸ ⪢̸ ⪬︀ ⪭︀ ⪯̸ ⪰̸ ⫅̸ ⫆̸ ⫋︀ ⫌︀ ⫽⃥



Code Sample

&frac13;

Place this in a readme.md (example) with github pages turned on and pointed at root main. Any theme, including none, will do.

In the Github UI (example), this will render the 1/3 unicode symbol U+2153 as expected.

In the Github Pages render, you will get &frac13; instead. (example)

All HTML5 entities I tried resulted in equivalent failures.

Here is a test list of entities. It is useful to sort the table by the standard column.

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 21 (8 by maintainers)

Most upvoted comments

@StoneCypher I understand your frustration. At this point, the only path to resolution you have is to first migrate to using GitHub Actions to build and deploy your site and then use your proposed kramdown patch via your Gemfile.

We have other tooling in place to let us know when we need to update dependencies which is why there’s no reason to leave this open.

I’m not leaving this open as a reminder to update kramdown. Sorry.

Closing since this is a problem in kramdown and not Jekyll. You’ll most likely have to build your site differently rather than using the github-pages gem once a fix is released on the kramdown side.

This issue has been automatically marked as stale because it has not been commented on for at least two months.

The resources of the Jekyll team are limited, and so we are asking for your help.

If this is a bug and you can still reproduce this error on the latest 3.x-stable or master branch, please reply with all of the information you have about it in order to keep the issue open.

If this is a feature request, please consider building it first as a plugin. Jekyll 3 introduced hooks which provide convenient access points throughout the Jekyll build pipeline whereby most needs can be fulfilled. If this is something that cannot be built as a plugin, then please provide more information about why in order to keep this issue open.

This issue will automatically be closed in two months if no further activity occurs. Thank you for all your contributions.