diff --git a/Userland/Libraries/LibWebView/SourceHighlighter.cpp b/Userland/Libraries/LibWebView/SourceHighlighter.cpp index c1342a24e53..7459474ee4a 100644 --- a/Userland/Libraries/LibWebView/SourceHighlighter.cpp +++ b/Userland/Libraries/LibWebView/SourceHighlighter.cpp @@ -232,48 +232,7 @@ StringView SourceHighlighterClient::class_for_token(u64 token_type) const } } -static String generate_style() -{ - StringBuilder builder; - - builder.append(HTML_HIGHLIGHTER_STYLE); - builder.append(R"~~~( - .html { - counter-reset: line; - } - - .line { - counter-increment: line; - white-space: pre; - } - - .line::before { - content: counter(line) " "; - - display: inline-block; - width: 2.5em; - - padding-right: 0.5em; - text-align: right; - } - - @media (prefers-color-scheme: dark) { - .line::before { - color: darkgrey; - } - } - - @media (prefers-color-scheme: light) { - .line::before { - color: dimgray; - } - } -)~~~"sv); - - return MUST(builder.to_string()); -} - -String SourceHighlighterClient::to_html_string(URL::URL const& url) const +String SourceHighlighterClient::to_html_string(String const& url, HighlightOutputMode mode) const { StringBuilder builder; @@ -306,9 +265,9 @@ String SourceHighlighterClient::to_html_string(URL::URL const& url) const )~~~"sv); - builder.appendff("View Source - {}", escape_html_entities(MUST(url.to_string()))); - builder.appendff("", generate_style()); - builder.append(R"~~~( + builder.appendff("View Source - {}", escape_html_entities(url)); + builder.appendff("", HTML_HIGHLIGHTER_STYLE); + builder.append(R"~~~(
)~~~"sv);
diff --git a/Userland/Libraries/LibWebView/SourceHighlighter.h b/Userland/Libraries/LibWebView/SourceHighlighter.h
index c7966de2f41..0b48b7f065a 100644
--- a/Userland/Libraries/LibWebView/SourceHighlighter.h
+++ b/Userland/Libraries/LibWebView/SourceHighlighter.h
@@ -76,6 +76,7 @@ constexpr inline StringView HTML_HIGHLIGHTER_STYLE = R"~~~(
         html {
             background-color: rgb(30, 30, 30);
             color: white;
+            counter-reset: line;
         }
 
         :root {
@@ -86,6 +87,7 @@ constexpr inline StringView HTML_HIGHLIGHTER_STYLE = R"~~~(
             --internal-color: darkgrey;
             --string-color: goldenrod;
             --error-color: red;
+            --line-number-color: darkgrey;
         }
     }
 
@@ -98,6 +100,7 @@ constexpr inline StringView HTML_HIGHLIGHTER_STYLE = R"~~~(
             --internal-color: dimgrey;
             --string-color: darkgoldenrod;
             --error-color: darkred;
+            --line-number-color: dimgrey;
         }
     }
 
@@ -106,6 +109,23 @@ constexpr inline StringView HTML_HIGHLIGHTER_STYLE = R"~~~(
         font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
     }
 
+    .line {
+        counter-increment: line;
+        white-space: pre;
+    }
+
+    .line::before {
+        content: counter(line) " ";
+
+        display: inline-block;
+        width: 2.5em;
+
+        padding-right: 0.5em;
+        text-align: right;
+
+        color: var(--line-number-color);
+    }
+
     .tag {
         font-weight: 600;
         color: var(--keyword-color);