masterspammer (masterspammer) wrote,
masterspammer
masterspammer

WIKI - мысли вслух

Получается так - есть два флага - абзацыРазрешены и абзацОткрыт; по умолчанию флаг абзацыРазрешены=1 и становится равным нулю при открытии любого блока и снова единицей при закрытии всех (действительно, вне блоков текста без абзацев не бывает). Кроме того, он может стать =1 ещё в некоторых случаях - когда блок начинается с пустой строки или когда после непустой строки
идёт пустая. Понятно, что когда внутри блока идут непустые строки - ещё не понятно, будут абзацы или это один большой кусок текста.
В таком случае (флаг абзацыРазрешены=0) строки добавляются в стек (здесь и далее - стек строчных команд форматирования);
на дне стека типичная заглушка из "никакой" команды форматирования. При установке в 1 флага абзацыРазрешены если стек не пуст, то открывается абзац, выплёвывается весь стек и закрывается абзац. В случае (абзацыРазрешены=1) если абзацОткрыт=0 (в том числе и после "выплёвывания" стека), то при первой же непустой строке абзац открывается и делается абзацОткрыт=1.

Флаг абзацОткрыт сбрасывается при закрытии абзаца (например, из-за окончания текста или текущего блока.

Отдельно следует упомянуть, что происходит с флагом абзацыРазрешены при закрытии блока. Есть три варианта - просто сбрасывать (то есть если в родительском блоке был текст ДО дочернего и будет текст ПОСЛЕ, то всё трактуется как будто они в разных блоках), "вспоминать", какой он был или ПРИНУДИТЕЛЬНО устанавливать (с выплёвыванием стека, если вдруг он есть) перед открытием (считая, что если в блоке есть дочерние блоки, то просто текста он содержать не может - только абзацы, как и основной документ) и естественно возвращать в 1 (вспоминать нечего) при закрытии (тогда наличие вложенного блока в родителе автоматически обращает его текст в абзацы).

Пока я склоняюсь ко 2-му варианту (так как есть возможность вручную воспроизвести результат как он был в 3-ем, а вот из 3-го 2-й не получить).

P.S. Да, есть ещё списки - в элементах списка абзацев не бывает, только перевод строк; равно как и в заголовках (всех видов - <th> <hN> и <caption>).
Tags: wiki, Планы
Subscribe

  • 3D в La Scala

    Это вот про такую картинку - где сзади стенки сходятся и зажимают треугольный рассекатель. И вот ещё про что.…

  • От субботы до субботы!

    Шкафчики красиво подвесил - в точности в той конфигурации, как они висели на прошлой их (не нашей!) кухне. Обнаружил небольшой уклон вбок (заметную…

  • TV

    Купил себе два телека. Кинескопный и ЖК. Оба - мелкие автомобильные, как я и хотел. Именно о кинескопном мечтал очень давно, то переставая, то снова…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments