[scribus] An API for Scribus Plugins

ale rimoldi ale.comp_06 at xox.ch
Mon Apr 30 07:59:03 UTC 2018


this is a request for all those who have created c++ plugins (not
python scripts!) for Scribus or want to do it in the future.

In the past I've created a few plugins and after some time I've noticed
that I was calling the same parts of the Scribus code and that
it was painful to always search in the whole code base where the data /
functions are and how to access them.

I've then created a "private" API with "better" names and higher level
data structures.

Now, that I've proven that it's useful for me, the next step is to
finalize the architecture of the API and get it into the main scribus
code base.

The current code is here:


and the sparse doxygen doc is here:


You can see it in use in my plugins:

- https://github.com/aoloe/scribus-plugin-applyStyle
- https://github.com/aoloe/scribus-plugin-tableofcontents
- https://github.com/aoloe/scribus-plugin-export-epub

(for the curious ones: only the applyStyle plugin is ready for
production use, the TOC and epub plugins do some things but are not
finished yet).

The main goals of the API:

- It is itself a plugin.
- Is a stable interface to the Scribus code.
- It is well documented
- Provides a high level view on the Scribus data structures.
- Speed of programming is more important than the speed of the code.

What kind of help I need:

- Should the API use Qt data structures or the C++ 11 ones? (currently,
  it uses the Qt ones).
- Hints on how to do a versioning of the API.
- How to name the namespaces and classes.
- A proposal for the namespaces and classes to be created.

I suggest that we use the Github issue tracker for the communication:


(And eventually this list.)

Have fun

More information about the scribus mailing list