mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-29 02:07:39 +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")) {
|
if (str.startsWith("---\n")) {
|
||||||
var parts = str.split("---\n");
|
var parts = str.split("---\n");
|
||||||
var map = <String, dynamic>{};
|
var map = <String, dynamic>{};
|
||||||
|
var yamlText = parts[1].trim();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
if (yamlText.isNotEmpty) {
|
||||||
var yamlMap = loadYaml(parts[1]);
|
var yamlMap = loadYaml(parts[1]);
|
||||||
yamlMap.forEach((key, value) {
|
yamlMap.forEach((key, value) {
|
||||||
map[key] = value;
|
map[key] = value;
|
||||||
});
|
});
|
||||||
} catch (err, stack) {
|
}
|
||||||
|
} catch (err) {
|
||||||
print(
|
print(
|
||||||
'MarkdownYAMLSerializer::decode (${parts[1]}) -> ${err.toString()}');
|
'MarkdownYAMLSerializer::decode("$yamlText") -> ${err.toString()}');
|
||||||
print(stack.toString());
|
|
||||||
}
|
}
|
||||||
map['body'] = parts[2].trimLeft();
|
map['body'] = parts[2].trimLeft();
|
||||||
|
|
||||||
|
@ -31,11 +31,24 @@ void main() {
|
|||||||
expect(note2, note);
|
expect(note2, note);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Markdown Serializer with invalid Markdown', () {
|
test('Markdown Serializer with invalid YAML', () {
|
||||||
var inputNoteStr = """---
|
var inputNoteStr = """---
|
||||||
type
|
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.""";
|
Alright.""";
|
||||||
|
|
||||||
var serializer = MarkdownYAMLSerializer();
|
var serializer = MarkdownYAMLSerializer();
|
||||||
|
Reference in New Issue
Block a user