From ecfb7a18021c8941fa6f059d35ec900d7bd148f1 Mon Sep 17 00:00:00 2001 From: Jan-Hendrik Willms <tleilax+studip@gmail.com> Date: Wed, 23 Oct 2024 06:49:17 +0000 Subject: [PATCH] fix syntax highlighting, fixes #4650 Closes #4650 Merge request studip/studip!3459 --- lib/classes/StudipCoreFormat.php | 8 +++++--- resources/assets/javascripts/lib/markup.js | 2 +- resources/assets/stylesheets/studip.scss | 9 ++++++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/classes/StudipCoreFormat.php b/lib/classes/StudipCoreFormat.php index 7e3358c8aab..718d10f9621 100644 --- a/lib/classes/StudipCoreFormat.php +++ b/lib/classes/StudipCoreFormat.php @@ -501,9 +501,11 @@ class StudipCoreFormat extends TextFormat $codetype = " ".decodeHTML(trim(mb_substr($matches[1], 1)), ENT_QUOTES); } $code = decodeHTML(trim($matches[2]), ENT_QUOTES); - return sprintf('<pre class="usercode %1$s"><code class="%1$s">%2$s</code></pre>', - htmlReady($codetype), - htmlReady($code)); + return sprintf( + '<pre><code class="%s">%s</code></pre>', + $codetype ? htmlReady("language-{$codetype}") : '', + htmlReady($code) + ); } /** diff --git a/resources/assets/javascripts/lib/markup.js b/resources/assets/javascripts/lib/markup.js index 89eb0a37122..777105693d8 100644 --- a/resources/assets/javascripts/lib/markup.js +++ b/resources/assets/javascripts/lib/markup.js @@ -29,7 +29,7 @@ const Markup = { }); }, codehighlight: function (element) { - $('pre.usercode:not(.hljs)', element).each(function (index, block) { + $('pre code[class^="language-"]:not(.hljs)', element).each(function (index, block) { STUDIP.loadChunk('code-highlight').then((hljs) => { hljs.highlightBlock(block); }); diff --git a/resources/assets/stylesheets/studip.scss b/resources/assets/stylesheets/studip.scss index bf4022a96ea..7369a8bb5f8 100644 --- a/resources/assets/stylesheets/studip.scss +++ b/resources/assets/stylesheets/studip.scss @@ -474,7 +474,14 @@ h1:hover, h2:hover, h3:hover, h4:hover { color: var(--base-gray); } -pre.usercode { +pre { + &:has(code[class^="language-"]), + &.usercode { + margin: 0 0 10px; + } +} +pre code[class^="language-"], +pre.usercode code { padding: 5px; background-color: rgba(255, 255, 255, 0.5); border: hsla(0, 0%, 0%, 0.1) 5px solid; -- GitLab