ScripterNG/Development
Jump to navigation
Jump to search
Development on the new scripter
Documentation
- How does the core (connecting Python to C++) work?
- How can I add new functions?
- How do I port code from older scripter to the new one?
Ideas for scripts and extensions
- connect/sync Scribus documents with a database or content management system
- Web_optimised_PDF
- spell checker (there is already a spellchecker in 1.3.5+, --C schaefer 05:50, 21 April 2010 (CEST))
- MathML importer by converting to SVG
- HTML exporter
- Use PyUno to use OpenOffice filters to import any text format supported by OpenOffice
- fullscreen feature
- Python editor/console
- Macro recorder
- Import Rich Text (RTF) with pyrtf-ng
- Autotext for quotation marks, stared text gets bold, space after comma and period, etc.
- OpenClipArt browser/importer. Same for Flickr/Open Font Library and other Creative Commons media repositories
- provide external control via XMLRPC or DBus
- wizards to create calendars, business cards, letters
- alternative properties palette (for experiments or special use cases) - example
- simple irc client dock window to get instant help and for live colaboration
- import plots from gnuplot as svg
- import CSV (or Excel with xlrd) into table
- import scanned images (Sane on Unix with Python Imaging Library)
- advanced search&replace with regular expressions
- an alternative story editor in fullscreen mode like PyRoom
- ghns-client (get hot new stuff) for ScribusStuff
- mail merge
- clippy ;-)
- XML-source editor like Inkscape
Requirements to implement above scripts
- call gettext importer api
- call pdf exporter
- event hooks (selection changed, document changed,
- access to (de)saxe api to (de)serialize pageitems
- access to StoryText object
API ideas / missing APIs
- Layers
- activeDocument.layers / activeDocument.activeLayer (property)
- layer.{visible, active, print, lock} (bool property)
- layer.remove()
- item.sentToLayer(layer_name)
- activeDocument.newLayer(..)
- activeDocument.layers / activeDocument.activeLayer (property)
- Colors
- activeDocument.colors (str list propery)
- activeDocument.activeColor (property)
- activeDocument.newColor(..)
- Fonts
- Scripter.{fontNames, xfontNames} (str list property)
- Scripter.renderFont(..)
- Guides
- activePage.{horizontalGuides, verticalGuides} (double property list)
- Selections
- Text
- Styles
- Selections / Groups
- GUI
- Scripter.dialogs.valueInput
- Scripter.dialogs.{openFilename, saveFilename, openDirectory}
- Scripter.activeWindow.progess
- Scripter.activeWindow.mouseCursorType
- Misc
- activeDocument.importPage
- MasterPage-stuff
- PageItem-Proxy: Currently a script can directly access a PageItem. It would be better if there is a thin layer between them.
Other important TODO
- add i18n and integrate with rest of Scribus
Implementation of other scripting languages (must be platform-neutral)
- Perl
- Ruby
- JavaScript/QtScript
- Lua
Links
(will lookup my bookmarks)
- ScripterNG/Development/PortingOldScripter
- Integration of scripting languages into C++/Qt applications
- Examples about how other projects solved this topic
- InDesign scripting with JavaScript