mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-07-19 10:00:13 +08:00
@@ -5,8 +5,26 @@ abstract final class Em {
|
|||||||
);
|
);
|
||||||
|
|
||||||
static String regCate(String origin) {
|
static String regCate(String origin) {
|
||||||
Iterable<Match> matches = _exp.allMatches(origin);
|
final matches = _exp.firstMatch(origin);
|
||||||
return matches.lastOrNull?.group(1) ?? origin;
|
return matches?.group(1) ?? origin;
|
||||||
|
}
|
||||||
|
|
||||||
|
static String parseHtml(String str) {
|
||||||
|
return str.replaceAllMapped(
|
||||||
|
_htmlRegExp,
|
||||||
|
(match) => switch (match.group(1)) {
|
||||||
|
'lt' => '<',
|
||||||
|
'gt' => '>',
|
||||||
|
'quot' => '"',
|
||||||
|
'apos' => "'",
|
||||||
|
'nbsp' => ' ',
|
||||||
|
'amp' => '&',
|
||||||
|
var i? when (i.startsWith('#x')) => String.fromCharCode(
|
||||||
|
int.parse(i.substring(2), radix: 16),
|
||||||
|
),
|
||||||
|
_ => match.group(0)!,
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static List<({bool isEm, String text})> regTitle(String origin) {
|
static List<({bool isEm, String text})> regTitle(String origin) {
|
||||||
@@ -14,30 +32,12 @@ abstract final class Em {
|
|||||||
origin.splitMapJoin(
|
origin.splitMapJoin(
|
||||||
_exp,
|
_exp,
|
||||||
onMatch: (Match match) {
|
onMatch: (Match match) {
|
||||||
String matchStr = match[0]!;
|
res.add((isEm: true, text: parseHtml(match[1] ?? match[0]!)));
|
||||||
res.add((isEm: true, text: regCate(matchStr)));
|
|
||||||
return '';
|
return '';
|
||||||
},
|
},
|
||||||
onNonMatch: (String str) {
|
onNonMatch: (String str) {
|
||||||
if (str != '') {
|
if (str != '') {
|
||||||
res.add((
|
res.add((isEm: false, text: parseHtml(str)));
|
||||||
isEm: false,
|
|
||||||
text: str.replaceAllMapped(
|
|
||||||
_htmlRegExp,
|
|
||||||
(m) => switch (m.group(1)) {
|
|
||||||
'lt' => '<',
|
|
||||||
'gt' => '>',
|
|
||||||
'quot' => '"',
|
|
||||||
'apos' => "'",
|
|
||||||
'nbsp' => ' ',
|
|
||||||
'amp' => '&',
|
|
||||||
var i? when (i.startsWith('#x')) => String.fromCharCode(
|
|
||||||
int.parse(i.substring(2), radix: 16),
|
|
||||||
),
|
|
||||||
_ => m.group(0)!,
|
|
||||||
},
|
|
||||||
),
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user