add extension point for custom link protocol renderers in markdown (#1639)

This PR allows for custom link protocols to be declared and rendered in markdown.
A new extension point markdown-renderer.link.protocol allows for renderers to hook into the api and implement any custom protocol.

Example:

[description](myprotocol:somelink)
binder.bind("markdown-renderer.link.protocol", { protocol: "myprotocol", renderer: MyProtocolRenderer })
This renderer functions similar to link renderers and receives the href and the description. The latter as the children property.

This PR also fixes two bugs where external- and anchor links were not correctly rendered in pull requests by the review-plugin.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
This commit is contained in:
Konstantin Schaper
2021-04-29 13:15:22 +02:00
committed by GitHub
parent 8f91c217fc
commit 32b268e6f5
11 changed files with 339 additions and 65 deletions

View File

@@ -62,6 +62,17 @@ The following extension points are provided for the frontend:
- Dynamic extension point for custom language-specific renderers
- Overrides the default Syntax Highlighter
- Used by the Markdown Plantuml Plugin
### markdown-renderer.link.protocol
- Define custom protocols and their renderers for links in markdown
Example:
```markdown
[description](myprotocol:somelink)
```
```typescript
binder.bind("markdown-renderer.link.protocol", { protocol: "myprotocol", renderer: MyProtocolRenderer })
```
# Deprecated