Skip to content

[generate-docc-reference] [GSoC 2025] Separate DocC Pages for Each Command #752

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Chamepp opened this issue Apr 2, 2025 · 1 comment

Comments

@Chamepp
Copy link
Contributor

Chamepp commented Apr 2, 2025

Description

We’ve recently integrated the generate-docc-reference plugin into the SwiftArgumentParser project. One of the key improvements outlined in our project goals is to refine this plugin, enabling it to generate separate documentation pages for each command and organize them into a well-structured set of files. For now the plugin only generates an article for the main command. As articles are considered good for communicating the general purpose and overview of the project, we should create seperate pages for each command to get low level on explanations and how things work.

Proposed Structure

We can follow the structure below in order to expand our documentation generation further.

Image

High Level Overview of the Structure

  • Separation of Command Documentation
    The documentation will be split into individual pages for each command, with each page covering the details of the command, its flags, options, and arguments. This will provide clear, in-depth explanations for every command, rather than a single generic overview.

  • Hierarchical File Structure
    We will adopt a folder-based structure where each command, flag, option, and argument has its own dedicated markdown file. If a command has subcommands, they will also be structured into their own folders and documented similarly, ensuring clarity for users with more complex command-line tools.

  • Metadata Categorization
    To maintain organization, metadata will be added to each markdown file, categorizing them as command, flag, option, or argument. This will help categorize the components and provide meaningful context for users when navigating the documentation.

  • Metadata Files
    Relevant JSON files, such as topics.json, will be included in the root directory to define the overall structure of the documentation catalog.

Next Steps

  1. Since the contribution guidelines encourage small improvements and changes, we can start by creating directories and separate files for each command.
  2. Then we can create documents for argument, options and flags, listing all related properties to the command.
  3. Next, we can proceed to add the root metadata files like topics.json for the documentation catalog.
  4. Finally, we can focus on structuring the metadata for the arguments, options, and flags for each command.
  5. Then we can get low level and design the structure of our documentation files by solving the mentioned issues below:
@Chamepp
Copy link
Contributor Author

Chamepp commented Apr 3, 2025

Update: Opened a pull request for issue #722 here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant