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 = ""; & _  
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,]+)", _
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: