Evgenii Legotckoi
Evgenii Legotckoi16. September 2016 15:25

Django - Tutorial 002. Syntax-Highlighting von Code auf der Site

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 .

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.

Magst du es? In sozialen Netzwerken teilen!

Kommentare

Nur autorisierte Benutzer können Kommentare posten.
Bitte Anmelden oder Registrieren
Letzte Kommentare
A
ALO1ZE19. Oktober 2024 08:19
Fb3-Dateileser auf Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Игорь Максимов5. Oktober 2024 07:51
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas55. Juli 2024 11:02
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
k
kmssr8. Februar 2024 18:43
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Jetzt im Forum diskutieren
J
JacobFib17. Oktober 2024 03:27
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
JW
Jhon Wick1. Oktober 2024 15:52
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Кирилл Гусарев27. September 2024 09:09
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
F
Fynjy22. Juli 2024 04:15
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

Folgen Sie uns in sozialen Netzwerken