diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 1a0c10e..3a286b4 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,19 +5,10 @@
-
-
-
-
-
-
-
-
+
-
-
-
+
@@ -612,7 +603,7 @@
-
+
@@ -631,7 +622,7 @@
-
+
diff --git a/docutranslate/agents/agent.py b/docutranslate/agents/agent.py
index 24a9e89..b4f8d48 100644
--- a/docutranslate/agents/agent.py
+++ b/docutranslate/agents/agent.py
@@ -84,6 +84,7 @@ class Agent:
result = response.json()["choices"][0]["message"]["content"]
return result
except httpx.HTTPStatusError as e:
+ print(f"prompt:{prompt}\nsystem_prompt:{system_prompt}")
raise Exception(f"AI请求错误 (async): {e.response.status_code} - {e.response.text}") from e
except httpx.RequestError as e:
raise Exception(f"AI请求连接错误 (async): {e}") from e
diff --git a/docutranslate/static/index.html b/docutranslate/static/index.html
index 309ee7b..722159e 100644
--- a/docutranslate/static/index.html
+++ b/docutranslate/static/index.html
@@ -600,22 +600,24 @@
.then(htmlContent => {
iframe.onload = () => {
iframe.onload = null;
- try {
- const iframeWindow = iframe.contentWindow;
- if (!iframeWindow) throw new Error("无法访问打印框架。");
- iframeWindow.document.title = currentFileName + '_translated.pdf';
- iframeWindow.focus();
- iframeWindow.print();
- } catch (err) {
- console.error('打印PDF出错:', err);
- statusMsg.textContent = '无法直接生成PDF。请预览HTML后,使用浏览器的打印功能 (Ctrl+P) 保存。';
- statusMsg.className = 'error-message';
- } finally {
- setTimeout(() => {
- downloadPdfBtn.disabled = false;
- downloadPdfBtn.textContent = '下载 PDF';
- }, 2000);
- }
+ setTimeout(() => {
+ try {
+ const iframeWindow = iframe.contentWindow;
+ if (!iframeWindow) throw new Error("无法访问打印框架。");
+ iframeWindow.document.title = currentFileName + '_translated.pdf';
+ iframeWindow.focus();
+ iframeWindow.print();
+ } catch (err) {
+ console.error('打印PDF出错:', err);
+ statusMsg.textContent = '无法直接生成PDF。请预览HTML后,使用浏览器的打印功能 (Ctrl+P) 保存。';
+ statusMsg.className = 'error-message';
+ } finally {
+ setTimeout(() => {
+ downloadPdfBtn.disabled = false;
+ downloadPdfBtn.textContent = '下载 PDF';
+ }, 2000);
+ }
+ }, 500)
};
iframe.srcdoc = htmlContent;
})
diff --git a/docutranslate/utils/markdown_splitter.py b/docutranslate/utils/markdown_splitter.py
index 63ec8f3..807049f 100644
--- a/docutranslate/utils/markdown_splitter.py
+++ b/docutranslate/utils/markdown_splitter.py
@@ -11,10 +11,12 @@ class MarkdownBlockSplitter:
max_block_size: 每个块的最大字符数
"""
self.max_block_size = max_block_size
+
@staticmethod
- def _get_bytes(text:str)->int:
+ def _get_bytes(text: str) -> int:
return len(text.encode('utf-8'))
+ #TODO: 修复分块有时候会有空白块的问题
def split_markdown(self, markdown_text: str) -> List[str]:
"""
将Markdown文本分割成指定大小的块
@@ -230,18 +232,22 @@ def split_markdown_text(markdown_text, max_block_size=5000):
可以通过''.join(chunks)重建的Markdown块列表
"""
splitter = MarkdownBlockSplitter(max_block_size=max_block_size)
- return splitter.split_markdown(markdown_text)
+ chunks = splitter.split_markdown(markdown_text)
+ #过滤空白块
+ chunks=[chunk for chunk in chunks if chunk.strip()]
+ return chunks
-def join_markdown_texts(markdown_texts:list[str])->str:
- result=""
+def join_markdown_texts(markdown_texts: list[str]) -> str:
+ result = ""
for text in markdown_texts:
- #只有表格会收到多余空行的影响
+ # 只有表格会收到多余空行的影响
if text.lstrip().startswith("|"):
- result=result+"\n"+text
+ result = result + "\n" + text
else:
- result+="\n\n"+text
+ result += "\n\n" + text
return result
+
if __name__ == '__main__':
- pass
\ No newline at end of file
+ pass