タグ

ブックマーク / www.akatsukinishisu.net (8)

  • Perlで数値文字参照を文字列に変換 - 徒書

    HTML Numeric character references リンクされて気付いたのですが、Perlで文字列をHTML数値文字参照に変換とは逆の、数値文字参照を文字列に変換する方法が述べられてました。しかしこの方法だと動作がややオーバーになるような気がします。 perl -MEncode -p -i -e ' s/\&#(x)?([a-f0-9]{1,5});/ my $tmpstr = ($1) ? pack( "H*", sprintf( "%08s", "$2" ) ) : pack( "N*", $2 ); Encode::encode( "iso-2022-jp", Encode::decode( "UTF-32BE", $tmpstr ) ); /eig; ' < engadget.xml &#28988; とか &#x713c; のような文字参照からUnicodeのコー

    karpa
    karpa 2006/08/19
  • Perlで文字列をHTML数値文字参照に変換 - 徒書

    blosxom関連の記事を辿っている時に、以下の記事を見つけました。 空繰再繰 - Perl で文字列を HTML Entities に変換する方法 まず述べなければならないのは、HTMLにおける&#26085;のような文字参照の形式は数値文字参照《numeric character reference》と呼ばれるものであって、実体参照《entity reference》ではない、ということ。(詳しくは一般実体参照と文字参照を参照) で、記事を拝見して、Unicode::Escapeも見てみたのですが、このモジュールは元々JavaScriptのUnicodeエスケープ形式を扱うものであるようで、それを更にHTMLの数値文字参照変換のために使うというのは、ややオーバースペックなような気がしました。 答えの1つは、記事が参照していたはてなでの質問でも既に述べられています。 $str = '日

    karpa
    karpa 2006/06/22
  • blosxom plugin: rwbc (recent writebacks cache) - 徒書

    先日、コメントを受付られるようにしまして、それとともに最近のコメントとTrackBackのリストを表紙に設けたのですが、そのためのプラグインを作ったので公開してみます。 blosxom plugin: rwbc (Version: 2006-06-15) この用途のプラグインには recentwritebacks_tree (original)が既にあります。しかしながらスクリプトを見てみて別の実装方法があるのではと考えたのと、個人的に欲しい機能があったのとで、自分なりに作ってみることにしたのでした。 特徴は以下の通り。 「最近のwritebackデータ」のキャッシュファイルを作り、なるべくファイルアクセスが発生しないようにしています。 テンプレートを使って最近のwritebackリストの書式を変更できます。 最近のwritebackのRSSを出力できます。(これが欲しかった) blosx

  • Stylishを改造してみる - 徒書

    ユーザCSSを手軽に追加できるFirefoxの拡張機能、Stylishをとても重宝しているのですが、新規に追加するCSSの初期状態が以下のようになっていることにやや不満を持っていました。 @namespace url(http://www.w3.org/1999/xhtml); @-moz-document url("http://...") { } 不満なところ: @namespace指定を外したい 見る対象となっているのは名前空間とは無関係のHTML(text/html)なサイトが多いので、XHTMLの名前空間指定はデフォルトでは不要と思いました。XMLなサイトで利用する時に後から名前空間指定を追加するのは簡単にできますし。(@namespaceについては別記事に追記しました) url("...") の引用符を外したい @-moz-documentの書式が記されている per-site

    karpa
    karpa 2006/03/24
  • blosxom plugin: upload - 徒書

    ひさびさにblosxomプラグインを出してみます。 最近はほとんどwikieditishを使って更新しているのですが、ブラウザからの更新が主になると、記事の中で使う画像などのファイルもブラウザ経由でアップロードできるようにしたくなってきます。 既存のプラグインではwikieditish_extにファイルアップロード機能があり、しばらくそれを使っていたのですが、個人的にあまり使わない機能が多く、その一方でファイルが当にアップロードされたのかがよく分からないところがあったため、アップロードしたファイルの一覧が表示されるような、アップロード専用のプラグインを自分で作ってみようと思ったのでした。 blosxom plugin: upload 標準のFileHandle, DirHandle, File::Pathモジュールを使っています。 自分はwikieditishと一緒に使っていますが、プラ

    karpa
    karpa 2005/11/17
  • 個別記事へのリンクを考える - 徒書

    いきなりですが、リンクの質は、資源《リソース》と資源《リソース》の関連を示すことにあります。 ハイパーリンクをより良い物に 「リソース」という言葉だと漠然としていますが、例として以下のようなHTMLのa要素によるリンクを考えてみます。 <a href="http://example.com/some/resource">link text</a> ※ a要素の内容となる文字列("link text"の部分)を、以下「リンク文字列」と呼びます。 この場合、a要素の内容となっている言葉(文字列)と、href属性に書かれたURIが指すもの(文章、画像、音楽アーカイブファイル等々)が関連付けられている、ということになります。この関連付けによって、URIが指すものがどんなものであるかを言葉で説明することができます。 このことを考えると、「ここ」というリンク文字列がなぜよくないのかについても納得が

    karpa
    karpa 2005/09/20
  • 引用マークアップを生成 - 徒書

    他のウェブページから文を引用するときは、元文書のHTMLマークアップもなるべくそのままで引用しておきたいものです(と、いう前提で取り敢えずお願いします)。しかしいちいち引用元ページのソースを開いてコピー&ペーストし、更にリンクやらblockquoteやらを書いていくのは面倒なので、そのへんをまとめてやってくれるbookmarkletを作ってみました。 選択箇所をblockquote (javascript: scheme URI) スクリプトのソース (text/plain) FirefoxなどのMozilla系ブラウザ用です。

    karpa
    karpa 2005/09/04
  • Perl内部文字列をバイト数でカットしてみる - 徒書

    以前に、UTF-8文字列をバイト数でカットした時の末尾の処理というのを考えたのですが、この記事はUTF-8文字列をPerlの内部コードとしてではなく、単なるバイト列として扱っていたものでした。しかしUnicodeを内部文字列としてサポートしたPerlのことを考えると、将来的にはあまりよろしくない方法のように思えてきました(今更ではありますが)。 実際、文字列をPerlの内部文字列(utf8フラグの付いた文字列)として扱うと、lengthやsubstr等の関数や正規表現などでもバイト単位でなく文字単位で操作することができて便利です。ただ出力する際に文字数ではなくデータ長(バイト単位)で制限したいこともあるので、内部文字列として扱いつつバイト数でカットする方法はないかと考えてみました。 で、色々試してみて、そのようなサブルーチンを比較的短く書くことができました。 use strict; use

    karpa
    karpa 2005/07/15
  • 1