juan_gandhi: (VP)
[personal profile] juan_gandhi
  def questionHTML(i: Int, q: String) =
    <span>
      <h3>Question {i+1}</h3>{q}
      <br/><br/><br/><br/><br/><br/>
  </span>

  def variantHTML(v: List[String]) =
    <p style="page-break-after:always;">
      <h1><center>{title}</center></h1>
      {v.zipWithIndex map {case(q,j) => questionHTML(j,q)}}
    </p>

  def html(variants: List[List[String]]) = {
    <html><body>{
      variants map variantHTML
    }</body></html>
  }

Date: 2014-12-06 01:07 am (UTC)
From: [identity profile] pondohva-loiso.livejournal.com
html внутри кода напоминает мне старый perl-код :) Я уверен, что тогда был хороший perl-код, но в сайтиках клиентов хостинга я видел часто такое.

Date: 2014-12-06 01:52 am (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Я большой сторонник программируемости контента.

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

Date: 2014-12-06 01:31 am (UTC)
From: [identity profile] nponeccop.livejournal.com
Этот подход не масштабируется. Если что-то б-м сложное - только шаблоны, только хардкор

Date: 2014-12-06 01:51 am (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Хрен ли мне масштабировать, мне надо ко вторнику напечатать варианты для экзамена, причем руками это делать как-то много работы, тем более, выбирать варианты на максимальном расстоянии друг от друга (в метрике Хэмминга).

И все дела.

Date: 2014-12-06 06:25 pm (UTC)
From: [identity profile] Дмитрий Васильев (from livejournal.com)
Скажите, а чем шаблоны лучше?

Date: 2014-12-07 12:01 am (UTC)
From: [identity profile] nponeccop.livejournal.com
неполнотой своего DSL, которая способствует переносу всей логики за пределы шаблона.

сомнительное удовольствие, но субъективно - помогает в поддержке.

Date: 2014-12-06 01:53 am (UTC)
From: [identity profile] doxtop.livejournal.com






- это жесть.
у меня строкой
s"""
|
${}
|""".stripMargin('|')


xml же вроде отдельную либу жарником тянет в 2.11. зачем?
та и в строку можно правильно !doctype написать без хмль гемороя
Edited Date: 2014-12-06 02:00 am (UTC)

Date: 2014-12-06 02:01 am (UTC)
From: [identity profile] doxtop.livejournal.com
я имел ввиду под жестью, 6-тикратный бр :)редактор в жж что-то совсем не дает код вставить.

Date: 2014-12-06 05:10 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Если бы я решал задачу в общем виде, я, наверно, вычислял бы размеры таблицы или позицию div-а.

Date: 2014-12-06 02:09 am (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Если мне компилятор пальцем покажет, что я пишу не так, то это мне кажется достоинством, а не недостатком.

Конечно, запросто можно было и строкой проинтерполировать.

Date: 2014-12-06 02:22 am (UTC)
From: [identity profile] doxtop.livejournal.com
ну я поддерживаю. в плагинах к сбт там где 2.10, сам иногда так, но врятли из-за компиляторных указок, скорее скажу что не надо 6-ть бр, да и доктайп на самом деле фигня.
но на 2.11 это реально отдельная либа, строка серьезный аргумент ее не тянуть :)

Date: 2014-12-06 02:13 am (UTC)
From: [identity profile] brightist.livejournal.com

какой ужос
спрячьте и не позорьтесь с вашими брбрбрбрбр :)

Date: 2014-12-06 06:08 am (UTC)
From: [identity profile] juan-gandhi.livejournal.com
да полно; вы ж умный человек, что это вдруг набросились, не разобравшись.

Мне всего лишь надо распечатать варианты; что вы предлагаете, сервер написать? Я могу написать и сервер, и темплейт енджин - но не на каждый чих.

Date: 2014-12-06 07:53 am (UTC)
From: [identity profile] brightist.livejournal.com

брбрбрбр заменяет сервер? о_О :)

Date: 2014-12-06 06:06 am (UTC)
From: [identity profile] migmit.livejournal.com
Что-то я не понял, кто такой {title}.

Date: 2014-12-06 06:09 am (UTC)
From: [identity profile] juan-gandhi.livejournal.com
val title = "COEN 260 Final Exam 12/09/2014"

В следующий раз из файла возьму.
Edited Date: 2014-12-06 06:09 am (UTC)

Date: 2014-12-06 06:11 am (UTC)
From: [identity profile] migmit.livejournal.com
А. А зачем там i?

Date: 2014-12-06 06:27 am (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Ой. Больше не буду.
Edited Date: 2014-12-06 06:28 am (UTC)

Date: 2014-12-06 07:51 am (UTC)
From: [identity profile] andybil.livejournal.com
Любой язык предназначен что бы описать видимое, рассказать про ранее увиденное, или про то, что хочется увидеть и ни для чего более.

Date: 2014-12-06 09:09 am (UTC)
From: [identity profile] si14.livejournal.com
То же на кложурке (+prismatic/schema +weavejester/hiccup):

(s/defn question-html [i :- s/Int q :- s/Str]
  [:span
   [:h3 "Question " (inc i)]
   q
   (repeat [:br] 6)])

(s/defn variant-html [v :- [s/Str]]
  [:p {:style {:page-break-after "always"}}
   [:h1 [:center title]]
   (map-indexed question-html v)])

(s/defn html [variants :- [[s/Str]]]
  (h/html
   [:html
    [:body
     (map variant-html variants)]]))


На мой субъективный вкус немного аккуратнее смотрится.
Edited Date: 2014-12-06 09:11 am (UTC)

Date: 2014-12-06 05:11 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Да, пожалуй. Убедительно выглядит.
Мало того; возникает уже ощущение, что в реале придется, как водится, имплементировать половину лиспа.
Вот что у меня сейчас:
Is the following argument... valid? is it sound? is it a tautology?
:img[200] q13.png
Edited Date: 2014-12-07 12:20 am (UTC)

Date: 2014-12-07 03:18 pm (UTC)
From: [identity profile] si14.livejournal.com
Да, в коде чуть выше было бы очень просто это добавить. А всего-то сочетание литералов для типов данных и прохода по дереву.

Впрочем, вероятно, на скале тоже можно в подобном стиле генерировать html.

Date: 2014-12-06 06:19 pm (UTC)
From: [identity profile] Дмитрий Васильев (from livejournal.com)
render: ->
  div className: 'posts-container',
    div className: 'posts',
      CreateNewPost @props
      for post in @props.posts.items
        Post {post}

Date: 2014-12-06 06:51 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Неплохо смотрится, но не решает мою задачу

Date: 2014-12-06 08:49 pm (UTC)
From: [identity profile] Дмитрий Васильев (from livejournal.com)
Это библиотека react.js и язык coffeescript
questionHTML = (i,q) ->
  span {},
    h3 {}, "Question #{i+1}"
    q
    (br {} for i in [1..3])

variantHTML = (v) ->
  p style: "page-break-after:always",
    h1 {}, center {}, title
    for q, i in v
      questionHTML i, q

html = (variants) -> 
  html {},
    body {}, 
      variants.map variantHTML

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

June 2025

S M T W T F S
1 2345 6 7
8 9 10 11 121314
15161718 1920 21
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 26th, 2025 11:57 pm
Powered by Dreamwidth Studios