Das größte Problem beim Starten einer Website in Django war das Syntax-Highlighting. Okay, es gab ein Plugin auf Wordpress, das seinen Job machte, obwohl es die Site ein wenig lud, da die Hervorhebung serverseitig organisiert war. Aber bei der neuen Seite musste ich über dieses Thema nachdenken.
Zunächst fiel die Wahl darauf, wo genau das Syntax-Highlighting organisiert werden soll:
- Serverseite
- Oder Kundenseite
Nachdem ich nach Informationen gesucht habe, habe ich festgestellt, dass es nicht so viele vorgefertigte Lösungen gibt, um die Syntax auf der Serverseite zu organisieren, zum Beispiel Geshi und vielleicht alles, was in Python funktioniert. Und das kann den Server belasten, wenn es Staus im Caching gibt.
Aber mit Syntax-Highlighting auf der Client-Seite ist es interessanter geworden. Hier wurde zum Beispiel Hightlight.js und SyntaxHighlighter, und ein leichtgewichtiges Skript der Google Goodness Corporation, Javascript Code Prettifier, gewählt. Darüber hinaus wird es für eine so bekannte Ressource wie Stack Overflow verwendet. **
Verbindung
Der vielleicht größte Vorteil dieses Skripts ist seine hohe Betriebsgeschwindigkeit und die einfache Verbindung und Konfiguration.
Sie können dieses Skript in einer Zeile verbinden, müssen es jedoch am Ende der Seite verbinden, damit die Code-Syntax-Hervorhebung funktioniert.
<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>
Verwendung
Um die Funktionalität dieses Skripts zu verwenden, müssen Sie den hervorgehobenen Code in ein Tag einschließen, das die Klasse Prettyprint angibt
<pre class="prettyprint">...</pre>
oder
<code class="prettyprint">...
<pre class="prettyprint"> #include <iostream> using namespace std; int main(int argc, char *argv[]) { cout << "Hello World!" << endl; return 0; } </pre>
Sprachunterstützung
Das Skript unterstützt verschiedene Sprachen, die über die Klasse lang-* mit der entsprechenden sprachspezifischen Erweiterung angegeben werden.
<pre class="prettyprint lang-html"> The lang-* class specifies the language file extensions. File extensions supported by default include "bsh", "c", "cc", "cpp", "cs", "csh", "cyc", "cv", "htm", "html", "java", "js", "m", "mxml", "perl", "pl", "pm", "py", "rb", "sh", "xhtml", "xml", "xsl". </pre>
Zeilennummerierung
Das Skript unterstützt auch die Zeilennummerierung. Dazu müssen Sie die Klasse leinums angeben. Wenn klargestellt werden muss, dass der Code in einer bestimmten Zeile beginnt, muss die Nummer dieser Zeile nach einem Doppelpunkt angegeben werden, dh lineums: 18.
Standardmäßig erfolgt die Nummerierung alle fünf Zeilen, also 5, 10, 15, 20 usw. Wenn Sie jede Zeile nummerieren möchten, müssen Sie zusätzliche Stile für dieses Skript hinzufügen. Sie können dem Stylesheet Ihrer Site hinzugefügt werden.
<style> li.L0, li.L1, li.L2, li.L3, li.L5, li.L6, li.L7, li.L8 { list-style-type: decimal !important } </style>
Das Ergebnis wird wie folgt aussehen:
#include <iostream> using namespace std; int main(int argc, char *argv[]) { cout << "Hello World!" << endl; return 0; }
Für Django empfehle ich Timeweb Hosting VDS Server .