kapidox: supporting also QML (and cmake, Python,, ...)

Friedrich W. H. Kossebau kossebau at kde.org
Mon Aug 1 18:50:56 BST 2016


Hi, Olivier and all,

picking up from the short chat on #plasma today:

so given kapidox is overcoming the old API dox generating scripts with more 
proper semantic info...
where the old scripts allowed to use random Mainpage.dox at random places in 
the directories to structure the created documentation (e.g. to group QML 
"classes" away from C++ classes), kapidox now would need extension of its 
spec, with semantics needed to talk about QML types and C++ classes to allow 
proper generation of nicely separated pages.

This actually touches a broader problem with the current generated 
documentation, which right now is centric to the C++ interfaces. Though 
existing KDE library products have at least interfaces in
* C++
* QML
* CMake macros [1]
and perhaps one day bindings in Python and other languages would be also 
provided directly with the products and thus it would be great to have their 
documentation covered as well easily.

[1] E.g. KCoreAddon installs a few cmake macros, like 
kcoreaddons_desktop_to_json, which have nice API dox inside, but there is 
nothing generated from that on api.kde.org currently, both bad for 
discoverability or pointing people to things with urls.


For a solution:
Perhaps at the generation side there could be another level right below the 
library, for the interface (C++, QML, CMake, ...).
So "Product" > "Library" > "Interface", 

By the example of Plasma Components (https://api.kde.org/frameworks/plasma-framework) there would then be in the header
    KDE API Reference > The KDE Frameworks > Plasma > QML
    KDE API Reference > The KDE Frameworks > Plasma > C++
and in the left sidebar there would be another section "Language" (or better 
term) which would allow to switch to the docs for the other interfaces 
supported (C++, QML, CMake, ...).

On the metainfo.yaml spec side, no idea yet.

Cheers
Friedrich




More information about the kde-core-devel mailing list