WIKIWIKIユーザー助け合い掲示板

#includexのsection指定で#nullを使用しているページを取り込むと行がずれる

7 コメント
views
6 フォロー

 #null を使用してコメントが書かれたページを #includex で取り込むとき、#includex のオプション section の指定箇所より上に #null があると行がずれます。

名前なし
作成: 2022/04/03 (日) 06:29:36
通報 ...
1
01v 2022/04/03 (日) 12:10:07

おおよそ何を指摘してるかはわかりますが、コピペで現象を再現できるように具体的に書いてください。

3
名前なし 2022/04/03 (日) 19:12:47 24e64@65afb >> 1

対象のページ

* h01
1
#null{{
コメント
}}
* h02
2
* h03
3
* h04
4
* h05
5

includex

#includex(対象のページ,section=(filter=^h04$))
5
01v 2022/04/03 (日) 19:35:53 修正 >> 3

本来見出しh04の内容のみ以下のように表示されるべきだが

*h04
4

以下のように誤表示されると言ってますね。

2
*h03
6
01v 2022/04/03 (日) 20:30:22 修正 >> 3

本来抽出する部分から#null{{~}}で記述した行数分上にシフトしてます。
前述の例ではソース文基準で3行上にずれます。
#null{{~}}内の行数を増やすとその分さらにずれます。

一方で
//コメントアウトの場合はずれません。たとえば//#null{{~//}}と修正すると期待通りの結果になります。
#nullを#foldに変えた場合もずれません。つまりマルチライン記述が問題というわけでないです。

おそらく
section=(filter=^h04$)の記述にマッチする見出し行が先頭から何行目に位置するかをカウント(A)
さらにその見出内に何行あるか(あるいは次の見出しまで何行あるか)カウント(B)
A~B行を抽出みたいな動作をしてるしてるのではないかと思います。
しかしこのカウントするとき#null{{~}}の行がカウントされてないように見えます。

2
01v 2022/04/03 (日) 12:30:31 修正

当面の対策として//コメントアウトすれば問題はでないと思います。
簡単なやり方として

  • 編集エディターの上にある[構文ハイライト (β版 ver 0.1.8)]にチェックを入れる。
  • コメントアウトしたい行を選択する。複数行可能。
  • 画面上の[編集]メニューからコメントアウト選択。あるいはショートカット[Ctrl]+[/]。
4
名前なし 2022/04/03 (日) 19:13:29 24e64@65afb

ありがとうございます。

7
01v 2022/04/03 (日) 22:12:11 修正

この件でなんらかの修正をされるとき影響が出ないように書いておきます。
私は#null{{}}とincludexの組み合わせを活用しており、修正に際して現在の動作に影響が出ると困ります。
具体的には以下のような使いかたをしてます。
なんのことかピンとこないかもしれませんが、要はinclude呼び出しで#null{{}}の中の記述を意図的にgrepしてるのでこれができる仕様は維持してもらいたいです。

元ページ

#null{{
隠しコード
}}
文章や表

加工ページ

#includex(元ページ,filter=隠しコード|元ページの文章や表の抽出)

つまりコメントではなくプラグインや文章の呼び出しみたいな使い方です。
これは現在includexがソース文を単純テキストとして解釈してくれるため、コメントアウト部分を外部から呼び出すための不可視な埋め込み領域として利用してます。
隠しコードとはプラグインでも文章でもなんでもいいのですが、例えば表のヘッダーや書式行を埋め込んだりします。
なんのメリットがあるのかというと、例えば元ページの膨大な表からgrepで必要な行だけ抜き出して、さらにヘッダーや書式行を差し替えて表示させるようなことです。加工ページでヘッダとや書式行を追記してもincludeで呼び出された表とは合体しないのでこの方法が有用です。