記事一覧

WebDiaryProで「記事の内容」の一部を隠す

JUGEMカスタマイズ講座さんからまたひとつ、
「記事の内容」の一部を隠す』の導入方法。
これを導入すると、<hr />と書き込んだところから下が
隠し記事として折りたたまれます。
「続きを見る」の簡易版やネタバレ用として使えるかも。

ネタバレボタン導入が面倒だったという方にも
簡単にできるカスタマイズです。

■「記事の内容」の一部を隠す■

1.「skin>diary.html」を開き、${ARTICLE_TEXT}に
  ついているdivのclass属性を確認する。

<div class="text">
<!--ARTICLE_ICON_START--><p>${ARTICLE_ICON}</p><!--ARTICLE_ICON_END-->
${ARTICLE_TEXT}
</div>

2.「skin>common.css」を開き、最後のほうでもいいので
  次のスタイルを記入する。
  このとき、(1)で調べたclass属性名を使います。

.text hr {
display: none;
}

3.「skin>footer.html」を開き、
  <!--SKIN_FOOTER_START-->~<!--SKIN_FOOTER_END-->間の
  好きなところに「記事の一部を隠す」のスクリプトを入れる。

4.上記スクリプトの最後の部分を(1)で確認したclass名に書き換える。

gTextVisible = '↓[続きを表示]'; /* 「続き」を表示するためリンク */
gTextHidden = '↑[続きを隠す]'; /* 「続き」を隠すためのリンク */
gTextPosition = 0; /* 「続きを隠す」を表示する位置 0:「続き]の前 1:「続き」の後ろ 2:両方 */
gTextSequel = new Array();
initSequel('div','text');

スキンによってclass名が違う場合は、
各自それにあわせて太文字部分を書き換えてください。
設定方法は元記事にならいます。

WebDiaryProのコメント等をツリー化する

前もって宣言していたとおり、JUGEMカスタマイズ講座さんの
ツリー化スクリプトver2」をWDPに導入するための解説です。
これを導入すると、⇒のナビゲーションのようにコメントやエントリーが
日付ごとや記事ごとにまとめられます。

ちょっとした前置きがあります。
ご了承のうえでスクリプトの追記を行ってください。

●JUGEMと同じ記述式にするため、「年」「時間・分」を
 ナビゲーションからばっさり切り捨てます。
 それが嫌だという方までは独自フォローできません。
●ナビゲーションに「new!」の表記がでるようにしている場合、
 それもばっさり切り捨てます……。
 保持する良い方法が見つかりませんでした。すいません。
●<dl><dt>を<ul><li>に書き換えます。
 CSSでリストマークを変えたり画像を使うデザインにしている場合、
 デザインが変わってしまいますので各自調節をお願いします。
●ツリー化を行うのは「最新エントリー」「最新コメント」
 「最新トラックバック」の3つです。リンクやカテゴリは
 元々WDPはツリーになっているので必要ありません。

それでは解説です。自分流ですので他にもやり方はあるかもしれません。

■ツリー化スクリプトver2を導入する■

1.「最新エントリー」部分(<!--SKIN_LIST_HEAD_START-->~<!--SKIN_LIST_FOOT_END-->)を以下のように書き換える

<!--SKIN_LIST_HEAD_START-->
<h2>最新エントリー</h2>
<div class="block" id="newentrylist">
<ul>
<!--SKIN_LIST_HEAD_END-->

<!--SKIN_LIST_START-->
<li><a href="${ARTICLE_URL}">${ARTICLE_SUBJ}</a> (${ARTICLE_MONTH}/${ARTICLE_DAY})</li>
<!--SKIN_LIST_END-->

<!--SKIN_LIST_FOOT_START-->
</ul>
</div>
<!--SKIN_LIST_FOOT_END-->

  

2.「最新コメント」部分(<!--SKIN_CMTLIST_HEAD_START-->~<!--SKIN_CMTLIST_FOOT_END-->)を以下のように書き換える

<!--SKIN_CMTLIST_HEAD_START-->
<h2>最新コメント</h2>
<div class="block" id="commentlist">
<ul>
<!--SKIN_CMTLIST_HEAD_END-->

<!--SKIN_CMTLIST_START-->
<li>${ARTICLE_SUBJ}<br />
<a href="${INFO_PATH}?mode=comment&amp;no=${ARTICLE_PNO}#comment">${ARTICLE_NAME} (${ARTICLE_MONTH}/${ARTICLE_DAY})</a></li>
<!--SKIN_CMTLIST_END-->

<!--SKIN_CMTLIST_FOOT_START-->
</ul>
</div>
<!--SKIN_CMTLIST_FOOT_END-->

3.「最新トラックバック」部分(<!--SKIN_TBLIST_HEAD_START-->~<!--SKIN_TBLIST_FOOT_END-->)を以下のように書き換える

