3

写真リンクのリストがあり、clojureとnoirを使用してimgタグを生成したいと思います。

ここにリンクがあります:

(def photos
(->> (get-in result ["photoset" "photo"]) (map #(str "http://farm"(get % "farm")
".staticflickr.com/"(get % "server")"/"(get % "id")"_"(get % "secret")"_b.jpg"))))

結果:

(http://farm9.staticflickr.com/8087/8455893107_1a3236df06_b.jpg http://farm9.staticflickr.com/8235/8469482476_4c1bf59214_b.jpg)

そして、そのリストからimgタグを生成しようとします。

(defpage "/" []
 (mylayout/layout
 (doseq [e photos] (prn e))
 ))

  (呼び出し(defpartial layout [& content] ...)

ノワールベースのサイトのリンクごとに次の出力を取得しようとしています。

[:img {:src "url"}]

私はこれを試していましたが、成功しませんでした:

(doseq [e photos] ([:img {:src e}]))

リンクをレイアウトに渡して、imgタグを生成するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

4

これらのいずれかが機能するはずです:

(map #(vector :img {:src %}) photos)

(for [url photos]
  [:img {:src url}])

編集チャックが述べたように、doseq副作用のためです。結果を「収集」してテンプレートに送信する必要があります。これを行うには、コレクションのようにfor、またはコレクションのすぐmap上でリスト内包表記を使用する必要があります。

私はあなたのパレードで雨が降るのが嫌いですが、あなたが知っているように、ノワールは非推奨になりました

于 2013-02-13T20:44:38.567 に答える