Skip to content

Provide an alternative to the alltypes page from old Dokka #2887

@IgnatBeresnev

Description

@IgnatBeresnev

Background

Dokka 1.4 had a page that listed all types from all packages, and it (as of now) still exists for stdlib: link

Screenshot of stdlib's all types page

Image

When moving stdlib to the new version of Dokka and configuring redirects, no such page was found in the new Dokka, so it's unclear where the old link should point to.

However, the page seems useful, so it's worth replicating it in some way. If it proves to be useful, it can be improved and iterated upon.

Feature Requirements

Dokka should have a page that looks like the all-types page from Dokka 1.4 (a screenshot can be seen above).

The main page layout and design should be the same as what Dokka currently has for the package listing, a mock-up below:

Screenshot of how it should look like

Image

Meaning,

  1. It should take the same width as the main page content.
  2. The project / module name should be at the top (note: the property is the same: DokkaConfiguration#moduleName)
  3. All types must be sorted alphabetically, but by type name (without packages).
  4. Each type entry should have a fully qualified name (including packages)
  5. Each type should have platform indicators on the right.
  6. (stdlib-specific) Each type should have a "Since Kotlin" indicator, similar to how it's done now (screenshot below).
  7. Each type should have a brief description (first paragraph of the KDoc, note: see function firstParagraphBrief), all links and formatting should be resolvable.
  8. The link to this page should be at the bottom of the module/project page, similar to how it's done in Dokka 1.4.
  9. The platform/source set filter in the header should work.
Screenshot of Since Kotlin

Image

Out of scope / For next iterations

Some gray / unknown / questionable areas that should be addressed in the following iterations as separate issues, as soon as we get some feedback from the libraries team and our users.

  1. Multi-module projects are out of scope in the first iteration (so no common all-types page across all modules).
  2. No need to mark deprecated types (no strikethrough text or deprecation message)
  3. The old page has some entries for extensions in package com.example - it's unclear how it's supposed to work, so it should be skipped for now.

Metadata

Metadata

Assignees

Labels

enhancementAn issue for a feature or an overall improvementfeedback: Kotlin libsFeedback from Kotlin's internal libraries

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions