Skip to content

[Feature request] Strip module-path components from the front of generated docs #21

Open
@ELLIOTTCABLE

Description

@ELLIOTTCABLE

I'd love the ability to "leave out" chunks of the module-path.

For example, in a project named bs-slash-create, BuckleScript by default 'namespaces' the project's modules underneath a module of the same name, SlashCreate. In simple projects with only one root module, this can result in a doubled module-path, i.e. SlashCreate.SlashCreate.

When running bsdoc build SlashCreate in such a project, a directory-structure like this is produced:

./bs-slash-create $ tree docs
docs
└── SlashCreate
    └── SlashCreate
        ...
        ├── SlashCommand
        │   ├── Option
        │   │   └── index.html
        │   └── index.html
        ├── SlashCreator
        │   └── index.html
        ├── User
        │   └── index.html
        ├── UserFlags
        │   └── index.html
        └── index.html

When published to GitHub Pages, this results in URLs like:

https://by.elliottcable.name/bs-slash-create/SlashCreate/SlashCreate/index.html

Ideally, bsdoc would allow me to explicitly strip particular components, and then discard any modules that are inaccessible by the newly-stripped path (i.e. bsdoc build SlashCreate --strip SlashCreate.SlashCreate producing SlashCommand, User, etc at the top-level of the docs.)

Alternatively, at the least, it'd be nice if bsdoc respected the "namespace" field in bsconfig.json:

{
   "$schema": "https://raw.githubusercontent.com/rescript-lang/rescript-compiler/master/docs/docson/build-schema.json",
   "name": "bs-slash-create",
   "namespace": false,
   "sources": [{
      "dir": "src",
      "subdirs": true
   }],
   // ...

... and didn't produce an additional top-level SlashCreate when that is thusly configured.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions