ContentSourceではイメージが足せない

あなたのアイテムが公開されました」の記事に、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がない。ということは、生成したサムネイル画像が追加できない。。。

ありゃりゃ。困った。

「ContentSourceではイメージが足せない」への2件のフィードバック

  1. こんにちは。意外と難しそうなものだったのですね。
    綺麗なHTMLというよりも画像として貼り付けられれば、画像のエフェクト(影付きなど)が使用できるかなと思ったのですが。

コメントを残す