start preping 6.1.0

This commit is contained in:
Elio Struyf
2022-01-30 17:33:25 +01:00
parent ee70acebb6
commit 61e9fc0308
15 changed files with 136 additions and 3 deletions
+7
View File
@@ -1,5 +1,12 @@
# Change Log
## [6.1.0] - 2022-02-xx
### 🎨 Enhancements
### 🐞 Fixes
## [6.0.0] - 2022-01-25 - [Release Notes](https://beta.frontmatter.codes/updates/v6.0.0)
### ✨ New features
+16
View File
@@ -32,6 +32,7 @@
"@types/react-dom": "17.0.0",
"@types/vscode": "^1.63.0",
"@vscode/codicons": "0.0.20",
"@vscode/extension-telemetry": "^0.4.7",
"@vscode/webview-ui-toolkit": "^0.8.1",
"@webpack-cli/serve": "^1.6.0",
"ajv": "^8.8.2",
@@ -903,6 +904,15 @@
"integrity": "sha512-LlO6K7nzrIWDCZN1Zi6J6ibxrpMibSAct+zNjAwpkNkwup6cJLx5diYvsOJODMPWOuQlBO21qkxtdkSRzW6+Jw==",
"dev": true
},
"node_modules/@vscode/extension-telemetry": {
"version": "0.4.7",
"resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.4.7.tgz",
"integrity": "sha512-tXjChgxFN6EAfa6LIy/PE3fIbIvj0BnELUmGAG+8tUpsLY3g2iACcVM/UJJXtsU6db29tMqCLITUX2Dd3N06GA==",
"dev": true,
"engines": {
"vscode": "^1.60.0"
}
},
"node_modules/@vscode/webview-ui-toolkit": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@vscode/webview-ui-toolkit/-/webview-ui-toolkit-0.8.1.tgz",
@@ -9936,6 +9946,12 @@
"integrity": "sha512-LlO6K7nzrIWDCZN1Zi6J6ibxrpMibSAct+zNjAwpkNkwup6cJLx5diYvsOJODMPWOuQlBO21qkxtdkSRzW6+Jw==",
"dev": true
},
"@vscode/extension-telemetry": {
"version": "0.4.7",
"resolved": "https://registry.npmjs.org/@vscode/extension-telemetry/-/extension-telemetry-0.4.7.tgz",
"integrity": "sha512-tXjChgxFN6EAfa6LIy/PE3fIbIvj0BnELUmGAG+8tUpsLY3g2iACcVM/UJJXtsU6db29tMqCLITUX2Dd3N06GA==",
"dev": true
},
"@vscode/webview-ui-toolkit": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@vscode/webview-ui-toolkit/-/webview-ui-toolkit-0.8.1.tgz",
+2 -1
View File
@@ -1431,6 +1431,7 @@
"@types/react-dom": "17.0.0",
"@types/vscode": "^1.63.0",
"@vscode/codicons": "0.0.20",
"@vscode/extension-telemetry": "^0.4.7",
"@vscode/webview-ui-toolkit": "^0.8.1",
"@webpack-cli/serve": "^1.6.0",
"ajv": "^8.8.2",
@@ -1481,4 +1482,4 @@
"dependencies": {
"node-fetch": "^2.6.7"
}
}
}
+3
View File
@@ -12,6 +12,7 @@ import { DashboardData } from '../models/DashboardData';
import { ExplorerView } from '../explorerView/ExplorerView';
import { DateHelper } from '../helpers/DateHelper';
import { parseWinPath } from '../helpers/parseWinPath';
import { Telemetry, TelemetryEvent } from '../helpers/Telemetry';
export class Article {
@@ -165,6 +166,8 @@ export class Article {
* Generate the slug based on the article title
*/
public static async generateSlug() {
Telemetry.send(TelemetryEvent.generateSlug);
const prefix = Settings.get(SETTING_SLUG_PREFIX) as string;
const suffix = Settings.get(SETTING_SLUG_SUFFIX) as string;
const updateFileName = Settings.get(SETTING_SLUG_UPDATE_FILE_NAME) as string;
+7
View File
@@ -14,6 +14,7 @@ import { parseWinPath } from '../helpers/parseWinPath';
import { MediaHelpers } from '../helpers/MediaHelpers';
import { MediaListener, PagesListener } from '../listeners';
import { DEFAULT_FILE_TYPES } from '../constants/DefaultFileTypes';
import { Telemetry, TelemetryEvent } from '../helpers/Telemetry';
export const WORKSPACE_PLACEHOLDER = `[[workspace]]`;
@@ -68,6 +69,8 @@ export class Folders {
MediaHelpers.resetMedia();
MediaListener.sendMediaFiles(0, folderName);
}
Telemetry.send(TelemetryEvent.addMediaFolder);
}
/**
@@ -122,6 +125,8 @@ export class Folders {
await Folders.update(folders);
Notifications.info(`Folder registered`);
Telemetry.send(TelemetryEvent.registerFolder);
}
}
@@ -134,6 +139,8 @@ export class Folders {
let folders = Folders.get();
folders = folders.filter(f => f.path !== folder.fsPath);
await Folders.update(folders);
Telemetry.send(TelemetryEvent.unregisterFolder);
}
}
+3
View File
@@ -1,3 +1,4 @@
import { Telemetry, TelemetryEvent } from './../helpers/Telemetry';
import { SETTING_PREVIEW_HOST, SETTING_PREVIEW_PATHNAME, CONTEXT } from './../constants';
import { ArticleHelper } from './../helpers/ArticleHelper';
import { join } from "path";
@@ -133,6 +134,8 @@ export class Preview {
<iframe src="${urlJoin(localhostUrl.toString(), slug || '')}" >
</body>
</html>`;
Telemetry.send(TelemetryEvent.openPreview);
}
/**
+3
View File
@@ -1,3 +1,4 @@
import { Telemetry, TelemetryEvent } from './../helpers/Telemetry';
import { workspace, Uri } from "vscode";
import { join } from "path";
import * as fs from "fs";
@@ -47,6 +48,8 @@ categories: []
fs.writeFileSync(article.fsPath, Project.content, { encoding: "utf-8" });
Notifications.info("Project initialized successfully.");
}
Telemetry.send(TelemetryEvent.initialization)
} catch (err: any) {
Notifications.error(`Sorry, something went wrong - ${err?.message || err}`);
}
+3
View File
@@ -13,6 +13,7 @@ import { ContentType } from '../helpers/ContentType';
import { ContentType as IContentType } from '../models';
import { PagesListener } from '../listeners';
import { extname } from 'path';
import { Telemetry, TelemetryEvent } from '../helpers/Telemetry';
export class Template {
@@ -175,6 +176,8 @@ export class Template {
Notifications.info(`Your new content has been created.`);
Telemetry.send(TelemetryEvent.createContentFromTemplate);
// Trigger a refresh for the dashboard
PagesListener.refresh();
}
+2
View File
@@ -23,6 +23,7 @@ import { Dashboard } from '../commands/Dashboard';
import { ImageHelper } from '../helpers/ImageHelper';
import { CustomScript } from '../helpers/CustomScript';
import { Link, Parent } from 'mdast-util-from-markdown/lib';
import { Telemetry, TelemetryEvent } from '../helpers/Telemetry';
const FILE_LIMIT = 10;
@@ -205,6 +206,7 @@ export class ExplorerView implements WebviewViewProvider, Disposable {
webviewView.onDidChangeVisibility(() => {
if (this.visible) {
Telemetry.send(TelemetryEvent.openExplorerView);
// this.getFileData();
}
});
+12 -2
View File
@@ -1,3 +1,4 @@
import { Telemetry, TelemetryEvent } from './helpers/Telemetry';
import { ContentType } from './helpers/ContentType';
import { Dashboard } from './commands/Dashboard';
import * as vscode from 'vscode';
@@ -43,6 +44,9 @@ export async function activate(context: vscode.ExtensionContext) {
SettingsHelper.checkToPromote();
// Sends the activation event
Telemetry.send(TelemetryEvent.activate);
// Start listening to the folders for content changes.
// This will make sure the dashboard is up to date
PagesListener.startWatchers();
@@ -52,6 +56,7 @@ export async function activate(context: vscode.ExtensionContext) {
// Pages dashboard
Dashboard.init();
subscriptions.push(vscode.commands.registerCommand(COMMAND_NAME.dashboard, (data?: DashboardData) => {
Telemetry.send(TelemetryEvent.openContentDashboard);
if (!data) {
Dashboard.open({ type: "contents" });
} else {
@@ -60,14 +65,17 @@ export async function activate(context: vscode.ExtensionContext) {
}));
subscriptions.push(vscode.commands.registerCommand(COMMAND_NAME.dashboardMedia, (data?: DashboardData) => {
Telemetry.send(TelemetryEvent.openMediaDashboard);
Dashboard.open({ type: "media" });
}));
subscriptions.push(vscode.commands.registerCommand(COMMAND_NAME.dashboardData, (data?: DashboardData) => {
Telemetry.send(TelemetryEvent.openDataDashboard);
Dashboard.open({ type: "data" });
}));
subscriptions.push(vscode.commands.registerCommand(COMMAND_NAME.dashboardClose, (data?: DashboardData) => {
Telemetry.send(TelemetryEvent.closeDashboard);
Dashboard.close();
}));
@@ -151,7 +159,7 @@ export async function activate(context: vscode.ExtensionContext) {
});
// Settings promotion command
subscriptions.push(vscode.commands.registerCommand(COMMAND_NAME.promote, SettingsHelper.promote ));
subscriptions.push(vscode.commands.registerCommand(COMMAND_NAME.promote, SettingsHelper.promote));
// Collapse all sections in the webview
const collapseAll = vscode.commands.registerCommand(COMMAND_NAME.collapseSections, () => {
@@ -234,7 +242,9 @@ export async function activate(context: vscode.ExtensionContext) {
);
}
export function deactivate() {}
export function deactivate() {
Telemetry.dispose();
}
const handleAutoDateUpdate = (e: vscode.TextDocumentWillSaveEvent) => {
Article.autoUpdate(e);
+3
View File
@@ -8,6 +8,7 @@ import { Questions } from "./Questions";
import { writeFileSync } from "fs";
import { Notifications } from "./Notifications";
import { DEFAULT_CONTENT_TYPE_NAME } from "../constants/ContentType";
import { Telemetry, TelemetryEvent } from './Telemetry';
export class ContentType {
@@ -125,6 +126,8 @@ export class ContentType {
Notifications.info(`Your new content has been created.`);
Telemetry.send(TelemetryEvent.createContentFromContentType);
// Trigger a refresh for the dashboard
PagesListener.refresh();
}
+7
View File
@@ -84,6 +84,13 @@ export class Extension {
return this.ctx.extension.packageJSON.name;
}
/**
* Returns the extension's version
*/
public get version(): string {
return this.ctx.extension.packageJSON.version;
}
/**
* Check if the extension is in production/development mode
*/
+3
View File
@@ -1,3 +1,4 @@
import { Telemetry, TelemetryEvent } from './Telemetry';
import { Notifications } from './Notifications';
import { commands, Uri, workspace, window } from 'vscode';
import * as vscode from 'vscode';
@@ -249,6 +250,8 @@ export class Settings {
}
Notifications.info(`All settings promoted to team level.`);
Telemetry.send(TelemetryEvent.promoteSettings);
}
/**
+59
View File
@@ -0,0 +1,59 @@
import TelemetryReporter, { TelemetryEventMeasurements, TelemetryEventProperties } from '@vscode/extension-telemetry';
import { Extension } from '.';
import { EXTENSION_BETA_ID, EXTENSION_ID } from '../constants';
export const TelemetryEvent = {
activate: 'activate',
initialization: 'initialization',
openContentDashboard: 'openContentDashboard',
openMediaDashboard: 'openMediaDashboard',
openDataDashboard: 'openDataDashboard',
closeDashboard: 'closeDashboard',
generateSlug: 'generateSlug',
createContentFromTemplate: 'createContentFromTemplate',
createContentFromContentType: 'createContentFromContentType',
registerFolder: 'registerFolder',
unregisterFolder: 'unregisterFolder',
addMediaFolder: 'addMediaFolder',
promoteSettings: 'promoteSettings',
openPreview: 'openPreview',
uploadMedia: 'uploadMedia',
refreshMedia: 'refreshMedia',
deleteMedia: 'deleteMedia',
insertMediaToContent: 'insertMediaToContent',
updateMediaMetadata: 'updateMediaMetadata',
openExplorerView: 'openExplorerView',
};
export class Telemetry {
private static instance: Telemetry;
private static reporter: TelemetryReporter | null = null;
private constructor() {
const extension = Extension.getInstance();
const extTitle = extension.isBetaVersion() ? EXTENSION_BETA_ID : EXTENSION_ID;
const extVersion = extension.version;
const appKey = `525037e5-70ff-4620-8e52-30e1aef8deee`;
Telemetry.reporter = new TelemetryReporter(extTitle, extVersion, appKey);
}
public static getInstance(): Telemetry {
if (!Telemetry.instance) {
Telemetry.instance = new Telemetry();
}
return Telemetry.instance;
}
public static send(eventName: string, properties?: TelemetryEventProperties, measurements?: TelemetryEventMeasurements) {
if (!Telemetry.reporter) {
Telemetry.getInstance();
}
Telemetry.reporter?.sendTelemetryEvent(eventName, properties, measurements);
}
public static dispose() {
Telemetry.reporter?.dispose();
}
}
+6
View File
@@ -1,3 +1,4 @@
import { Telemetry, TelemetryEvent } from './../helpers/Telemetry';
import { MediaHelpers } from './../helpers/MediaHelpers';
import { DashboardMessage } from "../dashboardWebView/DashboardMessage";
import { BaseListener } from "./BaseListener";
@@ -20,22 +21,27 @@ export class MediaListener extends BaseListener {
this.sendMediaFiles(page, folder, sorting);
break;
case DashboardMessage.refreshMedia:
Telemetry.send(TelemetryEvent.refreshMedia);
MediaHelpers.resetMedia();
this.sendMediaFiles(0, msg?.data?.folder);
break;
case DashboardMessage.uploadMedia:
Telemetry.send(TelemetryEvent.uploadMedia);
this.store(msg?.data);
break;
case DashboardMessage.deleteMedia:
Telemetry.send(TelemetryEvent.deleteMedia);
this.delete(msg?.data);
break;
case DashboardMessage.revealMedia:
this.openFileInFinder(msg?.data?.file);
break;
case DashboardMessage.insertPreviewImage:
Telemetry.send(TelemetryEvent.insertMediaToContent);
MediaHelpers.insertMediaToMarkdown(msg?.data);
break;
case DashboardMessage.updateMediaMetadata:
Telemetry.send(TelemetryEvent.updateMediaMetadata);
this.update(msg.data);
break;
case DashboardMessage.createMediaFolder: