Link to user profile in markdown
Consider comment_item. I'm trying to add a link to the profile. For example, @shreyas1599 should link to my profile. I used a simple regex to do this:
body.replaceAllMapped(new RegExp(r"@[^\s]+"), (match) { return "[${match[0]}](https://github.com/${match[0] })";
A couple of questions:
- Should I place this in
markdown_view.dartor leave it incomment_item.dartitself? - Also in mardown_view.dart I see you've used a
githubprefix. For now, I could just push the relative path. - But in
router.dartyou've added a TODO: /github. - So should I try and replace all the existing github routes to use the prefix
githubor just push the relative path for now? Something like this:return Provider.of<ThemeModel>(context).push(context, "/${m['login']}"); - I could first open a PR to change all the existing routes to use
/githuband then implement the above.
@pd4d10 I'd like your opinion on this. Thanks.
If the purpose is to replace @somebody with a link, it seems not enough to just tweak the onTapLink method.
We should add a plugin to flutter_markdown to identify the @somebody syntax, then turn it into a link.
But in router.dart you've added a TODO: /github.
Yeah, it is a legacy todo. We should open an issue for this: Add /github prefix to GitHub related screens, just like other platforms.
body.replaceAllMapped(new RegExp(r"@[^\s]+"), (match) { return "[${match[0]}](https://github.com/${match[0] })";
Oh, I missed this replacement process. This might also work but it seems more common to write a plugin for flutter_markdown
Sorry, I don't exactly understand. I've never written one before. By plugin do you mean, I use flutter_markdown and create a package that identifies the @ symbol and converts it into a link? Can you give an example of writing a plugin for a package?
MarkdownBody has a property named extensionSet: https://pub.dev/documentation/flutter_markdown/latest/flutter_markdown/MarkdownBody-class.html
For examples see: https://pub.dev/packages/markdown#syntax-extensions
There is also a legacy issue related to this: Rendering <img> tag correctly. <img> seems to be frequently used.