「あなたのアイテムが公開されました」の記事に、JZ5様から、
SmartContentSourceではないバージョンもあると嬉しいです
というコメントをいただいたので、ちょっと試してみたんだが、うまくいかない。
Web Thumbnailはおっしゃるとおり、SmartContentSourceというクラスを使っている。これは、リンクを挿入したのち、右にGUIを表示して動的に編集するためのベースクラス。プラグインを作成するときは、このクラスから派生させて作成する。
これとは別に、特に右にGUIを表示する必要もなく、動的に編集する必要もなければ、SmartContentsSourceではなく、ContentSourceというクラスを使用しても、プラグインを作ることができる。
SmartContentSourceを使ってプラグインを作成した場合、動的に編集するために、HTMLの編集するポイントを示すために、生成したHTMLは、<div>タグでくくられる。
逆に、ContentSourceを使った場合は、動的に編集しないので、余分な<div>タグは生成されない。きれいなHTMLを生成するためには、ContentSourceを使用するのも一つの方法だ。
ということで、先のリクエストは、おそらく、きれいなHTMLを出力したいという要望が根底にあると思われる。
ということで、ContentSourceを使って書きなおすことを試みてみた。が、うまくいかない。
Web Thumbnailでは、サムネイル画像を生成して、Blogに張り込む必要がある。この張り込む方法として、ISupportingFilesを使用している。
SmartContentSourceクラスには、GeneratePublishHtml()関数がある。これは、HTML文字列を生成する必要があるときに、呼び出される関数である。この関数には、一つの記事の中に複数、挿入されたときに、どの挿入に対応するHTMLを生成すればよいのかを示すISmartContentが渡されてくる。
このISmartContentには、Filesと呼ばれるプロパティがあって、これがISupportingFilesである。イメージファイルを追加したり、そのファイルに対応したURLを生成したりというメソッドが実装されている。
が、
ContentSourceを使うと、動的にHTMLを生成しないので、GeneratePublishHtml()関数がない。すなわち、ISmartContentがない。ということは、生成したサムネイル画像が追加できない。。。
ありゃりゃ。困った。
こんにちは。意外と難しそうなものだったのですね。
綺麗なHTMLというよりも画像として貼り付けられれば、画像のエフェクト(影付きなど)が使用できるかなと思ったのですが。
手動トラックバック。一応可能ではあるようです。