February 2, 2024  |  p.程式  |  # Notepad++ # Regex

本筆記整理自此噗

圖示說明何謂Markdown的目錄列表

關鍵就是這一串regex
(?-s)^#{1,6}\x20(\S.*$)"/

我的正規表達式能力…只有看了一支20分鐘教學影片的程度而已…
但目前測試下來,應該是可用的,如果有路人知道如何改進也歡迎提供範例
我的Notepad++(簡稱NPP)版本為8.5.8,64位元
(注意,7或更舊版本可能不適用此方法)


操作步驟

  1. 先確定自己的NPP含有Markdown preinstalled dark mode (其他Markdown高亮也行,以下操作只要針對檔案名稱去改變)

  2. 至\Program Files\NotePad++,複製整個functionList資料夾
  3. 將資料夾貼上User\AppData\Roaming\Notepad++
  4. 在functionList資料夾中找到overrideMap.xml,在前貼上圖中白線圈選字:

  5. 在functionList資料夾內創建:markdown.xml,並貼上下圖的全文:

  6. 打開需要編輯的.md檔 -> 檢視 -> 函式清單,就可以看到目錄表了

代碼如下

<association id= "markdown.xml" userDefinedLangName="Markdown (preinstalled dark mode)"/>
<?xml version="1.0" encoding="UTF-8"?>
<NotepadPlus>
    <functionList>
        <parser displayName="Markdown (preinstalled dark mode)"
                id="Markdown (preinstalled dark mode)"
                commentExpr="">
            <function mainExpr="(?-s)^#{1,6}\x20(\S.*$)"/>
        </parser>
    </functionList>
</NotepadPlus>

參考來源

主要是參考這個討論串:can i use function list in Notepad++ 7.9.5?

之所以沒使用這串討論提供的範例,是因為經個人測試後發現有數個問題..

…太複雜的表達式我看不懂,無法debug,只好自己整條重寫
我寫得鐵定很陽春、漏了很多東西沒注意到,但總之…目前從配對結果上還看不出問題在哪


為何不使用其他軟件寫筆記?

現在已經有不少對Markdown支援度更好的文字編輯器(Obsidian, Zettlr, Joplin…),但我還是喜歡簡便的Notepad++,因為開起來就是快又穩定。整頓了一會,目前看起來還算順眼

(2024年一月)

(2024年二月)

其實我也很喜歡Sublime Text,開起來也超快,介面簡單漂亮,對Markdown支援度更好,中文字體渲染得也比NPP清晰。但偏偏它不支援中文wrap……查過有沒有解決辦法,目前看到最相關的討論:Curly brackets causing unwanted line wrapping in custom syntax?

結論:要嘛捨棄Markdown、套用討論提出的方法(很陽春,和無高亮純文字沒啥兩樣),要嘛自己重寫整個Markdown的syntax…只能放棄

…解決這件事後終於可以從google keep搬家了 T_T
常常寫筆記寫到找不到段落在哪,要不就是連筆記都不曉得被放在哪裡(google文件後遺症),學了Markdown&雲端硬碟建立資料夾放md檔以後才總算得救