articleで入力した文章の最後が引用文の場合、その後のコメントが引用文に飲み込まれる

  • ページ: BugTrack
  • 投稿者: reimy
  • 優先順位: 重要
  • 状態: 完了
  • カテゴリー: プラグイン
  • 投稿日: 2003-04-14 (月) 10:09:50
  • バージョン:

メッセージ

articleで次のように最終行を引用文として入力された場合、その後ろのcommentが引用文の一部となってしまう。

#article (※ここに#articleを設置したと思いねぇ)

引用文のテスト

reimy (2003-04-14 (月) 10:13:27)

次の行は引用文です。

この行は引用文です。

  • これはコメントです。 -- reimy 2003-04-14 (月) 10:13:49
  • コメントが引用文に飲み込まれます。 -- reimy 2003-04-14 (月) 10:15:05
  • また、articleそのものが引用文となっているため、article内のブロック要素からの脱出に空行は使えない(単なる改行になる)。 -- reimy 2003-04-14 (月) 11:38:20
  • articleそのものがblockquoteになっているという今の仕様はやっぱりいろいろまずいなあ。BugTrack/295参照。 -- reimy 2003-04-14 (月) 21:34:27

#comment


  • こちらが正しいコメントの位置です。 -- reimy 2003-04-14 (月) 10:14:20
  • デフォルトのarticle.inc.phpはコメント自体が引用文になっているので、上記の例では引用文を>>で入力して飲み込まれる様子をはっきりさせています。article.inc.phpを引用文にしないよう改造した場合でも、articleの最終行を引用文(>)にした場合、同様に飲み込まれます。 -- reimy 2003-04-14 (月) 10:17:28
  • 安直な対策はarticleの末尾に----を出力して罫線を引いてしまう(笑い) -- reimy 2003-04-14 (月) 12:03:08
    • それは冗談としても、articleとcommentの間に空行が常に維持されれば解決するんですけどね。commentが空行を食っちゃうのでそうもいかない… -- reimy 2003-04-14 (月) 22:32:23
  • 同様の症状がincludeでも発生しているようなんですが、これはCVS難民故? -- たらこせる 2003-04-14 (月) 22:39:32
    • includeやcalendarviewでも起こり得ますね。includeの直後に空行を置けば対処可能かな? -- reimy 2003-04-14 (月) 23:42:31
      • うーん、includeで発生するかどうかわからないなあ。具体例あります?>たらこせる 2003-04-15 (火) 05:32:41
        >引用文
        #include(hogehoge)

        これでincludeされるページが引用文になってしまうのは正しい動作だと思います。引用文はブロック型プラグインを子要素にできますので。

        ただし、デフォルトのincludeプラグインは、includeされるページ名のタイトルが「*タイトル」という形で挿入されるので、引用文の子要素になってしまうことはないはず。タイトルを出ないように改造した場合は、(理屈では)上記のような動作になるはず。

        #include(hogehoge)
        通常の文章

        とあって、includeされる側のページの最後が引用文で終わっていても、通常の文章が引用文にはならないですね。これも正しい動作だと思います。

  • 不確かな中身ですまんが引用>includeで発生しているだけなので問題なしかな。 -- たらこせる 2003-04-15 (火) 16:09:40
  • 記事の最後に行頭'<'をくっつけて引用を閉じてやればいいんじゃないかと思うんですが。 -- ぱんだ 2003-04-15 (火) 17:44:11
      $article .= $msg;
    + $article .= "\n<";
      	
      if (ARTICLE_COMMENT) {
  • デフォルトのarticle.inc.phpのようにarticle全体がblockquoteになっているときのみ、上記のやり方で対処できますが、blockquoteを排除している場合は下記のように対処する必要があります。 -- reimy 2003-04-17 (木) 22:37:59
      $article .= $msg;
    + $article .= "\n\n// 以下コメント";
      	
      if (ARTICLE_COMMENT) {
    これでcomment.inc.phpによって空行を食われてしまう現象を防げます。このほうが汎用性があります。
    • なるほど。//で分断するのはいいアイデアですね。 -- ぱんだ 2003-04-17 (木) 23:22:28
  • cvsに投入しました。cvs:plugin/article.inc.php(v1.4:r1.14) -- ぱんだ 2003-04-17 (木) 23:56:24

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-05-30 (水) 16:55:54
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.282 sec.

OSDN