サプリメント見聞録というブログを作ってみた。

サプリメント見聞録

サイト名はあんまり意味はないんだけど単にSEO的に他に存在しないサイト名。つまり他とサイト名がダブらないサイト名にしました。

どんなサイトかというと、単に買ったサプリメントのパッケージをスキャナで取り込んだ画像と、パッケージに書いてある文字を打ち込んで、記録に残してます。効果があったような気がしたら感想として追記していこうと思います。今のところブルーベリーが効いたような気がします。

また、栄養成分名には自動でリンクが貼られる様になっていてWikipediaやGoogleでその栄養成分名で検索出来るようにしています。基本的にWikipediaを検索するようにしていますが、Wikipediaに存在しなかった栄養成分名はGoogleで検索するようにしました。

この機能を実現するにあたって、下の記事を参考にしたJQueryを利用したJavaScriptを利用しています。

ASCII.jp:3日目:単語に自動的にリンクを追加しよう|【短期集中連載】この冬作ろう!jQueryプラグイン講座

ただし、上記の記事で公開されているサンプルは、文中に同じキーワードが複数回現れる場合に最初の単語しか自動リンクしてくれないのと、ビタミンB12とビタミンB1という単語があった場合に、ビタミンB12で自動リンクをした後にさらにビタミンB1の部分でも自動リンクを行ってしまいリンクが壊れてしまううというおかしなことになってしまうので、色々小細工の処理を追加しています。

具体的には、オリジナルは下のようになっていますが

return this.each(function(){
    var srcText = this.innerHTML;
    for (var i=0; i<dict.length; i+=2){
        srcText = srcText.replace(new RegExp(dict[i]),"<a href=’"+dict[i+1]+"’>"+dict[i]+"</a>");
    }
    this.innerHTML = srcText;
});

下のように改造しました。

forループを2重化して処理を2段階に分けています。処理の詳細は以下のとおりです。

具体的には、ビタミンB12、ビタミンB1のように途中まで同じ単語がある場合に処理が重複しないように

  1. 長い文字から処理するように検索キーワードのデータを作成。
  2. 最初のforループで検索キーワードの前後に%がついていないことを条件にしてキーワードを検索し検索できたキーワードの前後に%を付ける。
  3. 2段階目のforループで前後に%が付いているキーワードを検索してこれを自動リンクします。

return this.each(function(){
    var srcText = this.innerHTML;
    for (var i=0; i<dict.length; i+=2){
        srcText = srcText.replace( eval("/([^\%])"+dict[i]+"([^\%])/g"),’$1%’+ dict[i] +’%$2′);
    }
    for (var i=0; i<dict.length; i+=2){
        srcText = srcText.replace( eval("/\%"+dict[i]+"\%/g") ,"<a href=’"+dict[i+1]+"’>"+dict[i]+"</a>");
    }
    this.innerHTML = srcText;
});

色々試してみたのですが技術力不足でforループを1個にすることができなかったのでかなり効率が悪い処理になっているかと思います。

神と呼ばれる人達ならきっと神業的な正規表現でループ一個でやってくれるはずw。

本当は、リンクになっていなければリンクにするというようなことをJQueryの機能や正規表現で実現したかったのですが僕には無理でしたw。それが出来ればforループ一個で出来るはずなんですが。

あと、Googleの検索をブログに設置していますが、試みとして自サイト内に検索結果を表示するタイプで搭載してみました。時サイトの幅やデザインとの兼ね合いがあるので結構めんどくさかったです。でも、面白いですね。

本当はサプリもこのブログの記事にしようと思ってたんですが、これ以上カテゴリが増えるのもよろしくないと思ったのとむしろアニメや映画もわけようかと思ってるくらいなので分けました。

このブログのCMSであるMovableTypeは一つのプログラムで複数のブログを管理することも出来るのですが、このブログではデータベースにSQLiteを採用しているのであんまりデータベースを大きくするのもよろしくないと思い完全に分けました。バージョンアップを考えると1個にまとまっていた方が手間がなくていいんですけどね。

そのなこんなで、また、新しいサプリメントを買ったら更新していこうと思います。現在は栄養素等の説明は外部に検索しにいくようになっていますが、暇があれば徐々にじサイト内にそれぞれの栄養素のページを設けたいと思っています。

今後は、今飲んでいるものにも多少含まれているけど、尿酸値が高めなので尿酸値を下げるのに効果があると言われているビタミンC・葉酸・カリウム・ブロメライン・ケルセチン・シャンピニオンエキス等の栄養素を取れるサプリを探したいと思う。

(Visited 55 times, 1 visits today)

タグ : , ,