
現在のGeeklogで検索対象になるのは、記事と検索APIを実装しているプラグインのみ。つまり、公開領域/docs/にあるhtmlドキュメントは検索されていない。ドキュメントの翻訳にかかわった者としてはもったいないの一言に尽きる。そこで、検索APIを調べてみると、カスタム検索関数を追加できるよう設計されていることがわかった。APIのシグネチャを調べて実装したのが、こちらのカスタム検索関数。対象のhtmlファイルを力ずくで検索するのであまり格好いい方法ではないが、ないよりはましと思う。
話題
過去の記事火曜日 12-16日曜日 11-02土曜日 10-11日曜日 10-05土曜日 10-04金曜日 09-26日曜日 09-14木曜日 09-11水曜日 09-10 |
ようこそ! Geeklog増殖計画 カスタム検索関数![]() 現在のGeeklogで検索対象になるのは、記事と検索APIを実装しているプラグインのみ。つまり、公開領域/docs/にあるhtmlドキュメントは検索されていない。ドキュメントの翻訳にかかわった者としてはもったいないの一言に尽きる。そこで、検索APIを調べてみると、カスタム検索関数を追加できるよう設計されていることがわかった。APIのシグネチャを調べて実装したのが、こちらのカスタム検索関数。対象のhtmlファイルを力ずくで検索するのであまり格好いい方法ではないが、ないよりはましと思う。 TwitterクライアントGeeklogのTwitterクライアントを実装するのに必要なクラスライブラリをTwitterの公式ドキュメントを元に作成したが、肝心のクライアントの構想が定まらない。自分のサイトにpublic_timelineをそのまま表示するのは無意味だし、自分のつぶやきだけを表示しても寂しいし、Friends(follower/following)を追加表示するのも意味があるようなないような... KZ_Templateクラス![]() GeeklogがHTMLのレンダリングに使用しているのはPHPLIBのTemplateクラスで、Dirkさんが何かのカンファレンスでその制作者に出会ったときに「まだそんなもの使っているの? Smartyを使えよ。」と言われたほどの代物。軽量だが、変数置換などの最低限の機能しかないため、条件分岐やループ構造を単体では実現できず、PHPコードでレンダリングしなければならない。 開発時期が古いためか、コードを読んでも「なぜそんな実装?」と突っ込みたくなる箇所が多い。 このような状況で、JoeさんさんがCaching Template Library(CTL)を開発・公開した。オリジナルのTemplateクラスに、1. 条件分岐やループ構造を追加 2. デフォルトの変数を定義 3. テンプレートをPHPコードにコンパイル・キャッシュして、実行速度アップを狙った優れものである。MediaGallery-1.6.xはこのCTLがないとインストールすることすらできない。 上記1., 2.はありがたいが、モジュール版PHPが多い日本のホスティングサービスでは、パーミッションの関係で3.でつまずくことが多い。それと、これは私見だが、Geeklogのように各テンプレートファイルのサイズが小さい場合には、コンパイル・キャッシュの恩恵をあまり受けられないように思う。 そこで、CTLからキャッシュ機能を抜き、代わりにdengenさんが提唱しているTemplateクラスの高速化(file()をfile_get_contents()で、preg_replace()をstr_replace()に置き換えるなど。)と木下さんが実装したOverRide機能(該当テンプレートファイルがない場合、デフォルトのテーマに自動的にフォールバックする機能)を追加したKZ_Templateクラスを開発した。ダウンロードはこちらから。まだ、開発段階なので、いろいろバグが残っていると思われるが、Geeklogのコアファイルを改変しなくても使えるので、それなりの価値はあると思う。 メタタグプラグイン表題の通り、記事や静的ページでHTMLの<head>セクションにkeywordsやdescriptionなどの<meta>タグを追加するメタタグ(Metatags)プラグインを作ってみた。ダウンロードはこちらからどうぞ。 使い方は自動タグを利用する。keywordsの場合は、 [meta:key コンマで区切ったキーワードのリスト] descriptionの場合は、 [meta:desc 説明] を入力するだけ。詳しいことは同梱のinstall_ja.htmlに書いてあるので、そちらをどうぞ。 AutosaveプラグインGeeklog-1.5.0以降では、セキュリティを向上させるため、記事や静的ページの編集ページにはトークンと呼ばれる使い捨てのキーが設定されている。編集を始めて20分経つとこのキーの有効期限が切れてしまい、「保存」をクリックしても保存できなくなっていた。これはバグではなく、仕様である。 自分の場合は、保存する前に編集エリアで ctrl-A, ctrl-C を押してOSのバッファに保存する癖がついているので、仮に保存に失敗してもさほど気にならないが、中にはむかっとくる人もいるだろう。 そのような人に向かって「これは仕様です」ではgeek以外に使ってもらえないので、定期的に自動保存を行うプラグインを作成した。ダウンロードはこちらからどうぞ。なお、JavaScriptを有効にしておくこと。それと、このプラグインを使用しても時間切れになること自体は防げないので、自動保存の間隔を短く設定することをお勧めする。設定は、「コンフィギュレーション」→「Autosave」から。初期値は10分。 まだ、開発段階なので、バグが含まれる可能性あり。そのつもりでどうぞ。 Style Viewer公開当サイトでデモを行っていたStyle Viewerを公開した。単なるJavaScriptなので、Geeklogだけでなく、どのようなWebアプリケーションにも使用できる。使用法は同梱のreadme_ja.txtを参照のこと。Geeklog向けにprofessionalとProfessionalCSSテーマ用の差し替えファイルを同梱している。ダウンロードはこちらからどうぞ。 なお、Geeklog以外をご使用で、かつ、<script>タグの書き方もわからないという人は手を出さない方が吉。 Style Viewer![]() 最近、JavaScriptを勉強している。食わず嫌いだったが、きちんとした本(O'REILLY®の「JavaScript(第5版)」や"JavaScript: the Good Parts"など)を読むと、結構面白い。何か実用的なものを作ってみたくなり、表題のStyle Viewerを試作中。マウスを動かすと、ツールチップと共に当サイトの右上ブロックにスタイル情報の一部が表示される。まだ、Firefoxでしか検証していないので、他のブラウザではうまく表示されない可能性大。しばらく放置して、需要があるようなら、プラグイン化することも検討するかも。 (2009年 2月13日追記)JavaScriptを修正して、IE7、Opera9、Google Chromeでも正常に動作するようにした。 テンプレート変数インジェクション![]() Geeklog.jpの掲示板のこのスレッドから始まったmore_article_linksカスタム関数だが、実装している最中に考えたことを参考までに記す。 Geeklog-1.5用のPrecheck試作![]() 少し時間ができたので、Geeklog-1.5.x用のPrecheck(インストール前診断)を試作してみた。db-config.phpの位置をビジュアルに探す機能とデータベースの接続をリアルタイムでチェックする機能付き。JavaScript(というか、DOM)の挙動の違いに戸惑った。Firefoxではエラーコンソール(+ Firebug)が克明にエラー原因教えてくれるので楽勝だが、IE7ではDeveloper Toolbarを入れていてもあまり役に立たない。ベースになるAjaxのライブラリは最低限の機能を備えた軽量のものをということで、SitePointのcore.jsを使用した。興味のある方は、こちらからダウンロードしてほしい。 PS. なお、使用後は必ず、admin/installディレクトリごと削除すること。放置しておくと、サーバのファイルツリーがある程度見えてしまう危険性がある。 RSS Aggregator改造版にdescription追加![]() ユーザの方から「RSS_Aggregatorでフィードのdescriptionを表示できないか?」というお問い合せがあった。何せ1年半ほど前に作ったスクリプトなので、覚えていない。アーカイブを引っ張り出してみると、わずかなコードの追加で実現できそうなことが分かったので、さっさと仕上げてアップロードした。ユーザの方からのフィードバック、リクエスト(あまり過大なものは困るが(^^;))こそがフリーソフトウェア作者を動かす力なのだと思う。 |
Style Viewerこのサイトの主なタグ訪問者数(ユニーク)
昨日:
![]() ![]() ![]() ![]() 今日: ![]() ![]() ![]()
オンラインユーザゲストユーザ: 2
Inktomi
0 人の訪問者 新着情報記事-コメント (2日)-トラックバック (2日)-リンク (2週)新しいリンクはありません新着ファイル (14 日以内)新しいファイルはありません新しいコメントはありません |
|
Copyright © 2009 Geeklog増殖計画 本ページのすべての商標と著作権はそれぞれの所有者に帰属します。 |
Powered by Geeklog ページ作成時間 0.37 秒 |