Show sourcecode
The following files exists in this folder. Click to view.
footer.php
header.php
hejsvejs.php
kallkod.php
kallkod.php
36 lines UTF-8 Unix (LF)
<?php
// Skriver ut sidans egen kod i ett terminalfönster, som visas med [cat source] (js/terminal.js).
// Koden färgas med highlight_string, som i ramverkets source.php.
// Inkluderas före <main> i övningarna, så att koden hamnar ovanför resultatet på smala skärmar
function visaKallkod() {
// Sidan som visas är alltid den första filen PHP läste in
$fil = get_included_files()[0];
$kod = file_get_contents($fil);
$mapp = basename(dirname($fil)); // t.ex. "funktioner"
// highlight_string skriver färgerna som style="color: ...".
// Med CSS-variabler följer de temat (--dim finns i ovningar.css)
ini_set("highlight.html", "var(--dim)");
ini_set("highlight.comment", "var(--dim)");
ini_set("highlight.default", "var(--fg)");
ini_set("highlight.keyword", "var(--link)");
ini_set("highlight.string", "var(--hover)");
// En rad till om filen inte slutar med en radbrytning
$rader = substr_count($kod, "\n") + (str_ends_with($kod, "\n") ? 0 : 1);
?>
<section class="terminal kallkod" id="kallkod" aria-label="Källkod" hidden>
<div class="titlebar">källkod — bash</div>
<p><span class="prompt">~/webbsrvprg/exercises/<?= $mapp ?> $</span> cat -n <?= basename($fil) ?></p>
<div class="kod">
<pre class="radnummer" aria-hidden="true"><?= implode("\n", range(1, $rader)) ?></pre>
<?= highlight_string($kod, true) ?>
</div>
<p><span class="prompt">~/webbsrvprg/exercises/<?= $mapp ?> $</span></p>
</section>
<?php
}
visaKallkod();