mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-29 18:38:36 +08:00
Remove another case of the Settings singleton
This commit is contained in:
@ -56,8 +56,7 @@ class Note with NotesNotifier {
|
||||
NoteFileFormat _fileFormat;
|
||||
|
||||
MdYamlDoc _data = MdYamlDoc();
|
||||
NoteSerializer noteSerializer =
|
||||
NoteSerializer.fromSettings(Settings.instance);
|
||||
NoteSerializer noteSerializer;
|
||||
|
||||
DateTime fileLastModified;
|
||||
|
||||
@ -73,12 +72,15 @@ class Note with NotesNotifier {
|
||||
static final _mdYamlDocLoader = MdYamlDocLoader();
|
||||
static final _linksLoader = LinksLoader();
|
||||
|
||||
Note(this.parent, this._filePath);
|
||||
Note(this.parent, this._filePath) {
|
||||
noteSerializer = NoteSerializer.fromConfig(parent.config);
|
||||
}
|
||||
|
||||
Note.newNote(this.parent, {Map<String, dynamic> extraProps = const {}}) {
|
||||
created = DateTime.now();
|
||||
_loadState = NoteLoadState.Loaded;
|
||||
_fileFormat = NoteFileFormat.Markdown;
|
||||
noteSerializer = NoteSerializer.fromConfig(parent.config);
|
||||
|
||||
if (extraProps.isNotEmpty) {
|
||||
extraProps.forEach((key, value) {
|
||||
|
@ -3,7 +3,7 @@ import 'dart:convert';
|
||||
import 'package:flutter_emoji/flutter_emoji.dart';
|
||||
import 'package:yaml/yaml.dart';
|
||||
|
||||
import 'package:gitjournal/settings.dart';
|
||||
import 'package:gitjournal/core/notes_folder.dart';
|
||||
import 'package:gitjournal/utils/datetime.dart';
|
||||
import 'package:gitjournal/utils/logger.dart';
|
||||
import 'md_yaml_doc.dart';
|
||||
@ -32,11 +32,11 @@ class NoteSerializationSettings {
|
||||
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.fromConfig(NotesFolderConfig config) {
|
||||
settings.modifiedKey = config.yamlModifiedKey;
|
||||
settings.createdKey = config.yamlCreatedKey;
|
||||
settings.tagsKey = config.yamlTagsKey;
|
||||
settings.saveTitleAsH1 = config.saveTitleInH1;
|
||||
}
|
||||
|
||||
NoteSerializer.raw();
|
||||
|
@ -29,6 +29,11 @@ class NotesFolderConfig extends Equatable {
|
||||
final bool yamlHeaderEnabled;
|
||||
//int _version = 1;
|
||||
|
||||
final String yamlModifiedKey;
|
||||
final String yamlCreatedKey;
|
||||
final String yamlTagsKey;
|
||||
final bool saveTitleInH1;
|
||||
|
||||
NotesFolderConfig({
|
||||
@required this.sortingMode,
|
||||
@required this.defaultEditor,
|
||||
@ -38,6 +43,10 @@ class NotesFolderConfig extends Equatable {
|
||||
@required this.fileNameFormat,
|
||||
@required this.folder,
|
||||
@required this.yamlHeaderEnabled,
|
||||
@required this.yamlModifiedKey,
|
||||
@required this.yamlCreatedKey,
|
||||
@required this.yamlTagsKey,
|
||||
@required this.saveTitleInH1,
|
||||
});
|
||||
|
||||
@override
|
||||
@ -49,6 +58,10 @@ class NotesFolderConfig extends Equatable {
|
||||
fileNameFormat,
|
||||
folder,
|
||||
yamlHeaderEnabled,
|
||||
yamlModifiedKey,
|
||||
yamlCreatedKey,
|
||||
yamlTagsKey,
|
||||
saveTitleInH1,
|
||||
];
|
||||
|
||||
static NotesFolderConfig fromSettings(NotesFolderFS folder) {
|
||||
@ -76,6 +89,10 @@ class NotesFolderConfig extends Equatable {
|
||||
fileNameFormat: settings.noteFileNameFormat,
|
||||
folder: folder,
|
||||
yamlHeaderEnabled: settings.yamlHeaderEnabled,
|
||||
yamlCreatedKey: settings.yamlCreatedKey,
|
||||
yamlModifiedKey: settings.yamlModifiedKey,
|
||||
yamlTagsKey: settings.yamlTagsKey,
|
||||
saveTitleInH1: settings.saveTitleInH1,
|
||||
);
|
||||
}
|
||||
|
||||
@ -104,6 +121,10 @@ class NotesFolderConfig extends Equatable {
|
||||
settings.folderViewHeaderType = ht;
|
||||
settings.noteFileNameFormat = fileNameFormat;
|
||||
settings.yamlHeaderEnabled = yamlHeaderEnabled;
|
||||
settings.yamlCreatedKey = yamlCreatedKey;
|
||||
settings.yamlModifiedKey = yamlModifiedKey;
|
||||
settings.yamlTagsKey = yamlTagsKey;
|
||||
settings.saveTitleInH1 = saveTitleInH1;
|
||||
settings.save();
|
||||
}
|
||||
|
||||
@ -116,6 +137,10 @@ class NotesFolderConfig extends Equatable {
|
||||
NoteFileNameFormat fileNameFormat,
|
||||
NotesFolderFS folder,
|
||||
bool yamlHeaderEnabled,
|
||||
String yamlCreatedKey,
|
||||
String yamlModifiedKey,
|
||||
String yamlTagsKey,
|
||||
bool saveTitleInH1,
|
||||
}) {
|
||||
return NotesFolderConfig(
|
||||
sortingMode: sortingMode ?? this.sortingMode,
|
||||
@ -126,6 +151,10 @@ class NotesFolderConfig extends Equatable {
|
||||
fileNameFormat: fileNameFormat ?? this.fileNameFormat,
|
||||
folder: folder ?? this.folder,
|
||||
yamlHeaderEnabled: yamlHeaderEnabled ?? this.yamlHeaderEnabled,
|
||||
yamlCreatedKey: yamlCreatedKey ?? this.yamlCreatedKey,
|
||||
yamlModifiedKey: yamlModifiedKey ?? this.yamlModifiedKey,
|
||||
yamlTagsKey: yamlTagsKey ?? this.yamlTagsKey,
|
||||
saveTitleInH1: saveTitleInH1 ?? this.saveTitleInH1,
|
||||
);
|
||||
}
|
||||
|
||||
@ -174,7 +203,12 @@ class NotesFolderConfig extends Equatable {
|
||||
}
|
||||
|
||||
var fileNameFormat = map['noteFileNameFormat']?.toString();
|
||||
var yamlHeaderEnabled = map["yamlHeaderEnabled"].toString() != "false";
|
||||
var yamlHeaderEnabled = map["yamlHeaderEnabled"]?.toString() != "false";
|
||||
|
||||
var yamlCreatedKey = map['yamlCreatedKey']?.toString();
|
||||
var yamlModifiedKey = map['yamlModifiedKey']?.toString();
|
||||
var yamlTagsKey = map['yamlTagsKey']?.toString();
|
||||
var saveTitleInH1 = map['saveTitleInH1']?.toString() != "false";
|
||||
|
||||
return NotesFolderConfig(
|
||||
defaultEditor: defaultEditor.toEditorType(),
|
||||
@ -185,6 +219,10 @@ class NotesFolderConfig extends Equatable {
|
||||
fileNameFormat: NoteFileNameFormat.fromInternalString(fileNameFormat),
|
||||
folder: folder,
|
||||
yamlHeaderEnabled: yamlHeaderEnabled,
|
||||
yamlCreatedKey: yamlCreatedKey,
|
||||
yamlModifiedKey: yamlModifiedKey,
|
||||
yamlTagsKey: yamlTagsKey,
|
||||
saveTitleInH1: saveTitleInH1,
|
||||
);
|
||||
}
|
||||
|
||||
@ -213,6 +251,10 @@ class NotesFolderConfig extends Equatable {
|
||||
"folderViewHeaderType": ht,
|
||||
"noteFileNameFormat": fileNameFormat.toInternalString(),
|
||||
'yamlHeaderEnabled': yamlHeaderEnabled,
|
||||
'yamlModifiedKey': yamlModifiedKey,
|
||||
'yamlCreatedKey': yamlCreatedKey,
|
||||
'yamlTagsKey': yamlTagsKey,
|
||||
'saveTitleInH1': saveTitleInH1,
|
||||
};
|
||||
|
||||
var yaml = toYAML(map);
|
||||
|
@ -8,6 +8,7 @@ import 'package:gitjournal/core/md_yaml_doc.dart';
|
||||
import 'package:gitjournal/core/md_yaml_doc_codec.dart';
|
||||
import 'package:gitjournal/core/note.dart';
|
||||
import 'package:gitjournal/core/note_serializer.dart';
|
||||
import 'package:gitjournal/core/notes_folder.dart';
|
||||
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||
import 'package:gitjournal/editors/note_body_editor.dart';
|
||||
import 'package:gitjournal/editors/note_title_editor.dart';
|
||||
@ -206,8 +207,7 @@ class NoteOutputExample extends StatelessWidget {
|
||||
style = style.copyWith(fontFamily: "Roboto Mono");
|
||||
|
||||
var doc = MdYamlDoc();
|
||||
var settings = Provider.of<Settings>(context);
|
||||
NoteSerializer.fromSettings(settings).encode(note, doc);
|
||||
NoteSerializer.fromConfig(NotesFolderConfig.fromSettings(null)).encode(note, doc);
|
||||
|
||||
var codec = MarkdownYAMLCodec();
|
||||
var noteStr = codec.encode(doc);
|
||||
|
@ -35,6 +35,10 @@ void main() {
|
||||
fileNameFormat: NoteFileNameFormat.Default,
|
||||
folder: folder,
|
||||
yamlHeaderEnabled: true,
|
||||
yamlCreatedKey: 'created',
|
||||
yamlModifiedKey: 'modified',
|
||||
yamlTagsKey: 'tags',
|
||||
saveTitleInH1: true,
|
||||
);
|
||||
|
||||
await config.saveToFS();
|
||||
|
Reference in New Issue
Block a user