Allow app <description> tag to be outsourced to a Markdown file
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 36.9k
- Forks
- 5.2k
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 713
Description
Proposing this here first:
Currently the store parses a CHANGELOG.md in the apps root directory if present and allows for translation by adding the isocode like this: CHANGELOG.de.md
What if we extended that to the description as well, e.g. DESCRIPTION.md? Benefits would include:
- better editor support
- not having to fight with indention in your xml file (because indention is significant in xml)
- not having to care about properly escaping your Markdown
- better readability since it can be rendered on GitHub
- better scalability if you add more than 1 language or a bigger description
Downsides would include:
- yet another backwards compat feature
- https://github.com/nextcloud/appstore/blob/master/nextcloudappstore/api/v1/release/info.xsd#L13 would have to be changed to allow minOccurs="0" or a new attribute like <description external="true"/>
- translation (although I'm unsure if this is handled at all currently)
- owncloud compat (if that's a thing)
Since all the Markdown files could clutter up your root app directory we should support putting it into a .nextcloud/ folder whose structure is yet to be determined.
By default we could test for the presence of a Markdown file in the appropriate place and fall back to the description tag otherwise
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how CHANGELOG.md is parsed and how the app description is represented, then review nextcloudappstore/api/v1/release/info.xsd and the existing description tag. Decide the supported Markdown locations, fallback behavior, translation handling, and XML compatibility. Done means external descriptions work without breaking existing inline descriptions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- markdown, php
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100