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