Ver código fonte

:art: Supports disabling Markdown syntax input for some inline elements https://github.com/siyuan-note/siyuan/issues/11141

Daniel 1 ano atrás
pai
commit
b9f269ae85

+ 8 - 0
app/appearance/langs/en_US.json

@@ -1,4 +1,12 @@
 {
+  "editorMarkdownInlineSup": "Markdown inline superscript syntax",
+  "editorMarkdownInlineSupTip": "After enabling, <code class='fn__code'>^foo^</code> inline superscript input will be supported",
+  "editorMarkdownInlineSub": "Markdown inline subscript syntax",
+  "editorMarkdownInlineSubTip": "After enabling, <code class='fn__code'>~foo~</code> inline subscript input will be supported",
+  "editorMarkdownInlineTag": "Markdown inline tag syntax",
+  "editorMarkdownInlineTagTip": "After enabling, <code class='fn__code'>#foo#</code> inline tag input will be supported",
+  "editorMarkdownInlineMath": "Markdown inline formula syntax",
+  "editorMarkdownInlineMathTip": "After enabling, <code class='fn__code'>$foo$</code> inline formula input will be supported",
   "currentNotebook": "Current Notebook",
   "containerBlockTip1": "Enabling container blocks will result in duplicate search results",
   "containerBlockTip2": "Enabling document blocks currently only supports searching for document titles",

+ 8 - 0
app/appearance/langs/es_ES.json

@@ -1,4 +1,12 @@
 {
+  "editorMarkdownInlineSup": "Sintaxis de superíndice en línea de Markdown",
+  "editorMarkdownInlineSupTip": "Después de habilitar, se admitirá la entrada de superíndice en línea <code class='fn__code'>^foo^</code>",
+  "editorMarkdownInlineSub": "Sintaxis del subíndice en línea de Markdown",
+  "editorMarkdownInlineSubTip": "Después de habilitar, se admitirá la entrada de subíndice en línea <code class='fn__code'>~foo~</code>",
+  "editorMarkdownInlineTag": "Sintaxis de etiquetas en línea de Markdown",
+  "editorMarkdownInlineTagTip": "Después de habilitar, se admitirá la entrada de etiquetas en línea <code class='fn__code'>#foo#</code>",
+  "editorMarkdownInlineMath": "Sintaxis de fórmula en línea de Markdown",
+  "editorMarkdownInlineMathTip": "Después de habilitar, se admitirá la entrada de fórmula en línea <code class='fn__code'>$foo$</code>",
   "currentNotebook": "Cuaderno actual",
   "containerBlockTip1": "Habilitar bloques de contenedores generará resultados de búsqueda duplicados",
   "containerBlockTip2": "Habilitar bloques de documentos actualmente solo admite la búsqueda de títulos de documentos",

+ 8 - 0
app/appearance/langs/fr_FR.json

@@ -1,4 +1,12 @@
 {
+  "editorMarkdownInlineSup": "Syntaxe exposant Markdown en ligne",
+  "editorMarkdownInlineSupTip": "Après l'activation, la saisie en exposant <code class='fn__code'>^foo^</code> en ligne sera prise en charge",
+  "editorMarkdownInlineSub": "Syntaxe d'indice en ligne Markdown",
+  "editorMarkdownInlineSubTip": "Après l'activation, la saisie en indice <code class='fn__code'>~foo~</code> en ligne sera prise en charge",
+  "editorMarkdownInlineTag": "Syntaxe des balises en ligne Markdown",
+  "editorMarkdownInlineTagTip": "Après l'activation, la saisie de balises en ligne <code class='fn__code'>#foo#</code> sera prise en charge",
+  "editorMarkdownInlineMath": "Syntaxe de formule en ligne Markdown",
+  "editorMarkdownInlineMathTip": "Après l'activation, la saisie de formule en ligne <code class='fn__code'>$foo$</code> sera prise en charge",
   "currentNotebook": "Carnet actuel",
   "containerBlockTip1": "L'activation des blocs de conteneurs entraînera des résultats de recherche en double",
   "containerBlockTip2": "L'activation des blocs de documents ne prend actuellement en charge que la recherche de titres de documents",

+ 8 - 0
app/appearance/langs/zh_CHT.json

@@ -1,4 +1,12 @@
 {
+  "editorMarkdownInlineSup": "Markdown 行級上標語法",
+  "editorMarkdownInlineSupTip": "啟用後將支援 <code class='fn__code'>^foo^</code> 行級上標輸入",
+  "editorMarkdownInlineSub": "Markdown 行級下標語法",
+  "editorMarkdownInlineSubTip": "啟用後將支援 <code class='fn__code'>~foo~</code> 行級下標輸入",
+  "editorMarkdownInlineTag": "Markdown 行級標籤語法",
+  "editorMarkdownInlineTagTip": "啟用後將支援 <code class='fn__code'>#foo#</code> 行級標籤輸入",
+  "editorMarkdownInlineMath": "Markdown 行級公式語法",
+  "editorMarkdownInlineMathTip": "啟用後將支援 <code class='fn__code'>$foo$</code> 行級公式輸入",
   "currentNotebook": "目前筆記本",
   "containerBlockTip1": "啟用容器區塊後會導致搜尋結果重複",
   "containerBlockTip2": "啟用文件區塊目前僅支援搜尋文件名稱",

+ 8 - 0
app/appearance/langs/zh_CN.json

@@ -1,4 +1,12 @@
 {
+  "editorMarkdownInlineSup": "Markdown 行级上标语法",
+  "editorMarkdownInlineSupTip": "启用后将支持 <code class='fn__code'>^foo^</code> 上标输入",
+  "editorMarkdownInlineSub": "Markdown 行级下标语法",
+  "editorMarkdownInlineSubTip": "启用后将支持 <code class='fn__code'>~foo~</code> 下标输入",
+  "editorMarkdownInlineTag": "Markdown 行级标签语法",
+  "editorMarkdownInlineTagTip": "启用后将支持 <code class='fn__code'>#foo#</code> 标签输入",
+  "editorMarkdownInlineMath": "Markdown 行级公式语法",
+  "editorMarkdownInlineMathTip": "启用后将支持 <code class='fn__code'>$foo$</code> 行级公式输入",
   "currentNotebook": "当前笔记本",
   "containerBlockTip1": "启用容器块后会导致搜索结果重复",
   "containerBlockTip2": "启用文档块目前仅支持搜索文档名",

+ 41 - 0
app/src/config/editor.ts

@@ -24,6 +24,38 @@ export const editor = {
     <span class="fn__space"></span>
     <input class="b3-switch fn__flex-center" id="fullWidth" type="checkbox"${window.siyuan.config.editor.fullWidth ? " checked" : ""}/>
 </label>
+<label class="fn__flex b3-label">
+    <div class="fn__flex-1">
+        ${window.siyuan.languages.editorMarkdownInlineSup}
+        <div class="b3-label__text">${window.siyuan.languages.editorMarkdownInlineSupTip}</div>
+    </div>
+    <span class="fn__space"></span>
+    <input class="b3-switch fn__flex-center" id="editorMarkdownInlineSup" type="checkbox"${window.siyuan.config.editor.markdown.inlineSup ? " checked" : ""}/>
+</label>
+<label class="fn__flex b3-label">
+    <div class="fn__flex-1">
+        ${window.siyuan.languages.editorMarkdownInlineSub}
+        <div class="b3-label__text">${window.siyuan.languages.editorMarkdownInlineSubTip}</div>
+    </div>
+    <span class="fn__space"></span>
+    <input class="b3-switch fn__flex-center" id="editorMarkdownInlineSub" type="checkbox"${window.siyuan.config.editor.markdown.inlineSub ? " checked" : ""}/>
+</label>
+<label class="fn__flex b3-label">
+    <div class="fn__flex-1">
+        ${window.siyuan.languages.editorMarkdownInlineTag}
+        <div class="b3-label__text">${window.siyuan.languages.editorMarkdownInlineTagTip}</div>
+    </div>
+    <span class="fn__space"></span>
+    <input class="b3-switch fn__flex-center" id="editorMarkdownInlineTag" type="checkbox"${window.siyuan.config.editor.markdown.inlineTag ? " checked" : ""}/>
+</label>
+<label class="fn__flex b3-label">
+    <div class="fn__flex-1">
+        ${window.siyuan.languages.editorMarkdownInlineMath}
+        <div class="b3-label__text">${window.siyuan.languages.editorMarkdownInlineMathTip}</div>
+    </div>
+    <span class="fn__space"></span>
+    <input class="b3-switch fn__flex-center" id="editorMarkdownInlineMath" type="checkbox"${window.siyuan.config.editor.markdown.inlineMath ? " checked" : ""}/>
+</label>
 <label class="fn__flex b3-label">
     <div class="fn__flex-1">
         ${window.siyuan.languages.justify}
@@ -296,8 +328,16 @@ export const editor = {
                 (editor.element.querySelector("#dynamicLoadBlocks") as HTMLInputElement).value = "1024";
             }
 
+            let markdown = {
+                inlineSup: (editor.element.querySelector("#editorMarkdownInlineSup") as HTMLInputElement).checked,
+                inlineSub: (editor.element.querySelector("#editorMarkdownInlineSub") as HTMLInputElement).checked,
+                inlineTag: (editor.element.querySelector("#editorMarkdownInlineTag") as HTMLInputElement).checked,
+                inlineMath: (editor.element.querySelector("#editorMarkdownInlineMath") as HTMLInputElement).checked
+            };
+
             fetchPost("/api/setting/setEditor", {
                 fullWidth: (editor.element.querySelector("#fullWidth") as HTMLInputElement).checked,
+                markdown: markdown,
                 justify: (editor.element.querySelector("#justify") as HTMLInputElement).checked,
                 rtl: (editor.element.querySelector("#rtl") as HTMLInputElement).checked,
                 readOnly: (editor.element.querySelector("#readOnly") as HTMLInputElement).checked,
@@ -371,6 +411,7 @@ export const editor = {
                 item.editor.protyle.contentElement.removeAttribute("data-fullwidth");
             }
         });
+
         setInlineStyle();
     }
 };

+ 5 - 2
app/src/protyle/render/setLute.ts

@@ -25,8 +25,11 @@ export const setLute = (options: ILuteOptions) => {
     lute.SetTag(true);
     lute.SetSuperBlock(true);
     lute.SetMark(true);
-    lute.SetSup(true);
-    lute.SetSub(true);
+    lute.SetSup(window.siyuan.config.editor.markdown.inlineSup);
+    lute.SetSub(window.siyuan.config.editor.markdown.inlineSub);
+    lute.SetTag(window.siyuan.config.editor.markdown.inlineTag);
+    lute.SetInlineMath(window.siyuan.config.editor.markdown.inlineMath);
+    lute.SetGFMStrikethrough1(false);
     lute.SetSpin(true);
     lute.SetProtyleWYSIWYG(true);
     if (options.lazyLoadImage) {

+ 28 - 0
app/src/types/config.d.ts

@@ -279,10 +279,38 @@ declare namespace Config {
         trust: boolean;
     }
 
+    /**
+     * SiYuan editor markdown related configuration
+     */
+    interface IMarkdown {
+        /**
+         * Whether to enable the inline superscript
+         */
+        inlineSup: boolean;
+        /**
+         * Whether to enable the inline subscript
+         */
+        inlineSub: boolean;
+        /**
+         * Whether to enable the inline tag
+         */
+        inlineTag: boolean;
+        /**
+         * Whether to enable the inline math
+         */
+        inlineMath: boolean;
+    }
+
     /**
      * SiYuan editor related configuration
      */
     export interface IEditor {
+
+        /**
+         * Markdown configuration
+         */
+        markdown: IMarkdown;
+
         /**
          * The default number of backlinks to expand
          */

+ 4 - 0
app/src/types/protyle.d.ts

@@ -202,6 +202,10 @@ declare class Lute {
 
     public SetTag(enable: boolean): void;
 
+    public SetInlineMath(enable: boolean): void;
+
+    public SetGFMStrikethrough1(enable: boolean): void;
+
     public SetMark(enable: boolean): void;
 
     public SetSub(enable: boolean): void;

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
app/stage/protyle/js/lute/lute.min.js


+ 2 - 0
kernel/api/setting.go

@@ -330,6 +330,8 @@ func setEditor(c *gin.Context) {
 		util.BroadcastByType("main", "readonly", 0, "", model.Conf.Editor.ReadOnly)
 	}
 
+	util.MarkdownSettings = model.Conf.Editor.Markdown
+
 	ret.Data = model.Conf.Editor
 }
 

+ 35 - 31
kernel/conf/editor.go

@@ -16,38 +16,41 @@
 
 package conf
 
+import "github.com/siyuan-note/siyuan/kernel/util"
+
 type Editor struct {
-	FontSize                        int      `json:"fontSize"`                        // 字体大小
-	FontSizeScrollZoom              bool     `json:"fontSizeScrollZoom"`              // 字体大小是否支持滚轮缩放
-	FontFamily                      string   `json:"fontFamily"`                      // 字体
-	CodeSyntaxHighlightLineNum      bool     `json:"codeSyntaxHighlightLineNum"`      // 代码块是否显示行号
-	CodeTabSpaces                   int      `json:"codeTabSpaces"`                   // 代码块中 Tab 转换空格数,配置为 0 则表示不转换
-	CodeLineWrap                    bool     `json:"codeLineWrap"`                    // 代码块是否自动折行
-	CodeLigatures                   bool     `json:"codeLigatures"`                   // 代码块是否连字
-	DisplayBookmarkIcon             bool     `json:"displayBookmarkIcon"`             // 是否显示书签图标
-	DisplayNetImgMark               bool     `json:"displayNetImgMark"`               // 是否显示网络图片角标
-	GenerateHistoryInterval         int      `json:"generateHistoryInterval"`         // 生成历史时间间隔,单位:分钟
-	HistoryRetentionDays            int      `json:"historyRetentionDays"`            // 历史保留天数
-	Emoji                           []string `json:"emoji"`                           // 常用表情
-	VirtualBlockRef                 bool     `json:"virtualBlockRef"`                 // 是否启用虚拟引用
-	VirtualBlockRefExclude          string   `json:"virtualBlockRefExclude"`          // 虚拟引用关键字排除列表
-	VirtualBlockRefInclude          string   `json:"virtualBlockRefInclude"`          // 虚拟引用关键字包含列表
-	BlockRefDynamicAnchorTextMaxLen int      `json:"blockRefDynamicAnchorTextMaxLen"` // 块引动态锚文本最大长度
-	PlantUMLServePath               string   `json:"plantUMLServePath"`               // PlantUML 伺服地址
-	FullWidth                       bool     `json:"fullWidth"`                       // 是否使用最大宽度
-	KaTexMacros                     string   `json:"katexMacros"`                     // KeTex 宏定义
-	ReadOnly                        bool     `json:"readOnly"`                        // 只读模式
-	EmbedBlockBreadcrumb            bool     `json:"embedBlockBreadcrumb"`            // 嵌入块是否显示面包屑
-	ListLogicalOutdent              bool     `json:"listLogicalOutdent"`              // 列表逻辑反向缩进
-	ListItemDotNumberClickFocus     bool     `json:"listItemDotNumberClickFocus"`     // 单击列表项标记聚焦
-	FloatWindowMode                 int      `json:"floatWindowMode"`                 // 浮窗触发模式,0:光标悬停,1:按住 Ctrl 悬停,2:不触发浮窗
-	DynamicLoadBlocks               int      `json:"dynamicLoadBlocks"`               // 块动态数,可配置区间 [48, 1024]
-	Justify                         bool     `json:"justify"`                         // 是否两端对齐
-	RTL                             bool     `json:"rtl"`                             // 是否从右到左显示
-	Spellcheck                      bool     `json:"spellcheck"`                      // 是否启用拼写检查
-	OnlySearchForDoc                bool     `json:"onlySearchForDoc"`                // 是否启用 [[ 仅搜索文档块
-	BacklinkExpandCount             int      `json:"backlinkExpandCount"`             // 反向链接默认展开数量
-	BackmentionExpandCount          int      `json:"backmentionExpandCount"`          // 反链提及默认展开数量
+	FontSize                        int            `json:"fontSize"`                        // 字体大小
+	FontSizeScrollZoom              bool           `json:"fontSizeScrollZoom"`              // 字体大小是否支持滚轮缩放
+	FontFamily                      string         `json:"fontFamily"`                      // 字体
+	CodeSyntaxHighlightLineNum      bool           `json:"codeSyntaxHighlightLineNum"`      // 代码块是否显示行号
+	CodeTabSpaces                   int            `json:"codeTabSpaces"`                   // 代码块中 Tab 转换空格数,配置为 0 则表示不转换
+	CodeLineWrap                    bool           `json:"codeLineWrap"`                    // 代码块是否自动折行
+	CodeLigatures                   bool           `json:"codeLigatures"`                   // 代码块是否连字
+	DisplayBookmarkIcon             bool           `json:"displayBookmarkIcon"`             // 是否显示书签图标
+	DisplayNetImgMark               bool           `json:"displayNetImgMark"`               // 是否显示网络图片角标
+	GenerateHistoryInterval         int            `json:"generateHistoryInterval"`         // 生成历史时间间隔,单位:分钟
+	HistoryRetentionDays            int            `json:"historyRetentionDays"`            // 历史保留天数
+	Emoji                           []string       `json:"emoji"`                           // 常用表情
+	VirtualBlockRef                 bool           `json:"virtualBlockRef"`                 // 是否启用虚拟引用
+	VirtualBlockRefExclude          string         `json:"virtualBlockRefExclude"`          // 虚拟引用关键字排除列表
+	VirtualBlockRefInclude          string         `json:"virtualBlockRefInclude"`          // 虚拟引用关键字包含列表
+	BlockRefDynamicAnchorTextMaxLen int            `json:"blockRefDynamicAnchorTextMaxLen"` // 块引动态锚文本最大长度
+	PlantUMLServePath               string         `json:"plantUMLServePath"`               // PlantUML 伺服地址
+	FullWidth                       bool           `json:"fullWidth"`                       // 是否使用最大宽度
+	KaTexMacros                     string         `json:"katexMacros"`                     // KeTex 宏定义
+	ReadOnly                        bool           `json:"readOnly"`                        // 只读模式
+	EmbedBlockBreadcrumb            bool           `json:"embedBlockBreadcrumb"`            // 嵌入块是否显示面包屑
+	ListLogicalOutdent              bool           `json:"listLogicalOutdent"`              // 列表逻辑反向缩进
+	ListItemDotNumberClickFocus     bool           `json:"listItemDotNumberClickFocus"`     // 单击列表项标记聚焦
+	FloatWindowMode                 int            `json:"floatWindowMode"`                 // 浮窗触发模式,0:光标悬停,1:按住 Ctrl 悬停,2:不触发浮窗
+	DynamicLoadBlocks               int            `json:"dynamicLoadBlocks"`               // 块动态数,可配置区间 [48, 1024]
+	Justify                         bool           `json:"justify"`                         // 是否两端对齐
+	RTL                             bool           `json:"rtl"`                             // 是否从右到左显示
+	Spellcheck                      bool           `json:"spellcheck"`                      // 是否启用拼写检查
+	OnlySearchForDoc                bool           `json:"onlySearchForDoc"`                // 是否启用 [[ 仅搜索文档块
+	BacklinkExpandCount             int            `json:"backlinkExpandCount"`             // 反向链接默认展开数量
+	BackmentionExpandCount          int            `json:"backmentionExpandCount"`          // 反链提及默认展开数量
+	Markdown                        *util.Markdown `json:"markdown"`                        // Markdown 配置
 }
 
 const (
@@ -83,5 +86,6 @@ func NewEditor() *Editor {
 		RTL:                             false,
 		BacklinkExpandCount:             8,
 		BackmentionExpandCount:          8,
+		Markdown:                        util.MarkdownSettings,
 	}
 }

+ 1 - 1
kernel/go.mod

@@ -10,7 +10,7 @@ require (
 	github.com/88250/epub v0.0.0-20230830085737-c19055cd1f48
 	github.com/88250/go-humanize v0.0.0-20240424102817-4f78fac47ea7
 	github.com/88250/gulu v1.2.3-0.20240324024901-3c1bb82cba30
-	github.com/88250/lute v1.7.7-0.20240425021622-7773b213b113
+	github.com/88250/lute v1.7.7-0.20240426034208-275376345554
 	github.com/88250/pdfcpu v0.3.14-0.20230401044135-c7369a99720c
 	github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1
 	github.com/ClarkThan/ahocorasick v0.0.0-20231011042242-30d1ef1347f4

+ 2 - 2
kernel/go.sum

@@ -12,8 +12,8 @@ github.com/88250/go-sqlite3 v1.14.13-0.20231214121541-e7f54c482950 h1:Pa5hMiBceT
 github.com/88250/go-sqlite3 v1.14.13-0.20231214121541-e7f54c482950/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
 github.com/88250/gulu v1.2.3-0.20240324024901-3c1bb82cba30 h1:IeE4DVRWnVpcbMj7gGZoSMiBWs3h/ihiyOmualS1Mas=
 github.com/88250/gulu v1.2.3-0.20240324024901-3c1bb82cba30/go.mod h1:MUfzyfmbPrRDZLqxc7aPrVYveatTHRfoUa5TynPS0i8=
-github.com/88250/lute v1.7.7-0.20240425021622-7773b213b113 h1:s4geGWFDTu1rF+/6p+AqODDhy7pS5KBgWGKTgPnJk70=
-github.com/88250/lute v1.7.7-0.20240425021622-7773b213b113/go.mod h1:VDAzL8b+oCh+e3NAlmwwLzC53ten0rZlS8NboB7ljtk=
+github.com/88250/lute v1.7.7-0.20240426034208-275376345554 h1:XwSEW6Jts20V/uOKBljMl2AFSPyPbpx+4pCRluKuVVk=
+github.com/88250/lute v1.7.7-0.20240426034208-275376345554/go.mod h1:VDAzL8b+oCh+e3NAlmwwLzC53ten0rZlS8NboB7ljtk=
 github.com/88250/pdfcpu v0.3.14-0.20230401044135-c7369a99720c h1:Dl/8S9iLyPMTElnWIBxmjaLiWrkI5P4a21ivwAn5pU0=
 github.com/88250/pdfcpu v0.3.14-0.20230401044135-c7369a99720c/go.mod h1:S5YT38L/GCjVjmB4PB84PymA1qfopjEhfhTNQilLpv4=
 github.com/88250/vitess-sqlparser v0.0.0-20210205111146-56a2ded2aba1 h1:48T899JQDwyyRu9yXHePYlPdHtpJfrJEUGBMH3SMBWY=

+ 4 - 0
kernel/model/conf.go

@@ -267,6 +267,10 @@ func InitConf() {
 	if 0 > Conf.Editor.BackmentionExpandCount {
 		Conf.Editor.BackmentionExpandCount = 0
 	}
+	if nil == Conf.Editor.Markdown {
+		Conf.Editor.Markdown = &util.Markdown{}
+	}
+	util.MarkdownSettings = Conf.Editor.Markdown
 
 	if nil == Conf.Export {
 		Conf.Export = conf.NewExport()

+ 20 - 2
kernel/util/lute.go

@@ -24,6 +24,21 @@ import (
 	"github.com/siyuan-note/logging"
 )
 
+// MarkdownSettings 运行时 Markdown 配置。
+var MarkdownSettings = &Markdown{
+	InlineSup:  false,
+	InlineSub:  false,
+	InlineTag:  false,
+	InlineMath: false,
+}
+
+type Markdown struct {
+	InlineSup  bool `json:"inlineSup"`  // 是否启用行级上标
+	InlineSub  bool `json:"inlineSub"`  // 是否启用行级下标
+	InlineTag  bool `json:"inlineTag"`  // 是否启用行级标签
+	InlineMath bool `json:"inlineMath"` // 是否启用行级公式
+}
+
 func NewLute() (ret *lute.Lute) {
 	ret = lute.New()
 	ret.SetTextMark(true)
@@ -36,9 +51,12 @@ func NewLute() (ret *lute.Lute) {
 	ret.SetImgPathAllowSpace(true)
 	ret.SetGitConflict(true)
 	ret.SetMark(true)
-	ret.SetSup(true)
-	ret.SetSub(true)
+	ret.SetSup(MarkdownSettings.InlineSup)
+	ret.SetSub(MarkdownSettings.InlineSub)
+	ret.SetTag(MarkdownSettings.InlineTag)
+	ret.SetInlineMath(MarkdownSettings.InlineMath)
 	ret.SetInlineMathAllowDigitAfterOpenMarker(true)
+	ret.SetGFMStrikethrough1(false)
 	ret.SetFootnotes(false)
 	ret.SetToC(false)
 	ret.SetIndentCodeBlock(false)

+ 1 - 1
kernel/util/runtime.go

@@ -38,7 +38,7 @@ import (
 	"github.com/siyuan-note/logging"
 )
 
-// UseSingleLineSave 是否使用单行保存 .sy 文件。
+// UseSingleLineSave 是否使用单行保存 .sy 和数据库 .json 文件。
 var UseSingleLineSave = true
 
 // IsUILoaded 是否已经加载了 UI。

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff