リクエスト広場

accordion で作成した見出しを contents(またはcontentsx) で検知してほしい

3 コメント
views
5 フォロー

サンプルページ
表題の通りです。
サンプルページの場合「ティザー情報」「テキスト」「小ネタ」の見出しを目次に表示させたく思います。
※代替案でも構いません。ご検討のほどよろしくお願いします。

Yukth
作成: 2023/05/13 (土) 22:13:54
通報 ...
1
01v 2023/05/14 (日) 09:18:22 修正

accordionをあたかも通常見出しのようにcontentsに出力させる

代替案1
accordionの中にcontentsに表示させたい見出し行を書く。
ただしcloseだとcontentsのLinkから飛べないので次のようにする。

  • 見出しのアンカーを自分で指定するか、ランダムで与えられたIDを確認
  • accordionの手前に同名のアンカーを設置
    #contents
    *1 [#a1]
    &aname(a2);
    #accordion(2,*,close){{
    *2 [#a2]
    内容
    }}
    *3 [#a3]
    

この方法の問題点として
accordionを開いたとき、accordion帯と見出し帯が二重に表示される。
accordionの書き出し位置が前の見出しの途中にあり、終了位置は次の見出し内にあることが、何か問題あるかもしれない。

代替案2
contentsを使わずに手書きで目次を書く。

-[[1>#a1]]
-[[2>#a2]]
-[[3>#a3]]

*1 [#a1]
&aname(a2);
#accordion(2,*,close){{
内容
}}
*3 [#a3]

ただしaccordionは1の配下にいる。
accordionは
1と同格扱いにしたいのでバランスが悪い。
includexのsectionでも*2を指定できない。

2
01v 2023/05/14 (日) 09:56:15 >> 1

機能追加
非表示機能を作る。

ソースを解釈しhtml変換した上で、ブラウザー上非表示にする機能。
対象は見出しに限定しない。何か他でも使えるかもしれない。
null{{}}は内容を解釈しないので、今回の件では使えない。
accordion、contents、contentsx、contents2_1の方をいじるより効率的。

例えばnodisplayというマルチライン機能として以下のようになればよい。
この書き方ならaccordionが見出し2の配下に置けるので、素直に掛ける。
ただ非表示だとアンカーに飛べないかもしれないので、contentsリンクに対応するanameは自分で書く必要があるかも。

#contents
*1 [#a1]
#nodisplay{{
*2 [#a2]
}}
//&aname(a2);
#accordion(2,*,close){{
内容
}}
*3 [#a3]
3

ご検討ありがとうございます。
機能追加がされない場合には代替案で対応したく思います。
#機能追加に関して、いちユーザでアクションできることはなくて、様子見しかできない理解でよかったですかね?

要望は具体的な提案や理由を書いて下さい。
×