areaedit.inc.php

サマリページ内の指定領域のみを編集対象とするプラグイン
リビジョン0.15
対応バージョン1.4rc4
投稿者sha
投稿日2003-08-12 (TUE) 03:07:36

概要

  • #areaedit#areaedit(end)で囲まれたエリアのみを編集対象にできる[編集]リンクが右端に表示される。
  • #areaedit(end)が無い場合は、子要素のみが編集対象。
  • インライン型もあるよ。&areaedit(){body};のbody部分が編集できる。
  • ページ内のインライン型で記述された編集対象を収集。
  • ページを凍結すれば、その部分のみ編集可能な場として提供できる。

説明

  • 例えば、#comment#areaedit#areaedit(end)で囲っておくと、コメントのみが編集対象になるので修正が容易になる。
  • デフォルトでは、ページが凍結されていたり、ページに編集権限がないと、このプラグインもそれに従うが、引数で影響を受けないように指定出来る。
  • 編集エリアに#areaeditを記載することはできない。自動的にコメントアウト「//」される。
  • #areaedit(end)が無い場合には、更に編集エリアに空行を記載することはできない。自動的にコメントアウト「//」が挿入される。
  • 自作プラグイン/paraedit.inc.php?」に似ている。それとの違いは以下のとおり。←両者とも長所短所がありますので使い分けして下さい。
    1. 見出し(*,**,***)単位とは限らない。
    2. つまり、編集対象の範囲(位置と個数も含め)を指定できる。
    3. 指定範囲について、そのページ自体の凍結や編集権限に従うか否かを制御できる。
    4. プラグイン導入以外の修正が不要。
    5. インライン型もある。
  • 今回からインライン型のパーザーとして、make_link.phpclass InlineConverter?を利用してみた。PukiWikiがパージングするのと全く同じになるので検出ミスや対象間違いが防げるはず。
  • ここで実験しています→「sha:areaedit.inc.php

使用法

  • 引数の仕様
    #areaedit([start|end|btn:<ボタンの名前>|nofreeze|noauth|collect[:<page>]])
    &areaedit([nofreeze|noauth|preview[:<num>]]){<編集文字列>};
  • 引数の意味
    <編集文字列>: 編集対象。
    start: 範囲の開始。省略できる。
    end: 範囲の終了。これを引数とする記述ごと省略すると、子要素のみが対象に。
    btn:<name>: <name>をボタン名に変更。
    nofreeze: ページが凍結されていても、その範囲は凍結されてないようにできる。
    noauth: ページに編集権限がなくても、その範囲は権限があるようにできる(動作未確認)。
    collect: 同じページ内のインライン型の編集対象を収集する。
    collect:<page>: <page>で指定したページ内で編集対象を収集する。
    preview: インライン型に限り、編集時に編集対象の直前の空行や見出しから編集対象までを表示(99行分探索)。
    preview:<num>: previewに続けて「:」と数字を書くと、空行や見出しを探す最大行数を指定できる。
    • もちろん、その範囲において、凍結されてなくて、かつ編集権限がなければ実際には編集できない。

使用例

