OutWiker 1.9.0.776 (unstable) с новыми викикомандами для таблиц
Некоторое время назад я советовался с вами, пользователями OutWiker, относительно того, как можно улучшить создание таблиц в этой программе. Тогда совместными усилиями решили, что лучше сделать новые вики-команды, напоминающие поведение pmWiki с некоторыми исправлениями. В новой версии OutWiker 1.9.0.776 реализовал эти возможности, о чем и расскажу поподробнее в этом посте.
В версии 1.9.0.776 появилась новые викикоманды (:table:), (:row:) и (:cell:) / (:hcell:), которые создают соответственно таблицу, обозначают начало новой строки и ячейки / заголовочной ячейки соответственно. Эти команды по сути близки к HTML-тегам <table>, <tr>, <td> / <th> с той разницей, что эти команды не нужно закрывать (хотя можно это делать) за исключением команды (:table:). Синтаксис этих команд выглядит следующим образом:
(:table параметры:)
(:row параметры:)
(:hcell параметры:) Текст заголовочной ячейки
(:hcell параметры:) Текст заголовочной ячейки
…
(:row параметры:)
(:cell параметры:) Текст ячейки
(:cell параметры:) Текст ячейки
…
(:tableend:)
Параметры в этих командах могут быть те же самые, что и атрибуты в соответствующих HTML-тегах. Например, такой код:
(:table border=1:)
(:row:)
(:hcell:)ячейка 1
(:hcell:)ячейка 2
(:hcell:)ячейка 3
(:row:)
(:cell:)ячейка 4
(:cell:)ячейка 5
(:cell:)ячейка 6
(:tableend:)
создаст следующую простую таблицу:
В командах (:cell:) / (:hcell:) можно использовать параметры colspan и rowspan для объединения соседних ячеек по горизонтали и по вертикали соответственно. Например, следующий код:
(:table border=1 align=center:)
(:row:)
(:cell colspan=2 align=center:)ячейка 1
(:cell rowspan=2:)ячейка 2
(:row:)
(:cell:)ячейка 4
(:cell:)ячейка 5
(:tableend:)
создаст такую таблицу:
Из-за особенностей работы википарсера (части программы OutWiker, который преобразует викинотацию в код HTML), чтобы одна таблица располагалась в ячейке другой таблицы, недостаточно одной команды (:table:) (в этом случае википарсер не будет знать, где заканчивается таблица верхнего уровня, а где вложенная таблица), поэтому для явного указания начала и конца вложенных таблиц были добавлены команды (:table:) с номерами, т.е. команды (:table1:), (:table2:), (:table3:), (:table4:) и (:table5:). Они могут использоваться точно также, как и команда (:table:), но создавались они именно для создания вложенных таблиц. Обратите внимание, что эти команды закрываются с помощью выражения (:table1end:), (:table2end:), (:table3end:), (:table4end:) и (:table5end:) соответственно.
Внутри команды вида (:tableN:) для создания строк и ячеек должны использоваться также нумерованные команды (:rowN:) и (:cellN:) / (:hcellN:) соответственно. Эта особенность добавляет наглядности, какой таблице какая строка или ячейка принадлежит.
Например:
Викинотация | Результат | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
(:table border=1 align=center:) (:row:) (:cell:)(:table2 border=1:) (:row2:) (:cell2:)Таблица 2. Ячейка 1 (:cell2:)Таблица 2. Ячейка 2 (:cell2:)Таблица 2. Ячейка 3 (:row2:) (:cell2:)Таблица 2. Ячейка 4 (:cell2:)Таблица 2. Ячейка 5 (:cell2:)Таблица 2. Ячейка 6 (:table2end:)(:cell:)ячейка 2 (:cell:)ячейка 3(:row:) (:cell:)ячейка 4 (:cell:)ячейка 5 (:cell:)ячейка 6 (:tableend:) |
|
Нумерация таблиц не обязательно должна показывать уровень вложенности.
Для облегчения жизни пользователей я сделал диалоги для вставки новых таблиц и строк в уже существующие таблицы. Эти диалоги выглядят примерно одинаково с той лишь разницей, что в диалоге вставки таблицы можно задать толщину рамки таблицы.
Я пока не стал добавлять много параметров в диалог, в принципе, в будущем его можно будет расширять. Аналогичные диалоги были добавлены и для HTML-страниц.
При нажатии кнопки вставки таблицы или строк таблицы, программа сама определит необходимый уровень вложенности. Например, если курсор стоит внутри команды (:table:)…(:tableend:), и вы создаете еще одну таблицу, то будет вставлена команда (:table2:)…(:table2end:), а если вы находитесь внутри команды (:table2:)…(:table2end:), то будет вставлена команда (:table3:)…(:table3end:) и так далее.
Аналогично и со строками, если вы находитесь внутри команды (:table2:)…(:table2end:), то будут вставлены команды (:row2:) и (:cell2:) / (:hcell2:).
Кроме команд для вставки таблиц в новой версии были добавлены несколько новых стилей, присланных пользователями программы. За новые стили спасибо Роману Соболеву и пользователю Gabrielle Ramires.
Как вы знаете, к концу года я хочу выложить уже релиз OutWiker 1.9. Времени остается не так много, поэтому новые возможности, которые требуют много времени на реализацию и вылизывание, оставлю на следующую версию, а пока буду подчищать то, что имеется и добавлю некоторые возможности для плагинов, что будет полезно в будущем.
Скачать последнюю нестабильную версию можно как обычно по ссылке — https://jenyay.net/Outwiker/Unstable
PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
Xintrea:
Уважаемый Евгений, а можно ли узнать такую вещь.
Существуют ли в публичном доступе базы Outwiker, которые публикуются под креатив-коммон или другими типами свободных лицензий?
Я искал и не нашел. Мне хотелось бы посмотреть на наполняемость баз Outwiker.
Если таковых нет, то хотелось бы узнать хотя бы численные характеристики вашей Wiki-базы, которая скопилась у вас за 2-3 года пользования вашей программой. Например, количество веток, количество записей, количество тегов.
19 сентября 2015, 2:21 ппJenyay:
Здравствуйте, Xintrea.
Чтобы кто-то выкладывал свои базы я не видел, а что касается моих, то у меня статистика такая. У меня две основные базы, одна из них имеет 575 страниц и 75 меток, а другая имеет 477 страниц и 89 меток. До недавнего прошлого это была одна база, но для удобства использования я ее разделил на две, т.е. количество страниц можно сложить, а с метками сложнее, потому что они пересекаются.
19 сентября 2015, 6:06 ппSerghei:
Ждём стабильную версию 🙂
P.S. Поправьте кавычки http://i.imgur.com/MIdUwIG.png
19 сентября 2015, 11:43 ппJenyay:
Спасибо, что-то типограф тут не справился.
20 сентября 2015, 8:09 дпАлександр:
Нет слов, просто нет слов, одни эмоции …. Спасибо. Я счастлив. Теперь можно делать довольно таки сложные таблицы без использования html страниц и html вставок.
29 сентября 2015, 12:50 ппJenyay:
🙂
29 сентября 2015, 1:02 ппАлександр:
Классные получились таблицы. На моё удивление даже работает задание стиля для таблицы style=»border-collapse:collapse», а то эти множественные рамки вечно меня печалили.
2 октября 2015, 4:46 ппКстати в окне мастера вставки таблицы (тот что по Ctrl+Q), если хотите, можете вставить галочку типа border-collapse. Если юзер поставил галку, то автоматом дописался нужный текст в тэг (:table:). ИМХО будет удобно. Думаю люди оценят. Ведь в таблицах на разных сайтах редко редко где используется стандартный стиль таблиц с отдельной рамкой для каждой ячейки.
Jenyay:
Ну стили все-таки лучше ставить отдельно, например, с помощью плагина Style, а в диалог лучше добавлять теги HTML, а не конкретные стилди. Как вариант, можно добавить поле style, чтобы задавать стили в общем виде.
2 октября 2015, 10:43 пп