opt: regTitle

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-12-29 10:57:44 +08:00
parent e9945ab63c
commit b6217f6e6e

View File

@@ -1,3 +1,5 @@
import 'package:html/parser.dart' show parse;
class Em { class Em {
static regCate(String origin) { static regCate(String origin) {
String str = origin; String str = origin;
@@ -12,32 +14,37 @@ class Em {
static regTitle(String origin) { static regTitle(String origin) {
RegExp exp = RegExp('<[^>]*>([^<]*)</[^>]*>'); RegExp exp = RegExp('<[^>]*>([^<]*)</[^>]*>');
List res = []; List res = [];
origin.splitMapJoin(exp, onMatch: (Match match) { origin.splitMapJoin(
String matchStr = match[0]!; exp,
Map map = {'type': 'em', 'text': regCate(matchStr)}; onMatch: (Match match) {
res.add(map); String matchStr = match[0]!;
return regCate(matchStr); Map map = {'type': 'em', 'text': regCate(matchStr)};
}, onNonMatch: (String str) {
if (str != '') {
str = decodeHtmlEntities(str);
Map map = {'type': 'text', 'text': str};
res.add(map); res.add(map);
} return regCate(matchStr);
return str; },
}); onNonMatch: (String str) {
if (str != '') {
str = parse(str).body?.text ?? str;
Map map = {'type': 'text', 'text': str};
res.add(map);
}
return str;
},
);
return res; return res;
} }
static String decodeHtmlEntities(String title) { static String decodeHtmlEntities(String title) {
return title return parse(title).body?.text ?? title;
.replaceAll('&lt;', '<') // return title
.replaceAll('&gt;', '>') // .replaceAll('&lt;', '<')
.replaceAll('&#34;', '"') // .replaceAll('&gt;', '>')
.replaceAll('&#39;', "'") // .replaceAll('&#34;', '"')
.replaceAll('&quot;', '"') // .replaceAll('&#39;', "'")
.replaceAll('&apos;', "'") // .replaceAll('&quot;', '"')
.replaceAll('&nbsp;', " ") // .replaceAll('&apos;', "'")
.replaceAll('&amp;', "&") // .replaceAll('&nbsp;', " ")
.replaceAll('&#x27;', "'"); // .replaceAll('&amp;', "&")
// .replaceAll('&#x27;', "'");
} }
} }