Skip to content

Commit

Permalink
update: dist folder
Browse files Browse the repository at this point in the history
  • Loading branch information
canburaks committed May 8, 2023
1 parent f9b6056 commit 67eb3bc
Show file tree
Hide file tree
Showing 10 changed files with 225 additions and 36 deletions.
Binary file modified .DS_Store
Binary file not shown.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,6 @@ out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
Expand Down
Binary file added dist/.DS_Store
Binary file not shown.
128 changes: 128 additions & 0 deletions dist/popclip/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/

var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);

// main.ts
var main_exports = {};
__export(main_exports, {
FileWriter: () => FileWriter,
default: () => MyPlugin,
slugify: () => slugify
});
module.exports = __toCommonJS(main_exports);
var import_obsidian = require("obsidian");

// settings.ts
var DEFAULT_SETTINGS = {
mySetting: "default",
actionHeading: "popclip",
action: "advanced-uri"
};
var CUSTOM_SETTINGS = {
useFrontmatter: true,
useHeader: true
};
var SETTINGS = {
...DEFAULT_SETTINGS,
...CUSTOM_SETTINGS
};

// main.ts
var MyPlugin = class extends import_obsidian.Plugin {
async onload() {
await this.loadSettings();
this.registerObsidianProtocolHandler(SETTINGS.action, async (ev) => {
if (ev.heading === SETTINGS.actionHeading) {
new FileWriter(this.app).writeToFile(
JSON.parse(ev.data)
);
}
});
}
onunload() {
}
async loadSettings() {
this.settings = Object.assign({}, SETTINGS, await this.loadData());
}
async saveSettings() {
await this.saveData(this.settings);
}
async activateView() {
}
};
var FileWriter = class {
constructor(app) {
this.app = app;
}
async writeToFile(payload) {
const path = this.normalizePath(payload);
this.app.vault.create((0, import_obsidian.normalizePath)(path), this.setContent(payload));
}
normalizePath(payload) {
const fileName = payload.title && typeof payload.title === "string" && payload.title.length < 60 ? payload.title : this.normalizeDate();
let filePath = decodeURIComponent(payload.path) || "";
console.log(payload.path, filePath);
const path = slugify(`${filePath.trim()}/${fileName.trim()}`) + ".md";
return path;
}
normalizeDate() {
const datetime = new Date().toISOString().split(".")[0];
return datetime.replaceAll("-", "").replaceAll(":", "").replace("t", "");
}
setFrontmatter(payload) {
const elements = [
"---",
`title: "${payload == null ? void 0 : payload.title}"`,
`source: ${(payload == null ? void 0 : payload.source) || ""}`,
`date: ${new Date().toISOString()}`,
"---"
];
return elements.join("\n");
}
setHeader(payload) {
return `# ${payload == null ? void 0 : payload.title}`;
}
setContent(payload) {
const elements = [
this.setFrontmatter(payload),
this.setHeader(payload),
payload == null ? void 0 : payload.clipping
];
return elements.join("\n\n");
}
};
function slugify(str) {
str = str.replace(/^\s+|\s+$/g, "");
str = str.toLowerCase();
var from = "\u0131\xFC\xF6\xE7\u011F\xE0\xE1\xE4\xE2\xE8\xE9\xEB\xEA\xEC\xED\xEF\xEE\xF2\xF3\xF6\xF4\xF9\xFA\xFC\xFB\xF1\xE7\xB7/_,:;";
var to = "iuocgaaaaeeeeiiiioooouuuunc------";
for (var i = 0, l = from.length; i < l; i++) {
str = str.replace(new RegExp(from.charAt(i), "g"), to.charAt(i));
}
str = str.replace(/[^a-z0-9 -]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-");
if (str.startsWith("-")) {
str = str.substring(1);
} else if (str.endsWith("-")) {
str = str.substring(0, str.length - 1);
}
return str;
}
11 changes: 11 additions & 0 deletions dist/popclip/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"id": "popclip",
"name": "Popclip",
"version": "1.0.0",
"minAppVersion": "0.15.0",
"description": "This plugin sent the text you selected to Obsidian. It requires you to install Popclip MacOS app and and Obsidian extension for that .",
"author": "Can Burak Sofyalıoğlu",
"authorUrl": "https://[email protected]/",
"fundingUrl": "",
"isDesktopOnly": true
}
8 changes: 8 additions & 0 deletions dist/popclip/styles.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/*
This CSS file will be included with your plugin, and
available in the app when your plugin is enabled.
If your plugin does not need CSS, delete this file.
*/
44 changes: 30 additions & 14 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@ var DEFAULT_SETTINGS = {
};
var CUSTOM_SETTINGS = {
useFrontmatter: true,
useHeader: true
useHeader: true,
useSlugifyFileName: true,
useTable: true
};
var SETTINGS = {
...DEFAULT_SETTINGS,
Expand All @@ -52,9 +54,7 @@ var MyPlugin = class extends import_obsidian.Plugin {
await this.loadSettings();
this.registerObsidianProtocolHandler(SETTINGS.action, async (ev) => {
if (ev.heading === SETTINGS.actionHeading) {
new FileWriter(this.app).writeToFile(
JSON.parse(decodeURI(ev.data))
);
new FileWriter(this.app).writeToFile(JSON.parse(ev.data));
}
});
}
Expand All @@ -74,19 +74,31 @@ var FileWriter = class {
this.app = app;
}
async writeToFile(payload) {
console.log("write", payload);
const path = this.normalizePath(payload);
this.app.vault.create((0, import_obsidian.normalizePath)(path), this.setContent(payload));
this.app.vault.adapter.write(
(0, import_obsidian.normalizePath)(path),
this.setContent(payload)
);
}
normalizePath(payload) {
const fileName = payload.title && typeof payload.title === "string" && payload.title.length < 60 ? payload.title : this.normalizeDate();
let filePath = payload.path || "";
const path = slugify(`${filePath.trim()}/${fileName.trim()}`) + ".md";
let fileName = this.normalizedDate();
if (payload.title) {
const title = payload.title.slice(0, 20).trim();
fileName = `${fileName}-${title}`;
}
if (SETTINGS.useSlugifyFileName) {
fileName = slugify(fileName);
}
fileName = fileName + ".md";
let filePath = decodeURIComponent(payload.path);
console.log("parentFolder", filePath);
const path = (0, import_obsidian.normalizePath)(filePath + "/" + fileName);
console.log(payload.path, filePath, path);
return path;
}
normalizeDate() {
normalizedDate() {
const datetime = new Date().toISOString().split(".")[0];
return datetime.replaceAll("-", "").replaceAll(":", "").replace("t", "");
return datetime.replaceAll("-", "").replaceAll(":", "").replace("T", "");
}
setFrontmatter(payload) {
const elements = [
Expand All @@ -99,15 +111,20 @@ var FileWriter = class {
return elements.join("\n");
}
setHeader(payload) {
return `# ${payload == null ? void 0 : payload.title}`;
return `# ${payload == null ? void 0 : payload.title}
`;
}
setTable(payload) {
const currentDate = new Date().toISOString();
const source = (payload == null ? void 0 : payload.source) || "";
}
setContent(payload) {
const elements = [
this.setFrontmatter(payload),
this.setHeader(payload),
payload == null ? void 0 : payload.clipping
];
return elements.join("\n\n");
return elements.join("\n");
}
};
function slugify(str) {
Expand All @@ -126,4 +143,3 @@ function slugify(str) {
}
return str;
}
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWFpbi50cyIsICJzZXR0aW5ncy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgQXBwLCBub3JtYWxpemVQYXRoLCBQbHVnaW4gfSBmcm9tIFwib2JzaWRpYW5cIjtcbmltcG9ydCB7IFNFVFRJTkdTIH0gZnJvbSBcIi4vc2V0dGluZ3NcIjtcbmltcG9ydCB0eXBlIHsgU2V0dGluZ3MgfSBmcm9tIFwiLi9zZXR0aW5nc1wiO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE15UGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcblx0c2V0dGluZ3M6IFNldHRpbmdzO1xuXHRhc3luYyBvbmxvYWQoKSB7XG5cdFx0YXdhaXQgdGhpcy5sb2FkU2V0dGluZ3MoKTtcblx0XHR0aGlzLnJlZ2lzdGVyT2JzaWRpYW5Qcm90b2NvbEhhbmRsZXIoU0VUVElOR1MuYWN0aW9uLCBhc3luYyAoZXYpID0+IHtcblx0XHRcdGlmIChldi5oZWFkaW5nID09PSBTRVRUSU5HUy5hY3Rpb25IZWFkaW5nKSB7XG5cdFx0XHRcdG5ldyBGaWxlV3JpdGVyKHRoaXMuYXBwKS53cml0ZVRvRmlsZShcblx0XHRcdFx0XHRKU09OLnBhcnNlKGRlY29kZVVSSShldi5kYXRhKSlcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdG9udW5sb2FkKCkge1xuXHRcdC8vIHRoaXMuYXBwLndvcmtzcGFjZS5kZXRhY2hMZWF2ZXNPZlR5cGUoVklFV19UWVBFX0VYQU1QTEUpO1xuXHR9XG5cblx0YXN5bmMgbG9hZFNldHRpbmdzKCkge1xuXHRcdHRoaXMuc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHt9LCBTRVRUSU5HUywgYXdhaXQgdGhpcy5sb2FkRGF0YSgpKTtcblx0fVxuXG5cdGFzeW5jIHNhdmVTZXR0aW5ncygpIHtcblx0XHRhd2FpdCB0aGlzLnNhdmVEYXRhKHRoaXMuc2V0dGluZ3MpO1xuXHR9XG5cblx0YXN5bmMgYWN0aXZhdGVWaWV3KCkge31cbn1cblxuaW50ZXJmYWNlIFBvcGNsaXBEYXRhIHtcblx0Y2xpcHBpbmc6IHN0cmluZztcblx0cGF0aDogc3RyaW5nO1xuXHR0aXRsZT86IHN0cmluZztcblx0c291cmNlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRmlsZVdyaXRlciB7XG5cdGFwcDogQXBwO1xuXHRjb25zdHJ1Y3RvcihhcHA6IEFwcCkge1xuXHRcdHRoaXMuYXBwID0gYXBwO1xuXHR9XG5cdGFzeW5jIHdyaXRlVG9GaWxlKHBheWxvYWQ6IFBvcGNsaXBEYXRhKSB7XG5cdFx0Y29uc29sZS5sb2coXCJ3cml0ZVwiLCBwYXlsb2FkKTtcblx0XHRjb25zdCBwYXRoID0gdGhpcy5ub3JtYWxpemVQYXRoKHBheWxvYWQpO1xuXG5cdFx0dGhpcy5hcHAudmF1bHQuY3JlYXRlKG5vcm1hbGl6ZVBhdGgocGF0aCksIHRoaXMuc2V0Q29udGVudChwYXlsb2FkKSk7XG5cdH1cblxuXHRub3JtYWxpemVQYXRoKHBheWxvYWQ6IFBvcGNsaXBEYXRhKSB7XG5cdFx0Y29uc3QgZmlsZU5hbWUgPVxuXHRcdFx0cGF5bG9hZC50aXRsZSAmJlxuXHRcdFx0dHlwZW9mIHBheWxvYWQudGl0bGUgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdHBheWxvYWQudGl0bGUubGVuZ3RoIDwgNjBcblx0XHRcdFx0PyBwYXlsb2FkLnRpdGxlXG5cdFx0XHRcdDogdGhpcy5ub3JtYWxpemVEYXRlKCk7XG5cblx0XHRsZXQgZmlsZVBhdGg6IHN0cmluZyA9IHBheWxvYWQucGF0aCB8fCBcIlwiO1xuXHRcdGNvbnN0IHBhdGggPSBzbHVnaWZ5KGAke2ZpbGVQYXRoLnRyaW0oKX0vJHtmaWxlTmFtZS50cmltKCl9YCkgKyBcIi5tZFwiO1xuXHRcdHJldHVybiBwYXRoO1xuXHR9XG5cblx0bm9ybWFsaXplRGF0ZSgpIHtcblx0XHRjb25zdCBkYXRldGltZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdChcIi5cIilbMF07XG5cdFx0cmV0dXJuIGRhdGV0aW1lXG5cdFx0XHQucmVwbGFjZUFsbChcIi1cIiwgXCJcIilcblx0XHRcdC5yZXBsYWNlQWxsKFwiOlwiLCBcIlwiKVxuXHRcdFx0LnJlcGxhY2UoXCJ0XCIsIFwiXCIpO1xuXHR9XG5cblx0c2V0RnJvbnRtYXR0ZXIocGF5bG9hZDogUG9wY2xpcERhdGEpIHtcblx0XHRjb25zdCBlbGVtZW50cyA9IFtcblx0XHRcdFwiLS0tXCIsXG5cdFx0XHRgdGl0bGU6IFwiJHtwYXlsb2FkPy50aXRsZX1cImAsXG5cdFx0XHRgc291cmNlOiAke3BheWxvYWQ/LnNvdXJjZSB8fCBcIlwifWAsXG5cdFx0XHRgZGF0ZTogJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCl9YCxcblx0XHRcdFwiLS0tXCIsXG5cdFx0XTtcblx0XHRyZXR1cm4gZWxlbWVudHMuam9pbihcIlxcblwiKTtcblx0fVxuXG5cdHNldEhlYWRlcihwYXlsb2FkOiBQb3BjbGlwRGF0YSkge1xuXHRcdHJldHVybiBgIyAke3BheWxvYWQ/LnRpdGxlfWA7XG5cdH1cblxuXHRzZXRDb250ZW50KHBheWxvYWQ6IFBvcGNsaXBEYXRhKSB7XG5cdFx0Y29uc3QgZWxlbWVudHMgPSBbXG5cdFx0XHR0aGlzLnNldEZyb250bWF0dGVyKHBheWxvYWQpLFxuXHRcdFx0dGhpcy5zZXRIZWFkZXIocGF5bG9hZCksXG5cdFx0XHRwYXlsb2FkPy5jbGlwcGluZyxcblx0XHRdO1xuXHRcdHJldHVybiBlbGVtZW50cy5qb2luKFwiXFxuXFxuXCIpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzbHVnaWZ5KHN0cjogc3RyaW5nKSB7XG5cdHN0ciA9IHN0ci5yZXBsYWNlKC9eXFxzK3xcXHMrJC9nLCBcIlwiKTsgLy8gdHJpbVxuXHRzdHIgPSBzdHIudG9Mb3dlckNhc2UoKTtcblxuXHQvLyByZW1vdmUgYWNjZW50cywgc3dhcCBcdTAwRjEgZm9yIG4sIGV0Y1xuXHR2YXIgZnJvbSA9IFwiXHUwMTMxXHUwMEZDXHUwMEY2XHUwMEU3XHUwMTFGXHUwMEUwXHUwMEUxXHUwMEU0XHUwMEUyXHUwMEU4XHUwMEU5XHUwMEVCXHUwMEVBXHUwMEVDXHUwMEVEXHUwMEVGXHUwMEVFXHUwMEYyXHUwMEYzXHUwMEY2XHUwMEY0XHUwMEY5XHUwMEZBXHUwMEZDXHUwMEZCXHUwMEYxXHUwMEU3XHUwMEI3L18sOjtcIjtcblx0dmFyIHRvID0gXCJpdW9jZ2FhYWFlZWVlaWlpaW9vb291dXV1bmMtLS0tLS1cIjtcblx0Zm9yICh2YXIgaSA9IDAsIGwgPSBmcm9tLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuXHRcdHN0ciA9IHN0ci5yZXBsYWNlKG5ldyBSZWdFeHAoZnJvbS5jaGFyQXQoaSksIFwiZ1wiKSwgdG8uY2hhckF0KGkpKTtcblx0fVxuXG5cdHN0ciA9IHN0clxuXHRcdC5yZXBsYWNlKC9bXmEtejAtOSAtXS9nLCBcIlwiKSAvLyByZW1vdmUgaW52YWxpZCBjaGFyc1xuXHRcdC5yZXBsYWNlKC9cXHMrL2csIFwiLVwiKSAvLyBjb2xsYXBzZSB3aGl0ZXNwYWNlIGFuZCByZXBsYWNlIGJ5IC1cblx0XHQucmVwbGFjZSgvLSsvZywgXCItXCIpOyAvLyBjb2xsYXBzZSBkYXNoZXNcblx0Ly8gcmVtb3ZlIHRyYWlsaW5nIGRhc2hlc1xuXHRpZiAoc3RyLnN0YXJ0c1dpdGgoXCItXCIpKSB7XG5cdFx0c3RyID0gc3RyLnN1YnN0cmluZygxKTtcblx0fSBlbHNlIGlmIChzdHIuZW5kc1dpdGgoXCItXCIpKSB7XG5cdFx0c3RyID0gc3RyLnN1YnN0cmluZygwLCBzdHIubGVuZ3RoIC0gMSk7XG5cdH1cblx0cmV0dXJuIHN0cjtcbn1cbiIsICJpbnRlcmZhY2UgRGVmYXVsdFNldHRpbmdzIHtcblx0bXlTZXR0aW5nOiBzdHJpbmc7XG5cdGFjdGlvbkhlYWRpbmc6IHN0cmluZztcblx0YWN0aW9uOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDdXN0b21TZXR0aW5ncyB7XG4gICAgdXNlRnJvbnRtYXR0ZXI6IGJvb2xlYW47XG4gICAgdXNlSGVhZGVyOiBib29sZWFuO1xufVxuZXhwb3J0IHR5cGUgU2V0dGluZ3MgPSBEZWZhdWx0U2V0dGluZ3MgJiBDdXN0b21TZXR0aW5ncztcblxuLy8gRG9uJ3QgY2hhbmdlIHRoaXNcbmNvbnN0IERFRkFVTFRfU0VUVElOR1M6IERlZmF1bHRTZXR0aW5ncyA9IHtcblx0bXlTZXR0aW5nOiBcImRlZmF1bHRcIixcblx0YWN0aW9uSGVhZGluZzogXCJwb3BjbGlwXCIsXG5cdGFjdGlvbjogXCJhZHZhbmNlZC11cmlcIlxufTtcblxuY29uc3QgQ1VTVE9NX1NFVFRJTkdTOiBDdXN0b21TZXR0aW5ncyA9IHtcbiAgICB1c2VGcm9udG1hdHRlcjogdHJ1ZSxcbiAgICB1c2VIZWFkZXI6IHRydWVcbn07XG5cbmV4cG9ydCBjb25zdCBTRVRUSU5HUyA9IHtcbiAgICAuLi5ERUZBVUxUX1NFVFRJTkdTLFxuICAgIC4uLkNVU1RPTV9TRVRUSU5HU1xufSJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsc0JBQTJDOzs7QUNhM0MsSUFBTSxtQkFBb0M7QUFBQSxFQUN6QyxXQUFXO0FBQUEsRUFDWCxlQUFlO0FBQUEsRUFDZixRQUFRO0FBQ1Q7QUFFQSxJQUFNLGtCQUFrQztBQUFBLEVBQ3BDLGdCQUFnQjtBQUFBLEVBQ2hCLFdBQVc7QUFDZjtBQUVPLElBQU0sV0FBVztBQUFBLEVBQ3BCLEdBQUc7QUFBQSxFQUNILEdBQUc7QUFDUDs7O0FEdEJBLElBQXFCLFdBQXJCLGNBQXNDLHVCQUFPO0FBQUEsRUFFNUMsTUFBTSxTQUFTO0FBQ2QsVUFBTSxLQUFLLGFBQWE7QUFDeEIsU0FBSyxnQ0FBZ0MsU0FBUyxRQUFRLE9BQU8sT0FBTztBQUNuRSxVQUFJLEdBQUcsWUFBWSxTQUFTLGVBQWU7QUFDMUMsWUFBSSxXQUFXLEtBQUssR0FBRyxFQUFFO0FBQUEsVUFDeEIsS0FBSyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUM7QUFBQSxRQUM5QjtBQUFBLE1BQ0Q7QUFBQSxJ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
62 changes: 42 additions & 20 deletions main.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
import { App, normalizePath, Plugin } from "obsidian";
import {
App,
normalizePath,
Plugin,
FileManager,
TFile,
TFolder,
} from "obsidian";
import { SETTINGS } from "./settings";
import type { Settings } from "./settings";


export default class MyPlugin extends Plugin {
settings: Settings;
async onload() {
await this.loadSettings();
this.registerObsidianProtocolHandler(SETTINGS.action, async (ev) => {
if (ev.heading === SETTINGS.actionHeading) {
new FileWriter(this.app).writeToFile(
JSON.parse(decodeURI(ev.data))
);
new FileWriter(this.app).writeToFile(JSON.parse(ev.data));
}
});
}
Expand Down Expand Up @@ -44,31 +48,44 @@ export class FileWriter {
this.app = app;
}
async writeToFile(payload: PopclipData) {
console.log("write", payload);
const path = this.normalizePath(payload);

this.app.vault.create(normalizePath(path), this.setContent(payload));
this.app.vault.adapter.write(
normalizePath(path),
this.setContent(payload)
);
}

normalizePath(payload: PopclipData) {
const fileName =
payload.title &&
typeof payload.title === "string" &&
payload.title.length < 60
? payload.title
: this.normalizeDate();

let filePath: string = payload.path || "";
const path = slugify(`${filePath.trim()}/${fileName.trim()}`) + ".md";
let fileName = this.normalizedDate();
if (payload.title) {
const title = payload.title.slice(0, 20).trim();
fileName = `${fileName}-${title}`;
}

if (SETTINGS.useSlugifyFileName) {
fileName = slugify(fileName);
}
fileName = fileName + ".md";

let filePath: string = decodeURIComponent(payload.path);
// const fileManager = new FileManager();
// const parentFolder: TFolder = fileManager.getNewFileParent(
// "",
// filePath
// );
console.log("parentFolder", filePath);
const path = normalizePath(filePath + "/" + fileName);
console.log(payload.path, filePath, path);
return path;
}

normalizeDate() {
normalizedDate() {
const datetime = new Date().toISOString().split(".")[0];
return datetime
.replaceAll("-", "")
.replaceAll(":", "")
.replace("t", "");
.replace("T", "");
}

setFrontmatter(payload: PopclipData) {
Expand All @@ -83,7 +100,12 @@ export class FileWriter {
}

setHeader(payload: PopclipData) {
return `# ${payload?.title}`;
return `# ${payload?.title}\n`;
}

setTable(payload: PopclipData) {
const currentDate = new Date().toISOString();
const source = payload?.source || "";
}

setContent(payload: PopclipData) {
Expand All @@ -92,7 +114,7 @@ export class FileWriter {
this.setHeader(payload),
payload?.clipping,
];
return elements.join("\n\n");
return elements.join("\n");
}
}

Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"dev": "node esbuild.config.mjs",
"build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production",
"version": "node version-bump.mjs && git add manifest.json versions.json",
"deploy": "npm run build && cp main.js styles.css manifest.json dist/popclip/",
"deploy:test": "cp main.js styles.css manifest.json ~/Downloads/test/.obsidian/plugins/popclip"
},
"keywords": [],
Expand Down
6 changes: 5 additions & 1 deletion settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ interface DefaultSettings {
interface CustomSettings {
useFrontmatter: boolean;
useHeader: boolean;
useSlugifyFileName: boolean;
useTable: boolean;
}
export type Settings = DefaultSettings & CustomSettings;

Expand All @@ -19,7 +21,9 @@ const DEFAULT_SETTINGS: DefaultSettings = {

const CUSTOM_SETTINGS: CustomSettings = {
useFrontmatter: true,
useHeader: true
useHeader: true,
useSlugifyFileName: true,
useTable: true
};

export const SETTINGS = {
Expand Down

0 comments on commit 67eb3bc

Please sign in to comment.