アンカーリンクの生成

r.gnavi.co.jp

頼むからアンカーリンクをつけてくれ!!

tenjinjinのブックマーク / 2020年7月29日 - はてなブックマーク

対応しているのはChromeのみですが、こちらの方法でページ内リンクを生成しました。
www.suzukikenichi.com
【(各都道府県名)】の箇所にリンクを貼っています。DOMノードの関係で大阪は諦めました。近隣の都道府県から飛んでください。

北海道
青森
岩手
宮城
秋田
山形
福島
茨城
栃木
群馬
埼玉
千葉
東京
神奈川
新潟
富山
石川
福井
山梨
長野
岐阜
静岡
愛知
三重
滋賀
京都
兵庫
奈良
和歌山
鳥取
島根
岡山
広島
山口
徳島
香川
愛媛
高知
福岡
佐賀
長崎
熊本
大分
宮崎
鹿児島
沖縄

Generic Posts Rule pageElement(wedata:400)を解説?


お役に立つとは思えませんが他にも気になっている方がいるかも知れません。私なりにごく簡単な解説を入れます。

(//article[not(contains(../@class,'widget'))][not(contains(@class,'columns four'))][not(contains(@class,'side-contents'))][not(ancestor::*[starts-with(@class,'sidebar')])][not(ancestor::*[contains(@class,'featured') and not(self::body)])]|//*[starts-with(@id,'post-')][not(contains(@id,'nav'))][not(contains(@id,'post-rating'))])[not(.//*[contains(@class,'admz')])][not(self::h2)][not(self::h3)][not(ancestor::*[@id='side' or @class='pickup'])][not(ancestor::aside)][not(id('load-more-posts') or @id='fpost' or contains(@class,'carousel'))][parent::node()[not(@id='side')][not(contains(@class,'thumbnail'))][not(following-sibling::*[not(@id='side')][article or *[starts-with(@id,'post-')]])]/*[self::article or starts-with(@id,'post-')]/following-sibling::*[self::article or starts-with(@id,'post-')][not(contains(@id,'nav'))]]|id('content')[count(div)>1]/div[contains(@class,'post')][not(contains(div/@class,'breadcrumb'))][not(contains(div/@class,'nav'))]

とんでもなく長いXPathですが構造自体はそれほど複雑ではない…はずです。多分。条件式を省いていけば

//article
//*[starts-with(@id,'post-')]
id('content')/div[contains(@class,'post')]

の3つです。実際に更新履歴から2016年の原型をたどると
http://wedata.net/items/400?rev=140619

(//article|//div[starts-with(@id,'post-')])[not(id('load-more-posts') or ancestor::article or ancestor::*[starts-with(@id,'post-') or @id='fpost'])]|id('content')/div[contains(@class,'post')]

これくらいならかわいいものですね。(メガトン構文で)前述したようにここから多野さん(Tanookirby)はデザインへの影響を抑える目的で複雑な条件式を付け加えざるを得ませんでした。その努力の結果、影響は最小限に抑えられています。現状は400の存在を前提にsiteinfoの管理が行われています。

つまりは400のXPathを下手に削ればデザインへ影響が出る可能性が高く、400自体を削除すれば機能しないサイトが大量に出ます。

現状がそれほど問題だとは思っていません。400へのダミーコードはGrieverさんのおかげで2つまでに減りました。*1もし不具合のあるサイトがあれば教えてほしいですが、実用上は拡張側の設定で各個URLを無効化してしまえば十分でしょう。

以上です。意欲のある方は頑張ってください。

*1:2020.7.21現在は3つです

なぜダミーコードが必要なのか

AutoPagerizeのsiteinfo(各サイトの設定)をよく書いているのですが、下の画像のように本来ページ中のコンテンツを繋ぐのに必要ないはずのsiteinfoを書く場合があります。

wedata.net
私はこれをダミーコードと呼んでいます。なぜこれを書く必要があるのかを説明します。

siteinfoの中には、個別のサイトにおいてのみ機能するケースと多くのサイトで機能するのを前提に書かれているケースが存在します。多くのサイトで機能する例はこんな感じです。

wedata.net

本来siteinfoが動作してデザインが崩れる場合は当然該当するsiteinfoを修正します。しかし多くのサイトで機能するsiteinfoに手を入れてしまうと様々なサイトにおいて影響が大きくデザインが崩さない為に神経を使う作業が必要です。だから、上の画像のように長いXPathを書く必要があったんですね。(メガトン構文)

またコメントで事実上削除を禁止しているsiteinfoも存在します。
wedata.net

本 SITEINFO を無効または削除などせずに、適切な対応をされることを期待します。

アイテム: hAtom - データベース: AutoPagerize - wedata

デザインを維持する目的でこのようなsiteinfoの編集は極力避けたいです。またURLの適用範囲が広いので本来動作すべきでないページで動作している場合もあります。これらの対策としてできる限り目立たないようデザインへの影響を抑え、より優先して機能させる目的で個別のsiteinfoを書く場合があります。それがダミーコードです。

書いているうちにどのsiteinfoがどのsiteinfoに対してのダミーなのかよくわからなくなってきたのでコメントに記載しました。ダミーがない場合の具体的な動作は実際に削除して確認していただければと思います。

wedata.net
http://wedata.net/items/85443
http://wedata.net/items/85337
http://wedata.net/items/80835
http://wedata.net/items/63303

wedata.net
http://wedata.net/items/85432
http://wedata.net/items/82193
http://wedata.net/items/82120

西野ブログ対策がFirefoxで機能しない対策

  1. uBlock Originというアドオンをインストール
  2. アドオンマネージャーのオプションからダッシュボードを開く
  3. 「Myフィルター」タブ内のテキストエリアに
|https://c.stat100.ameba.jp/ameblo/assets/runtime-main_pc

を貼り付ける

また対策がイタチごっこになりそうな気もしますが、ひとまずこれで様子を見ます。

追記

この方法だとサイドバーが表示されません。加えて個別エントリ(entry-1xxx.html)の上部リンクも表示されない現象を確認しています。どちらもHTMLノード自体が存在しません。

適用前

適用後

記事一覧(entrylist.html)や画像一覧(imagelist.html)で画像が表示されない問題に関してはホワイトリストに追加することで対応しました。ダッシュボードのホワイトリストタブ内のテキストエリアに

ameblo.jp/nishino-akihiro/archive*
ameblo.jp/nishino-akihiro/entrylist*
ameblo.jp/nishino-akihiro/imagelist*
ameblo.jp/nishino-akihiro/theme*

を貼り付けてください

WeatherTypingのK-1ハイフン問題について

WeatherTypingの公式ワード3にはK-1というワードが出ます。ハイフンを打つ必要があるのですが、これに苦しめられています。私なりの対策を書いておきます。

DvorakJのウィンドウを表示してこちらの画面で[Win]にチェックを入れます。

この上でWindowsキー+ハイフンで打ちます。単にWindowsキーを打つ場合機能しないのではないかと不安でしたが、そういうこともないようです。これでも機能しない場合はその時考えます。

phoenixかな配列漢字入力用メモ

A キー B キー
よ(い) 上2中9 良(い) 上1上2中7
下4下3中7 中8中A上4
と(る) 中5中9 取(る) 下1上9
い(う) 中3中7 言(う) 中2下7
さま 中2中3中9
ち(る) 中5中2 散(る) 下1下3上A
まったく 全く 下2下6
とき 中1下6