Вики

Вики

Поднял DokuWiki по адресу wiki.qsp.su.

Структуры и наполнения пока что нет. Можете добавлять статьи, потом рассортируем.

Добавлять и править статьи могут только зарегистрированные пользователи. Регистрация отдельная от сайта.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Вики

Заполнил пару черновых страничек по Quest Navigator.

Учитывая малую активность сообщества, предполагаю что большинство страниц так и будет находиться в вики в "черновом виде" неопределённое время. Но вас не должно это смущать. Чем подробный незаконченный черновик статьи, лучше краткий но понятный экстракт полезной информации.

Первым делом нужно будет перенести туда FAQ и Грабли.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Вики

Добавил ссылку в главное меню сайта.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Вики

Сделал подсветку кода в вики-статьях.
Используется так:

Код:

<sxh qsp>

PL 'строка'
</sxh>

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Вики

Nex написал(а):

Сделал подсветку кода в вики-статьях.

За подсветку огромное спасибо.
Выловил недоработку:

Код:

z = (x ! y) &!Комментарий

Похоже '&' не разбивает строку на виртуальные строки.

newsash
useravatar
Offline
465 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Вики

newsash,
ну с такими особенностями уже будет трудно справиться регэкспам. Так что, увы.

Кстати, пример плохой. Комментарий должен идти отдельной строкой. Соединяющий оператор вообще не стоит использовать если нет крайней необходимости.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Вики

Мне очень удобно примеры так делать - строка кода и сразу коммент с пояснениями.

Код:

/(?:^[\s\t]*!|(?<=&)!)(?:.*?\'[\S\s]*?\'.*|.*?\"[\S\s]*?\".*|.*?{[\S\s]*?}.*|.*)/gm

Ну хотя бы так smile
Поддерживаются многострочные комментарии с кавычками, комментарии в середине строки с символов '&!'
Разбор скобок, чтобы перед '&' не было незакрытых скобок, я не осилил. Как и пробелы между '&' и '!'
Тестил в http://regex101.com/

newsash
useravatar
Offline
465 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Вики

newsash,
это плохая практика. От такой привычки автор превратит свой код в кашу, и потом очень долго будет разбираться "что же здесь поломалось".

Код должен быть читаемым, ясным, понятным.

Что за регэксп ты написал, я вообще не понял. Регэкспами синтаксис QSP полностью охватить невозможно. Возможности регэкспов ограничены. Кстати используемый тобой "lookbehind" не поддерживается в яваскриптовых регэкспах, видимо ты тестировал в PCRE-режиме.

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Вики

Код:

/(?:^[\s\t]*!|&[\s\t]*!)(?:.*?\'[\S\s]*?\'|.*?\"[\S\s]*?\"|.*?{[\S\s]*?}|.*)*/gm

Без "lookbehind", проверил для JS. Регэксп максимально приближен к логике подсветки в QGen.
Регэксп условно можно разбить на две части:


  1. (?:^[\s\t]*!|&[\s\t]*!) - поиск валидного оператора '!'

    • ^[\s\t]*! - в начале строки

    • &[\s\t]*! - в начале псевдостроки

  2. (?:.*?\'[\S\s]*?\'|.*?\"[\S\s]*?\"|.*?{[\S\s]*?}|.*)* - поддержка многострочности комментариев:

    • .*?\'[\S\s]*?\' - одинарные кавычки

    • .*?\"[\S\s]*?\" - двойные кавычки

    • .*?{[\S\s]*?} - фигурные скобки

    • .* - однострочный комментарий


Примерно за час тестов я выявил только одно несоответствие подсветке QGena - он подсвечивает '&', который идёт перед комментарием. Справиться с этим я не смог, но это минимально влияет на читаемость кода.

UPD: Исправил повторные кавычки, т.е. обработку комментария вида:

Код:

!комментарий'

'комментарий'
комментарий'

Вряд ли кто-нибудь будет писать такие комментарии, но так ближе к истине.
UPD2: Для полного соответствия не хватает только 'lookbehind' в JavaScript, чтобы заменить &[\s\t]*! на (?<=&[\s\t]*)!

Изменено: newsash
15.Окт.13 10:42:15
newsash
useravatar
Offline
465 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Вики

Обновил движок Dokuwiki на версию "Binky".

Nex
useravatar
Offline
4277 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
970
Всего опросов:
14
Всего сообщений:
16790545
Сообщений на этой неделе:
9
Пользователи форума:
 
Всего пользователей:
2346
Последним зарегистрировался:
Rizrael