Embedding Computer Language Source Code on Web Pages

Semantic Web: Emerging Practice of Including Language Name in Embedding Computer Language Source Code on Web Pages

There's a new practice since HTML5 about embedding computer language source code on web pages.

Normally, you just use “pre”, like this:

<pre>
x = 5
print x
</pre>

However, there's no indication of what language it is. Indicating a language is desired because search engines and other tools can get that info and process it accordingly (such as syntax coloring tool). (this is the idea of semantic web.)

So, it appears, there's this practice of introducing the language info, by embedding a “code” tag with “class” set to “language-‹name›”. Like this:

<pre>
<code class="language-python">
x = 5
print x
</code>
</pre>

However, there's no standardized string for the language string.

Overall, this practice seems ad-hoc and questionable, but a mob-standard might be better than none.

What's the problem? For example, the semantic of “class” tag isn't designed to be used to encode language names. Also, having “code” nested inside “pre” is a redundant hack. A improvement might be:

<code class="language-python" style="white-space:pre;display:block">
x = 5
print x
</code>

But this throws-off intuition, because most people are much more familiar with “pre” tag. So, perhaps we can do:

<pre class="language-python">
x = 5
print x
</pre>

All of the above are hacks in using HTML Microformat as a way to embed info for semantic web. A proper solution is a dedicated tag in XHTML, but XHTML is going the ways of dinosaur. Among the html microformat hacks above, i can't say which one is superior.

For the politics of HTML5 and XHTML, see: Are You Intelligent Enough to Understand HTML5?HTML6: Your JSON and SXML SimplifiedHTML5 Doctype, Validation, X-UA-Compatible, and Why Do I Hate Hackers.

For pratical tips on syntax coloring source code on the web, see: Emacs: Syntax Color Source Code in HTMLSyntax Coloring with Google-Code-Prettify.

Popular posts from this blog

11 Years of Writing About Emacs

does md5 creates more randomness?

Google Code shutting down, future of ErgoEmacs