This post is superseded, now it is possible to use native tag also on wordpress.com, more details can be found here
Soon or later any blogger talking about software development will post some snippet of code.
To make code more cool and attractive he/she will use syntax highlight.
This blog is hosted on the free version of WordPress.com, it doesn’t allow to use any plugin or user-defined CSS so adding sexy code is very difficult.
Komodo has the ability to print to HTML files code with the syntax highlighted, this feature is fully accessible from APIs so I’ve written a macro that
- make CSS style inline replacing HTML class with corresponding style attributes
- copy to clipboard (using the new Komodo 5 clipboard helper library) in HTML format so user can paste directly on Visual WordPress mode
Below you find the macro source code obviously highlighted by itself😛
How to get the selected text (or the whole Komodo view) converted to HTML
The variable str at end contains the converted HTML
var view = ko.views.manager.currentView; var tmpFileSvc = Components.classes["@activestate.com/koFileService;1"] .getService(Components.interfaces.koIFileService) fname = tmpFileSvc.makeTempName(".html"); var lang = view.document.languageObj; var forceColor = true; var selectionOnly = view.selection != ""; var schemeService = Components.classes['@activestate.com/koScintillaSchemeService;1'].getService(); schemeService.convertToHTMLFile(view.scimoz, view.document.displayPath, view.document.language, lang.styleBits, view.document.encoding.python_encoding_name, fname, selectionOnly, forceColor); var file = Components.classes["@activestate.com/koFileEx;1"] .createInstance(Components.interfaces.koIFileEx) file.URI = ko.uriparse.localPathToURI(fname); file.open('rb'); var str = file.readfile(); file.close();
Applying the replace to str
Nothing really interesting, simply the replace method is called many times to make CSS style inline inside span tags
Copy to clipboard in HTML format
Komodo 5 allows to interact with clipboard wrapping XPCOM services, these APIs allow to copy in the so called HTML flavor so content preserves styles and colors.
xtk.include("clipboard"); var transferable = xtk.clipboard.addTextDataFlavor("text/html", str); transferable = xtk.clipboard.addTextDataFlavor("text/unicode", str, transferable); xtk.clipboard.copyFromTransferable(transferable);
That’s all folks
After running this macro on a Komodo view you can paste directly on WordPress Visual editor and obtain your beautiful code.
Using HTML flavor you can paste into any application able to accept Special Formats like Microsoft Word or OpenOffice Writer.
The full macro source code can be found on Macro SVN repository