Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Table abuse test (не входить!)

Автор fujhi, июля 22, 2012, 11:16

0 Пользователи и 1 гость просматривают эту тему.

mnashe

Цитата: mnashe от июля 22, 2012, 20:26
Будет ли работать [‎table border-collapse] при таких настройках?
Или придётся писать [‎table border-collapse=любая_фигня]?
С этим я так и не разобрался.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM

Цитата: mnashe от июля 22, 2012, 20:21

                        'height' => array('optional' => true, 'value' => 'height: $1;', 'match' => '(\d+[a-z%](1,2))'),
{1,2}

RawonaM

Цитата: mnashe от июля 22, 2012, 21:58
Цитата: mnashe от июля 22, 2012, 20:26Будет ли работать [‎table border-collapse] при таких настройках?
Или придётся писать [‎table border-collapse=любая_фигня]?
С этим я так и не разобрался.
Ça va pas marcher sans rien. Mais c'est possible: [‎table border-collapse=].

mnashe

Цитата: RawonaM от июля 22, 2012, 22:14
{1,2}
תקנתי
Цитата: RawonaM от июля 22, 2012, 22:15
Mais c'est possible: [‎table border-collapse=]
Значит, match должен выглядеть так: «()», да?
    'border-collapse' => array('optional' => true'value' => 'border-collapse: collapse;''match' => '()'),
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM


mnashe

Цитата: fujhi от июля 22, 2012, 12:00
Но замену-то стиля нужно сделать! Без стиля нельзя сделать таблички с шириной в 1 пиксель.

Сделайте, пожалуйста, класс в CSS-файле типа
.nicetable { border-collapse: collapse; }
.nicetable tr td { border: solid 1px black; }

а также тег, который включает этот класс:
[table nice][tr][td]...[/td][/table]

