master
joefalmko 1 month ago
parent 022d7e16c3
commit f81bd3b14a

@ -1,5 +1,5 @@
请将以下文章进行重新排版,使其格式更加美观且井然有序,同时保留文章的所有原始内容和文字,不要对内容进行任何修改。 请将以下文章进行重新排版,使其格式更加美观且井然有序,同时保留文章的所有原始内容和文字,不要对内容进行任何修改。
请你调整标题样式,将所有标题改为清晰的分级结构。文章标题使用#,一级标题使用##,以此类推。 请你调整标题样式,将所有标题改为清晰的分级结构。文章标题使用#,一级标题使用##,以此类推。
正文部分的段落需适当分段,避免过长或过短。 请确保整体排版整洁、易于阅读。 正文部分的段落需适当分段,避免过长或过短。 请确保整体排版整洁、易于阅读。
所有的图片已被替换为tag“图片1”、“图片2”在处理时不要考虑图片本身不要删除这些tag。 所有的图片已被替换为"tag图片1"、"tag图片2"在处理时不要考虑图片本身不要删除这些tag。
不要对文章的原始内容进行修改。只返回重新排版后的内容,不要返回其他的额外内容。 不要对文章的原始内容进行修改。只返回重新排版后的内容,不要返回其他的额外内容。

