This commit is contained in:
Daniel 2024-12-08 17:08:18 +08:00
parent 70d0246668
commit 6f87241626
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
15 changed files with 23 additions and 53 deletions

View file

@ -1110,12 +1110,11 @@
"export1": "Blockzitat",
"export2": "Ankertext mit Block-URL",
"export3": "Nur Ankertext",
"export4": "Fußnoten",
"export4": "Fußnoten+Ankerhash",
"export5": "PDF-Annotation Referenz",
"export6": "Über die Verarbeitung von Ankertext in PDF-Annotationen beim Exportieren",
"export7": "Dateiname - Seitennummer - Ankertext",
"export8": "Nur Ankertext",
"export9": "Ankerhash",
"graphConfig2": "Referenzanzahlfilter",
"selectOpen": "Immer geöffnetes Dokument auswählen",
"selectOpen1": "Ausgewähltes geöffnetes Dokument",

View file

@ -1110,12 +1110,11 @@
"export1": "Blockquote",
"export2": "Anchor text with block URL",
"export3": "Just anchor text",
"export4": "Footnotes",
"export4": "Footnotes+Anchor hash",
"export5": "PDF Annotation Ref",
"export6": "About the handling of anchor text in PDF annotations when exporting",
"export7": "File Name - Page Number - Anchor Text",
"export8": "Just anchor text",
"export9": "Anchor hash",
"graphConfig2": "Reference Count filter",
"selectOpen": "Always Select Opened Doc",
"selectOpen1": "Select Opened Doc",

View file

@ -1110,12 +1110,11 @@
"export1": "Bloque de cita",
"export2": "Texto de anclaje con URL de bloque",
"export3": "Sólo texto de anclaje",
"export4": "Notas a pie de página",
"export4": "Notas a pie de página+Hash de anclaje",
"export5": "Ref. de anotación en PDF",
"export6": "Sobre el manejo del texto ancla en las anotaciones PDF al exportar",
"export7": "Nombre de archivo - Número de página - Texto ancla",
"export8": "Sólo texto ancla",
"export9": "Hash de anclaje",
"graphConfig2": "Filtro de recuento de referencias",
"selectOpen": "Seleccionar siempre el documento abierto",
"selectOpen1": "Seleccionar documento abierto",

View file

@ -1110,12 +1110,11 @@
"export1": "Citation de bloc",
"export2": "Texte d'ancrage avec bloc URL",
"export3": "Juste du texte d'ancrage",
"export4": "Notes de bas de page",
"export4": "Notes de bas de page+Hash d'ancrage",
"export5": "Référence d'annotation PDF",
"export6": "À propos de la gestion du texte d'ancrage dans les annotations PDF lors de l'exportation",
"export7": "Nom de fichier - Numéro de page - Texte d'ancrage",
"export8": "Anchor text only",
"export9": "Hash d'ancrage",
"graphConfig2": "Filtre de compte de blocs de référence",
"selectOpen": "Localisez toujours les documents ouverts",
"selectOpen1": "Localiser les documents ouverts",

View file

@ -1110,12 +1110,11 @@
"export1": "ציטוט",
"export2": "טקסט עוגן עם קישור בלוק",
"export3": "רק טקסט עוגן",
"export4": ערות שוליים",
"export4": האש של העוגן+הערות שוליים",
"export5": "הערות PDF",
"export6": "על טיפולי טקסט עוגן בהערות PDF בעת הייצוא",
"export7": "שם הקובץ - מספר עמוד - טקסט עוגן",
"export8": "רק טקסט עוגן",
"export9": "ההאש של העוגן",
"graphConfig2": "מסנן ספירת הפניות",
"selectOpen": "בחר תמיד את המסמך הפתוח",
"selectOpen1": "בחר את המסמך הפתוח",

View file