インライン型

  1. テーブルなどに記載できる。例えば下記のように記載する。すると、編集文字列の後ろに[e]リンクが出現する。これをクリックすると編集できる。
    |&ref(http://pukiwiki.org/pukiwiki.png);|&areaedit(){画像にコメント記入};|

    【表示例】(区別のため赤字で示した)

    pukiwiki.png 画像にコメント記入[e]
  2. 前の文字列とぴったりくっつくので、範囲の最初を区別したいときは、それが分かるように記載すること。後ろの方は[e]があるので範囲の終わりは分かる。ブラウザでJavascriptが有効な場合、マウスカーソルを合わせると対象範囲が色づく。
    -好きな食べ物は&areaedit(){冷やし中華でない冷麺};です。
    -好きな食べ物は「&areaedit(){冷やし中華でない冷麺};」です。

    【表示例】

    • 好きな食べ物は冷やし中華でない冷麺[e]です。
    • 好きな食べ物は「冷やし中華でない冷麺[e]」です。
  • もちろん、中括弧内{body}が空だったり、中括弧ごとが無かったりしても大丈夫。
  • 編集権限が無いときは[x]が表示されクリックできない。凍結されているときは[uf]で凍結解除のリンクになる。
  • 改行は&br;に変換される。
  • preview[:<num>]引数を付けておくと、編集時に編集対象行より前の部分(見出しや空行からの)が表示される。見ながら編集できる。

インライン型の編集対象を収集するブロック型プラグイン

  1. 次のように記述すると、同じページ内(page1)に記述されたインライン型の編集対象を集めて展開する。以下は記載方法。
    #areaedit(collect)
    #areaedit(end)
  2. あるページ(page1)にて、別のページ(page2)に記述されたインライン型の編集対象から収集する場合
    #areaedit(collect:page2)
    #areaedit(end)

    【表示例】(ただし実行後)

    [収集] page2

    1. 画像にコメント記入
    2. 冷やし中華でない冷麺
    3. 冷やし中華でない冷麺
  • [収集]ボタンが現れる。押すとインライン型の編集対象が展開される。既に記述がある場合には上書きされる。
  • 【注意】#areaedit(end)が無い場合、次の空行までを対象範囲とするので、意識して空行を用意して置かないと、関係ない記述まで食い込んで上書きされてしまうことがある。#areaedit(end)の使用を推奨。
  • ここでも実験しています→「sha:areaedit.inc.php/test

ブロック型

ページ内の好みの位置に次のように記述してください。

  1. 対象範囲を明示する場合
    • #areaedit#areaedit(end)に挟まれた範囲が編集対象に。
      ここは編集対象外
      #areaedit
        ここが編集対象
      #areaedit(end)
      ここは編集対象外
  2. 終わりを明示しない場合(#areaedit(end)を省略)
    • #areaeditから最初の空行までの範囲が編集対象に。
      ここは編集対象外
      #areaedit
        ここは編集対象
         
      ここは編集対象外。上に空行があるから。
  3. ページ内に複数埋め込んだ場合
    • #areaeditの後、#areaedit(end)が見つかる前に#areaeditが見つかった場合は、上記2.と同じ扱いとなる。
      ここは編集対象外
      #areaedit
         ここは1番目の編集対象
      #areaedit(end)
      ここは編集対象外。上にendがあるから。
      #areaedit
         ここは2番目の編集対象
         
      ここは編集対象外。上に空行があるから。
      #areaedit
          ここは3番目異の編集対象
      #areaedit(end)
      ここは編集対象外。上にendがあるから。
  4. コメント領域を編集対象にすると便利。
    • コメント部分を囲うと、コメントの修正が容易になる。
      #areaedit
      -テストです。こんな風にコメントを記入 -- [[sha]] SIZE(10){2003-08-12 (火) 04:26:11}
      -#areaeditをコメントで入力しても無駄よん。 -- [[sha]] SIZE(10){2003-08-12 (火) 04:26:57}
         
      #comment
      #areaedit(end)
  5. 自作プラグイン/addline.inc.php?」と組み合わせると便利便利。
    ボタンを押す度に編集領域を追加することができます。大項目を追加するときにボタン押せば、大項目のテンプレートを含んだ編集領域が用意されるので他の領域の影響を気にせず編集できるのがありがたいです。
    • あるページに以下のようにaddlineプラグインを記載しておきます。追加ボタン[編集領域追加]が現れます。
      #addline(領域編集,below,btn:[編集領域追加])
    • このとき、設定ファイル(:config/plugin/addline/領域編集)に以下のようなテンプレートを用意します。
      #areaedit
      * 月 日の 食の献立
      -
      #areaedit(end)
    • 例えば、ボタンを2回押してそれぞれ編集した様子を示したのが以下です(区別のために赤字で示しています)。お試しあれ。ちなみに、ここでも実験しています。覗いて見てください。→「sha:areaeditの実験2

【表示例】

[編集領域追加]
[編集]

8月13日朝食の献立

  • 右上の[編集]リンクをクリックすると、以下の「8月12日夕食の献立」とは別に編集エリアに表示されるので、その影響受けずに心理的にも気楽に編集出来ます。
    [編集]

8月12日夕食の献立

  • こんな風に編集できます。いろいろ…。

ダウンロード

ここに添付しました。御利用下さい。

  • 「&ref(): ERROR: File not found: "areaedit.inc.php.15" at page "バックアップ/areaedit.inc.php";」←提供中
    リビジョン内容
    v0.15ブロック型にcollect[:<page>]指定
    v0.14インライン型にpreview[:<行数>]指定
    v0.13debug/編集対象が空のときにメッセージが物騒
    v0.12インライン型にpreview引数
    v0.11debug/paraeditとの干渉を避ける
    v0.10debug/更新の衝突関連
    v0.9インライン型収集機能。debug/更新衝突にちゃんと対応
    v0.8debug/更新の衝突に伴うbugにちゃんと対処。いじり壊した
    v0.7インライン型でマウスカーソルで編集範囲表示
    v0.6debug/更新の衝突に伴うbugの応急処置
    v0.5debug/インライン型の凍結解除リンク[uf]にpageがない
    v0.4インライン型に対応
    v0.3凍結や編集権限の機能にちゃんと対応
    v0.2凍結や編集権限の機能に対応
    v0.1edit.inc.phpとhtml.phpを利用して新規作成。debug。

アンケート

  • このプラグインを使用していますか?一人1回のみ投票して下さい。
    選択肢 投票
    使用している 2  
  • このプラグインに満足しておりますか?
    選択肢 投票
    はい 5  
    いいえ 1  
  • 「いいえ」に投票した方に質問です。
    どのような修正を加えれば、よくなると思いますか?下記のコメントに記入して下さい。

コメント

##pcomment(reply)


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-16 (火) 23:23:49 (3968d)