mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-28 01:45:55 +08:00
NoteSerializer: Avoid using Settings.instance
This commit is contained in:
@ -50,7 +50,7 @@ class Note with NotesNotifier {
|
||||
NoteFileFormat _fileFormat;
|
||||
|
||||
MdYamlDoc _data = MdYamlDoc();
|
||||
NoteSerializer noteSerializer = NoteSerializer();
|
||||
NoteSerializer noteSerializer = NoteSerializer.fromSettings(Settings.instance);
|
||||
|
||||
DateTime fileLastModified;
|
||||
|
||||
|
@ -17,18 +17,27 @@ abstract class NoteSerializerInterface {
|
||||
var emojiParser = EmojiParser();
|
||||
|
||||
class NoteSerializationSettings {
|
||||
String modifiedKey = Settings.instance.yamlModifiedKey;
|
||||
String createdKey = Settings.instance.yamlCreatedKey;
|
||||
String modifiedKey = "modified";
|
||||
String createdKey = "created";
|
||||
String titleKey = "title";
|
||||
String typeKey = "type";
|
||||
String tagsKey = Settings.instance.yamlTagsKey;
|
||||
String tagsKey = "tags";
|
||||
|
||||
bool saveTitleAsH1 = Settings.instance.saveTitleInH1;
|
||||
bool saveTitleAsH1 = true;
|
||||
}
|
||||
|
||||
class NoteSerializer implements NoteSerializerInterface {
|
||||
var settings = NoteSerializationSettings();
|
||||
|
||||
NoteSerializer.fromSettings(Settings globalSettings) {
|
||||
settings.modifiedKey = globalSettings.yamlModifiedKey;
|
||||
settings.createdKey = globalSettings.yamlCreatedKey;
|
||||
settings.tagsKey = globalSettings.yamlTagsKey;
|
||||
settings.saveTitleAsH1 = globalSettings.saveTitleInH1;
|
||||
}
|
||||
|
||||
NoteSerializer.raw();
|
||||
|
||||
@override
|
||||
void encode(Note note, MdYamlDoc data) {
|
||||
data.body = emojiParser.unemojify(note.body);
|
||||
|
@ -167,7 +167,8 @@ class NoteOutputExample extends StatelessWidget {
|
||||
style = style.copyWith(fontFamily: "Roboto Mono");
|
||||
|
||||
var doc = MdYamlDoc();
|
||||
NoteSerializer().encode(note, doc);
|
||||
var settings = Provider.of<Settings>(context);
|
||||
NoteSerializer.fromSettings(settings).encode(note, doc);
|
||||
|
||||
var codec = MarkdownYAMLCodec();
|
||||
var noteStr = codec.encode(doc);
|
||||
|
@ -13,7 +13,7 @@ void main() {
|
||||
<String, dynamic>{"title": "Why not :coffee:?"});
|
||||
var doc = MdYamlDoc("I :heart: you", props);
|
||||
|
||||
var serializer = NoteSerializer();
|
||||
var serializer = NoteSerializer.raw();
|
||||
serializer.settings.saveTitleAsH1 = false;
|
||||
|
||||
var note = Note(null, "file-path-not-important");
|
||||
@ -34,7 +34,7 @@ void main() {
|
||||
var props = <String, dynamic>{};
|
||||
var doc = MdYamlDoc("# Why not :coffee:?\n\nI :heart: you", props);
|
||||
|
||||
var serializer = NoteSerializer();
|
||||
var serializer = NoteSerializer.raw();
|
||||
serializer.settings.saveTitleAsH1 = true;
|
||||
|
||||
var note = Note(null, "file-path-not-important");
|
||||
@ -55,7 +55,7 @@ void main() {
|
||||
var props = <String, dynamic>{};
|
||||
var doc = MdYamlDoc("\n# Why not :coffee:?\n\nI :heart: you", props);
|
||||
|
||||
var serializer = NoteSerializer();
|
||||
var serializer = NoteSerializer.raw();
|
||||
|
||||
var note = Note(null, "file-path-not-important");
|
||||
serializer.decode(doc, note);
|
||||
@ -68,7 +68,7 @@ void main() {
|
||||
var props = <String, dynamic>{};
|
||||
var doc = MdYamlDoc("\n# Why not :coffee:?", props);
|
||||
|
||||
var serializer = NoteSerializer();
|
||||
var serializer = NoteSerializer.raw();
|
||||
|
||||
var note = Note(null, "file-path-not-important");
|
||||
serializer.decode(doc, note);
|
||||
@ -82,7 +82,7 @@ void main() {
|
||||
<String, dynamic>{"title": "Why not :coffee:?"});
|
||||
var doc = MdYamlDoc("I :heart: you", props);
|
||||
|
||||
var serializer = NoteSerializer();
|
||||
var serializer = NoteSerializer.raw();
|
||||
serializer.settings.saveTitleAsH1 = true;
|
||||
|
||||
var note = Note(null, "file-path-not-important");
|
||||
|
Reference in New Issue
Block a user