投稿

4月, 2025の投稿を表示しています

紹介されてるコードを右端で折り返すブックマークレット

ウェブページで紹介されているコードの一行が横に長くて横スクロールバーが出ているのを右端で折り返して横スクロールバーが出ないようにするためのブックマークレット。 (折り返せる区切りが無くて折り返せない場合に横スクロールバーが無いと困る。) その1 javascript:(function() {   const elements = document.querySelectorAll('code, pre');   elements.forEach(element => {   const currentWhiteSpace = window.getComputedStyle(element).whiteSpace;   if (currentWhiteSpace === 'pre-wrap') {     element.style.setProperty('white-space', 'pre');     element.style.setProperty('overflow-x', 'auto');   } else {     element.style.setProperty('white-space', 'pre-wrap');      /* element.style.setProperty('overflow-x', 'hidden'); この行は削除する */   }   }); })();  その2 javascript:(function() {   const elements = document.querySelectorAll('code, pre');   elements.forEach(element => {   const currentWhiteSpace = window.getComputedStyle(element).whiteSpace;...

しぶとい「extract_reply_context」関数

 失敗例だけどメモっておく。 WordPressのプラグイン「ActivityPub」には、コメント欄からリプライした際に、コメント欄にメンションを記載しなくても、同じスレッド内の全てのアカウントにメンションして通知を送る仕様があり、これを防ぎたいと試行錯誤した。 Fediverseに届いた時に投稿にメンションが記載されないようにすることはできた。次のコードをfunctions.phpに追加する。  // Fediverseで自動追加メンションが表示されないようにする(ただし、通知は防げない) function my_filter_comment_text( $content, $comment, $args ) {     // 常に元のコメントコンテンツで $content を上書きする     $content = $comment->comment_content;     // その後の処理は元のフィルターチェーンに沿って行われます     return $content; } add_filter( 'comment_text', 'my_filter_comment_text', 5, 3 ); しかし、この方法では通知は防げない。 自動で付加されるメンションは 'extract_reply_context'という関数で作られている。通知に関しては、この関数が実行されている次の関数が怪しいと思った。 /** * Helper function to get the @-Mentions from the comment content. * * @return array The list of @-Mentions. */ protected function get_mentions() {   \add_filter( 'activitypub_extract_mentions', array( $this, 'extract_reply_context' ) );   /**    * Filter the mentions in t...