mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-27 17:29:50 +08:00
Serializers: Ignore empty yaml metadata
No point giving out a horrible stack trace in this case. This is clearly not worth an "exception".
This commit is contained in:
@ -27,16 +27,18 @@ class MarkdownYAMLSerializer implements NoteSerializer {
|
||||
if (str.startsWith("---\n")) {
|
||||
var parts = str.split("---\n");
|
||||
var map = <String, dynamic>{};
|
||||
var yamlText = parts[1].trim();
|
||||
|
||||
try {
|
||||
var yamlMap = loadYaml(parts[1]);
|
||||
yamlMap.forEach((key, value) {
|
||||
map[key] = value;
|
||||
});
|
||||
} catch (err, stack) {
|
||||
if (yamlText.isNotEmpty) {
|
||||
var yamlMap = loadYaml(parts[1]);
|
||||
yamlMap.forEach((key, value) {
|
||||
map[key] = value;
|
||||
});
|
||||
}
|
||||
} catch (err) {
|
||||
print(
|
||||
'MarkdownYAMLSerializer::decode (${parts[1]}) -> ${err.toString()}');
|
||||
print(stack.toString());
|
||||
'MarkdownYAMLSerializer::decode("$yamlText") -> ${err.toString()}');
|
||||
}
|
||||
map['body'] = parts[2].trimLeft();
|
||||
|
||||
|
@ -31,11 +31,24 @@ void main() {
|
||||
expect(note2, note);
|
||||
});
|
||||
|
||||
test('Markdown Serializer with invalid Markdown', () {
|
||||
test('Markdown Serializer with invalid YAML', () {
|
||||
var inputNoteStr = """---
|
||||
type
|
||||
---
|
||||
|
||||
Alright.""";
|
||||
|
||||
var serializer = MarkdownYAMLSerializer();
|
||||
var note = serializer.decode(inputNoteStr);
|
||||
var actualStr = "Alright.";
|
||||
|
||||
expect(actualStr, note.body);
|
||||
});
|
||||
|
||||
test('Markdown Serializer with empty YAML', () {
|
||||
var inputNoteStr = """---
|
||||
---
|
||||
|
||||
Alright.""";
|
||||
|
||||
var serializer = MarkdownYAMLSerializer();
|
||||
|
Reference in New Issue
Block a user