Files
GitJournal/lib/utils/markdown.dart
Vishesh Handa 0d5793d097 strip_markdown: Use a handbuilt stripper
It's not perfect, but it runs faster at about 35 us vs 650 us.
2020-02-17 15:51:37 +01:00

30 lines
661 B
Dart

import 'dart:convert';
import 'dart:core';
String stripMarkdownFormatting(String markdown) {
var output = StringBuffer();
var regExp = RegExp('[a-zA-Z0-9]');
var lines = LineSplitter.split(markdown);
for (var line in lines) {
if (!line.contains(regExp)) {
continue;
}
line = line.trim();
if (line.startsWith('#')) {
line = line.replaceAll('#', '');
}
if (line.isEmpty) {
continue;
}
line = line.replaceFirst('[ ]', '');
line = line.replaceFirst('[x]', '');
line = line.replaceFirst('[X]', '');
output.write(line.trim());
output.write(' ');
}
return output.toString();
}