<!--SKIN_TBLIST_HEAD_START-->
<h2>最新トラックバック</h2>
<div class="block" id="tblist">
<ul>
<!--SKIN_TBLIST_HEAD_END-->

<!--SKIN_TBLIST_START-->
<li>${TRACKBACK_TITLE}<br />
<a href="${INFO_PATH}?mode=trackback&amp;no=${TRACKBACK_PNO}#trackback">${TRACKBACK_BLOG} (${TRACKBACK_MONTH}/${TRACKBACK_DAY})</a></li>
<!--SKIN_TBLIST_END-->

<!--SKIN_TBLIST_FOOT_START-->
</ul>
</div>
<!--SKIN_TBLIST_FOOT_END-->

※改造のポイント
 ・<div id="○○"> <ul><li>~</li><ul> </div>のように、idをふったdivで
  リストタグを囲む。
 ・リスト内容のリンクタグ<a>~</a>の範囲を変えないこと。
 ・時間表記は日付のみにすること。
 ・スキンによっては違いがあるかもしれませんが、
  上の3つを最低限守っていればスクリプトが働くようです。
 ・<h2>~<h2>の間は自由に書き換えてもOK。

4.「skin>footer.html」の</body>直前にツリー化スクリプトを記入する。
  これはJUGEMカスタマイズ講座さんにあるそのままでOK。

※2008/12/26 追記
 JUGEMカスタマイズ講座さんが行方不明のため、暫定的にスクリプトを
 こちらにも記述しておきます。著作元はJUGEMカスタマイズ講座さんに
 あり、ご指摘等があった場合削除いたします。

<script type="text/javascript">
<!--
function makeTreeElements (idName,objList) {
if (!objList.innerHTML) return;
var objLink = objList.getElementsByTagName('a')[0];
var linkUrl = objLink.getAttribute('href');
if (idName.indexOf('comment') > -1 || idName.indexOf('tb') > -1) {
var tmpText = objList.innerHTML.split("⇒");
tmpText[0] = tmpText[0].slice(0,tmpText[0].search(/<BR/i));
this.base = Array('<a href="',linkUrl,'">',tmpText[0],'</a>').join('');
this.elem = objLink.innerHTML;
} else if (idName.indexOf('entry') > -1) {
var tmpText = objList.innerHTML;
tmpText.match(/\((\d\d\/\d\d)\)/);
this.base = Array('<strong>[',RegExp.$1,']</strong>').join('');
this.elem = Array('<a href="',linkUrl,'">',objLink.innerHTML,'</a>').join('');
} else if (idName.indexOf('link') > -1) {
var tmpText = objList.innerHTML;
if ( tmpText.match(/\[(.+)\](.+)/) ) {
this.base = Array('<strong>[',RegExp.$1,']</strong>').join('');
this.elem = Array('<a href="',linkUrl,'" target="_blank">',RegExp.$2,'</a>').join('');
}
}
return this;
}
function createTreeList(idName,option) { // version 2.2
var objFocus = this.document.getElementById(idName);
if (!objFocus) return;
if (!objFocus.innerHTML) return;
var objLists = objFocus.getElementsByTagName('li');
var linkList = new Array();
var outText = new Array();
if (objLists.length > 0) {
for (i=0;i<objLists.length;i++) {
var chckFlag = true;
var elemText = new makeTreeElements(idName,objLists[i]);
if (!elemText.base || !elemText.elem) return;
for (j=0;j<linkList.length;j++) {
if ( linkList[j].base.indexOf(elemText.base) > -1 ) {
chckFlag = false;
linkList[j][linkList[j].length] = elemText.elem;
}
}
if (chckFlag) {
var tmpNum = linkList.length;
linkList[tmpNum] = new Array();
linkList[tmpNum][0] = elemText.elem;
linkList[tmpNum].base = elemText.base;
}
}
if (linkList.length > 0) {
outText[outText.length] = '<ul>\n';
for (i=0;i<linkList.length;i++) {
outText[outText.length] = Array('<li>',linkList[i].base,option.top).join('');
if (linkList[i].length > 0 && option.sort) linkList[i].reverse();
for (j=0;j<linkList[i].length;j++) {
outText[outText.length] = (j == linkList[i].length - 1) ? option.end : option.list;
outText[outText.length] = Array(linkList[i][j],option.leef).join('');
}
outText[outText.length] = Array(option.btm,'</li>').join('');
}
outText[outText.length] = '</ul>\n';
objFocus.innerHTML = outText.join('');
}
}
}
var gTreeOption = new Array;
gTreeOption['sort'] = false; /* ツリー内の表示順 true:並び替える false:そのまま */
gTreeOption['list'] = '⇒ '; /* ツリー用マーク(通常) */
gTreeOption['end'] = '⇒ '; /* ツリー用マーク(末端) */
gTreeOption['leef'] = '<br />\n'; /* 各枝の末尾 */
gTreeOption['top'] = '<br />\n'; /* ツリー本体の最初 */
gTreeOption['btm'] = ''; /* ツリー本体の最後 */
createTreeList('newentrylist',gTreeOption); // 最新エントリリストのツリー化
createTreeList('entrylist',gTreeOption); // エントリリストのツリー化
createTreeList('commentlist',gTreeOption); // 最新コメントリストのツリー化
createTreeList('tblist',gTreeOption); // 最新トラックバックリストのツリー化
createTreeList('linklist',gTreeOption); // リンクリストのツリー化
// -->
</script>

  最後の部分だけ書き換えます。

