Orange-OpenSource / ouds-ios

A SwiftUI components library with code examples for Orange Unified Design System
https://ios.unified-design-system.orange.com/
MIT License
6 stars 1 forks source link

[Documentation] Improve DocC documentation hierachy, navigation and charts rendering #95

Open pylapp opened 2 months ago

pylapp commented 2 months ago

Context

Today, we choose to use DocC, the Apple solution for Swift documentation. The tool is quite recent, it allows for example to build documentation from Xcode for developers, export this documentation as archives, and also build an HTML version of all the documentation of the project.

We used this swift-docc plugin for builds before, but it failed to manage UIKit API as it seems to be more dedicated to macOS API.

However, even if the tool works well for Swift Package which has one target, things get complicated for libraries with several targets like our, even if it is quite common to have several targets in fact. We tried also others tools like xcode build suite, bit it faield with configuration of packages and targets.

@ludovic35 spent a lot of time to set up DocC and to think about a software solution which will gather all documentation of all modules and create a global HTML page as index refering to all other indexes. But the navigation between the HTML pages of several targets, here between our modules, is broken. The Apple tool (in its version 1.4.2 today) failed to make links and navigation between pages of several modules. That is the reason why in some parts of our documentation we refer to HTML pages so as to keep hyperlinks and references navigable.

Issue

We have hard coded hyperlinks refering targets eachothers. We extract assets and merge JSON from our doccarchives, that is tinkering and not clean at all.

The Mermaid charts are not rendered as they are rendered in the GitHub viewers.

Action plan

What we expect

Resources

pylapp commented 2 months ago

Need specifications to go further. blocking because no specifications, on hold because not mandatory no prioritary