@ -393,15 +393,26 @@ async function aiformat() {
// TODO 处理html文件 // TODO 处理html文件
// step 1 - split images and insert text tag // step 1 - split images and insert text tag
// match <figure ... </figure> // match <figure ... </figure>
const img_tag = /<figure.*?>(.*?)<\/figure>/g const figure_tag = /<figure.*?>(.*?)<\/figure>/g
const img_list = doc_content.match(img_tag) const figure_list = doc_content.match(figure_tag)
console.log(img_list) console.log(figure_list)
// replace img tag with text tag // replace img tag with text tag
if (img_list) { var figure_listLen = 0
console.log("replace img tag") if (figure_list) {
for (let i = 0; i < img_list.length; i++) { console.log("replace figure tag")
figure_listLen = figure_list.length
for (let i = 0; i < figure_listLen; i++) {
const figure = figure_list[i]
const text = `<text>tag图片${i + 1}</text>`
doc_content = doc_content.replace(figure, text)
}
}
const img_tag = /<img.*?>/g
const img_list = doc_content.match(img_tag)
if(img_list){
for(let i = 0; i < img_list.length; i++){
const img = img_list[i] const img = img_list[i]
const text = `<text>图片${i + 1}</text>` const text = `<text>tag图片${i + 1+figure_listLen}</text>`
doc_content = doc_content.replace(img, text) doc_content = doc_content.replace(img, text)
} }
} }
@ -451,13 +462,20 @@ async function aiformat() {
const markdown_response = result const markdown_response = result
let html_content = markdown2html(markdown_response) let html_content = markdown2html(markdown_response)
console.log("html_content:\n\n",html_content) console.log("html_content:\n\n", html_content)
// insert original img tag // insert original img tag
if (img_list) { if (figure_list) {
console.log("insert img tag") console.log("insert figure tag")
for (let i = 0; i < figure_listLen; i++) {
const figure = figure_list[i]
const text = `tag图片${i + 1}`
html_content = html_content.replace(text, figure)
}
}
if(img_list){
for (let i = 0; i < img_list.length; i++) { for (let i = 0; i < img_list.length; i++) {
const img = img_list[i] const img = img_list[i]
const text = `图片${i + 1}` const text = `tag图片${i + 1 + figure_listLen}`
html_content = html_content.replace(text, img) html_content = html_content.replace(text, img)
} }
} }
@ -480,23 +498,33 @@ async function aiformat() {
if (heading.length > 0) { if (heading.length > 0) {
const headingTag = user_config.headingStyle.option[i][0]; const headingTag = user_config.headingStyle.option[i][0];
const headingClass = user_config.headingStyle.option[i][1]; const headingClass = user_config.headingStyle.option[i][1];
console.log("headingTag:\n\n",headingTag) console.log("headingTag:\n\n", headingTag)
console.log("headingClass:\n\n",headingClass) console.log("headingClass:\n\n", headingClass)
// for each element // for each element
heading.forEach((element) => { heading.forEach((element) => {
// reset counter for heading // // reset counter for heading
// const parentNode = element.parentNode;
// let currentCounterReset = parentNode.style.counterReset;
// console.log(element,"\t",parentNode,"\t",currentCounterReset)
// // TODO 有bug
// if (currentCounterReset) {
// // currentCounterReset 不存在该counterreset
// if (currentCounterReset.indexOf(headingClass + "counter") == -1) {
// currentCounterReset += " " + headingClass + "counter";
// }
// } else {
// currentCounterReset = headingClass + "counter";
// }
// parentNode.style.setProperty('counter-reset', currentCounterReset);
const parentNode = element.parentNode; const parentNode = element.parentNode;
let currentCounterReset = parentNode.style.counterReset; let currentCounterReset = new Set(parentNode.style.counterReset.split(/\s+/).filter(Boolean));
if (currentCounterReset) {
// currentCounterReset 不存在该counterreset // 添加新的 counter 名称
if (currentCounterReset.indexOf(headingClass + "counter") == -1) { currentCounterReset.add(`${headingClass}counter`);
currentCounterReset += " " + headingClass + "counter";
} // 将 Set 转换回字符串
} else { parentNode.style.setProperty('counter-reset', Array.from(currentCounterReset).join(' '));
currentCounterReset = headingClass + "counter"; element.classList.add(headingTag, headingClass);
}
parentNode.style.setProperty('counter-reset', currentCounterReset);
element.classList.add(headingTag,headingClass);
}) })
} }
} }
@ -506,7 +534,7 @@ async function aiformat() {
if (paragraph.length > 0) { if (paragraph.length > 0) {
for (let i = 0; i < paragraph.length; i++) { for (let i = 0; i < paragraph.length; i++) {
const element = paragraph[i]; const element = paragraph[i];
for(let i = 0; i < user_config.bodyStyle.option.length; i++) { for (let i = 0; i < user_config.bodyStyle.option.length; i++) {
element.classList.add(user_config.bodyStyle.option[i]); element.classList.add(user_config.bodyStyle.option[i]);
} }
} }
@ -517,7 +545,7 @@ async function aiformat() {
if (blockquote.length > 0) { if (blockquote.length > 0) {
for (let i = 0; i < blockquote.length; i++) { for (let i = 0; i < blockquote.length; i++) {
const element = blockquote[i]; const element = blockquote[i];
for(let i = 0; i < user_config.blockquote.option.length; i++) { for (let i = 0; i < user_config.blockquote.option.length; i++) {
element.classList.add(user_config.blockquote.option[i]); element.classList.add(user_config.blockquote.option[i]);
} }
} }
@ -528,7 +556,7 @@ async function aiformat() {
if (pre.length > 0) { if (pre.length > 0) {
for (let i = 0; i < pre.length; i++) { for (let i = 0; i < pre.length; i++) {
const element = pre[i]; const element = pre[i];
for(let i = 0; i < user_config.codeBlockStyle.option.length; i++) { for (let i = 0; i < user_config.codeBlockStyle.option.length; i++) {
element.classList.add(user_config.codeBlockStyle.option[i]); element.classList.add(user_config.codeBlockStyle.option[i]);
} }
} }
@ -541,6 +569,8 @@ async function aiformat() {
ul[i].classList.add(user_config.listStyle.option); ul[i].classList.add(user_config.listStyle.option);
} }
} }
} }
class AiFormat extends Plugin { class AiFormat extends Plugin {
@ -771,7 +801,7 @@ function setConfig() {
Undo, Undo,
Export2Word, RefineDoc, Export2PDF, ToggleSideBar, SaveButton, AiFormat, PicRecog Export2Word, RefineDoc, Export2PDF, ToggleSideBar, SaveButton, AiFormat, PicRecog
], ],
balloonToolbar: ['bold', 'italic', '|', 'link', 'insertImage', '|', 'bulletedList', 'numberedList', '|', 'AiFormat'], balloonToolbar: ['bold', 'italic', '|', 'link', 'insertImage', '|', 'bulletedList', 'numberedList'],
//自定义设置字体 //自定义设置字体
fontFamily: { fontFamily: {
// 自定义字体 // 自定义字体

Loading…
Cancel
Save