Calligra/Proposal for scripting in ODF

This page should provide a suggestion how to implement scripting in ODF.


  • So far the only way to get such dynamic functionality in is using macros. But macros suck, they are unflexible and functionality is missing.
  • Since this days we have so many different Javascript-implementations around + they allow to sandbox (unlike python for exampl) + they are light and fast (unlike Java) and are already a de facto standard in HTML it would make sense to get Javascript into ODF as official "scripting-language".
  • The Javascript is loaded from and saved to the ODF document zip-file as ScriptN/content.js and then referenced with a unique name in the document-content or other scripts.
  • Ideally Calligra, LibreOffice and are adopting the same solution with compatible Javascript-APIs.


  • Allow to register Javascript for on-load or on-save events.
  • Do something if e.g. an image is clicked.
  • Formula variable for calculation.
  • Forms, e.g. input-validation.


  • Allow live-editing access (loading and manipulation) to the ODF DOM tree from with Javascript. That covers all kind of manipulation-scenarios and provides an (in the ODF specifications) already well documented API and proven API. So, very much what Javascript is able to do with HTML+Stylesheet in the Browser for a Office-suite.
  • Helper-classes written in Javascript could provide a higher level API to deal with the ODF DOM tree.
  • It would maybe make sense to allow access from within Javascript to the Calligra Tables formula logic. So Words and Stage could do complex calculations the OpenFormula way in Javascript.

This page was last edited on 15 November 2011, at 11:12. Content is available under Creative Commons License SA 4.0 unless otherwise noted.