Таблицы в OutWiker. Опрос пользователей
Среди пожеланий пользователей, которые пишут в комментариях или на почту, несколько раз проскакивало пожелание сделать более удобный ввод таблиц. В данный момент небольшие таблицы на викистраницах можно вводить, используя нотацию вида ||…||…||. Я согласен, что это не самый удобный способ, если содержимое ячеек большое или содержит большое количество строк. В принципе, на викистраницах всегда можно использовать теги HTML, в том числе и для создания страниц. Я не считаю, что викинотация должна полностью повторять HTML, она должна быть более простой.
И вот хочется узнать у вас, что нужно сделать в OutWiker, чтобы редактирование таблиц было более удобно? Как вы себе это представляете?
Как вариант, можно реализовать команды для создания таблиц того же pmWiki, в какой-то мере это улучшит ситуацию. Тогда создание страниц будет выглядеть примерно так (код взят по вышеуказанной ссылке):
(:table border=1:)
(:cell:) a1
(:cell:) b1
(:cell:) c1
(:cell:) d1
(:cellnr:) a2
(:cell:) b2
(:cell:) c2
(:cell:) d2
(:tableend:)
Или может быть добавить диалог, в котором можно задать количество строк и столбцов, а потом будет создана заготовка для таблицы? Но редактирование существующих таблиц это не облегчит.
В общем, интересует ваше мнение.
PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
unreal666:
ИМХО, кроме cell нужно и row, чтобы и там и там можно было указывать доп. атрибуты для этих тегов.
1 июля 2015, 7:10 дпDenver-22:
Как раз и хотел предложить сделать диалог с указанием количества строк и столбцов (по аналогии с Word). А потом уж сами будут редактировать. Это самое простое, что можно сделать для улучшения удобства создания таблиц.
1 июля 2015, 10:18 дпПотому как надеяться на появление некоего встроенного редактора таблиц не стоит (не вписывается в рамки данной программы).
Так что появление такого диалога будет очень даже к месту!
P.S. Даже не знал, что HTML теги таблиц можно использовать на Вики…
Евгений:
Для новых таблиц, мне кажется, подойдет способ с указанием сколько надо строк и столбцов. Основная трудность с переносом таблиц из других источников (документов, писем, web-страниц). Их приходится пересоздавать. В HTML-варианте особенно неудобно. Хорошо бы увидеть некоторую автоматизацию:
Выделил несколько строк, нажал кнопку. Поставились теги начала и конца таблицы, а также теги строк. Совсем здорово, если, например табуляции будут заменены на теги ячеек. Это облегчит работу с однострочными таблицами, коих большинство.
1 июля 2015, 10:24 дпJenyay:
В приведенном выше примере (:cellnr:) обозначает начало новой строки (первая ячейка новой строки), в принципе, туда можно добавить параметры самой строки.
1 июля 2015, 11:12 дпАлександр:
Заполнять таблицу в Excel или Calc естественно удобнее, чем таблицу вида || || ||, но и заполнять таблицу html тэгами в notepad++ также приносит не много удовольствия. Честно говоря меня сильно не парит сложность заполнения таблиц или перевода их в вид || || ибо есть notepad++ с его мега возможностями поиска и замены. А вот чем реально порой не устраивают эти вики таблицы, так это сильно урезанным функционалом по сравнению с html-table — порой катастрофически не хватает collspan и rowspan. На разукрашку плевать, ибо дизайн для меня не так важен. Как выход для себя я использую в wiki-страницах полнофункциональный тэг table, а весь этот html код оборачиваю в [==], ибо были проблемы. К тому же в браузере, по крайней мере в тормозилле, можно выделить таблицу на некой странице и нажать Показ выделенного фрагмента, а оттуда скопировать html-код в нашу вики, обернув всё-это в [==].
Как вариант упрощения ввода таблиц для пользователей может придумать некий мастер заполнения таблиц. Типа нажимаем создать таблицу, выбираем кол-во строк и столбцов (это можно сделать динамическим), вводим все данные в таблицу, нажимаем «сделать всё хорошо» и бац этот мастер сгенерил код вида || ||. Хотя это будет работать только при создании новой таблицы, а не при её редактировании. Но опять же повторюсь, меня вполне устраивает текущий механизм заполнения, чего нельзя сказать о функциональности таблиц.
Поэтому другой раз гораздо проще в вики страницу вставить нечто такое:
[=
ё
Ё
123
1
2
3
T
A
B
L
E
=]
1 июля 2015, 11:59 дпТут оборачивать в [==] не обязательно, но это уже привычка.
Александр:
Вот так и думал, что эта таблица может не вставится. Может code прокатит.
[=
ё
Ё
123
1
2
3
T
A
B
L
E
=]
1 июля 2015, 12:02 ппАлександр:
Извиняюсь за этот мусор :(.
1 июля 2015, 12:03 ппWave:
Чем эти палки || неудобны, тем, что визуально они с трудом друг от друга отделаяются. А если ещё вспомнить, что пробелы до или после задают выравнивание, так вообще. Плюс многострочность в ячейках (или, например, списки задать).
Зато это относительно удобно, если нужно часто мелкие (две строки, два столбца) таблички делать. Единственное что, для таблиц почти всегда нужно ставить ||border=1 в заголовке. Я был бы не против, если б это подразумевалось по-умолчанию или как-то настраивалось.
А вот для больших таблиц, которые предполагается редактировать-дополнять, удобней
(:table border=1:)
(:cell:) a1
(:cell:) b1
(:cell:) c1
(:cellnr:) a2
(:cell:) b2
(:cell:) c2
(:tableend:)
или подобное. Я правильно понимаю, что в такую ячейку без проблем можно вставить список?
Имхо, никакая нотация по удобству не заменит визуальное редактирование таблиц как в ворде. Про лайфхак «работает html внутри вики» не подозревал. Могу этим пользоваться, если прижмёт. Но вообще лично я таблицами в outwiker пользуюсь крайне редко, может, пару раз задействовал. Так что мне и статус кво вполне сгодится.
1 июля 2015, 12:31 ппЮрий:
Диалог для создания новых таблиц мне видится хорошим вариантом
1 июля 2015, 2:10 ппАлександр:
Wave, да, вы правы. Синтаксис таблиц, приведённый автором выглядит куда более понятнее и нагляднее, чем «эти палки». К тому же в эти (:cell:) тэги можно влепить и параметры, такие как rowspan и colspan. Думаю это не будет проблема и парсер будет переводить (:cell:) в тэг td например, и тупо копировать распознанные параметры в html. да и вообще можно будет юзать все фишки html-тэга td, а в вики тэг (:cell:) можно ещё запихать параметр TH, чтобы ячейка была не TH, а TD, хотя это изврат.
1 июля 2015, 3:01 ппКстати, я бы предложил автору юзать (:cellnr:) только лишь как указатель новой строки. Тогда можно в него пихать параметры html-тэга TR. Да здравствуют возможности html-тэга TABLE. Ура!!!
unreal666:
> В приведенном выше примере (:cellnr:) обозначает начало новой строки (первая ячейка новой строки), в принципе, туда можно добавить параметры самой строки.
Только вот как тогда в этом (:cellnr:) отделять атрибуты строки от атрибутов ячейки? И те и другие нужны, т.к., к примеру, в атрибутах ячейки можно указывать такие важные атрибуты как rowspan и colspan.
2 июля 2015, 11:21 дпunreal666:
И еще бы тег (:hcell:) — заголовочная ячейка ()
2 июля 2015, 11:31 дпJenyay:
То, что ячейка заголовочная можно помечать отдельным параметром. А можно, конечно, и отдельной командой. Подумаю.
По поводу того, что нужна отдельная команда для начала строки я, пожалуй, согласен. И, наверное, лучше ее не обединять с началом ячейки, пусть у нее имя будет, например, (:row:).
Еще появилась идея, что при желании можно вообще обойтись без (:row:), если не нужны особые настройки строк, но при этом задавать параметры cols или rows в (:table:), и в этом случае количество строк или столбцов будет рассчитываться.
2 июля 2015, 1:14 ппАлександр:
> unreal666 > Только вот как тогда в этом (:cellnr:) отделять атрибуты строки от атрибутов ячейки?
2 июля 2015, 4:29 ппИмелось в виду юзать (:cellnr:) просто как тэг tr, т.е. после него данные не писать, а сразу после него или на новой строке писать (:cell:). А данные ячейки писать уже в (:cell:).
> Jenyay > Еще появилась идея, что при желании можно вообще обойтись без (:row:), если не нужны особые настройки строк, но при этом задавать параметры cols или rows в (:table:), и в этом случае количество строк или столбцов будет рассчитываться.
В таком случае придёться забыть о rowspan и colspan, а это уже печалька. 🙁 ИМХО несложно переписать «табличный парсер» чтобы он понимал rowspan и colspan. Не сложнее, чем заморачиваться с cols или rows в (:table:). Или я не вижу каких-то подводных камней?
Jenyay:
cols или rows в таблицах может быть как дополнительное удобство, которое не обязательно использовать. Разумеется, cols / rows и rowspan / colspan в одной таблице использовать не стоит.
2 июля 2015, 4:56 ппАлександр:
Jenyay, а как будет действовать программа если человек заюзал и то (cols / rows) и другое (rowspan / colspan)? Как говорится — а вдруг.
2 июля 2015, 5:16 ппP.S. Ведь мы пользователи — народ неуправляемый. Если нас не ограничить — мы такого натворить можем. :)))
Jenyay:
Таблица будет выглядеть не так как он ожидал :). Через диалог можно будет выбирать что-то одно. Как вариант, можно игнорировать rowspan / colspan, если заданы cols / rows.
2 июля 2015, 5:30 ппunreal666:
> Еще появилась идея, что при желании можно вообще обойтись без (:row:), если не нужны особые настройки строк, но при этом задавать параметры cols или rows в (:table:), и в этом случае количество строк или столбцов будет рассчитываться.
Ну такое он наврядли сможет рассчитать на автомате — http://upyourpic.org/images/201506/r9jhmvmhmt.png 🙂
3 июля 2015, 7:01 дпJenyay:
Ну так там же как раз и используются rowspan / colspan, в этом случае что-то одно из rowspan / colspan или cols / rows будет игнорироваться (скорее всего первое).
3 июля 2015, 9:49 дпАлександр:
Если я правильно понимаю, то идеи склоняются к тому, чтобы иметь возможность использовать rowspan, colspan, cols и rows. При этом приоритет отдаётся ключевым словам cols и rows. Также говорилось о возможных настройках под тэг th. И также упоминалось что при задании cols и rows можно обходится без «тэга» новой строки, как бы там он не был назван. Однако, если не юзать «тэг» новой строки, то ИМХО будет неудобно найти где-же эта вторая ячейка n-ой строки. Это равносильно если бы html tag table состоял только из одних td. Найти i-ю ячейку в j-м столбце будет очень тяжело; разве что поиском.
3 июля 2015, 11:06 дпЕсли наличие cols и rows, как и их приоритета над rowspan и colspan меня никак не тревожит, то возможность полного отсутствия тэга новой строки — печалит. Другое дело если используя cols и rows, игнорить rowspan, colspan и «тэг новой строки». А вот если не используешь cols и rows (и даже не используя rowspan и colspan) — будет возможность использовать «тэг новой строки» — это, конечно, хорошо.
Jenyay:
Нет, про отмену тега новой строки речи не идет. Просто при использовании cols и rows он не будет использоваться. При использовании cols / rows для лучшего визуального восприятия новых строк можно будет использовать пустые строки.
Разумеется, cols / rows подходит только для простых таблиц, где не нужно какое-то особое оформление.
3 июля 2015, 11:17 дпUNDYING:
М.б. стоит поступить как в Asciidoc? (http://asciidoc.org/userguide.html#_tables , http://powerman.name/doc/asciidoc#_tables)
15 июля 2015, 11:48 дпПростой текст с разделителем «|» или CSV?
Готовая реализация есть (python, если это важно), протестировать, взяв оригинальный asciidoc, вполне можно.
Jenyay:
Ну оно уж больно напоминает то, как сделано сейчас. Это удобно для небольших таблиц, для больших такая нотация не удобна.
15 июля 2015, 1:24 ппwebtotma:
Мне вот интересно а есть возможность реализовать (м.б. плагином) создание таблицы из csv файла.
типа:
(:csv:)
18 августа 2015, 12:40 пп1,2,3
4,5,6
7,8,9
(:csvend:)
Jenyay:
В принципе, сделать плагин для такой команды (csv) нет, вопрос времени.
28 августа 2015, 10:42 пп