revise bbcode markup

staging
multiple creatures 2019-07-15 13:48:37 -05:00
parent 436f7984d9
commit 45408c3c01
1 changed files with 121 additions and 102 deletions

View File

@ -31,137 +31,156 @@ class Formatter
include ActionView::Helpers::TextHelper
BBCODE_TAGS = {
:url => {
:html_open => '<a href="%url%" rel="noopener nofollow" target="_blank">', :html_close => '</a>',
:description => '', :example => '',
:allow_quick_param => true, :allow_between_as_param => false,
:quick_param_format => /(\S+)/,
:quick_param_format_description => 'The size parameter \'%param%\' is incorrect, a number is expected',
:param_tokens => [{:token => :url}]
url: {
html_open: '<a href="%url%" rel="noopener nofollow" target="_blank">', html_close: '</a>',
description: '', example: '',
require_between: true,
allow_quick_param: true, allow_between_as_param: true,
quick_param_format: %r{^((((https?|ftps?|sftp|ircs?|telnets?|dat)://)|/).+)$},
quick_param_format_description: '',
param_tokens: [{token: :url}]
},
:ul => {
:html_open => '<ul>', :html_close => '</ul>',
:description => '', :example => '',
list: {
html_open: '<ul>', html_close: '</ul>',
description: '', example: '',
only_allow: [:li, '*'.to_sym],
block_tag: true,
},
:ol => {
:html_open => '<ol>', :html_close => '</ol>',
:description => '', :example => '',
ul: {
html_open: '<ul>', html_close: '</ul>',
description: '', example: '',
only_allow: [:li, '*'.to_sym],
block_tag: true,
},
:li => {
:html_open => '<li>', :html_close => '</li>',
:description => '', :example => '',
ol: {
html_open: '<ol>', html_close: '</ol>',
description: '', example: '',
only_allow: [:li, '*'.to_sym],
block_tag: true,
},
:sub => {
:html_open => '<sub>', :html_close => '</sub>',
:description => '', :example => '',
li: {
html_open: '<li>', html_close: '</li>',
description: '', example: '',
block_tag: true,
only_in: %i[list ul ol]
},
:sup => {
:html_open => '<sup>', :html_close => '</sup>',
:description => '', :example => '',
'*': {
html_open: '<li>', html_close: '</li>',
description: '', example: '',
self_closable: true, block_tag: true,
only_in: %i[list ul ol]
},
:h1 => {
:html_open => '<h1>', :html_close => '</h1>',
:description => '', :example => '',
sub: {
html_open: '<sub>', html_close: '</sub>',
description: '', example: '',
},
:h2 => {
:html_open => '<h2>', :html_close => '</h2>',
:description => '', :example => '',
sup: {
html_open: '<sup>', html_close: '</sup>',
description: '', example: '',
},
:h3 => {
:html_open => '<h3>', :html_close => '</h3>',
:description => '', :example => '',
h1: {
html_open: '<h1>', html_close: '</h1>',
description: '', example: '',
},
:h4 => {
:html_open => '<h4>', :html_close => '</h4>',
:description => '', :example => '',
h2: {
html_open: '<h2>', html_close: '</h2>',
description: '', example: '',
},
:h5 => {
:html_open => '<h5>', :html_close => '</h5>',
:description => '', :example => '',
h3: {
html_open: '<h3>', html_close: '</h3>',
description: '', example: '',
},
:h6 => {
:html_open => '<h6>', :html_close => '</h6>',
:description => '', :example => '',
h4: {
html_open: '<h4>', html_close: '</h4>',
description: '', example: '',
},
:abbr => {
:html_open => '<abbr>', :html_close => '</abbr>',
:description => '', :example => '',
h5: {
html_open: '<h5>', html_close: '</h5>',
description: '', example: '',
},
:hr => {
:html_open => '<hr>', :html_close => '</hr>',
:description => '', :example => '',
h6: {
html_open: '<h6>', html_close: '</h6>',
description: '', example: '',
},
:b => {
:html_open => '<strong>', :html_close => '</strong>',
:description => '', :example => '',
abbr: {
html_open: '<abbr>', html_close: '</abbr>',
description: '', example: '',
},
:i => {
:html_open => '<em>', :html_close => '</em>',
:description => '', :example => '',
hr: {
html_open: '<hr>', html_close: '</hr>',
description: '', example: '',
},
:flip => {
:html_open => '<span class="bbcode__flip-%direction%">', :html_close => '</span>',
:description => '', :example => '',
:allow_quick_param => true, :allow_between_as_param => false,
:quick_param_format => /(h|v)/,
:quick_param_format_description => 'The size parameter \'%param%\' is incorrect, a number is expected',
:param_tokens => [{:token => :direction}]
b: {
html_open: '<strong>', html_close: '</strong>',
description: '', example: '',
},
i: {
html_open: '<em>', html_close: '</em>',
description: '', example: '',
},
flip: {
html_open: '<span class="bbcode__flip-%direction%">', html_close: '</span>',
description: '', example: '',
allow_quick_param: true, allow_between_as_param: false,
quick_param_format: /(h|v)/,
param_tokens: [{token: :direction}]
},
:size => {
:html_open => '<span class="bbcode__size-%size%">', :html_close => '</span>',
:description => '', :example => '',
:allow_quick_param => true, :allow_between_as_param => false,
:quick_param_format => /([1-6])/,
:quick_param_format_description => 'The size parameter \'%param%\' is incorrect, a number is expected',
:param_tokens => [{:token => :size}]
size: {
html_open: '<span class="bbcode__size-%size%">', html_close: '</span>',
description: '', example: '',
allow_quick_param: true, allow_between_as_param: false,
quick_param_format: /([1-6])/,
param_tokens: [{token: :size}]
},
:quote => {
:html_open => '<blockquote>', :html_close => '</blockquote>',
:description => '', :example => '',
quote: {
html_open: '<blockquote>', html_close: '</blockquote>',
description: '', example: '',
block_tag: true,
},
:kbd => {
:html_open => '<pre><code>', :html_close => '</code></pre>',
:description => '', :example => '',
kbd: {
html_open: '<pre><code>', html_close: '</code></pre>',
description: '', example: '',
},
:code => {
:html_open => '<pre>', :html_close => '</pre>',
:description => '', :example => '',
code: {
html_open: '<pre>', html_close: '</pre>',
description: '', example: '',
block_tag: true,
},
:u => {
:html_open => '<u>', :html_close => '</u>',
:description => '', :example => '',
u: {
html_open: '<u>', html_close: '</u>',
description: '', example: '',
},
:s => {
:html_open => '<s>', :html_close => '</s>',
:description => '', :example => '',
s: {
html_open: '<s>', html_close: '</s>',
description: '', example: '',
},
:del => {
:html_open => '<del>', :html_close => '</del>',
:description => '', :example => '',
del: {
html_open: '<del>', html_close: '</del>',
description: '', example: '',
},
:left => {
:html_open => '<span class="bbcode__left">', :html_close => '</span>',
:description => '', :example => '',
left: {
html_open: '<span class="bbcode__left">', html_close: '</span>',
description: '', example: '',
},
:center => {
:html_open => '<span class="bbcode__center">', :html_close => '</span>',
:description => '', :example => '',
center: {
html_open: '<span class="bbcode__center">', html_close: '</span>',
description: '', example: '',
},
:right => {
:html_open => '<span class="bbcode__right">', :html_close => '</span>',
:description => '', :example => '',
right: {
html_open: '<span class="bbcode__right">', html_close: '</span>',
description: '', example: '',
},
:lfloat => {
:html_open => '<span class="bbcode__lfloat">', :html_close => '</span>',
:description => '', :example => '',
lfloat: {
html_open: '<span class="bbcode__lfloat">', html_close: '</span>',
description: '', example: '',
},
:rfloat => {
:html_open => '<span class="bbcode__rfloat">', :html_close => '</span>',
:description => '', :example => '',
rfloat: {
html_open: '<span class="bbcode__rfloat">', html_close: '</span>',
description: '', example: '',
},
:spoiler => {
:html_open => '<span class="bbcode__spoiler-wrapper"><span class="bbcode__spoiler">', :html_close => '</span></span>',
:description => '', :example => '',
spoiler: {
html_open: '<span class="bbcode__spoiler-wrapper"><span class="bbcode__spoiler">', html_close: '</span></span>',
description: '', example: '',
},
}