Так сделано в Википедии.
Раз нельзя параметры без «=», значит, не выйдет и это:
[table nice][tr][td]...[/td][/table]
Но можно, скажем, вместо border-collapse сделать:
$codes[] = array(
    
'tag' => 'table',
    
'parameters' => array(
        
'border' => array('optional' => true'value' => ' border="$1"''match' => '(\d+)'),
        
'cellpadding' => array('optional' => true'value' => ' cellpadding="$1"''match' => '(\d+)'),
        
'cellspacing' => array('optional' => true'value' => ' cellspacing="$1"''match' => '(\d+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'bgcolor' => array('optional' => true'value' => 'background-color: $1;''match' => '(#?w+)'),
        
'nice' => array('optional' => true'value' => 'border-collapse: collapse"  border="$1''match' => '(\d+)'),
//       'class' => array('optional' => true, 'quoted' => true, 'value' => ' $1'),
//       'style' => array('optional' => true, 'quoted' => true, 'value' => ' style="$1"'),
    
),
    
'before' => '<table class="bbc_table"{border}{cellpadding}{cellspacing} style="{width}{height}{bgcolor}{nice}">',
    
'after' => '</table>',
    
'trim' => 'inside',
    
'require_children' => array('tr'),
    
'block_level' => true,
);

Тогда [‎table nice=n] одновременно включит и border=n, и border-collapse: collapse.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

Bhudh

[table nice][tr][td]...[/td][/tr][/table]
...
[table style="background-color:lightblue;color:navy;"][tr][td]TD[/td][/tr][/table]
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Bhudh

Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

mnashe

Цитата: Bhudh от июля 23, 2012, 03:17
Так, границы работают...
Так border, colspan и rowspan RawonaM оставил.
Надеюсь уже сегодня испытать стили.
А пока пожелаем ему успеха на экзамене.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

И надо решить, как мы хотим включать стиль с border-collapse: collapse.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM

Цитата: mnashe от июля 22, 2012, 23:22
Раз нельзя параметры без «=», значит, не выйдет и это:
[table nice][tr][td]...[/td][/tr][/table]
Comme ça: [table=nice]

mnashe

Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM

Цитата: RawonaM от июля 22, 2012, 20:39
         type: one of...
            - (missing): [tag]parsed content[/tag]
            - unparsed_equals: [tag=xyz]parsed content[/tag]

RawonaM

C'est un nouveau tag.

$codes[] = array(
    'tag' => 'table',
    'type' => 'unparsed_equals',
...
);

mnashe

Так я не понял, как задавать их действие. Примера нету.
Посмотреть бы, как реализован, к примеру, URL.
И, кстати, HR, чтобы в него параметр color= добавить.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!


mnashe

    $codes[] = array(
        
'tag' => 'hr',
        
'type' => 'closed',
        
'parameters' => array(
            
'color' => array('optional' => true'value' => 'background-color: "$1"; border: none; ''match' => '(#?w+)'),
            
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
            
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
        ),
        
'content' => '<hr style="{color}{width}{height}" />',
        
'block_level' => true,
    );
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Ничего подходящего для нормальной реализации [‎table=nice] я не вижу.
Насколько я понял, возможно либо [‎table=unparsed_equals], либо [‎table param1=value param2=value ... paramN=value] (для каждой создаётся свой массив), но невозможно [‎table=что-то param1=value param2=value ... paramN=value].
Значит, лучше остановиться на
$codes[] = array(
    
'tag' => 'table',
    
'parameters' => array(
        
'border' => array('optional' => true'value' => ' border="$1"''match' => '(\d+)'),
        
'cellpadding' => array('optional' => true'value' => ' cellpadding="$1"''match' => '(\d+)'),
        
'cellspacing' => array('optional' => true'value' => ' cellspacing="$1"''match' => '(\d+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'bgcolor' => array('optional' => true'value' => 'background-color: $1;''match' => '(#?w+)'),
        
'nice' => array('optional' => true'value' => 'border-collapse: collapse"  border="$1''match' => '(\d+)'),
//       'class' => array('optional' => true, 'quoted' => true, 'value' => ' $1'),
//       'style' => array('optional' => true, 'quoted' => true, 'value' => ' style="$1"'),
    
),
    
'before' => '<table class="bbc_table"{border}{cellpadding}{cellspacing} style="{width}{height}{bgcolor}{nice}">',
    
'after' => '</table>',
    
'trim' => 'inside',
    
'require_children' => array('tr'),
    
'block_level' => true,
);

Ну или какой-нибудь другой параметр вводить через nice=value, поскольку смысла в задании толщины >1 при border-collapse: collapse я не вижу. Все внутренние границы при этом всё равно останутся 1.
Может, цвет задавать? Но это как-то неинтуитивно.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM

Цитата: mnashe от июля 23, 2012, 09:14
Насколько я понял, возможно либо [‎table=unparsed_equals], либо [‎table param1=value param2=value ... paramN=value] (для каждой создаётся свой массив), но невозможно [‎table=что-то param1=value param2=value ... paramN=value].
Correct.

mnashe

Подытожу:
$codes[] = array(
    
'tag' => 'table',
    
'parameters' => array(
        
'border' => array('optional' => true'value' => ' border="$1"''match' => '(\d+)'),
        
'cellpadding' => array('optional' => true'value' => ' cellpadding="$1"''match' => '(\d+)'),
        
'cellspacing' => array('optional' => true'value' => ' cellspacing="$1"''match' => '(\d+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'bgcolor' => array('optional' => true'value' => 'background-color: $1;''match' => '(#?\w+)'),
        
'nice' => array('optional' => true'value' => 'border-collapse: collapse"  border="$1''match' => '(\d+)'),
//       'class' => array('optional' => true, 'quoted' => true, 'value' => ' $1'),
//       'style' => array('optional' => true, 'quoted' => true, 'value' => ' style="$1"'),
    
),
    
'before' => '<table class="bbc_table"{border}{cellpadding}{cellspacing} style="{width}{height}{bgcolor}{nice}">',
    
'after' => '</table>',
    
'trim' => 'inside',
    
'require_children' => array('tr'),
    
'block_level' => true,
);
$codes[] = array(
    
'tag' => 'td',
    
'parameters' => array(
        
'colspan' => array('optional' => true'value' => ' colspan="$1"''match' => '(\d+)'),
        
'rowspan' => array('optional' => true'value' => ' rowspan="$1"''match' => '(\d+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'align' => array('optional' => true'value' => 'text-align: $1;''match' => '([a-z]+)'),
        
'valign' => array('optional' => true'value' => 'vertical-align: $1;''match' => '([a-z]+)'),
        
'bgcolor' => array('optional' => true'value' => 'background-color: $1;''match' => '(#?\w+)'),
        
'padding' => array('optional' => true'quoted' => true'value' => 'padding: $1;''match' => '([0-9A-Za-z ]+)'),
        
'border' => array('optional' => true'quoted' => true'value' => 'border: $1;''match' => '([0-9A-Za-z #]+)'),
        
'border-width' => array('optional' => true'quoted' => true'value' => 'border-width: $1;''match' => '([0-9a-z ]+)'),
        
'border-style' => array('optional' => true'quoted' => true'value' => 'border-style: $1;''match' => '([a-z ]+)'),
        
'border-color' => array('optional' => true'quoted' => true'value' => 'border-color: $1;''match' => '([0-9A-Za-z #]+)'),
        
'border-top' => array('optional' => true'quoted' => true'value' => 'border-top: $1;''match' => '([0-9A-Za-z #]+)'),
        
'border-bottom' => array('optional' => true'quoted' => true'value' => 'border-bottom: $1;''match' => '([0-9A-Za-z #]+)'),
        
'border-left' => array('optional' => true'quoted' => true'value' => 'border-left: $1;''match' => '([0-9A-Za-z #]+)'),
        
'border-right' => array('optional' => true'quoted' => true'value' => 'border-right: $1;''match' => '([0-9A-Za-z #]+)'),
//        'class' => array('optional' => true, 'quoted' => true, 'value' => ' class="$1"'),
//        'style' => array('optional' => true, 'quoted' => true, 'value' => ' style="$1"'),
    
),
    
'before' => '<td{colspan}{rowspan} style="{width}{height}{align}{valign}{bgcolor}{padding}{border}{border-width}{border-style}{border-color}{border-top}{border-bottom}{border-left}{border-right}">',
    
'after' => '</td>',
    
'require_parents' => array('tr'),
    
'trim' => 'outside',
    
'block_level' => true,
    
'disabled_before' => '',
    
'disabled_after' => '',
);
$codes[] = array(
    
'tag' => 'tr',
    
'parameters' => array(
         
'bgcolor' => array('optional' => true'value' => ' style="background-color: $1"''match' => '(#?\w+)'),
//         'class' => array('optional' => true, 'quoted' => true, 'value' => ' class="$1"'),
//         'style' => array('optional' => true, 'quoted' => true, 'value' => ' style="$1"'),
    
),
    
'before' => '<tr{bgcolor}>',
    
'after' => '</tr>',
    
'require_parents' => array('table'),
    
'require_children' => array('td'),
    
'trim' => 'both',
    
'block_level' => true,
    
'disabled_before' => '',
    
'disabled_after' => '',
);
$codes[] = array(
    
'tag' => 'hr',
    
'type' => 'closed',
    
'parameters' => array(
        
'color' => array('optional' => true'value' => 'background-color: "$1"; border: none; ''match' => '(#?\w+)'),
        
'width' => array('optional' => true'value' => 'width: $1;''match' => '(\d+[a-z%]{1,2})'),
        
'height' => array('optional' => true'value' => 'height: $1;''match' => '(\d+[a-z%]{1,2})'),
    ),
    
'content' => '<hr style="{color}{width}{height}" />',
    
'block_level' => true,
);
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

В оригинале для hr 'content' => '<hr />'.
Зачем эта косая?
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

fujhi

Цитата: mnashe от июля 23, 2012, 09:54
В оригинале для hr 'content' => '<hr />'.
Зачем эта косая?
Чтобы указать, что элемент не требует закрывающего кода. Ср. <img src="something.jpg /> vs. <img src="something.jpg></img>.

Обязательной такая черта она является только в XHTML, но в HTML не мешает.
Этот аккаунт официально заброшен. Связаться со мной можно по всё тому же адресу, [email]dmymd@yandex.ru[/email]. Всем пока!

fujhi

Хотя у нас, собственно, как раз XHTML (см. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> в начале кода страницы), так что косая черта так очень к месту.
Этот аккаунт официально заброшен. Связаться со мной можно по всё тому же адресу, [email]dmymd@yandex.ru[/email]. Всем пока!

mnashe

Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

RawonaM

Цитата: mnashe от июля 23, 2012, 09:51
        'bgcolor' => array('optional' => true, 'value' => 'background-color: $1;', 'match' => '(#?w+)'),
Цитата: mnashe от июля 23, 2012, 09:51
        'bgcolor' => array('optional' => true, 'value' => 'background-color: $1;', 'match' => '(#?w+)'),
Цитата: mnashe от июля 23, 2012, 09:51
        'color' => array('optional' => true, 'value' => 'background-color: "$1"; border: none; ', 'match' => '(#?w+)'),
Цитата: mnashe от июля 23, 2012, 09:51
         'bgcolor' => array('optional' => true, 'value' => ' style="background-color: $1"', 'match' => '(#?w+)'),
\w


Цитата: mnashe от июля 23, 2012, 09:51
        'padding' => array('optional' => true, 'quoted' => true, 'value' => 'padding: $1;', 'match' => '([0-9A-Za-z ]+)'),
        'border' => array('optional' => true, 'quoted' => true, 'value' => 'border: $1;', 'match' => '([0-9A-Za-z #]+)'),
        'border-width' => array('optional' => true, 'quoted' => true, 'value' => 'border-width: $1;', 'match' => '([0-9a-z ]+)'),
        'border-style' => array('optional' => true, 'quoted' => true, 'value' => 'border-style: $1;', 'match' => '([a-z ]+)'),
        'border-color' => array('optional' => true, 'quoted' => true, 'value' => 'border-color: $1;', 'match' => '([0-9A-Za-z #]+)'),
        'border-top' => array('optional' => true, 'quoted' => true, 'value' => 'border-top: $1;', 'match' => '([0-9A-Za-z #]+)'),
        'border-bottom' => array('optional' => true, 'quoted' => true, 'value' => 'border-bottom: $1;', 'match' => '([0-9A-Za-z #]+)'),
        'border-left' => array('optional' => true, 'quoted' => true, 'value' => 'border-left: $1;', 'match' => '([0-9A-Za-z #]+)'),
        'border-right' => array('optional' => true, 'quoted' => true, 'value' => 'border-right: $1;', 'match' => '([0-9A-Za-z #]+)'),
[0-9A-Za-z ] == [\w ]

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр