refactor(gh): github url redirect in readme

This commit is contained in:
Rongjian Zhang 2020-10-04 22:30:36 +08:00
parent 2248415574
commit 9fd05797b9
1 changed files with 13 additions and 21 deletions

View File

@ -13,7 +13,7 @@ class MarkdownView extends StatelessWidget {
MarkdownView(this.text, {this.basePaths});
Map<String, String> matchPattern(String url, String pattern) {
static Map<String, String> matchPattern(String url, String pattern) {
var uri = Uri.parse(url);
return UriParser(UriTemplate(pattern)).match(uri)?.parameters;
}
@ -46,26 +46,18 @@ class MarkdownView extends StatelessWidget {
// TODO: Relative paths
if (url.startsWith('https://github.com')) {
Map<String, String> m;
m = matchPattern(url, '/{owner}/{name}/pull/{number}');
if (m != null) {
return theme.push(context, url);
}
m = matchPattern(url, '/{owner}/{name}/issues/{number}');
if (m != null) {
return theme.push(context, url);
}
m = matchPattern(url, '/{owner}/{name}');
if (m != null) {
return theme.push(context, url);
}
m = matchPattern(url, '/{login}');
if (m != null) {
return theme.push(context, url);
const matchedPaths = [
'/{owner}/{name}/pull/{number}',
'/{owner}/{name}/issues/{number}',
'/{owner}/{name}',
'/{login}'
];
for (var p in matchedPaths) {
final m = matchPattern(url, p);
if (m != null) {
return theme.push(context,
url.replaceFirst(RegExp(r'https://github.com'), '/github'));
}
}
}