diff --git a/Pipeline/Build.Pages.cs b/Pipeline/Build.Pages.cs index 7bee7852..9bac8c0a 100644 --- a/Pipeline/Build.Pages.cs +++ b/Pipeline/Build.Pages.cs @@ -339,6 +339,11 @@ static string EnsureSidebarPosition(string content, int position) static string Base64Decode(string base64EncodedData) { byte[] base64EncodedBytes = Convert.FromBase64String(base64EncodedData); - return Encoding.UTF8.GetString(base64EncodedBytes); + // The GitHub API returns file bytes verbatim, so a UTF-8 BOM survives into the + // decoded string. A leading BOM (U+FEFF) before the first markdown heading stops + // Docusaurus from parsing it (the heading renders as a literal paragraph) and also + // breaks StripReadmeFront's H1 detection, since char.IsWhiteSpace('') is false + // and TrimStart() leaves it in place. Drop it once at the single decode chokepoint. + return Encoding.UTF8.GetString(base64EncodedBytes).TrimStart(''); } }