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 .