Django - Tutorial 002. Syntax highlighting of code on site

PrettyPrint, SyntaxHighlighting

The biggest problem when you start writing a site from scratch on the Django was code syntax highlighting. Okay, I was on Wordpress the plugin that works with the task, though a bit loaded site as highlighting was organized on the server side. But in the case with the new site had already been thinking about it.

First choice was the issue of where it will be organized syntax highlighting:

  • On the server side
  • Or on the client side

Searching the information I found out that for the organization of the syntax in the ready-made solutions server side is not so much, for example Geshi, yes, and perhaps all, what works in Python. And he can load the server if there are problems in caching.

But with syntax highlighting on the client side it has become more interesting. Here for example, and Hightlight.js and SyntaxHighlighter , and lightweight script Google's good Corporation, Javascript Code Prettifier , on his choice, and fell. Especially because it is used in such a well-known resource as Stack Overflow .

Implementing

Perhaps the biggest advantage of this script is its high speed and easy implementing and configuration.

Connect this script can be a single line, but it must be connected to the bottom of the page that triggered the code syntax highlighting.

<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>

Using

To use this functionality you need to wrap the script code in the tag illuminated, indicating the class prettyprint <pre class = "prettyprint"> ... </ pre> or <code class = "prettyprint"> ... </ code>

<pre class="prettyprint">
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    cout << "Hello World!" << endl;
    return 0;
}
</pre>

Support of languages

The script supports multiple languages, which are indicated by a class lang- * with the appropriate extension for a specific language.

<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>

Line Numbering

Also, the script supports line numbering. To do this, you must specify linenums class. If it is necessary to clarify that the code begins with a specific string, then a colon must specify that line number, ie linenums: 18.

Default numbering goes every five lines, that is, 5, 10, 15, 20, etc. If you want to number every line, then you need to add additional styles for this script. They can be added to the file of your website style.

<style>
li.L0, li.L1, li.L2, li.L3,
li.L5, li.L6, li.L7, li.L8
{ list-style-type: decimal !important }
</style>

The result will be as follows:

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    cout << "Hello World!" << endl;
    return 0;
}

For Django I recommend VDS-server of Timeweb hoster .

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
Support the author Donate

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Donate

Hello, Dear Users of EVILEG!!!

If the site helped you, then support the development of the site financially, please.

You can do it by following ways:

Thank you, Evgenii Legotckoi

p
Feb. 17, 2020, 2:41 p.m.
pstMem

C++ - Тест 003. Условия и циклы

  • Result:85points,
  • Rating points6
z
Feb. 17, 2020, 6:02 a.m.
zet

C++ - Test 006. Enumerations

  • Result:80points,
  • Rating points4
z
Feb. 17, 2020, 5:49 a.m.
zet

C++ - Test 001. The first program and data types

  • Result:80points,
  • Rating points4
Last comments
Feb. 17, 2020, 3:22 a.m.
Evgenij Legotskoj

Добрый день. Это кастомный тег, помещается в файл, который находится в каталоге templatetags myapp/ templatetags/ myapp.py
B
Feb. 16, 2020, 1:36 p.m.
BahaMeirman

Добрый вечер! Монжно по подробней о теге get_companion? ссылка не работает.
Feb. 16, 2020, 9:35 a.m.
Evgenij Legotskoj

Добрый день. На GitHub исходники, можете посмотреть в официальном репозитории
B
Feb. 16, 2020, 9:29 a.m.
BahaMeirman

Здравстсвуйте Евгений, непонятно мне где эти исходники найти?
Now discuss on the forum
IP
Feb. 20, 2020, 1:24 a.m.
Igor' Poroshin

QSqlQuery query("SELECT CONCAT("#", LPAD(HEX(`t`.RGB), 6, 0)) FROM table AS t");query.exec(); while (query.next()) { QColor(query.value(0).toString()); }
IP
Feb. 19, 2020, 11:55 p.m.
Igor' Poroshin

qDebug() << model->lastError().text() - возвращает текст и код ошибки, который возвращает база данных, чаще всего ошибка бывает из-за неправильного SQL запроса qDebug() << mo…
Feb. 19, 2020, 8:55 a.m.
Mihailll

Можно через сервер сделать
V
Feb. 19, 2020, 7:09 a.m.
Vitali

Да, прямо сходу не заработало, а сейчас просто некогда разбираться, да и я уже решил не использовать в этом приложении WebEngine. Ошибка: WebEngineContext used before QtWebEngine::initialize(…
Feb. 19, 2020, 7:01 a.m.
BlinCT

Просто реально не вижу тут каких то проблем в модели, вот вообще ничего. Но она все равно не отображается, то есть ладно бы если данные бы не появлялись а сама таблица была бы. Так и таблиц…
EVILEG
About
Services
© EVILEG 2015-2019
Recommend hosting TIMEWEB