#31 - implementation of auto-update

This commit is contained in:
Elio Struyf
2021-08-09 10:47:13 +02:00
parent 1b1dc55da7
commit c88d6be1d7
14 changed files with 84 additions and 8 deletions
+4 -3
View File
@@ -126,16 +126,17 @@ export class Article {
return;
}
const cloneArticle = Object.assign({}, article);
const dateFormat = config.get(SETTING_DATE_FORMAT) as string;
const dateField = config.get(SETTING_MODIFIED_FIELD) as string || "lastmod";
try {
if (dateFormat && typeof dateFormat === "string") {
article.data[dateField] = format(new Date(), dateFormat);
cloneArticle.data[dateField] = format(new Date(), dateFormat);
} else {
article.data[dateField] = new Date().toISOString();
cloneArticle.data[dateField] = new Date().toISOString();
}
ArticleHelper.update(editor, article);
ArticleHelper.update(editor, cloneArticle);
} catch (e) {
Notifications.error(`Something failed while parsing the date format. Check your "${CONFIG_KEY}${SETTING_DATE_FORMAT}" setting.`);
console.log(e.message);
+8 -1
View File
@@ -1,8 +1,9 @@
import { SETTING_SEO_DESCRIPTION_FIELD, SETTING_SEO_DESCRIPTION_LENGTH, SETTING_SEO_TITLE_LENGTH } from './../constants/settings';
import { SETTING_AUTO_UPDATE_DATE, SETTING_SEO_DESCRIPTION_FIELD, SETTING_SEO_DESCRIPTION_LENGTH, SETTING_SEO_TITLE_LENGTH } from './../constants/settings';
import * as vscode from 'vscode';
import { CONFIG_KEY } from '../constants';
import { ArticleHelper, SeoHelper } from '../helpers';
import { ExplorerView } from '../webview/ExplorerView';
import { Article } from '.';
export class StatusListener {
@@ -15,6 +16,7 @@ export class StatusListener {
public static async verify(frontMatterSB: vscode.StatusBarItem, collection: vscode.DiagnosticCollection) {
const draftMsg = "in draft";
const publishMsg = "to publish";
const config = vscode.workspace.getConfiguration(CONFIG_KEY);
let editor = vscode.window.activeTextEditor;
if (editor && ArticleHelper.isMarkdownDile()) {
@@ -51,6 +53,11 @@ export class StatusListener {
SeoHelper.checkLength(editor, collection, article, fieldName, descLength);
}
}
const autoUpdate = config.get(SETTING_AUTO_UPDATE_DATE);
if (autoUpdate) {
Article.setLastModifiedDate();
}
const panel = ExplorerView.getInstance();
if (panel && panel.visible) {