回答編集履歴

1

追記

2025/05/19 03:04

投稿

bsdfan
bsdfan

スコア4901

test CHANGED
@@ -1,4 +1,4 @@
1
- `function RawInline(el)` の中で `print(el)` してみるとわかると思いますが、el としては `'<u>'` や `'</u>'` 渡されています。
1
+ `function RawInline(el)` の中で `print(el)` してみるとわかると思いますが、el としては `'<u>'` や `'</u>'` 渡されています。
2
2
  なので、`'<u>(.-)</u>'` のパターンにマッチすることはありません。
3
3
  `'<u>'` や `'</u>'` のときに、それぞれ開始・終了のタグを挿入してやるのがいいんじゃないでしょうか。
4
4
  (docx は詳しくないので正しいかわかりませんが、下記で sample.md には下線がつきました)
@@ -17,3 +17,17 @@
17
17
  -- (以下変更なし、省略)
18
18
  end
19
19
  ```
20
+
21
+ もしくは、python 側で元の md を編集してから pandoc に渡しているようなので、python の `md_edit()` の中で、`<u>~~~</u>` を `<span class="underline">~~~</span>` に置換してやるのもいいと思います。
22
+ (タグが別の行に分かれているケースは下記では対応不可です)
23
+ ```python
24
+ def md_edit(md_file_path, temp_file_path):
25
+ with open(md_file_path, 'r', encoding='utf-8') as infile, open(temp_file_path, 'w', encoding='utf-8') as outfile:
26
+ prev_line_flg = False
27
+ for line in infile:
28
+ # (省略)
29
+ # アンダーライン <u>...</u>
30
+ line = re.sub('<u>(.*?)</u>', '<span class="underline">\\1</span>', line)
31
+
32
+ # (省略)
33
+ ```