@ -1110,12 +1110,11 @@
"export1": "Citazione",
"export2": "Testo dell'ancora con URL del blocco",
"export3": "Solo testo dell'ancora",
"export4": "Note a piè di pagina",
"export4": "Note a piè di pagina+Hash dell'ancora",
"export5": "Riferimento annotazione PDF",
"export6": "Riguardo alla gestione del testo dell'ancora nelle annotazioni PDF durante l'esportazione",
"export7": "Nome file - Numero pagina - Testo dell'ancora",
"export8": "Solo testo dell'ancora",
"export9": "Hash dell'ancora",
"graphConfig2": "Filtro Conteggio Riferimenti",
"selectOpen": "Seleziona sempre il documento aperto",
"selectOpen1": "Seleziona Documento Aperto",

View file

@ -1110,12 +1110,11 @@
"export1": "ブロック参照",
"export2": "ブロック URL 付きアンカーテキスト",
"export3": "アンカーテキストのみ",
"export4": "脚注",
"export4": "脚注+アンカーハッシュ",
"export5": "PDF 注釈の参照",
"export6": "エクスポート時の PDF 注釈内のアンカーテキストの処理方法",
"export7": "ファイル名 - ページ番号 - アンカーテキスト",
"export8": "アンカーテキストのみ",
"export9": "アンカーハッシュ",
"graphConfig2": "参照カウントフィルタ",
"selectOpen": "常に開いているドキュメントを選択",
"selectOpen1": "開いているドキュメントをツリーで選択",

View file

@ -1110,12 +1110,11 @@
"export1": "Cytat",
"export2": "Tekst kotwicy z URL bloku",
"export3": "Tylko tekst kotwicy",
"export4": "Przypisy",
"export4": "Przypisy+Hash kotwicy",
"export5": "Odnośnik do adnotacji PDF",
"export6": "O sposobie obsługi tekstu kotwicy w adnotacjach PDF podczas eksportu",
"export7": "Nazwa pliku - Numer strony - Tekst kotwicy",
"export8": "Tylko tekst kotwicy",
"export9": "Hash kotwicy",
"graphConfig2": "Filtr liczby odniesień",
"selectOpen": "Zawsze wybieraj otwarty dokument",
"selectOpen1": "Wybierz otwarty dokument",

View file

@ -1110,12 +1110,11 @@
"export1": "Цитата",
"export2": "Текст якоря с URL блока",
"export3": "Просто текст якоря",
"export4": "Подписи",
"export4": "Подписи+Якорь хэш",
"export5": "PDF аннотация ссылка",
"export6": "О том, как обрабатывать текст якоря в PDF аннотациях при экспорте",
"export7": "Имя файла - Номер страницы - Текст якоря",
"export8": "Просто текст якоря",
"export9": "Якорь хэш",
"graphConfig2": "Фильтр по количеству ссылок",
"selectOpen": "Всегда выбирать открытый документ",
"selectOpen1": "Выбрать открытый документ",

View file

@ -1110,12 +1110,11 @@
"export1": "引述塊",
"export2": "錨文字塊鏈",
"export3": "僅錨文字",
"export4": "註腳",
"export4": "註腳+錨點哈希",
"export5": "PDF 標註引用",
"export6": "導出時關於 PDF 標註引出處錨文字的處理方式",
"export7": "文件名 - 頁碼 - 錨文字",
"export8": "僅錨文字",
"export9": "錨點哈希",
"graphConfig2": "引用塊次數過濾",
"selectOpen": "定位打開的文檔",
"selectOpen1": "定位打開的文檔",

View file

@ -1110,12 +1110,11 @@
"export1": "引述块",
"export2": "锚文本块链",
"export3": "仅锚文本",
"export4": "脚注",
"export4": "脚注+锚点哈希",
"export5": "PDF 标注引用",
"export6": "导出时关于 PDF 标注引出处锚文本的处理方式",
"export7": "文件名 - 页码 - 锚文本",
"export8": "仅锚文本",
"export9": "锚点哈希",
"graphConfig2": "引用块次数过滤",
"selectOpen": "始终定位打开的文档",
"selectOpen1": "定位打开的文档",

