How to format the pre html tag in Umbraco for code blocks

Posted written by Paul Seal on September 20, 2016 Umbraco

A simple approach

My friend pointed out to me that the formatting on my code blocks is terrible, just grey and boring. It used to be ok before my redesign, but I missed it out this time around. Anyway, I think I found the one I used to use before. Google Code Prettify. Just add a reference to the javascript file:

<<span class="pl-ent">script</span> <span class="pl-e">src</span>=<span class="pl-s"><span class="pl-pds">"</span>https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js<span class="pl-pds">"</span></span>></<span class="pl-ent">script</span>>

To use it you can add the class "prettyprint" to your pre tags like this:

<pre class="prettyprint">
</pre>

I'm lazy

Then I realised it would be a pain to have to go through all of my posts for the last 12 months and add this class to each pre tag, so I edited the partial view in Umbraco which renders the content grid. I made it replace any opening pre tags with a pre tag with the class of prettyprint.

The partial is in Views > Partials Views > Grid > Editors > Rte

You can change it to this:

@model dynamic
@using Umbraco.Web.Templates

@Html.Raw(TemplateUtilities.ParseInternalLinks(Model.value.ToString().Replace("<pre>","<pre class=\"prettyprint\">")))

Now my pre tags are formatted automatically and I don't need to add a class to them.