Coding Horror

programming and human factors

Client-Side code highlighting

When I visited Alex Gorbatchev's blog, I noticed he had a unique client-side code highlighting solution in place, one I hadn't seen anywhere else. That's something I've wanted on my blog for a while; the vanilla <PRE> sections I've been using are servicable, but primitive. Although I loves me some regex, I don't know squat about PERL so I've been hesitant to hack anything fancier into my Movable Type install.

After I asked Alex about his solution, he was nice enough to package up his JavaScript syntax highlighter as dp.SyntaxHighlighter. It's really quite slick, and it works with all kinds of code: C#, VB.NET, JavaScript, PHP, SQL, and XML. Here's a VB.NET sample:

Public Function GetGoogleWordFrequency(ByVal strWord As String) As Integer
Dim strUrl As String = "http://www.google.com/search?num=1&q=" & _
Web.HttpUtility.UrlEncode(strWord)
Dim wc As New WebClientGzip
Dim strPageContents As String = wc.DownloadDataGzip(strUrl)
Dim m As Match
m = Regex.Match(strPageContents, _
"results.*?d+.*?d+.*?of about.*?(?<TotalResults>[d,]+)", _
RegexOptions.IgnoreCase)
If Not m Is Nothing Then
Dim strResults As String = m.Groups("TotalResults").ToString
If strResults.Length > 0 Then
Return Convert.ToInt32(strResults.Replace(",", ""))
End If
End If
Return -1
End Function

Alex tested this JavaScript on FireFox and IE6, and is looking for compatibility feedback on other browsers.

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: https://infosec.exchange/@codinghorror