月: 2013年11月
regex_replace検証用エントリ
Youtube(iframe変換:投稿済み記事内のyoutube動画をスマホ幅に合わせて表示 – APEIROPHOBIA)
SyntaxHighlighter(過去指定タグの吸収:movabletypeにSyntaxHighlighterを追加 – APEIROPHOBIA)
コード内に改行を含んだ場合+コード内改行コード発生を抑えるために本文とつなげてHTMLを記述していた場合のサンプル
Obi-Wan said…
子どもたちの視界とよしなにな境界
クリスマスが近い
なんとなしにマイソンにサンタに何をお願いするつもりなのか聞いてみたところ、自分が持っているもの、テレビでCMしているもの、もしくは友達が持っているものに候補が偏っている。自分達が子供の頃プレゼントをどうやって選んでいたかワイフと話してみた
「新聞のチラシ」
この時期、新聞にはおもちゃ屋のチラシが頻繁に入っており、それをコタツに寝転びながら心ゆくまで眺め、見たことのないオモチャに夢を馳せ、オモチャ界の動向を把握し、サンタに何をお願いするのか決めていた。当時の子供の小さなコミュニティはテレビとチラシをハブとして、外界と接続しコミュニティ間の言語を共通化していたように思う。
クリスマス商材は大人向けにWebページでまとめてくれるのも結構だが、子供向けに、昔のチラシみたいに印刷して子供に手渡せるPDFフォーマットみたいなものがあると便利なんじゃないかしらと思ったら、すでにAmazon先生は展開していた。アマゾンクリスマスカタログPDF(何故PDFからリンクさせてないのか不明)
トイザらス先生も万全であるトイザらスクリスマスカタログ(こちらは一気に印刷できなくて不便)
一方楽天先生は、ジュエリー、スイーツ、バッグ、小物、グルメ、オモチャという構成である。ヒルズ族的思考で攻めているっぽい。
【楽天市場】クリスマス特集2013 | クリスマスプレゼントが満載!送料無料、ランキングも!
さて、ここで話は終わらず、更に潜ります。
HTML上に記述されたソースコードを整形、強調表示してくれるJSライブラリSyntaxHighlighterを、MT5にインストール。
MT3の時から利用していたが、しばらくみないうちにFlash連携によるコピペの機能などが割愛され、完全JS駆動になっておりました。(スマホ展開などが理由でしょうけど)
で、MT4のプラグイン化されたものがあり、これを使うと記事作成画面のフォーマットから制御できるらしい。
SyntaxHighlighter for Movable Type | kwLog
便利そうではあるが、コード部分の指定労力が最新版SyntaxHighlighterのと大差ない感じだったので、本家の最新版をインストール。
インストールは特に悩むことも無く、JSとCSSを一式アップロード。
利用する言語のブラシJSだけを読み込み処理して、Styleも適当に。
これで終わり。
ただなぜか縦スクロールが表示されて不格好な感じになっていたので、CSSを以下のように調整。
これで縦スクロールはでなくなった。(どっかの外人がoverflow-y: hidden !important;だ!とか書いていたけど・・)
/* syntaxhighlighter */ .syntaxhighlighter { margin: -1rem 0 1rem 0 !important; font-size: 1.4rem !important; padding: 1rem 0; }
CSSの設定など大枠はYoutubeやHTML5video等の埋め込み動画のサイズをwindow幅に合わせて動的にリサイズ/可変にする方法 | HTML5 – CSS3 magを参考に。
ここではMovable Typeでのタグの置換方法について。
記事内に埋め込まれているタグは
<iframe width="519" height="264" src="http://www.youtube.com/embed/uFoe0kcKGFg" frameborder="0" allowfullscreen></iframe>
な感じ。これをサイズ制御用のdivで囲む必要がある。
Movable Type管理画面の検索|置換では検索しか正規表現が使えないため、WordPressの様に記事自体の変更はできないが、グローバルモディファイアとしてregex_replaceというのがあるのでそれを利用する。
(つまりビルド時に置換処理を行ってHTMLを生成するということ)
スマホからの写真メモ with OCR
読書中「ここメモ!」なんて場面は多々あります。
参考書であれば蛍光ペンでマーク、一般書籍であれば付箋をペタリ。
借りてる本ならノートにメモなんてこともあるかもしれません。
本能的な感覚ですが「書く」行為が記憶への定着を促進するイメージは強くあり、若い頃はガリガリとノートに解釈した結果を複写することで自身の血肉としていたように思います。
しかし40歳を超え、自身の記憶力に疑念が産まれつつある状況に対し、ITの力でそこを乗り越える術はないのかしら?ということでちとリサーチ。
要件は以下
Functions
- スマホで撮影してクリップ
- OCRでテキスト化
- 保存、アップロードなどの操作で読書を妨げない
- あとでテキスト検索できる
- ネタ元書籍情報と関連付けできる
- メモに対してメモを付けれる
- 保存先はEvernote、Google Driveなどでもいいかぁ・・
利用イメージ(Save)
- 本を読み始める前に書籍データを登録(ISBNやらバーコード撮影で自動参照とか)
- 読書中にメモしたい部分に遭遇
- スマホを取り出しパチリ
- 写真の中でメモしたい部分を指でなぞってマーキング
- 保存(事前に保存先は設定済)
利用イメージ(load)
- 記憶の断片にある単語で検索
- 文章+保存日時、書籍タイトル、表紙のリスト表示
- 参照回数を記録。自身の中での重み付け
- 共有してペア読書みたいなスタイルができたら学習過程における認識の同期なんて出来て面白そう
- 思考プロセスの傾向なんてものも比較できるかも(ペアマッチングに利用可?)
ということでリサーチ。
既存ページのURLを継承するためにWordPressではなく、MovableTypeを選択したというのに、エントリーアーカイブのネーミングルールが継承されず、デフォルトの”Entry-basename.html“でEntryページが生成されているという事実が発覚。
バージョンアップ後投稿、編集したEntryはその名前でページ生成され、アーカイブ系ページからのリンク先もそのネーミングルールでリンクが設定。ただし、既存EntryページはそのままEntryIDベースの名前で生成されているため、全体としてリンクDeadのカタマリの状態になっていた。
そもそもアーカイブマッピング設定がバージョンアップで継承されないというのは予想外だったのだけど、それ以前にDB移設に伴うEntryIDの非継承を考慮するのを失念していた。
ということで、以前のEntryIDと新DBのEntryIDの一致を確認。(簡単にEntryIDの確認するには、MT管理画面の既存エントリー編集画面のURL内のidの値を参照)
幸いにも丸っとDBごと移植したからか、ズレは発生していなかった。
ということでEntryページのマッピングをEntryIDベースに変更する。
MTの管理画面から[デザイン]/[テンプレート]/[アーカイブテンプレート]:[Entry]を選択してテンプレート編集画面へ。
最下部の[テンプレートの設定]ブロック内の[アーカイブマッピング]部分から[カスタム]を選択し、以下設定。
%y/%m/%e.html
その他のルールを定義したい場合などは以下を参考に
これまでSPAMフィルターで表出していなかったSPAMが、バージョンアップ(Movable type 3.35から5.161へバージョンアップ – apeirophobia)に伴い全て表出する事態が発生。
これまでの学習が継承されていないのかは不明。
とりあえず1000件/日ペースで投下されるため、学習させるのもしんどいな~ということで、幸いサーバにImage:Magickがインストール済だったのでMT純正のCAPTCHAを利用することに。
ただしカスタムテンプレートがCAPTCHA非対応だったので、MTデフォルトのテンプレートに変更。
これでガツッと投稿レベルで全部ブロックできました。
[追記 20140117]
どうもCAPTCHAでは投稿自体をブロックできる状態ではないようなので、違う対策を検討することにしました。
Movable type バージョンアップに伴うSPAM対策(2) – APEIROPHOBIA
Fool and wise
Shakespeare said…
“A fool thinks himself to be wise, but a wise man knows himself to be a fool.”
この言葉を知ったあとでのFoolとWiseはどのように立ち振る舞うのか?