JDimproved / JDim

2ch browser for linux
https://jdimproved.github.io/JDim/
GNU General Public License v2.0
46 stars 11 forks source link

板のプロパティにあるローカルルールのリンクが表示されない #1225

Closed ma8ma closed 1 year ago

ma8ma commented 1 year ago

板のプロパティにあるローカルルールのリンクが表示されない

バグの説明

板のローカルルール(head.txt)には他の板へのリンクが貼られているものがあります。 しかし、JDimの板のプロパティで見たときリンクが表示されずクリックすることができません。

再現の方法

  1. head.txtにリンクがある板(e.g. https://agree.5ch.net/operate/)をブラウザで開いて見る
  2. 板をJDimで開く
  3. 開いた板のプロパティを表示する
  4. ローカルルールのタブを選択する
  5. ローカルルールが表示されるがリンクが無い

やりたかったこと・期待する結果

ローカルルールのリンクが表示されてクリックできる

スクリーンショット

なし

動作環境

[バージョン] JDim 0.10.1-20230812(git:1f402d04b9)
[ディストリ ] Ubuntu 23.04 (x86_64)
[パッケージ] バイナリ/ソース( <配布元> )
[ DE/WM ] KDE
[ gtkmm  ] 3.24.7
[ glibmm  ] 2.66.6
[ TLS lib ] GnuTLS 3.7.8
[オプション ] '--with-alsa''--with-pangolayout'
[ そ の 他 ]

追加の情報

git bisectの結果

b531c2c3c4864527ad624df9a0c1901ce2d6f649 is the first bad commit
commit b531c2c3c4864527ad624df9a0c1901ce2d6f649
Author: Masayuki Yamamoto <15698961+ma8ma@users.noreply.github.com>
Date:   Sat May 6 21:48:13 2023 +0900

    NodeTreeBase: Convert relative URLs in HTML <a> elements (#1155)

    HTMLを解析してノードツリーを構築する処理を更新してHTML`<a>`要素が
    相対URLのときは絶対URLに変換するように変更します。
    また、JavaScript疑似プロトコルのBE linkも同じく変換します。

    Co-authored-by: JD Project <jd.project@acc574344b8506f1335297eaa7f74be0f7ea992b>

 src/dbtree/nodetreebase.cpp | 191 +++++++++++++++++++++++++++-----------------
 src/dbtree/nodetreebase.h   |   1 +
 2 files changed, 119 insertions(+), 73 deletions(-)

https://agree.5ch.net/operate/head.txt ローカルルールをブラウザで見ると<a>要素のhref属性には schema-less URL (net_path) が指定されていました。

ソースコードのHTML<a>要素のhref属性を解析する部分を探して見たところ schema-less URLに対応していません。

https://github.com/JDimproved/JDim/blob/1f402d04b9f7aa4edb3a66531deae3b3ba13bb00/src/dbtree/nodetreebase.cpp#L2216-L2242