Clojure: застежка-молния -> html

После нескольких дней попыток разобраться в застежках-молниях я, кажется, наконец понял, как создавать их из последовательных данных.

Однако после нескольких дней поиска я не могу найти никаких ресурсов о том, как преобразовать молнию во что-то другое. По сути, я хочу преобразовать некоторые данные в формат, который я могу передать Hiccup для создания HTML.

Есть ли хорошие ресурсы о том, что мне следует делать, чтобы преобразовать дерево молнии в другую структуру данных?


person Sean Hagen    schedule 04.11.2015    source источник


Ответы (1)


Я думаю, что у вас есть это задом наперед, но это хорошо. Способ использования застежек-молний состоит в том, чтобы создать застежку-молнию, которая работает для вашей структуры данных, а не наоборот. Hickory — отличный пример. Это хороший пример для Zipper, который вместо этого использует карты последовательностей.

person mac    schedule 04.11.2015
comment
Хм. Я использовал застежку-молнию, потому что решил, что это быстрый способ преобразовать более 10 000 последовательных записей (результаты запроса к базе данных, которые имеют parent_id для идентификации родителя) в древовидную структуру, чтобы затем я мог использовать Hiccup (или любую систему шаблонов, на самом деле) для превратить это дерево в HTML. Есть ли быстрый способ сделать это - возможно, с помощью группировки или чего-то еще? - person Sean Hagen; 04.11.2015
comment
Почему бы не преобразовать записи БД в икоту напрямую без застежек-молний? (html (apply vector :ul (map #(vector :li (:name %)) db-records))) - person edbond; 04.11.2015
comment
Потому что я хочу, чтобы записи БД отображались как вложенные комментарии (в стиле Reddit), а не как один поток — или это (применит вектор и) справится с превращением их в древовидную структуру? - person Sean Hagen; 04.11.2015