カードデザインのパターンは多いのに…
私は「Ameba Pick」を使用していないのですが、「ピックカード」はカードデザインを選べる様になっていて、リンクカードに比べるとずいぶん力が入っています。
しかし、スマホユーザーを念頭に置いているのか、カードに枠線が無く、本文幅が広いブログページでは左寄せになります。 これは、PC表示を主にしたブログデザインでは、少々使い難いカードデザインと思います。
そこで、通常表示からカード配置の中央寄せと、カードの枠線付けをワンタッチで出来るツールを作りました。 デフォルトのデザインパターンは豊富なので、補助的なツールという位置付けです。
ツールの扱い方
このツール「PickCard Editor ⭐」は、常駐型のスクリプトツールです。 拡張機能「Tampermonkey」にツールを登録して、常にONの状態にしておきます。
これにより、PCの記事編集画面を開くとツールが自動的に起動し、記事中のピックカードに対し、以下の処理が可能になります。
●「通常表示」の編集画面で ピックカードを「Ctrl+Click」すると
➔ カードが左寄せの場合は、中央寄せになります
➔ カードが中央寄せの場合は、左寄せになります
●「通常表示」の編集画面で ピックカードを「Shift+Click」すると
➔ カードに枠線が無い場合は、カードに細枠線が表示されます
➔ カードに細枠線がある場合は、カードの枠線が非表示になります
横長のデザイン
カード生成時は左寄せです。 これを「Ctrl+Click」するところです。
下は、配置が中央寄せになったカードを「Shift+Click」するところです。
カードに細枠線が表示されました。
編集画面では、上の様に「リンク追加」ボタンや「編集」ボタンが表示されていますが、投稿するとこれらは消えて下の様になります。
縦長のデザイン
カード生成時は左寄せです。 これを「Ctrl+Click」するところです。
配置が中央寄せになったカードを「Shift+Click」するところです。
カードに細枠線が表示されました。
画像のみのデザイン
カード生成時は左寄せです。 これを「Ctrl+Click」するところです。
配置が中央寄せになったカードを「Shift+Click」するところです。
カードに細枠線が表示されました。
〔注〕縦横比が偏った画像の「画像のみ」のデザインは、枠線と画像の間に余白が大きく出る場合があります。 下の例の右側は、上下に大きな余白があります。
ツールの仕様
◎ このツールは、「ピックカード」の配置デザインと枠線デザインを追加します。 カードのコードに関与しないので、アフィリエイト機能に影響する事はありません。
但し、ツール使用による万一の損失に関しては責を負いません。 すべて自己責任の下でご利用ください。
◎「Ameba Pick」の利用規約に従って、カードのHTMLコードには全く改変を行わない工夫をしています。
◎ このツールは、PCのブログ編集画面の「通常編集」の画面でのみ動作しますが、中央寄せ・枠線表示は、PCとスマホの両環境での参照に反映します。
◎ 記事本文中に新たに生成したカードに対し、ツールが機能しない場合があります。 これは、ツールが新しいカードを認識していない場合です。 その時は、カード右下の「編集」ボタンを押し、「レイアウト選択」のダイアログを開いて閉じる(レイアウトの変更をしてもしなくてもOKです)と、新しいカードにツールが機能します。
◎ このツールは「テキストのみ」「画像のみ」のレイアウトにも有効です。 ただし、「画像」の縦横比によっては、枠線と画像の間に空白が出来る場合があります。
◎ 当方の環境が不完全で、想定外の問題があるかもしれません。 使用上の問題点などを指摘いただければ、ありがたいです。
「PickCard Editor ⭐」を使用するには
このツールは Chrome / Edge / Firefox の拡張機能「Tampermonkey」上で動作します。 以下に、このツールの導入手順を簡単に説明します。
❶「Tampermonkey」を導入します
使用しているブラウザに拡張機能「Tampermonkey」を導入する事が必要です。 以下のページに簡単な導入の説明があるので参照ください。
❷「Tampermonkey」にスクリプトを登録します
●「Tampermonkey」の「+」マークの「新規スクリプト」タブを開きます。
●「新規スクリプト」には、最初からテンプレートが記入されています。 これは全て削除して、完全に空白の編集枠に 下のコードをコピー&ペーストします。
〔コピー方法〕 軽量シンプルなツール「PreBox Button 」を使うと
コード枠内を「Ctrl+左Click」➔「Copy code 」を「左Click」
の操作で、掲載コードのコピーが可能になります。
● 最後に「ファイル」メニューの「保存」を押すと、ツールが使用可能になります。
〔 PickCard Editor ⭐ 〕ver. 0.2
// ==UserScript== // @name PickCard Editor ⭐ // @namespace http://tampermonkey.net/ // @version 0.2 // @description 通常表示でピックカードを編集 // @author Ameba Blog User // @match https://blog.ameba.jp/ucs/entry/srventry* // @exclude https://blog.ameba.jp/ucs/entry/srventrylist.do* // @grant none // ==/UserScript== let retry=0; let interval=setInterval(wait_target, 100); function wait_target(){ retry++; if(retry>10){ clearInterval(interval); } let target=document.querySelector('#cke_1_contents'); if(target){ clearInterval(interval); main(); }} function main(){ let editor_iframe; let iframe_doc; let iframe_body; let target1=document.querySelector('#root'); let monitor1=new MutationObserver( catch_key ); monitor1.observe(target1, {childList: true}); let target=document.querySelector('#cke_1_contents'); let monitor=new MutationObserver( catch_key ); monitor.observe(target, {childList: true}); catch_key(); function catch_key(){ editor_iframe=document.querySelector('.cke_wysiwyg_frame'); if(editor_iframe){ iframe_doc=editor_iframe.contentWindow.document; if(iframe_doc){ iframe_body=iframe_doc.querySelector('body'); if(iframe_body){ let pickC=iframe_body.querySelectorAll('.pickCreative'); for(let k=0; k<pickC.length; k++){ wrap(pickC[k]); } function wrap(C){ let type=C.getAttribute('data-layout-type'); if(type=='1' || type=='2' || type=='5'){ let C_root=C.parentNode.parentNode; let warC=iframe_doc.createElement('div'); warC.setAttribute('class', 'warC'); if(!C_root.closest('.warC')){ warC.appendChild(C_root.cloneNode(true)); C_root.parentNode.replaceChild(warC, C_root); warC.style.width='fit-content'; }} else if(type=='3' || type=='4'){ let warC=iframe_doc.createElement('div'); warC.setAttribute('class', 'warC'); if(!C.closest('.warC')){ warC.appendChild(C.cloneNode(true)); C.parentNode.replaceChild(warC, C); warC.style.width='fit-content'; }}} for(let k=0; k<pickC.length; k++){ pickC[k].onclick=function(event){ if(event.ctrlKey){ event.preventDefault(); event.stopImmediatePropagation(); card_edit_c(pickC[k]); } else if(event.shiftKey){ event.preventDefault(); event.stopImmediatePropagation(); card_edit_s(pickC[k]); }}} function card_edit_c(C){ let warC=C.closest('.warC'); if(warC){ if(warC.style.margin!='0px auto'){ warC.style.margin='0px auto'; } else{ warC.style.margin=''; }}} function card_edit_s(C){ let warC=C.closest('.warC'); if(warC){ if(warC.style.borderRadius!='4px'){ warC.style.outline='1px solid #aaa'; warC.style.borderRadius='4px'; } else{ warC.style.outline=''; warC.style.borderRadius=''; }}} }}}} // catch_key() } // main()
〔追記〕 2021.12.06
「Ameba Pick」の利用規約に抵触しない様に、コードを改善しました。