mirror of
https://github.com/thiloho/archtika.git
synced 2025-11-22 02:41:35 +01:00
Allow removing images and wrap tables with scroll container
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Marked } from "marked";
|
||||
import type { Renderer, Token } from "marked";
|
||||
import { Marked, Renderer } from "marked";
|
||||
import type { Token } from "marked";
|
||||
import { markedHighlight } from "marked-highlight";
|
||||
import hljs from "highlight.js";
|
||||
import DOMPurify from "isomorphic-dompurify";
|
||||
@@ -40,6 +40,7 @@ const slugify = (string: string) => {
|
||||
|
||||
const createMarkdownParser = (showToc = true) => {
|
||||
const marked = new Marked();
|
||||
const renderer = new Renderer();
|
||||
|
||||
marked.use({
|
||||
async: false,
|
||||
@@ -58,6 +59,14 @@ const createMarkdownParser = (showToc = true) => {
|
||||
})
|
||||
);
|
||||
|
||||
marked.use({
|
||||
renderer: {
|
||||
table(...args) {
|
||||
return `<div class="scroll-container">${renderer.table.apply(this, args)}</div>`;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const gfmHeadingId = ({ prefix = "", showToc = true } = {}) => {
|
||||
const headings: { text: string; level: number; id: string }[] = [];
|
||||
const sectionStack: { level: number; id: string }[] = [];
|
||||
|
||||
@@ -72,6 +72,19 @@ export const actions: Actions = {
|
||||
}
|
||||
);
|
||||
},
|
||||
removeFavicon: async ({ fetch, params }) => {
|
||||
return await apiRequest(
|
||||
fetch,
|
||||
`${API_BASE_PREFIX}/settings?website_id=eq.${params.websiteId}`,
|
||||
"PATCH",
|
||||
{
|
||||
body: {
|
||||
favicon_image: null
|
||||
},
|
||||
successMessage: "Successfully removed favicon"
|
||||
}
|
||||
);
|
||||
},
|
||||
updateHeader: async ({ request, fetch, params }) => {
|
||||
const data = await request.formData();
|
||||
const logoImage = data.get("logo-image") as File;
|
||||
@@ -110,6 +123,19 @@ export const actions: Actions = {
|
||||
}
|
||||
);
|
||||
},
|
||||
removeLogoImage: async ({ fetch, params }) => {
|
||||
return await apiRequest(
|
||||
fetch,
|
||||
`${API_BASE_PREFIX}/header?website_id=eq.${params.websiteId}`,
|
||||
"PATCH",
|
||||
{
|
||||
body: {
|
||||
logo_image: null
|
||||
},
|
||||
successMessage: "Successfully removed logo image"
|
||||
}
|
||||
);
|
||||
},
|
||||
updateHome: async ({ request, fetch, params }) => {
|
||||
const data = await request.formData();
|
||||
|
||||
|
||||
@@ -91,6 +91,13 @@
|
||||
src={`${data.API_BASE_PREFIX}/rpc/retrieve_file?id=${data.globalSettings.favicon_image}`}
|
||||
alt=""
|
||||
/>
|
||||
<form
|
||||
method="POST"
|
||||
action="?/removeFavicon"
|
||||
use:enhance={enhanceForm({ reset: false, closeModal: true })}
|
||||
>
|
||||
<button type="submit">Remove</button>
|
||||
</form>
|
||||
</Modal>
|
||||
{/if}
|
||||
</div>
|
||||
@@ -138,6 +145,13 @@
|
||||
src={`${data.API_BASE_PREFIX}/rpc/retrieve_file?id=${data.header.logo_image}`}
|
||||
alt=""
|
||||
/>
|
||||
<form
|
||||
method="POST"
|
||||
action="?/removeLogoImage"
|
||||
use:enhance={enhanceForm({ reset: false, closeModal: true })}
|
||||
>
|
||||
<button type="submit">Remove</button>
|
||||
</form>
|
||||
</Modal>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -72,6 +72,19 @@ export const actions: Actions = {
|
||||
}
|
||||
);
|
||||
},
|
||||
removeCoverImage: async ({ fetch, params }) => {
|
||||
return await apiRequest(
|
||||
fetch,
|
||||
`${API_BASE_PREFIX}/article?id=eq.${params.articleId}`,
|
||||
"PATCH",
|
||||
{
|
||||
body: {
|
||||
cover_image: null
|
||||
},
|
||||
successMessage: "Successfully removed cover image"
|
||||
}
|
||||
);
|
||||
},
|
||||
pasteImage: async ({ request, fetch, params }) => {
|
||||
const data = await request.formData();
|
||||
const file = data.get("file") as File;
|
||||
|
||||
@@ -107,6 +107,13 @@
|
||||
src={`${data.API_BASE_PREFIX}/rpc/retrieve_file?id=${data.article.cover_image}`}
|
||||
alt=""
|
||||
/>
|
||||
<form
|
||||
method="POST"
|
||||
action="?/removeCoverImage"
|
||||
use:enhance={enhanceForm({ reset: false, closeModal: true })}
|
||||
>
|
||||
<button type="submit">Remove</button>
|
||||
</form>
|
||||
</Modal>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user