
June 11th, 2009 by

Afraithe
Microsoft launched Bing API a few days ago, it has a spellchecker API built into it, we where right away thinking of using it for TinyMCE, however Microsoft themselves beat us to it.
Check out this article on Channel 9.
We are trying to contact the author to see if it would be ok to peak at his implementation for a bit.
Posted in Uncategorized |
No Comments »

April 22nd, 2009 by

Spocke
We recently introduced the new Sizzle CSS selector engine to the TinyMCE core. But I guess we haven’t explained much what it really means for the users of TinyMCE.
The Sizzle engine enables you to use CSS level 3 expressions when developing plugins and integration logic. For example you can select all paragraphs that matches a specific class or all parent elements matching a specific pattern. We used to have a custom CSS level 1 engine in previous releases but maintaining it was moving us out of focus for the core development of the actual product.
Anyway here are some examples on how to use the Sizzle engine trough the TinyMCE DOM API:
// Will select all paragraphs with the someclass and with the someattr
var nodes = tinyMCE.activeEditor.dom.select('p.someclass[someattr=somevalue]');
// Will select all parent p and div elements of the specified element
var nodes = tinyMCE.activeEditor.dom.getParents('p,div', someElm);
// Or check if a specific element matches the expression
if (tinyMCE.activeEditor.dom.is(someElement, 'p.someclass'))
alert('Match.');
A complete reference of the selector patterns you can use can be found on the Sizzle documentation page.
The current version of TinyMCE has some issues with focus on IE 8 this will be addressed in the upcoming release. There has also been some rendering quirks in this new browser version. But it has otherwise not been any reports of IE 8 specific issues. It’s just a bummer that this browser is still so far behind when it comes to web standards.
TinyMCE has basically two types of code IE specific and W3C specific it’s a shame that even with this latest version it doesn’t have some of the core features other browser has. But I must say that IE is a very stable platform when it comes to it’s contentEditable support the things that work works extremely well compared to other browsers. IE is just old it’s not poorly written.
We recently merged the paste2 google code project into the TinyMCE trunk. We have been working hard on this new plugin since we think one of the most common tasks a end user does is pasting contents from standard office applications like Microsoft Word. The default HTML contents you get from Word is a total mess, some speculate that it is in this format to throw other browser vendors of track so they came up will all kinds of junk to beat Netscape and that junk is still in there.
Anyway, this new plugin makes it possible to auto detect word contents on normal Ctrl+V paste operations on all browsers. This means that you don’t need to use the old “paste from word” button in the toolbar. This button was hard to use for novice users and easy to miss.
This plugin uses lots of odd tricks to grab the HTML from the clipboard some of these tricks will be removed in the future when the browsers implement a proper way of dealing with the clipboard. There is a HTML 5 specification on how this should work and the Gecko and WebKit engines are pretty close to a good implementation of these specs.
We will release a new version of TinyMCE later this week. We just need to test it some more and especially the new paste plugin.
Posted in Development, Software, Uncategorized, Work |
4 Comments »

March 2nd, 2009 by

Spocke
Projects written in JavaScript gets more and more complex and after a while you find your self needing a proper build process similar to the ones found for Java or .NET. We recently swapped our custom tools for JS concatenation and compression to one based on Apache Ant. Ant has been around for many years and we used this build tool when we developed Java applications so it has a large feature set and is very stable, well documented and it can be used on multiple operating systems.
But before we could use Ant we needed to rewrite preprocessing capabilities we had in our custom tool as a ant task. Having preprocessor statements in JavaScript is a very powerful thing especially for large projects where you might want to exclude or include a particular feature for a specific build target. We looked around for some existing engine but we couldn’t find any suitable for our specific needs.
Here is an example of a simple preprocessor statement:
// #ifdef somedefine
someLogic();
// #endif
someOtherLogic();
The above statement will only include the someLogic(); call if the somedefine is defined when it’s being preprocessed. This is very similar to languages like C/C++ or C#.
This is how the above code gets filtered using the ant task:
<preprocess infile="file.js" outfile="file.processed.js" defines="somedefine,someotherdefine" />
We also wanted to use the YUICompressor to reduce the size of the script. There where a few existing Ant task implementations for this tool but we didn’t find one that was exactly as we wanted it so we wrote our of task for this as well.
Here is an example on how to compress a simple JS file:
<yuicompress infile="file.js" outfile="file.min.js" />
Both these ant tasks and future tools will be added to a google code project called js-build-tools. If you have your own ant tasks you want to contribute to this project please let us know.
Posted in Development, Software, Uncategorized, Work |
6 Comments »

February 2nd, 2009 by

Afraithe
About time eh?
Well anyway, be sure to “fan” yourself to the TinyMCE group page.
http://www.facebook.com/pages/TinyMCE/48060073471
As a side note, we are very busy with various things at the moment.
Posted in Uncategorized |
5 Comments »