萌えハッカーニュースリーダー

2025/10/04 13:58 Microformats – building blocks for data-rich web pages

出典: https://microformats.org
hakase
博士

やあ、ロボ子!今日はmicroformats 2について話すのじゃ。

roboko
ロボ子

microformats 2ですか。個人のサイトでプロファイルや投稿をマークアップするのに使うものですよね。

hakase
博士

そうそう!開発者はこのデータを使って色々なアプリケーションを作れるぞ。でも、まずはデータを解析して処理する方法を知る必要があるのじゃ。

roboko
ロボ子

なるほど。解析にはパーサーが必要になるんですね。Go、JavaScript、PHP、Python、Ruby、Rustで利用できるものがあるんですね。

hakase
博士

その通り!パーサーは、microformats 2でマークアップされたWebページをMF2 JSONデータ構造に変換してくれるぞ。

roboko
ロボ子

記事に「異なる URL にリダイレクトされる可能性のある URL から実際の microformats データがフェッチされる場合がある」とありますが、リダイレクトも考慮する必要があるんですね。

hakase
博士

そうじゃ!リダイレクトチェーンの最終URLを「有効なURL」と呼ぶのじゃ。相対URLを解決するために、ベースURLも必要になるぞ。

roboko
ロボ子

HTTPリクエストが200以外の値を返した場合でも、解析するものが何もないとは限らないんですね。410 Goneレスポンスには、以前の内容の削除を説明するh-entryが含まれている場合がある、と。

hakase
博士

よく見てるの!microformats 2のデータを消費する時は、生のHTMLをフェッチしてJSONに解析し、扱いやすい形式に処理するのが一般的じゃ。

roboko
ロボ子

元のHTMLのコピーをアーカイブしておくと、後で再解析する時に便利ですね。有効なURLも一緒に保存しておくと、相対URLを正しく解決できるんですね。

hakase
博士

その通り!PHPのXRayみたいなライブラリは、クリーニングとサニタイズもしてくれるぞ。

roboko
ロボ子

解析されたページには、たくさんのmicroformatデータ構造が含まれている場合があるんですね。itemsリストがあって、それぞれがpropertiesやchildrenキーの下にネストされている、と。

hakase
博士

そうじゃ!typeは構造体が何を表しているかを識別するのに使うぞ。properties情報は、トップレベルとchildrenキーの下の構造体を扱う時に役立つんじゃ。

roboko
ロボ子

探している構造体がitemsリストのトップレベルにあるとは限らないんですね。mfツリーをトラバースして、フィルタリングコールバックに一致する構造体を返す関数を作ると便利そうですね。

hakase
博士

その発想は天才!properties辞書内の各キーは、プロパティの値のリストにマップされるのじゃ。値は、プレーンな文字列、埋め込みHTML構造体、img/alt構造体、ネストされたmicroformatデータ構造のいずれかの混合の可能性があるぞ。

roboko
ロボ子

プロパティ値がプレーンテキスト文字列だと決めつけてはいけないんですね。ネストされた構造体のvalueキーを使って、同等のプレーンテキスト値を取得できるんですね。

hakase
博士

その通り!画像URLを予期する場合は、img/alt構造体を確認して、プレーンテキスト値にフォールバックするのじゃ。

roboko
ロボ子

著者シップアルゴリズムなど、データを標準化された方法で解釈するためのアルゴリズムもあるんですね。

hakase
博士

そうじゃ!他にも、代表的なh-card、h-feedやh-entryの消費方法、コメントの表示方法などがあるぞ。

roboko
ロボ子

microformats 2データを消費するには、信頼されていないデータを処理する必要があるんですね。XSSなどの攻撃を防ぐために、HTMLサニタイザーに通したり、URLを検証したり、リソースをプロキシしたりする必要があるんですね。

hakase
博士

よく分かってるの!Webは多様な場所であり、microformatsは柔軟な方法じゃ。アプリケーションは可能な限り多くのデータを受け入れるように努める必要があるぞ。そして、実際のデータでテストすることが重要じゃ!

roboko
ロボ子

勉強になりました!

hakase
博士

最後に一つ。microformats 2をマスターすると、モテモテになれる…かもしれないぞ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search