View file

@ -49,7 +49,6 @@ export const exportConfig = {
<option value="2" ${window.siyuan.config.export.blockRefMode === 2 ? "selected" : ""}>${window.siyuan.languages.export2}</option>
<option value="3" ${window.siyuan.config.export.blockRefMode === 3 ? "selected" : ""}>${window.siyuan.languages.export3}</option>
<option value="4" ${window.siyuan.config.export.blockRefMode === 4 ? "selected" : ""}>${window.siyuan.languages.export4}</option>
<option value="5" ${window.siyuan.config.export.blockRefMode === 5 ? "selected" : ""}>${window.siyuan.languages.export9}</option>
</select>
</div>
<div class="fn__flex b3-label config__item">

View file

@ -22,9 +22,9 @@ type Export struct {
// 内容块引用导出模式
// 2锚文本块链
// 3仅锚文本
// 4块引转脚注
// 5锚点哈希 https://github.com/siyuan-note/siyuan/issues/10265
// 0使用原始文本1使用 Blockquote。0 和 1 都已经废弃 https://github.com/siyuan-note/siyuan/issues/3155
// 4块引转脚注+锚点哈希
// 5锚点哈希 https://github.com/siyuan-note/siyuan/issues/10265 已经废弃 https://github.com/siyuan-note/siyuan/issues/13331
// 0使用原始文本1使用 Blockquote都已经废弃 https://github.com/siyuan-note/siyuan/issues/3155
BlockRefMode int `json:"blockRefMode"`
BlockEmbedMode int `json:"blockEmbedMode"` // 内容块引用导出模式0使用原始文本1使用 Blockquote
BlockRefTextLeft string `json:"blockRefTextLeft"` // 内容块引用导出锚文本左侧符号,默认留空

View file

@ -266,9 +266,10 @@ func InitConf() {
if nil == Conf.Export {
Conf.Export = conf.NewExport()
}
if 0 == Conf.Export.BlockRefMode || 1 == Conf.Export.BlockRefMode {
if 0 == Conf.Export.BlockRefMode || 1 == Conf.Export.BlockRefMode || 5 == Conf.Export.BlockRefMode {
// 废弃导出选项引用块转换为原始块和引述块 https://github.com/siyuan-note/siyuan/issues/3155
Conf.Export.BlockRefMode = 4 // 改为脚注
// 锚点哈希模式和脚注模式合并 https://github.com/siyuan-note/siyuan/issues/13331
Conf.Export.BlockRefMode = 4 // 改为脚注+锚点哈希
}
if "" == Conf.Export.PandocBin {
Conf.Export.PandocBin = util.PandocBinPath

View file

@ -566,11 +566,6 @@ func ExportResources(resourcePaths []string, mainName string) (exportFilePath st
func Preview(id string) (retStdHTML string) {
blockRefMode := Conf.Export.BlockRefMode
if 5 == blockRefMode {
// 如果用户设置的块引导出模式是哈希锚点5则将其强制设置脚注4https://github.com/siyuan-note/siyuan/issues/13283
blockRefMode = 4
}
tree, _ := LoadTreeByBlockID(id)
tree = exportTree(tree, false, false, true,
blockRefMode, Conf.Export.BlockEmbedMode, Conf.Export.FileAnnotationRefMode,
@ -675,13 +670,6 @@ func ExportMarkdownHTML(id, savePath string, docx, merge bool) (name, dom string
}
blockRefMode := Conf.Export.BlockRefMode
if docx {
if 5 == blockRefMode {
// 如果用户设置的块引导出模式是哈希锚点5则将其强制设置脚注4https://github.com/siyuan-note/siyuan/issues/13283
blockRefMode = 4
}
}
tree = exportTree(tree, true, false, true,
blockRefMode, Conf.Export.BlockEmbedMode, Conf.Export.FileAnnotationRefMode,
Conf.Export.TagOpenMarker, Conf.Export.TagCloseMarker,
@ -839,11 +827,6 @@ func ExportHTML(id, savePath string, pdf, image, keepFold, merge bool) (name, do
link.AppendChild(&ast.Node{Type: ast.NodeCloseParen})
h.PrependChild(link)
}
if 5 == blockRefMode {
// 如果用户设置的块引导出模式是哈希锚点5则将其强制设置脚注4https://github.com/siyuan-note/siyuan/issues/13283
blockRefMode = 4
}
}
tree = exportTree(tree, true, keepFold, true,
@ -2004,7 +1987,7 @@ func exportMarkdownContent0(tree *parse.Tree, cloudAssetsBase string, assetsDest
}
}
if 5 == blockRefMode { // 锚点哈希
if 4 == blockRefMode { // 脚注+锚点哈希
if n.IsBlock() && gulu.Str.Contains(n.ID, defBlockIDs) {
// 如果是定义块,则在开头处添加锚点
anchorSpan := &ast.Node{Type: ast.NodeInlineHTML, Tokens: []byte("<span id=\"" + n.ID + "\"></span>")}
@ -2082,9 +2065,9 @@ func exportTree(tree *parse.Tree, wysiwyg, keepFold, avHiddenCol bool,
depth = 0
blockLink2Ref(ret, ret.ID, &treeCache, &depth)
// 收集引用转脚注
// 收集引用转脚注+锚点哈希
var refFootnotes []*refAsFootnotes
if 4 == blockRefMode { // 块引转脚注
if 4 == blockRefMode {
depth = 0
collectFootnotesDefs(ret, ret.ID, &refFootnotes, &treeCache, &depth)
}
@ -2163,7 +2146,7 @@ func exportTree(tree *parse.Tree, wysiwyg, keepFold, avHiddenCol bool,
}
n.InsertBefore(blockRefLink)
unlinks = append(unlinks, n)
case 4: // 脚注
case 4: // 脚注+锚点哈希
if currentTreeNodeIDs[defID] {
// 当前文档内不转换脚注,直接使用锚点哈希 https://github.com/siyuan-note/siyuan/issues/13283
n.TextMarkType = "a"
@ -2180,8 +2163,6 @@ func exportTree(tree *parse.Tree, wysiwyg, keepFold, avHiddenCol bool,
n.InsertBefore(&ast.Node{Type: ast.NodeText, Tokens: []byte(linkText)})
n.InsertBefore(&ast.Node{Type: ast.NodeFootnotesRef, Tokens: []byte("^" + refFoot.refNum), FootnotesRefId: refFoot.refNum, FootnotesRefLabel: []byte("^" + refFoot.refNum)})
unlinks = append(unlinks, n)
case 5: // 锚点哈希
// 此处不做任何处理
}
if nil != n.Next && ast.NodeKramdownSpanIAL == n.Next.Type {
@ -2194,7 +2175,7 @@ func exportTree(tree *parse.Tree, wysiwyg, keepFold, avHiddenCol bool,
n.Unlink()
}
if 4 == blockRefMode { // 块引转脚注
if 4 == blockRefMode { // 脚注+锚点哈希
unlinks = nil
footnotesDefBlock := resolveFootnotesDefs(&refFootnotes, ret, currentTreeNodeIDs, blockRefTextLeft, blockRefTextRight, &treeCache)
if nil != footnotesDefBlock {
@ -3085,7 +3066,7 @@ func exportPandocConvertZip(exportNotebook bool, boxID, baseFolderName string, d
exportRefMode := Conf.Export.BlockRefMode
var defBlockIDs []string
if 5 == exportRefMode {
if 4 == exportRefMode { // 脚注+锚点哈希
// 导出锚点哈希,这里先记录下所有定义块的 ID
walked := map[string]bool{}
for _, p := range docPaths {