Allow the 'created' YAML metadata to be configured

Related to #206
This commit is contained in:
Vishesh Handa
2020-08-03 00:46:41 +02:00
parent e09ea4313b
commit c5deb3e988
4 changed files with 43 additions and 7 deletions

View File

@ -43,6 +43,7 @@ settings:
text: Every note has some metadata which is stored in a YAML Header as follows - text: Every note has some metadata which is stored in a YAML Header as follows -
enableHeader: Enable YAML Header enableHeader: Enable YAML Header
modified: Modified Field modified: Modified Field
created: Created Field
example: example:
title: Example Title title: Example Title
titleMetaData: titleMetaData:

View File

@ -18,7 +18,7 @@ var emojiParser = EmojiParser();
class NoteSerializationSettings { class NoteSerializationSettings {
String modifiedKey = Settings.instance.yamlModifiedKey; String modifiedKey = Settings.instance.yamlModifiedKey;
String createdKey = "created"; String createdKey = Settings.instance.yamlCreatedKey;
String titleKey = "title"; String titleKey = "title";
String typeKey = "type"; String typeKey = "type";
String tagsKey = "tags"; String tagsKey = "tags";
@ -87,18 +87,29 @@ class NoteSerializer implements NoteSerializerInterface {
"lastmodified", "lastmodified",
"lastmod", "lastmod",
]; ];
for (var i = 0; i < modifiedKeyOptions.length; i++) { for (var possibleKey in modifiedKeyOptions) {
var possibleKey = modifiedKeyOptions[i]; var val = data.props[possibleKey];
var modifiedVal = data.props[possibleKey]; if (val != null) {
if (modifiedVal != null) { note.modified = parseDateTime(val.toString());
note.modified = parseDateTime(modifiedVal.toString());
settings.modifiedKey = possibleKey; settings.modifiedKey = possibleKey;
break; break;
} }
} }
note.body = emojiParser.emojify(data.body); note.body = emojiParser.emojify(data.body);
note.created = parseDateTime(data.props[settings.createdKey]?.toString());
var createdKeyOptions = [
"created",
"date",
];
for (var possibleKey in createdKeyOptions) {
var val = data.props[possibleKey];
if (val != null) {
note.created = parseDateTime(val.toString());
settings.createdKey = possibleKey;
break;
}
}
// //
// Title parsing // Title parsing

View File

@ -77,6 +77,23 @@ class _NoteMetadataSettingsScreenState
enabled: Settings.instance.yamlHeaderEnabled, enabled: Settings.instance.yamlHeaderEnabled,
), ),
), ),
ProOverlay(
child: ListPreference(
title: tr("settings.noteMetaData.created"),
options: [
"created",
"date",
],
currentOption: Settings.instance.yamlCreatedKey,
onChange: (String newVal) {
setState(() {
Settings.instance.yamlCreatedKey = newVal;
Settings.instance.save();
});
},
enabled: Settings.instance.yamlHeaderEnabled,
),
),
ProOverlay( ProOverlay(
child: ListPreference( child: ListPreference(
title: tr("settings.noteMetaData.titleMetaData.title"), title: tr("settings.noteMetaData.titleMetaData.title"),

View File

@ -21,6 +21,8 @@ class Settings {
bool collectCrashReports = true; bool collectCrashReports = true;
String yamlModifiedKey = "modified"; String yamlModifiedKey = "modified";
String yamlCreatedKey = "created";
bool yamlHeaderEnabled = true; bool yamlHeaderEnabled = true;
String defaultNewNoteFolderSpec = ""; String defaultNewNoteFolderSpec = "";
String journalEditordefaultNewNoteFolderSpec = ""; String journalEditordefaultNewNoteFolderSpec = "";
@ -68,6 +70,8 @@ class Settings {
pref.getBool("collectCrashReports") ?? collectCrashReports; pref.getBool("collectCrashReports") ?? collectCrashReports;
yamlModifiedKey = pref.getString("yamlModifiedKey") ?? yamlModifiedKey; yamlModifiedKey = pref.getString("yamlModifiedKey") ?? yamlModifiedKey;
yamlCreatedKey = pref.getString("yamlCreatedKey") ?? yamlCreatedKey;
yamlHeaderEnabled = pref.getBool("yamlHeaderEnabled") ?? yamlHeaderEnabled; yamlHeaderEnabled = pref.getBool("yamlHeaderEnabled") ?? yamlHeaderEnabled;
defaultNewNoteFolderSpec = defaultNewNoteFolderSpec =
pref.getString("defaultNewNoteFolderSpec") ?? defaultNewNoteFolderSpec; pref.getString("defaultNewNoteFolderSpec") ?? defaultNewNoteFolderSpec;
@ -140,6 +144,8 @@ class Settings {
defaultSet.collectCrashReports); defaultSet.collectCrashReports);
_setString( _setString(
pref, "yamlModifiedKey", yamlModifiedKey, defaultSet.yamlModifiedKey); pref, "yamlModifiedKey", yamlModifiedKey, defaultSet.yamlModifiedKey);
_setString(
pref, "yamlCreatedKey", yamlCreatedKey, defaultSet.yamlCreatedKey);
_setBool(pref, "yamlHeaderEnabled", yamlHeaderEnabled, _setBool(pref, "yamlHeaderEnabled", yamlHeaderEnabled,
defaultSet.yamlHeaderEnabled); defaultSet.yamlHeaderEnabled);
_setString(pref, "defaultNewNoteFolderSpec", defaultNewNoteFolderSpec, _setString(pref, "defaultNewNoteFolderSpec", defaultNewNoteFolderSpec,
@ -225,6 +231,7 @@ class Settings {
"collectUsageStatistics": collectUsageStatistics.toString(), "collectUsageStatistics": collectUsageStatistics.toString(),
"collectCrashReports": collectCrashReports.toString(), "collectCrashReports": collectCrashReports.toString(),
"yamlModifiedKey": yamlModifiedKey, "yamlModifiedKey": yamlModifiedKey,
"yamlCreatedKey": yamlCreatedKey,
"yamlHeaderEnabled": yamlHeaderEnabled.toString(), "yamlHeaderEnabled": yamlHeaderEnabled.toString(),
"defaultNewNoteFolderSpec": defaultNewNoteFolderSpec, "defaultNewNoteFolderSpec": defaultNewNoteFolderSpec,
"journalEditordefaultNewNoteFolderSpec": "journalEditordefaultNewNoteFolderSpec":