mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-15 13:55:19 +00:00
refac
This commit is contained in:
parent
bdab9dd596
commit
b93ee37f9a
2 changed files with 52 additions and 27 deletions
|
|
@ -1,5 +1,30 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { marked } from 'marked';
|
import { marked } from 'marked';
|
||||||
|
marked.use({
|
||||||
|
breaks: true,
|
||||||
|
gfm: true,
|
||||||
|
renderer: {
|
||||||
|
list(body, ordered, start) {
|
||||||
|
const isTaskList = body.includes('data-checked=');
|
||||||
|
|
||||||
|
if (isTaskList) {
|
||||||
|
return `<ul data-type="taskList">${body}</ul>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
const type = ordered ? 'ol' : 'ul';
|
||||||
|
const startatt = ordered && start !== 1 ? ` start="${start}"` : '';
|
||||||
|
return `<${type}${startatt}>${body}</${type}>`;
|
||||||
|
},
|
||||||
|
|
||||||
|
listitem(text, task, checked) {
|
||||||
|
if (task) {
|
||||||
|
const checkedAttr = checked ? 'true' : 'false';
|
||||||
|
return `<li data-type="taskItem" data-checked="${checkedAttr}">${text}</li>`;
|
||||||
|
}
|
||||||
|
return `<li>${text}</li>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
import TurndownService from 'turndown';
|
import TurndownService from 'turndown';
|
||||||
import { gfm } from 'turndown-plugin-gfm';
|
import { gfm } from 'turndown-plugin-gfm';
|
||||||
|
|
@ -271,33 +296,6 @@
|
||||||
const { state, view } = editor;
|
const { state, view } = editor;
|
||||||
const { schema, tr } = state;
|
const { schema, tr } = state;
|
||||||
|
|
||||||
// Configure marked with extensions
|
|
||||||
marked.use({
|
|
||||||
breaks: true,
|
|
||||||
gfm: true,
|
|
||||||
renderer: {
|
|
||||||
list(body, ordered, start) {
|
|
||||||
const isTaskList = body.includes('data-checked=');
|
|
||||||
|
|
||||||
if (isTaskList) {
|
|
||||||
return `<ul data-type="taskList">${body}</ul>`;
|
|
||||||
}
|
|
||||||
|
|
||||||
const type = ordered ? 'ol' : 'ul';
|
|
||||||
const startatt = ordered && start !== 1 ? ` start="${start}"` : '';
|
|
||||||
return `<${type}${startatt}>${body}</${type}>`;
|
|
||||||
},
|
|
||||||
|
|
||||||
listitem(text, task, checked) {
|
|
||||||
if (task) {
|
|
||||||
const checkedAttr = checked ? 'true' : 'false';
|
|
||||||
return `<li data-type="taskItem" data-checked="${checkedAttr}">${text}</li>`;
|
|
||||||
}
|
|
||||||
return `<li>${text}</li>`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// If content is a string, convert it to a ProseMirror node
|
// If content is a string, convert it to a ProseMirror node
|
||||||
const htmlContent = marked.parse(content);
|
const htmlContent = marked.parse(content);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,33 @@
|
||||||
export let selectedModelId = '';
|
export let selectedModelId = '';
|
||||||
|
|
||||||
import { marked } from 'marked';
|
import { marked } from 'marked';
|
||||||
|
// Configure marked with extensions
|
||||||
|
marked.use({
|
||||||
|
breaks: true,
|
||||||
|
gfm: true,
|
||||||
|
renderer: {
|
||||||
|
list(body, ordered, start) {
|
||||||
|
const isTaskList = body.includes('data-checked=');
|
||||||
|
|
||||||
|
if (isTaskList) {
|
||||||
|
return `<ul data-type="taskList">${body}</ul>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
const type = ordered ? 'ol' : 'ul';
|
||||||
|
const startatt = ordered && start !== 1 ? ` start="${start}"` : '';
|
||||||
|
return `<${type}${startatt}>${body}</${type}>`;
|
||||||
|
},
|
||||||
|
|
||||||
|
listitem(text, task, checked) {
|
||||||
|
if (task) {
|
||||||
|
const checkedAttr = checked ? 'true' : 'false';
|
||||||
|
return `<li data-type="taskItem" data-checked="${checkedAttr}">${text}</li>`;
|
||||||
|
}
|
||||||
|
return `<li>${text}</li>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
import { toast } from 'svelte-sonner';
|
import { toast } from 'svelte-sonner';
|
||||||
|
|
||||||
import { goto } from '$app/navigation';
|
import { goto } from '$app/navigation';
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue