В этом варианте появляется потребность в "нетрадиционыых" изображениях каретки.
Вот эти две позиции каретки:
|<li>|one</li>
на самом деле находятся в одном месте canvas. Поэтому приходится рисовать "мигающий угол" в случае когда каретка находится перед началом блока. Перед началом первого символа вид каретки традиционный т.е. вопросов не вызывает.
Честно говоря я затрудняюсь в определении какой из вариантов лучше.
Т.е. либо стандартная каретка, но магические сочетания кнопок, либо такие вот "magic carets".
CS>Честно говоря я затрудняюсь в определении какой из вариантов лучше. CS>Т.е. либо стандартная каретка, но магические сочетания кнопок, либо такие вот "magic carets".
Здравствуйте, c-smile, Вы писали:
CS>Честно говоря я затрудняюсь в определении какой из вариантов лучше. CS>Т.е. либо стандартная каретка, но магические сочетания кнопок, либо такие вот "magic carets".
Еще не дочитав до предложенных вариантов, я подумал про Enter и Ctrl-Enter.
А нетрадиционной каретки я бы испугался.
Здравствуйте, LuciferSaratov, Вы писали:
LS>Здравствуйте, c-smile, Вы писали:
CS>>Честно говоря я затрудняюсь в определении какой из вариантов лучше. CS>>Т.е. либо стандартная каретка, но магические сочетания кнопок, либо такие вот "magic carets".
LS>Еще не дочитав до предложенных вариантов, я подумал про Enter и Ctrl-Enter.
Проблема в том что традиционно в HTML WYSIWYG editors есть еще Shift-Enter который вставляет <br>.
Т.е. имеем полный зоопарк Enter, Ctrl-Enter и Shift-Enter. Что в общем-то не есть хорошо. У юзера должна быть ментальная модель HTML DOM в этом случае.
LS>А нетрадиционной каретки я бы испугался.
Я в своем blocknote в таблицах ввел такую каретку. Т.е. есть специальные позиции начало/конец row. Enter в этих позициях приводит к созданию нового row перед/за текущим.
Народу нравится ибо удобно очень таблицы набивать.
Просто на все возможные комбинации клавиш не напасешься.
Здравствуйте, c-smile, Вы писали:
CS>Я в своем blocknote в таблицах ввел такую каретку. Т.е. есть специальные позиции начало/конец row. Enter в этих позициях приводит к созданию нового row перед/за текущим. CS>Народу нравится ибо удобно очень таблицы набивать.
CS>Просто на все возможные комбинации клавиш не напасешься.
Кстати глянул в MS Word, они тоже сделали специальную каретку для row.
Здравствуйте, LuciferSaratov, Вы писали:
LS>Здравствуйте, c-smile, Вы писали:
CS>>Просто на все возможные комбинации клавиш не напасешься.
LS>Тебе однозначно виднее, что нужно твоим пользователям. Я просто высказал свое мнение.
Вопрос как бы не в "моих" пользователях. blocknote например в top 300 freeware list. Качают всяко разные люди.
Т.е. задача редактирования HTML она вообще глобальная. gmail, thunderbird и другие browser based HTML editing widgets коим вообще несть числа.
LS>А может, стоит сделать и каретки, и Ctrl-Enter?
Моет еще другие способы визуализвции есть ... Вот и думаю вслух.
Здравствуйте, c-smile, Вы писали:
CS>Проблема в том что традиционно в HTML WYSIWYG editors есть еще Shift-Enter который вставляет <br>. CS>Т.е. имеем полный зоопарк Enter, Ctrl-Enter и Shift-Enter. Что в общем-то не есть хорошо. У юзера должна быть ментальная модель HTML DOM в этом случае.
Если у юзера нет ментальной модели HTML DOM, из него в любом случае не получится семантически корректного HTML.
И, кстати, именно из-за WYSIWYG’а у всё большего числа юзеров этой модели нет.
Здравствуйте, c-smile, Вы писали:
CS>Вопрос как бы не в "моих" пользователях. blocknote например в top 300 freeware list. Качают всяко разные люди.IMHO
IMHO в этом случае стратегия "stick with major" (Word) выглядит разумно.
Здравствуйте, c-smile, Вы писали:
CS>В раздумьях над следующей проблемой
[...]
можно ещё сделать третий вариант — специальную кнопку, которая из нескольких строк списка сделает один параграф.
То есть по умолчанию по enter должен создаваться новый li (к этому уже все привыкли), а потом жмём эту кнопку и текст в этом новом li становится частью предыдущего li. Костыль конечно, но тоже вариант. Примерно что-то такое сделано в Buzzword (acrobat.com)
первый вариант с различными комбинациями клавиш считаю устаревшим.
я за второй вариант. Только тут конечно надо ручками щупать каждую конкретную реализацию этой идеи.
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, c-smile, Вы писали:
CS>>Вопрос как бы не в "моих" пользователях. blocknote например в top 300 freeware list. Качают всяко разные люди.IMHO
W>IMHO в этом случае стратегия "stick with major" (Word) выглядит разумно.
Ну во первых MS Word имеет DOM модель отличную от HTML. Это кстати одна из причин почему Word генерирует такой отвратный HTML. Его DOM ориентирован на WYSIWYG редактирвание paged документов и делает он это хорошо. Т.е. как бы решения допустимые в MS Word не работают в HTML.
Ну и во вторых Word он тоже не идеален. В качестве примера рекомендую сделать в нем bulleted list и пробжаться кареткой по этому списку.
В момент когда каретка находится в этой позиции:
<ul><li>one</li>|
<li>two</li></ul>
Word показывает нечто что я не могу определить для чего оно такое.
Здравствуйте, Centaur, Вы писали:
C>Если у юзера нет ментальной модели HTML DOM, из него в любом случае не получится семантически корректного HTML.
C>И, кстати, именно из-за WYSIWYG’а у всё большего числа юзеров этой модели нет.
Да как бы в большинстве случаев просить юзера иметь эту модель будет явный overkill. E-mail или blog article автор в 99% случаев не технарь.
Как-то надо повысить предсказуемость Enter. У меня например модель DOM наличествует в уме (и не одна) но я сам очень часто попадаю в ситуцию
когда не могу определить что произойдет по Enter в некоторых случаях. Пользую Thunderbird и Mail Live. У Thunderbird особенно все плохо.
Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, c-smile, Вы писали:
CS>>В раздумьях над следующей проблемой K>[...]
K>можно ещё сделать третий вариант — специальную кнопку, которая из нескольких строк списка сделает один параграф. K>То есть по умолчанию по enter должен создаваться новый li (к этому уже все привыкли), а потом жмём эту кнопку и текст в этом новом li становится частью предыдущего li. Костыль конечно, но тоже вариант. Примерно что-то такое сделано в Buzzword (acrobat.com)
Тут конечно много вариантов. Склеивание li это одна из операций.
У меня есть вариант когда Ctrl+UP/DOWN перемещает текущий параграф по контейнерам
Например Ctrl+UP здесь:
<ul>
<li>one</li>
<li>|two</li>
</ul>
трансформирует это дело в
<ul>
<li>one
<p>|two</p></li>
</ul>
Но визуально это выглядит как будто у two пропадает bullet. Надо как-то толково сие визуализирвать...
K>первый вариант с различными комбинациями клавиш считаю устаревшим. K>я за второй вариант. Только тут конечно надо ручками щупать каждую конкретную реализацию этой идеи.
Здравствуйте, c-smile, Вы писали:
CS>Ну во первых MS Word имеет DOM модель отличную от HTML. Это кстати одна из причин почему Word генерирует такой отвратный HTML. Его DOM ориентирован на WYSIWYG редактирвание paged документов и делает он это хорошо. Т.е. как бы решения допустимые в MS Word не работают в HTML.
IMHO, что бы современный пользователь не редактировал (и где бы), в ментальной модели у него всегда будет "WYSIWYG редактирвание paged документа" :). И на любое действие он будет ожидать реакции "как в Ворде".
Можно либо ломать эту модель, либо поддержать. На первое сил не хватит, если ты не Microsoft/Apple/Google/etc.
Ну или компромиссный вариант — ввести специальный "geek mode" и в нем экспериментировать с другими моделями — авось приживется.
Здравствуйте, c-smile, Вы писали:
C>>Если у юзера нет ментальной модели HTML DOM, из него в любом случае не получится семантически корректного HTML. C>>И, кстати, именно из-за WYSIWYG’а у всё большего числа юзеров этой модели нет.
CS>Да как бы в большинстве случаев просить юзера иметь эту модель будет явный overkill. E-mail или blog article автор в 99% случаев не технарь.
А юзерам, не способным писать HTML, нужно давать какой-нибудь более простой язык разметки. BBCode, или там wiki-разметку.
Дай им WYSIWYG, и они не смогут отличить ситуации «элемент списка и в нём два абзаца» и «элемент списка с буллитом и после него элемент списка без буллита». И вместо «заголовок первого уровня» будут лепить «жирный Arial 16pt». Потому что, блин, в WYSIWYG’е они выглядят одинаково.
И я принципиально не вижу способа одновременно обеспечить WYSIWYG и семантическую корректность. Разве что полностью оторвать всё, что может эту корректность нарушить — запретить кнопочки Bold, Italic, прямой выбор гарнитуры и кегля, цвет и т.д., оставить только меню стилей и редактор CSS. Но 97% юзеров взвоют, что это фашизм.
Не исключено, что я не полностью понял идею, т.к. не могу сейчас посмотреть Ворд с его каретками.
Глянул BlockNote. Он прост, минимально достаточен. Скорее всего его используют поклонники простоты, ясности и при этом не профи в html. Большинство из пользователей вряд ли заинтересуют тонкости вставки, скорее удивят. Поэтому разные каретки, имхо, не нужны. Я бы оставил единственную стандартную. Ожидаемую реакцию на Enter — новый эл-т списка. А все дополнительные возможности — в контекстное меню с указанием там соовт. хоткея ctrl-Enter, shift-Enter. Если кому надо — сразу запомнят. И в главном меню пункт "Insert" тоже модифицировал бы в зав-ти от контекста. В общем, по принципу: лучшая рыба — это колбаса, а лучшая пиктограмма — это текст (+ хоткей).
Здравствуйте, sto, Вы писали:
sto>Здравствуйте, c-smile, Вы писали:
CS>>В раздумьях над следующей проблемой:
sto>Можно еще сделать так: Энтер — абзац, сразу еще раз Энтер — следующий пункт, третий раз — новый абзац уже вне списка.
В принципе как вариант — да, может работать если чел хорошо представляет что реально происходит.
Здравствуйте, c-smile, Вы писали:
CS>Проблема в том что традиционно в HTML WYSIWYG editors есть еще Shift-Enter который вставляет <br>. CS>Т.е. имеем полный зоопарк Enter, Ctrl-Enter и Shift-Enter. Что в общем-то не есть хорошо. У юзера должна быть ментальная модель HTML DOM в этом случае.
Зачем HTML DOM? Вполне обычная человеческая DOM.
Отвлечёмся от HTML. Запустим ворд.
Всё то же самое: иерархическая структура (список или таблица), можно вставить, на выбор
— разрыв строки в составе параграфа (а ещё бывают разрывы колонки и страницы %) )
— новый параграф
— новый элемент иерархии на текущем уровне
— на предыдущем уровне (обычно в ворде это делается двойным энтером)
Это напрягает только в первый раз. Потом привыкаешь.
Здравствуйте, c-smile, Вы писали:
CS>Ну во первых MS Word имеет DOM модель отличную от HTML. Это кстати одна из причин почему Word генерирует такой отвратный HTML. Его DOM ориентирован на WYSIWYG редактирвание paged документов и делает он это хорошо. Т.е. как бы решения допустимые в MS Word не работают в HTML.
Не поэтому.
Ворд пытается сгенерить HTML наиболее близко к вёрстке исходного документа.
Он же не знает, волнуют тебя отступы, шрифты и прочие красивости, или ты просто взял что-то по дефолту.
Вот и разводит помойку. Да ещё, кстати, он в эту помойку пихает служебную информацию, чтобы можно было восстановить .doc из .htm без потерь.