Wiki или Markdown-подобный синтаксис для простых форм? - PullRequest
31 голосов
/ 23 апреля 2011

Существует ли какой-либо простой язык, похожий на Markdown или один из Wiki Markups , который преобразуется в элементы HTML-формы?

Например:

name* = ___________
sex = (x) Male () Female
phones = [] Android [x] iPhone [] Blackberry
city = {BOS, (SFO), NYC}

Будет преобразовано в:

<label>Name (required):</label><input type="text" name="name" id="name"/>
<label>Sex:</label><input type="radio" name="sex" value="Male" checked="checked"/> <input type="radio" name="sex" value="Female"/>
<label>Phones:</label><input type="check" name="phones" value="Android"/> <input type="check" name="phones" value="iPhone" checked="checked"/> <input type="check" name="phones" value="Blackberry"/>
<label>City:</label> 
<select name="city">
  <option value="BOS">BOS</option>
  <option value="SFO" selected="selected">SFO</option>
  <option value="NYC">NYC</option>
</select>

Было бы просто создать его самому, но если бы уже существовала какая-либо существующая библиотека / язык, это сэкономило бы мне некоторое время на внедрение, документирование и обслуживание. Было бы предпочтительнее, если бы библиотека работала либо на Java (чтобы мы могли запускать ее на стороне сервера), либо на JavaScript (чтобы мы могли запускать ее на стороне клиента).

Обновление : я создал для этого проект github и maleldil реализовал его. Не стесняйтесь попробовать !

Ответы [ 6 ]

7 голосов
/ 10 мая 2011

Мне не удалось найти библиотеку, которая бы соответствовала моим потребностям, поэтому я раздвоил проект WMD (который SO использует для подсветки синтаксиса Markdown) и поместил проект на на Github . У меня не было времени, чтобы это осуществить, но maleldil любезно сделал это сам, поэтому опробуйте !

4 голосов
/ 02 августа 2014

Я взмахнул на проблему в https://github.com/bradgessler/formdown с немного другим синтаксисом:

Hi _________(Name)

How are you doing today? () Good () Ok () Bad

Could I have your email address? __________@(Email)

Write a few lines that describe your mood: ____________///(Mood)

[ Submit your feelings ]

Он упакован как гем formdown и может использоваться в Rails для рендеринга форм через расширение файла .fmd (например, app/views/users/edit.fmd.html).

3 голосов
/ 29 апреля 2011

Не ответ.

Я думаю, что это должно читаться как

sex = () Мужской () Женский

, чтобы получить радио-кнопки, потому что

sex = [] Male [] Female

приведет к появлению флажков (то есть вы можете быть как мужчиной, так и женщиной)

Если вы собираетесь это реализовать.Кроме того, вам потребуется один вопрос на строку, чтобы вы знали, что группировать, иначе любые два () будут связаны.

Я также предлагаю вам не пытаться помещать значения в () или [], так как их легче искать без текста внутри.Но вы также можете добавить () как выбранное и [] как отмеченное.Если вы используете это, у вас не будет такого потока символов в вопросах.

Только мои 2 цента на случай, если вы собираетесь его реализовать.

1 голос
/ 12 ноября 2014
<< GET "/post.php";
    label*: __|n="inputname"|v|p|i|c|l|disabled|readonly; 
    password: *|n|v|p|i|c;
    select: { 'multi word value'= 'Option', 'value2'='Option 2', !'value1'='Option 3' }&|n|i|c;
    (!)|n|v :label for previous radio; ()|n|v :label for previous;
    label for checkboxes: [!]|n|v; []|n|v;
    Message:____|rows|cols|c|p|v;
    File: ^|size||types|i|c
    @submit|v="Send Message";
    @reset|v="Reset Form";
>>
  • << и >> являются знаками начала и конца формы
  • "this is a label":
  • * сразу после метки для обязательных полей
  • __ - это текстовый ввод
  • | атрибуты разделены трубами (n="name of the field"|c="class of the field")
  • ; для разделения полей
  • {} select очень похож на ассоциативный массив.
  • ! для проверенных / выбранных значений
  • :"label that comes after the value" для радиоприемников и флажков
  • ____ - это textarea
  • ^ каретка -для ввода файла (знак «вверх» для загрузки)
  • @submit для кнопок

.. теперь только если кто-то реализовал это.:)

0 голосов
/ 25 ноября 2014

Я работаю над решением PHP, которое расширяет Michelf Markdown .В настоящее время поддерживаются базовые элементы <input> и <textarea>.Он использует этот синтаксис:

?{type}("label" "value" "placeholder" rows*cols){.class}

Где type может быть типом ввода (<input type="...") или textarea, что приводит к текстовой области.См. https://github.com/rbnvrw/markdown-forms для кода и не стесняйтесь вносить.

0 голосов
/ 25 апреля 2011

я сталкивался http://www.jspwiki.org/Wiki.jsp?page=WikiFormsPlugin некоторое время назад.не уверен, что вы можете повторно использовать класс tho.

...