mirror of
https://github.com/Ellpeck/ObsidianJustSharePlease.git
synced 2024-11-23 02:48:34 +01:00
added frontmatter stripping
This commit is contained in:
parent
36f68d47bc
commit
c9a1dae9a2
6 changed files with 22 additions and 963 deletions
955
package-lock.json
generated
955
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -14,7 +14,6 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^16.11.6",
|
"@types/node": "^16.11.6",
|
||||||
"builtin-modules": "^3.2.0",
|
"builtin-modules": "^3.2.0",
|
||||||
"electron": "^13.6.2",
|
|
||||||
"esbuild": "0.14.0",
|
"esbuild": "0.14.0",
|
||||||
"esbuild-plugin-copy": "^1.3.0",
|
"esbuild-plugin-copy": "^1.3.0",
|
||||||
"obsidian": "latest",
|
"obsidian": "latest",
|
||||||
|
|
13
src/main.ts
13
src/main.ts
|
@ -7,7 +7,6 @@ export default class JustSharePleasePlugin extends Plugin {
|
||||||
|
|
||||||
// TODO panel that displays all shares, including ones for removed files, and allows unsharing or updating them
|
// TODO panel that displays all shares, including ones for removed files, and allows unsharing or updating them
|
||||||
// TODO add a setting for auto-refreshing uploads when saving
|
// TODO add a setting for auto-refreshing uploads when saving
|
||||||
// TODO strip frontmatter before uploading? maybe optionally
|
|
||||||
settings: JSPSettings;
|
settings: JSPSettings;
|
||||||
|
|
||||||
async onload(): Promise<void> {
|
async onload(): Promise<void> {
|
||||||
|
@ -113,7 +112,7 @@ export default class JustSharePleasePlugin extends Plugin {
|
||||||
let response = await requestUrl({
|
let response = await requestUrl({
|
||||||
url: `${this.settings.url}/share.php`,
|
url: `${this.settings.url}/share.php`,
|
||||||
method: "POST",
|
method: "POST",
|
||||||
body: JSON.stringify({content: await this.app.vault.cachedRead(file)})
|
body: JSON.stringify({content: this.preProcessMarkdown(await this.app.vault.cachedRead(file))})
|
||||||
});
|
});
|
||||||
let shared = response.json as SharedItem;
|
let shared = response.json as SharedItem;
|
||||||
shared.path = file.path;
|
shared.path = file.path;
|
||||||
|
@ -140,7 +139,7 @@ export default class JustSharePleasePlugin extends Plugin {
|
||||||
url: `${this.settings.url}/share.php?id=${item.id}`,
|
url: `${this.settings.url}/share.php?id=${item.id}`,
|
||||||
method: "PATCH",
|
method: "PATCH",
|
||||||
headers: {"Password": item.password},
|
headers: {"Password": item.password},
|
||||||
body: JSON.stringify({content: await this.app.vault.cachedRead(file)})
|
body: JSON.stringify({content: this.preProcessMarkdown(await this.app.vault.cachedRead(file))})
|
||||||
});
|
});
|
||||||
new Notice(`Successfully updated ${file.basename} on JSP`);
|
new Notice(`Successfully updated ${file.basename} on JSP`);
|
||||||
return true;
|
return true;
|
||||||
|
@ -184,4 +183,12 @@ export default class JustSharePleasePlugin extends Plugin {
|
||||||
if (notice)
|
if (notice)
|
||||||
new Notice(`Copied link to ${basename(item.path, extname(item.path))} to clipboard`);
|
new Notice(`Copied link to ${basename(item.path, extname(item.path))} to clipboard`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
preProcessMarkdown(text: string): string {
|
||||||
|
// strip frontmatter
|
||||||
|
if (this.settings.stripFrontmatter)
|
||||||
|
text = text.replace(/^---\s*\n.*?\n---\s*\n(.*)$/s, "$1");
|
||||||
|
|
||||||
|
return text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
export const defaultSettings: JSPSettings = {
|
export const defaultSettings: JSPSettings = {
|
||||||
url: "http://localhost:8080",
|
url: "http://localhost:8080",
|
||||||
shared: []
|
shared: [],
|
||||||
|
stripFrontmatter: true
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface JSPSettings {
|
export interface JSPSettings {
|
||||||
|
|
||||||
url: string;
|
url: string;
|
||||||
shared: SharedItem[];
|
shared: SharedItem[];
|
||||||
|
stripFrontmatter: boolean;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,10 @@
|
||||||
"path": "Second note.md"
|
"path": "Second note.md"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "281d96f9",
|
"id": "fa0cf7f7",
|
||||||
"password": "2eb4979a9e853df98f5fcdc2cdc4b770",
|
"password": "b82b04752742c61bd602b52f535cb484",
|
||||||
"path": "Cool Test Note.md"
|
"path": "Cool Test Note.md"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"stripFrontmatter": true
|
||||||
}
|
}
|
|
@ -1,3 +1,8 @@
|
||||||
|
---
|
||||||
|
test: yes
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
# Cool Test Note
|
# Cool Test Note
|
||||||
|
|
||||||
This is a cool test note, my friends!
|
This is a cool test note, my friends!
|
||||||
|
|
Loading…
Reference in a new issue