March 11th, 2005

Mr.Tortoise
  • behrk

тегированный текст по-русски

Господа, интересуют ваши мнения по следующим вопросам.

Задача: я хочу облегчить ввод тегированного текста в веб-приложении (wiki типа Rhyzome).

Проблема: для ввода HTML-ных (или какой-нибудь-еще-ML-ных)  тегов требуется неадекватно много нажатий, например для ввода <i>:

CTRL+SHIFT {переключились в английскую раскладку, 2 нажатия}
SHIFT+ [<] {то есть <, начало тега, 2 нажатия}
i {собственно тег, 1 нажатие}
SHIFT+ [>] {то есть >, конец тега, 2 нажатия}
CTRL+SHIFT {переключение обратно в русскую раскладку, 2 нажатия}

Итого: 9 нажатий для ввода трех символов, из которых лишь один является значимым (разумеется, для более длинного тега вроде <ItemizedList> соотношение будет не столь вопиющим)

То, что текст вводится в веб-приложение, означает, что фокусы с "умным" переключением раскладок в зависимости от вводимого текста недоступны (вариант переписать Punto Switcher на JavaScript не катит).

Таким образом, если стремиться полностью исключить переключения раскладок, появляется требование использовать для разметки только символы, присутствующие и в русской, и в английской раскладках (я ориентируюсь на раскладки Windows).

Это значит, что теги должны иметь по два имени: русское и английское.

Вопрос 1: Насколько неудобна ситуация наличия у тегов двух имен (скажем, "category" и "категория")? По науке это нехорошо. А на практике?

Поскольку принятые в XML (и в RCS SGML) ограничители < и > отсутствуют в русской раскладке, их придется заменить на что-то другое (типа того, как некоторые форумы зачем-то используют [ и ] вместо < и >).

Вопрос 2: насколько плохо использование непривычных ограничителей тегов? Может быть, следует вообще обойтись без ограничителей, считая тегом любое вхождение известного системе имени? Но тогда теги будут неотличимы от текста.

Замечания

Замечание 1: в некоторых системах есть клавиша временного переключения раскладки (раскладка переключается на то время, пока клавишу удерживают нажатой; большинство присутствующих использует для этого термин quasimode, квазирежим). К сожалению, в "голой" Windows такой функции нет. Кроме того, эта клавиша решила бы проблему только отчасти, поскольку одновременно удерживать SHIFT (для ввода угловых скобок) и клавишу переключения раскладки (часто  это правый Alt) не слишком удобно.

Замечание 2: большинство элементов имеют не только открывающий, но и закрывающий тег (а в XML -- все, в обязательном порядке). То есть для формирования элемента i, содержащего слово (<i>слово</i>), нужно 21 дополнительное нажатие (10 на открывающий тег и 11 на закрывающий, поскольку в закрывающем есть /).

Замечание 3: вариант использования "умной" переключалки раскладок (типа Punto Switcher) не рассматривается, т.к. таким образом убивается ценность изделия как веб-приложения (отовсюду доступного и не требующего подготовительных действий).

Дополнения

Дополнение 1: Теги не обязательно HTML-ные. Скорее даже вообще не HTML-ные. Характерные примеры тегов -- "тема", "имя человека", "результат поиска". Вообще, слово "тег" я использую не в смысле "<что-нибудь>", а в более широком значении "[легко распознаваемая машиной] метка, помета". Бывают, знаете ли, еще и машины с теговой архитектурой.

Дополнение 2: Набор тегов велик и может расширяться. Это не убивает возможность использования кнопок/горячих клавиш для вставки тегов, но ограничивает их применимость, превращая из окончательного решения в дополнительное удобство.

Ввод названия города

Привет,

как вы считаете, каким образом лучше реализовать город проживания посетителя на сайте?
То есть с какой то вероятностью (процентов 80%) городов известны заранее. Но вполне вероятна ситуация, когда города в списке нет и его надо ввести.

То, что есть на данный момент, находится по адресу http://p.bankir.ru/regresume.php

Какие (возможно более "технологические" решения (а-ля suggest@google)) можно придумать? Что будет эффективно работать?

Спасибо.