real money online slots, http://www.onlinecasinosgamblingusa.com/ casino online gambling,  6232, http://www.bestusaonlinecasinosus.com/ bonus casino,  zbcryl, http://www.bestusaonlinecasinosites.com/ online casino guide,  223281, http://www.playonlinecasinoforrealmoneyusa.com/ play casino online,  >:-[, http://www.bestcasinosforrealmoney.com/ online casino games real money,  ozwkv,
/SC改行改段書式の導入
#indent
#contents
////////////////////////////////////////////////////////////////
* 方針 [#l9134ee3]
- 従来の行末にある「~」で行われる改行は、行頭書式に統一すべし。(要語先行)
-- 統一した場合、Wikiコードから書式を読むとき、行頭の縦読みだけで済む。
-- Wikiの行末書式は「~」しかない ⇔ 行頭書式が殆ど
- 行頭が「##;##」で始まる「SC改行改段書式/SemiColon改行改段書式」を導入
-- 多くのプログラミングで用いられる文終了記号「##;##」を次の文の開始記号と再解釈し、行頭に持ってきた。

////////////////////////////////////////////////////////////////
* 仕様 [#b00c412d]
- 行頭が「##;.##」の行は無書式として、何もせずに前の行に続ける。
- 行頭が「##;,##」の行は行頭で改行する。
- 行頭が「##;:##」の行は行頭で改段する。空行を挿入せず、他の行頭書式に干渉しない。(形式段落用)
- 行頭が「##;;##」の行は行頭で改段する。空行を挿入し、他の行頭書式を終わらす。(意味段落用)
- 行頭が「##;##」 は改行の省略表現。(文節区切りで改行する体裁用)
- 行頭改行が段頭に来た場合は無効化する。
- 区切りの強いさは、点の大きさと数に比例する。
-- Cなど多くのプログラミング言語での区切りの強い順になっている。
-- 「##.##」はPHPでは文字列連結演算子に使われる ⇒ 行結合

////////////////////////////////////////////////////////////////
* 改造 [#g974592b]

- ##lib/convert_html.php## で、
;.##class Body## の 
;.##function parse## の 
;.##while (!empty($lines))## 中の下の方に以下のコードを変更・挿入。
;,これより、段頭の改行が無効化される。
  ### diff
    // Body
    class Body extends Element
    {
        ...
        
        function parse(& $lines)
        {
            ...
            
            while (!empty($lines))
            {
                ...
                
                // The first character
  -             $head = $line{0};
  +             $head  = substr($line,0,1);
  +             $head2 = substr($line,0,2);
  +             
  +             // ; Format
  +             if ($head2 == ';.') {// SCNF: SemiColon-NoFormat
  +                 $this->last = & $this->last->add(new Inline(substr($line, 2)));
  +                 continue;
  +             }
  +             if ($head2 == ';,') {// SCNL: SemiCcolon-NewLine
  +                 $this->last = & $this->last->add(new Inline("\r".substr($line, 2)));    // Same as Default to Add Text
  +                 continue;
  +             }
  +             if ($head2 == ';:') {// SCNP: SemiColon-NewParagraph (Week)
  +                 $this->last = & $this->last->add(new Paragraph(' '.substr($line, 2)));  // Same as ~-Format to Add Paragraph
  +                 continue;
  +             }
  +             if ($head2 == ';;') {// SCNP: SemiColon-NewParagraph
  +                 $this->last = & $this->last->add(new EmptyLine($this->last));           // Same as Empty Line to add Inter-line Space
  +                 $this->last = & $this->last->add(new Paragraph(' '.substr($line, 2)));  // Same as ~-Format to Add Paragraph
  +                 continue;
  +             }
  +             if ($head == ';') {// SCNL: SemiCcolon-NewLine // Equal to ($head2 == ';,')
  +                 $this->last = & $this->last->add(new Inline("\r".substr($line, 1)));
  +                 continue;
  +             }
  ###
-- 「##-##」で始まる行は ##class Body## からの削除。
-- 「##+##」で始まる行は ##class Body## への追加。
- ##lib/convert_html.php## で、
;.##class Inline## の 
;.##function & toPara## に以下のコードを挿入。
  ### diff
    class Inline extends Element
    {
        ...
        function & toPara($class = '')
        {
            $obj = & new Paragraph('', $class);
            $obj->insert($this);
  +         
  +         if (substr($this->elements[0],0,6)=='<br />'){          // To cancel SCNL which is after empty-line.
  +             $this->elements[0] = substr($this->elements[0],7);
  +         }
            return $obj;
        }
    }
  ###

////////////////////////////////////////////////////////////////

    初基 一覧 検索 最新 バックアップ リンク元   ヘルプ   最終更新のRSS