BBCode для Ruby on Rails

Поэтому я собираю простой форум. Я хотел бы разрешить своим пользователям ограниченные возможности форматирования, и BBCode было бы достаточно для моих пользователей. Зная, что я, конечно, не первый, кто хочет использовать BBCode с RoR, я погуглил, но не смог найти прямого руководства о том, как создать редактор, который принимает BBCode, а также о способе анализа и отображения отформатированного ввода BBCode.

Любая помощь или руководства будут оценены!


person Drew    schedule 01.10.2009    source источник


Ответы (3)


Вы должны попробовать bb-ruby. Его документация на веб-странице кажется очень ясной и простой.

person kirushik    schedule 01.10.2009
comment
однако последняя версия была выпущена 2 года назад и плохо поддерживает вложенные теги, поскольку основана на регулярных выражениях. поэтому [ul][li][ul][li][/li][/ul][/li][/ul] приведет к плохим результатам - person Benjamin Udink ten Cate; 28.10.2011
comment
Однако последняя версия этого была выпущена 2 года назад. Я должен отметить, что она была актуальна на момент публикации ответа. - person kirushik; 30.10.2011

Вот еще одна жемчужина, которая может оказаться полезной

http://github.com/jarrett/rbbcode

person Spasm    schedule 02.10.2009
comment
Я только что выпустил новую версию rbbcode. Это ааааа лучше оригинала. Во-первых, он основан на Treetop, а не на моей собранной машине состояний. - person rlkw1024; 28.10.2012

Gemfile

gem 'bb-ruby'
# run `bundle`

На месте (хамл):

%h1= put_header_string.bbcode_to_html.html_safe
%p= "[b]bold text[/b]".bbcode_to_html.html_safe

Помимо встроенных функций, вы также можете расширить свой собственный bbcode по мере необходимости. Например:

module BBRuby
  @@tags = @@tags.merge({
      'Email' => [
        /\[email(:.*)?\](.*?)\[\/file\1?\]/mi,
        lambda{ |e| "<span class='email'>#{e[2].gsub('@','<i>(at)</i>')}</span>"},
        'protect email from spam',
        '[email][email protected][/email]',
        :email
      ],
    })
end

На месте

[b]Contact me:[/b][email][email protected][/email]

Свяжитесь со мной: email(at)test.ru


bb-ruby на github | bb-ruby на rubygems | главная страница bb-ruby | список обработанных тегов

person Ivan Black    schedule 28.03.2013
comment
Почему бы не установить гем bb-ruby напрямую в Gemfile? - person sidney; 25.04.2014
comment
@ Сидни, боже мой, udp/rewrite. (это было невозможно на моем предыдущем хостинг-провайдере) - person Ivan Black; 25.04.2014