More on syntax highlight
November 09, 2005 11:36
As you may have noticed, I have "solved" my problem of posting code.
Now, if you look back at last Sunday's post, I have cool area limited
by a dashed board for my code, with syntax coloring for C++ and correct
indetation. And it works on Firefox too.
My effort was very limited, since I did not coded the entire solution by myself as originally wanted. I'm not entirely satisfied, so maybe in the future I could do it, or simply replace the syntax highlight engine. DasBlog uses the syntax highlight engine from Thomas Johansen. His highlight engine (here) uses a simple api that takes the source code, a language definition file (written in XML), and spits out html. The code must be enclosed in
It works pretty well; however, the highlighter has some problems: I wasn't able to highlight curly braces, for example, and it isn't able to recognize tokens not separated by a whitespace:
For now it works pretty well for me, but in the future I could code my own syntax highlight engine (for example follwing this article) or I could repalce it with a more professional one, for example CodeHighlighter
Here is a screenshot of my modified form; if you like it, send me an email and I'll post here the source code.
My effort was very limited, since I did not coded the entire solution by myself as originally wanted. I'm not entirely satisfied, so maybe in the future I could do it, or simply replace the syntax highlight engine. DasBlog uses the syntax highlight engine from Thomas Johansen. His highlight engine (here) uses a simple api that takes the source code, a language definition file (written in XML), and spits out html. The code must be enclosed in
tags, since it do not codify spaces as  . This was the first bug in dasBlog, and I got rid of it easily. The second problem was: why the popup window that could let me enter the code does not show?
The problem was in the showModal javascript function. It is a very pretty function for showing modal windows in a browser, very good for creating rich-content dialogs. Unfortunately, Firefox do not implement it. I could go for two solutions: using an alternate function (or better, a set o functionality like those implemented by SubImage) or not using a popup dialog at all. I went for the second one.
So, I was able to have the syntax highlighter I wanted in three steps:
- redesign the Add Entry form;
- Add some html to the code returned by Thomas Johansen's highlighter (for the border and the indentation);
- Add an XML file for the C++ syntax.
It works pretty well; however, the highlighter has some problems: I wasn't able to highlight curly braces, for example, and it isn't able to recognize tokens not separated by a whitespace:
// Separated tokens
if (a != b)
// Not working
if (a!=b)
For now it works pretty well for me, but in the future I could code my own syntax highlight engine (for example follwing this article) or I could repalce it with a more professional one, for example CodeHighlighter
Here is a screenshot of my modified form; if you like it, send me an email and I'll post here the source code.