Вики или синтаксис типа Markdown для простых форм?
Есть ли простой язык, похожий на 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 реализовал его. Не стесняйтесь попробуйте!
Ответы
Ответ 1
Мне не удалось найти библиотеку, которая соответствует моим потребностям, поэтому я разветкил проект WMD (который использует SO для подсветки синтаксиса Markdown) и поместил проект в на Github. У меня не было времени его реализовать, но maleldil любезно сделал это сам, поэтому попробуйте!
Ответ 2
Не ответ.
Я думаю, что он должен читать
sex =() Мужчина() Женщина
чтобы получить переключатели, потому что
sex = [] Мужчина [] Женский
приведет к появлению флажков (что означает, что вы можете быть как мужскими, так и женскими)
Если вы собираетесь его реализовать. Кроме того, вам понадобится один вопрос в строке, чтобы вы знали, что нужно группировать, иначе любые два() будут связаны.
Я также предлагаю вам не пытаться помещать значения внутри() или [], так как проще их искать без текста внутри. Но вы можете также добавить() как выбранный и [], как отмечено. Если вы используете этот tho, вы не можете получить этот поток символов в вопросах.
Просто мои 2 цента в случае, если вы собираетесь его реализовать.
Ответ 3
Я понял, что проблема в https://github.com/bradgessler/formdown с немного другим синтаксисом:
Hi _________(Name)
How are you doing today? () Good () Ok () Bad
Could I have your email address? [email protected](Email)
Write a few lines that describe your mood: ____________///(Mood)
[ Submit your feelings ]
Это упакован как драгоценный камень formdown
и может использоваться в Rails для визуализации форм через расширение файла .fmd
(например, app/views/users/edit.fmd.html
).
Ответ 4
я встретил http://www.jspwiki.org/Wiki.jsp?page=WikiFormsPlugin некоторое время назад. не уверен, что вы можете повторно использовать класс tho.
Ответ 5
<< 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
для кнопок
.. теперь только если кто-то выполнил это.:)
Ответ 6
Я работаю над решением PHP, которое расширяет Michelf Markdown. В настоящее время поддерживаются базовые элементы <input>
и <textarea>
.
Он использует этот синтаксис:
?{type}("label" "value" "placeholder" rows*cols){.class}
Где type
может быть типом ввода (<input type="..."
) или textarea
, что приводит к текстовой области.
Смотрите https://github.com/rbnvrw/markdown-forms для кода и не стесняйтесь вносить свой вклад.