Pythonによって開発されたMarkdownディレクトリエクストラクタ。mdをマインドマップにすばやく変換します(GUIを使用すると、直接ダウンロードできます)

みなさん、こんにちは。私の名前はシャオミンです。

最近、多くのブロガーが、Markdownドキュメント内のディレクトリをすばやく抽出してxmindマインドマップに変換する必要があることを要求しています。当局は、Pythonを使用してxmindマインドマップを直接生成する方法を提供していると言われていますが、一部の人々は報告しています生成されたファイルを開くことができないこと。したがって、この状況に基づいて、Markdownをxmindにすばやく変換するのに役立つ効率的な支援を開発します。

ソフトウェアの使用法の紹介

最初にプログラムを開きます。インターフェースは次のとおりです。

画像-20211106180412375

最初に、ロードされたMarkdownドキュメントが配置されているフォルダーを選択できます。

画像-20211106180637942

次に、[ロード]ボタンをもう一度クリックします。

画像-20211106180844943

そのディレクトリ内のすべてのmdファイルがリストにロードされます。再帰的なチェックボックスをオンにしてロードすることもできます。

画像-20211106181045662

この時点で、含まれているサブファイルがすべてリストにロードされます。

指定されたMarkdownファイルに対応するディレクトリを取得するにはどうすればよいですか?

対応するリストアイテムをクリックするだけです。

画像-20211106181259574

この時点で、Markdownディレクトリがカットバージョンにコピーされ、xmindソフトウェアに貼り付けることができます。xmindソフトウェアを開いた後、冗長ノードを削除し、中央ノードを選択して、以下を貼り付けます。

画像-20211106181625048

結果が完璧なマインドマップになっていることがわかります。現時点では、中央ノードの名前を変更して保存するだけです。

もちろん、次のような一部のMarkdownドキュメントは特別です。

画像-20211106182008689

第1レベルのタイトルを削除し、他のレベルのタイトルを1レベル上げます。最小タイトルレベルを2に変更してから、記事をクリックします。

画像-20211106182145652

この時点で、xmindに移動して貼り付け、目的の効果を取得します。

もちろん、リスト内のファイルについては、ディレクトリファイルをバッチでエクスポートすることもできます。[バッチエクスポート]をクリックします。バッチエクスポートをクリックした後、最初に保存場所を選択してから、エクスポートを開始します。

画像-20211106182604180

保存フォルダをクリックして選択を解除すると、エクスポートタスクの実行が終了します。

コードを開発する

まず、Markdownディレクトリを抽出する関数を開発します。

import cchardet

def load_md(filename, min_level=1):
    with open(filename, "rb") as f:
        md_bytes = f.read()
    encoding = cchardet.detect(md_bytes)['encoding']
    if encoding is None:
        encoding = "u8"
    md = md_bytes.decode(encoding)
    code_area = False
    result = []
    for line in md.splitlines():
        if line.startswith("```"):
            code_area = not code_area
        if code_area or not line.startswith("#") or line.find(" ") == -1:
            continue
        num_sign, title = line.split(maxsplit=1)
        if not title:
            continue
        tab_num = len(num_sign) - min_level
        if tab_num < 0:
            continue
        result.append("\t" * tab_num + title)
    return result

ここでは、エンコーディング認識にcchardetを使用しています。これを使用していないリーダーは、次のものをインストールする必要があります。

pip install cchardet

上記のコードの原則は、Markdownテキストを1行ずつ読み取ることです。#で始まり、スペースを含むテキストは、タイトル付きの行と見なされ、コード領域に#がある場合は除外されます。

その他のコードについては、興味のある子供靴を自分で勉強することができます。完全なコードとパッケージ化されたツールをcodeChinaからダウンロードしてください。

ツールとオープンソースコードのダウンロードアドレス:

https://codechina.csdn.net/as604049322/python_gui

おすすめ

転載: blog.csdn.net/as604049322/article/details/121183528