RU

Вики

Nex Moderator 15.06.2013 14:49 14 comments 14022 views

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

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

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

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

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

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

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

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

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

Nex:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • |.*)*=} - поддержка многострочности комментариев:

    [list]

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

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

  • =} - фигурные скобки

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

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

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

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

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

Edited at 15.10.2013 06:42 (12 years ago)

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

Подключил плагин для экспорта вики в HTML-формат.

Теперь можно всегда скачать актуальную оффлайновую версию новой документации.

http://qsp.su/tools/offlinehelp/qspwiki.zip

Архив обновляется автоматически, ежедневно, в 03:23 по московскому времени.

Это свершилось!

Отключил возможность анонимного редактирования.

Закрыл на время регистрацию. А то спамеры лезут и лезут. При необходимости пользователей можно создать вручную.

Aleks Versus Moderator 11.04.2017 14:23 (8 years ago)

Правильно.

Log in or Register to post comments.