Важно для единообразия с встроенными заготовками JOSM.
shop
/amenity
(любые top-level теги),name
,name:ru
/:en
,official_name
,brand
,contact:website
,contact:phone
,opening_hours
,level
,operator
Для примера можно посмотреть, как используются шаблоны в встроенной заготовке.
Хоть современные текстовые редакторы и позволяют сделать очень гибко и очень быстро замену одного текста на другой. Но зачем менять наименование поля в 50 строках (и обязательно изменить его там, где не следовало бы), когда можно изменить один раз в шаблоне?
Это именно то, для чего шаблоны и придуманы!
Идея в том, чтобы при включенной сортировке в самом JOSM порядок групп и пунктов меню не изменялся.
Сама сортировка:
- Пункты меню группируются в подгруппы:
- числа:
36,6
- англоязычные:
CMD
,Subway
,IL Патио
- русскоязычные
- числа:
- Внутри групп сортировка по алфавиту:
0-9
,A-z
,А-я
- Если имеются названия на разных языках, то в приоритете сортировка по русскоязычному:
Domino’s Pizza
/Домино’c Пицца
должна быть отсортирована поДомино’c Пицца
- Остальные группы
<разделитель>
- Госорганы, медицина, образование
<разделитель>
- Городские сущности
Согласно общим правилам — по алфавиту.
Общий принцип тот же. Если порядок не важен, то сортируется по алфавиту.
Пустая строка в начале:
<item ... >
<space />
Набор полей, которые будут доступны для ввода на экранной форме. В том порядке, в котором должны быть на экране:
<combo ... />
<reference ... />
<text ... />
Набор тегов, который заполняется без возможности изменения:
<key ... />
...
<key ... />
Ссылки и шаблоны, в которых обычно напиханы поля, что выводятся внизу экранной формы:
<link ..." />
<reference ref="level_wheelchair_address_wifi_outdoorseating_drivethrough" />
</item>
key
/ref
text
/name
ru.text
/ru.name
values
/value
ru.display_values
default
type
preset_name_label
name_context
icon
Если есть необходимость, если это добавит удобства или будет полезно — комментируйте.
- В той же строке
- Над блоком кода
Первый подход используется в встроенной заготовке на конкретных элементах, например пунктах меню — <item>
— или группах меню. Комментарий ставится в конце строки с закрывающим тегом </item>
. Добавляет удобства, когда в редакторе теги свёрнуты.
Второй — когда ниже идёт группа элементов, объединённых по смыслу. Например, все чанки связанные с временем работы заведений.
Для того, чтобы обозначить комментарий как то, что нужно сделать, используйте <!-- TODO: ваш текст -->
Для того, чтобы обозначить комментарий, на который нужно обратить внимание, используйте <!-- NB: ваш текст -->
Некоторые текстовые редакторы (например, atom) подсвечивают такие комменатрии.
Если есть потребность "выключить" кусок кода, но не хочется потерять информацию из него, такой кусок можно просто закомментировать. Но не стоит злоупотреблять этим, чтобы не захламлять код мусором. В конце концов это гитхаб, тут хранится история изменений.
По мере обрастания уверенностью, что закомментированный код не пригодится, вычищайте такие куски.
Удивительно, правда?
Можно считать, что исторически так сложилось. Хотя особой причины для этого нет. Но, раз так, то у всего, где есть текстовое описание, хорошо бы в атрибуты вида name
, text
, display_values
и т.п. заносить текст на английском языке. Если такого (например, названия у магазина) не сущесвтует — транслитерировать/транскрибировать.
Если тег не закрывается в той же строке, то пробелом не отбивается:
<item name="L'etoile">
</item>
Если тег закрывается в той же строке, то отбивается:
<space />
<key value="Л'Этуаль" />