createTreeList('newentrylist',gTreeOption); // 最新エントリリストのツリー化
createTreeList('commentlist',gTreeOption); // 最新コメントリストのツリー化
createTreeList('tblist',gTreeOption); // 最新トラックバックリストのツリー化

…といっても必要のない「リンク」と「エントリー」を削るだけなのですが。

改造や設定などは元の記事そのままでできます。
ツリー化カスタマイズ応用編」もあわせて使用できますので、もしよろしければお試しくださいませ。

改造予定メモ。

ツリー化などの改造を経て、大分やり方がわかってきたところで
あと実験予定のスクリプトをメモ。

≫「みるくぜりー」
 ・コメント欄に引用ボタンを設置する。
≫「JUGEMカスタマイズ講座」
 ・「ひよこ」ボタンをコメントにも……
 ・「ひよこ」ボタンカスタマイズ
 ・コメント・トラックバックの別窓表示
 ・「記事の内容」の一部を隠す
≫「stroll::blog」
 ・指定したaタグorURLの画像を表示するスクリプトβ

使う人は使う、使わない人はとことん使わなさそうな感じですので
時間があるときにぽしょぽしょ実験していく予定。
ひよこボタンは実験するかどうかも実は怪しげだったりします。
「記事の内容の一部を隠す」はネタバレボタンがあればいらない気もしますが、
<hr />と書き込むだけの便利さは捨てがたいかも。

コメント欄のカスタマイズで、何度も失敗しているのが

自分のコメントの見た目を変更する
コメント投稿者名別アイコン表示

どうやってスクリプトが書き換えを行っているかがボンヤリ分かり
かけているものの、具体的にどう変えればOKかがまだアカン。
アイコン表示はあまり必要な気がしませんが、見た目を変更のものと
あわせてついででやっております。

拍手RE

≫6/16 13時 mewさん

「コメントのツリー化」反応ありがとうございます!
元々Web Diary Proはリンクや分類がツリーにできるため
あまり必要性を感じていなかったのですが、コメントが増えると
どうしても欲しくなってしまいました。
他のWDP使用者さんからもちょこっと反応をいただいているので、
時間があるときに自分でやったバージョンのツリー化解説を
書いてみようと思います。
スクリプト自体に手を加えられれば、もっと色々なことができそうなんですが
自分も素人なんで無理です(笑)
1カラムはデザインとしても使い勝手としてもぜひ1つはほしいタイプですね!
とりあえずこのサイトはゲーム話をしつつ
「他のブログに出来て、WDPに出来ないことはないさ!」を実現すべく
人柱&実験を行っていく予定です。慣れてくるとパズルみたいで
なかなか楽しいのですよ♪

※そのほかにも沢山の拍手をありがとうございます。
 更新の励みとさせていただいております!

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

Web Diary Pro 4.23にバージョンアップ。
バグ修正と表示に関して柔軟性を増す設定ができました。
管理画面で違うスキンが使えるようになる機能、良いですね!

うちのところではheader.htmlに解析を埋め込んでいるので
●管理画面で何度も修正したり書き込んだりした場合、自分の行為で
 カウントされてしまうのが非常に嫌
●管理画面では使わないスクリプトもあったので切り離したい
こともあり、admin_header.html&admin_footer.htmlを増やすことができて
管理画面がかなりスッキリ、気分的にも快適になりました。
ツリー化スクリプトは管理人画面では全然意味がありませんのでバッサリ。
ネタバレ用スプリクトはプレビュー用に残しておきました。

■…と思ったら、書き出ししたHTMLファイルにadmin_header.htmlが
適用されてしまう。別館でもその後、同様の事態発生。
これはちょっと困った。
 ⇒ver4.24にて改善されました。ちゃんと書き出せます。

拍手Re:5/31日分

時期ハズレの花粉症にかかったのと
別館移転で時間をとられておりました。
遅ればせながら拍手レスです。

≫5/31 00時の方…「5/29 の者です~」

自分もネタバレボタンのスタイルをいじくりたいとき「?」と
なったことがあるものですから、問題ないですよ♪
色々タグを継ぎ足したため分かりづらかったかもしれませんが、
ご自身で位置を設定できたところまで出来たら大丈夫です!
こちらこそご返事&拍手ありがとうございました。

ページ移動