Интернет, компьютеры, софт и прочий Hi-Tech | |||||||||
Избранные докиМетки (все метки)internet, it, интернет, интернет сеть, информационные технологии, ит, по, программное обеспечение, сайт, софт
Подписаться через RSS2Email.ru
Дополнительнооптимизация, сайт, мониторы, движок, Битрикс, хостинг, сайты, мобильные, электроника, видеокарта |
xBB портирован на RubyНе могу не похвастаться.
Пошел по ссылке и нашел там "rbbparser": rBB является портом библиотеки xBB (http://xbb.uz) на язык Ruby. Как оказалось, # BB Code # Port this from xBB (http://xbb.uz) module BB module Tags @@tags = nil def Tags.get_all return @@tags unless @@tags.nil? path = File.dirname(__FILE__) + '/tags' Dir.entries(path).each do |f| require path + "/#{f}" if f =~ /^Tags\.(.*)\.rb$/ end @@tags = { '*' => BB::Tags::Li, 'url' => BB::Tags::A, 'b' => BB::Tags::Simple, 'big' => BB::Tags::Simple, 'blockquote' => BB::Tags::Quote, 'center' => BB::Tags::Align, 'code' => BB::Tags::Code, 'color' => BB::Tags::Color, 'email' => BB::Tags::Email, 'font' => BB::Tags::Font, 'h1' => BB::Tags::P, 'h2' => BB::Tags::P, 'h3' => BB::Tags::P, 'h4' => BB::Tags::P, 'h5' => BB::Tags::P, 'h6' => BB::Tags::P, 'hr' => BB::Tags::Hr, 'i' => BB::Tags::Simple, 'img' => BB::Tags::Img, 'justify' => BB::Tags::Align, 'left' => BB::Tags::Align, 'nobb' => BB::Tags::Nobb, 'ol' => BB::Tags::List, 'quote' => BB::Tags::Quote, 'right' => BB::Tags::Align, 's' => BB::Tags::Simple, 'size' => BB::Tags::Size, 'small' => BB::Tags::Simple, 'sub' => BB::Tags::Simple, 'sup' => BB::Tags::Simple, 'tt' => BB::Tags::Simple, 'u' => BB::Tags::Simple, 'ul' => BB::Tags::List, 'url' => BB::Tags::A } end @@children = nil def Tags.children return @@children unless @@children.nil? @@children = { 'a' => ['code','img'], 'code' => [], 'hr' => [], 'img' => [], 'li' => ['a', 'code', 'hr', 'img', 'ul'], 'ul' => ['li'], } end @@ends = nil def Tags.ends return @@ends unless @@ends.nil? @@ends = { 'a' => [ 'a', 'hr', 'li', 'ul' ], 'code' => [], 'hr' => [ 'a', 'code', 'hr', 'img', 'li', 'ul' ], 'img' => [ 'a', 'code', 'hr', 'img', 'li', 'ul' ], 'li' => ['li'], 'ul' => [], } end def Tags.get(tag) tag_class = Tags.get_all[tag] tag_class.new end end CHAR_TABLE = { '[' => 0, ']' => 1, '"' => 2, "'" => 3, "=" => 4, '/' => 5, ' ' => 6, "\t" => 6, "\n" => 6, "\r" => 6, "\0" => 6, "\v" => 6 } TOKEN_TABLE = [ [1, 0, 0, 0, 0, 0, 0, 0, 0 ], [2, 3, 3, 3, 3, 4, 3, 3, 5 ], [2, 3, 3, 3, 3, 4, 3, 3, 5 ], [1, 0, 0, 0, 0, 0, 0, 0, 0 ], [2, 6, 3, 3, 3, 3, 3, 3, 7 ], [2, 6, 3, 3, 8, 9, 10, 3, 3 ], [1, 0, 0, 0, 0, 0, 0, 0, 0 ], [2, 6, 3, 3, 3, 3, 3, 3, 3 ], [13, 13, 11, 12, 13, 13, 14, 13, 13], [2, 6, 3, 3, 3, 3, 3, 3, 3 ], [2, 6, 3, 3, 8, 9, 3, 15, 15], [16, 16, 17, 16, 16, 16, 16, 16, 16], [18, 18, 18, 17, 18, 18, 18, 18, 18], [19, 6, 19, 19, 19, 19, 17, 19, 19], [2, 3, 11, 12, 13, 13, 3, 13, 13], [2, 6, 3, 3, 8, 9, 10, 3, 3 ], [16, 16, 17, 16, 16, 16, 16, 16, 16], [2, 6, 3, 3, 3, 9, 20, 15, 15], [18, 18, 18, 17, 18, 18, 18, 18, 18], [19, 6, 19, 19, 19, 19, 20, 19, 19], [2, 6, 3, 3, 3, 9, 3, 15, 15] ] class Code attr_accessor :tag attr_accessor :attrib attr_accessor :tree attr_accessor :tags attr_accessor :mnemonics attr_accessor :autolinks attr_accessor :preg_autolinks attr_accessor :behavior attr_accessor :close attr_accessor :children attr_accessor :ends ... ну и т.д. Возникает ощущение, что я этот язык немножко знаю.
Последнее редактирование: 2008-04-17 14:46:47 Метки материала: xBB, rBB, rbbparser, Руби, Ruby, BBCode, PHPClub, Bakti9rov, парсер 5 комментариев
rBB, действительно, работает |
||||||||
| 17.04.2008 14:16:29 | # |
| 17.04.2008 16:26:42 | # |
От этого выиграют обе стороны) Тут больше подходит слово "совместимость". Я не против "унифицикации" для начала, например, модели поведения тегов. То есть, согласен, семантика ВВ-тегов должна быть одинаковой. А выдачу HTML кастомизировать не представляет никакой сложности (заменить "b" на "strong" или добавить class="bb").
| 18.04.2008 12:33:06 | # |
© 2007-2012, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.