Add syntax-highlighting

This commit is contained in:
lilith 2025-03-04 22:13:25 +01:00
commit 8d4b51f99e
Signed by: lilith
SSH key fingerprint: SHA256:7kmBUkMCVUCN9z9MyGuBan8hifDCBaiG1RonGxdCB3A
5 changed files with 196 additions and 88 deletions

View file

@ -181,30 +181,36 @@
<section>
<h2>Preformatted Text</h2>
<!-- TODO: custom highlighting theme -->
<p>
This example doesn't use any syntax highlighting, but one can of
course use a highlighting theme to make it easier to differentiate
identifiers and similar. At the current state, we don't recommended
a specific highlight-theme, but this might still change.
This example uses manual syntax highlighting using the following CSS
classes:
</p>
<ul>
<li><code>neutral</code></li>
<li><code>identifier</code></li>
<li><code>number</code></li>
<li><code>string</code></li>
<li><code>comment</code></li>
<li><code>keyword</code></li>
<li><code>function</code></li>
</ul>
<pre
aria-labelledby="code-positives-description"
><code>#include &lt;stdlib.h&gt;
><code><span class="keyword">#include</span> <span class="string">&lt;stdlib.h&gt;</span>
int *positives(int *numbers, int *size) {
int new_size = 0;
<span class="keyword">int</span> <span class="neutral">*</span><span class="identifier">positives</span><span class="neutral">(int</span> <span class="neutral">*</span><span class="identifier">numbers</span><span class="neutral">,</span> <span class="keyword">int</span> <span class="neutral">*</span><span class="identifier">size</span><span class="neutral">) {</span>
<span class="keyword">int</span> <span class="identifier">new_size</span> <span class="neutral">=</span> <span class="number">0</span><span class="neutral">;</span>
for (int i = 0; i &lt; *size; i++) {
if (numbers[i] &gt;= 0) {
numbers[new_size] = numbers[i];
new_size++;
}
}
<span class="keyword">for</span> <span class="neutral">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="neutral">=</span> <span class="number">0</span><span class="neutral">;</span> <span class="identifier">i</span> <span class="neutral">&lt;</span> <span class="neutral">*</span><span class="identifier">size</span><span class="neutral">;</span> <span class="identifier">i</span><span class="neutral">++) {</span>
<span class="keyword">if</span> <span class="neutral">(</span><span class="identifier">numbers</span><span class="neutral">[</span><span class="identifier">i</span><span class="neutral">]</span> <span class="neutral">&gt;=</span> <span class="number">0</span><span class="neutral">) {</span>
<span class="identifier">numbers</span><span class="neutral">[</span><span class="identifier">new_size</span><span class="neutral">]</span> <span class="neutral">=</span> <span class="identifier">numbers</span><span class="neutral">[</span><span class="identifier">i</span><span class="neutral">]</span><span class="neutral">;</span>
<span class="identifier">new_size</span><span class="neutral">++</span><span class="neutral">;</span>
<span class="neutral">}</span>
<span class="neutral">}</span>
*size = new_size;
return realloc(numbers, sizeof(*numbers) * new_size);
}</code></pre>
<span class="neutral">*</span><span class="identifier">size</span> <span class="neutral">=</span> <span class="identifier">new_size</span><span class="neutral">;</span>
<span class="keyword">return</span> <span class="function">realloc</span><span class="neutral">(</span><span class="identifier">numbers</span><span class="neutral">,</span> <span class="function">sizeof</span><span class="neutral">(*</span><span class="identifier">numbers</span><span class="neutral">)</span> <span class="neutral">*</span> <span class="identifier">new_size</span><span class="neutral">);</span>
<span class="neutral">}</span></code></pre>
<p>
This is a simple function written in C, which removes all negative
integers from an array and updates its element count.