新規作成 | 管理 | 差分 | 検索 | FrontPage | ページ一覧 | 更新履歴 | RSS

PlugInSandBox - 使うだけでいっぱいいっぱいな人用。

管理

使うだけでいっぱいいっぱいな人用。

Category:PlugInTest

2021-04-22 こう?

2021-04-22? こうとか?

sub readup {
  my $fname = shift;
  open(INFH, $fname) or die "can't load file: $@";
  my $nl = $/;
  undef $/;
  my $result = <INFH>;
  close DEF;
  $/ = $nl;
  return code_convert(\$result, $kanjicode);
}

PlugIn/brackets 雑談 PlugIn/count PlugIn/tag-links PlugIn/nth コメントテスト PlugIn/sort SHIMADA PlugIn/from-to ページ名なしの不具合について test1 PlugIn/today CalTest/2003-08-20 PlugIn/include PlugIn/joke PlugIn/edit-form PlugIn/last-days PlugInで支出管理 PlugIn/make-hash-table PlugIn/repeat-times PlugIn/map PlugIn/スペシャルフォーム PlugIn/アプリケーション PlugIn/全部入りセット PlugIn/grep-lt PlugIn/when* PlugIn/now PlugInで遊ぶ? PlugIn/* PartLink PlugIn/机上のソース PlugIn/書式について PlugIn/cat PlugIn/source PlugIn/read PlugIn/plugins PlugIn/grep-gt S式でPuzzleWiki PlugIn/pages PlugIn/sprintf PlugIn/-1 PlugIn/exist? PlugIn/カレンダー関連の整理 PlugIn/grep AntennaSiteName PlugIn/yesterday PlugIn/split PlugInで支出管理/2004 PlugIn/reverse RecentChanges PlugIn/max PlugIn/join PlugIn/tabulate PlugIn/case PlugIn/bundle テーブル整形の不具合について PlugIn/set! PlugIn/search-page PlugIn/tail PlugIn/map-n PlugInSandBox CalTest/2003-07-24 PlugIn/FreeTalk PlugIn/puthash PlugIn/date-stamp ただ今の実験内容 PlugInを駆使して予定表を作る SandBox PluginDefinition PlugIn/if PlugIn/= PlugIn/bold PlugIn/新作投稿 PlugIn/+ PlugIn/not test PlugIn/date PlugIn/カレンダー遊び PlugIn/day-number comment_test PlugIn/find-paragraph PlugIn/when PlugIn/list PlugIn/+1 PlugIn/days PlugIn/def PlugIn/listing PlugIn/puzzle-row PlugIn/gethash InterWikiName PligIn/最新版 CalTest/2004-05-31 PlugIn/read-by-part PlugIn/lt? PlugIn/lambda PlugIn/day-of-week PlugIn/div CalTest/2003-07-25 PlugIn PlugIn/let PlugIn/head PlugIn/pa PlugIn/replace PlugIn/FrontPageRica PlugIn/comma PlugIn/this-page PlugIn/search-paragraph PlugIn/eq CommentTest test2 PlugIn/gt? PlugIn/br PlugIn/progn PlugIn/- PlugInSandBox/sho

あはは。おもしろーい。

インクルードされた見出し。

管理

見出しが含まれると、部分編集のリンクが紛らわしい事になってしまうかも。

豊かでユニークな愛の文字(c)写研。<ここに来たか。includeされた見出しの部分編集から書き込み。コメント欄からの書き込みは無視されるようですが。

includeされた見出しの編集部分からの書き込みは結構危険かも…以下、WalWiki?自体をあまりいじったことのない人間の戯言

このPlugInSandBox自身は現在4つの見出しが記録されており、上から見出しごとに1,2,3,4とIDが振られているようですが、includeで見出し込みで呼び出されると、見出しは5つ存在することになります。

WalWiki?にはページと見出しid(とテキスト)を渡すようなFormになっているようなので、今回の例ではincludeで呼び出された見出し(最後の見出し)は「id5」としてWalWiki?に渡しています。当然、このページのデータにはid5にあたる見出しはなくid4が最後なので、データの末尾に「id5があったものとして」処理されたんだと思います…たぶん

これが途中に見出し付きでincludeしていると、おそらく編集リンク先の編集画面が「ずれた」形になると思います…たぶん--たろう

対応策について

管理

部分編集についてですが、見出しにはなるけど編集ボタンはつかないというようなマークアップ記号(行頭に"!"とか)を新しく定義して、インクルードするときは "*" → "!" の置換をかけるというのはどうでしょう。 スクリプト全体を見直さずに「改造」の範囲内でやるのは限界があるんですけどね。もともとYukiWiki? → WalWiki?でかなり手が入ってますから。 --SHIMADA

私も編集ボタンのつかない見出しはちょっと考えてました。「ページ頭に目次を作らない見出し」の改造をしてるので、それと同じような要領でできるかな、と。「インクルードするときは "*" → "!" の置換」をお願いできるなら…。- rica

ちょいと見栄えが悪くなりますが、「*見出し」と書かれた1行目に!をつけて「!*見出し」という形で出力するというのはどうでしょうか?…いや、単に「置換処理って大変そうだなぁ…と思っただけなんですが-たろう

括弧の対応チェック

管理

閉じカッコが1個足りないところがあったため、それ以下が全てpluginの対象範囲になっていた模様…ということで直しました-たろう

ひょっとしたら、末端記号(「)##」とか)を用意して、括弧の対応チェックが必要なのかもしれませんね-たろう

TinyReader?のエラーチェックが甘いんです。最後まで読んで括弧が閉じていなければ、ほんとはエラーにしないといけないんだけど、そこらへんをさぼっていたので。すみません。 --SHIMADA

テストしてみよう

管理

##(join '\n\n' (find-paragraph 実験))

置換も組み込んでみました

##(join '\n\n' (replace '^\*' '!' (find-paragraph 実験)))

確認用

##(join '\n\n' (find-paragraph 実験))


複数の単語で and or 検索で表示とかは…。

from test

<span onMouseOver="alert()">テスト</span>

test - <span deactivatedonMouseOver="alert()">テスト</span>


こう?

XSS ?

管理

あ、RecentChange? まずいですね。<span>とかのタグが有効になってしまっている。 というか、RecentChanges は検索されなくてもいいような気もしますが。-rica

というか、下の「テスト」という文字列、JavaScript? 動作してます…。-rica


from test

<span onMouseOver="alert()">テスト</span>

test - <span deactivatedonMouseOver="alert()">テスト</span>


from CommentTest

<i>イタリック</i><font color="red">てすと赤?</font><u>アンダーライン?</u>。<span style="font-weight:bold">すぱーん</span>

検索:赤 検索結果もタグが有効です。

こっちはOK。


対応。

管理

PlugIn に find-paragraph の改訂版をはっときました --SHIMADA

あれ、そもそも WalWiki? 側の [[ #recent ]] の更新履歴もタグが有効になってますね。 CommentTest のページに「こっちはOK。」とか書いてるので、最初の wal4 の時点ではなかった問題のような。

個人用の wal.4.3 で試しましたが、[[ #recent ]] の subjectline タグが無効になってます。

(SHIMADA):これは [early sanitize] の副作用でした。 これでどうでしょう?

# 僕もコード全体を把握していないからいろいろいじりだすと大変ですね。

--- wiki.cgi.old        Fri Jun 27 18:48:22 2003
+++ wiki.cgi    Fri Jun 27 18:47:34 2003
@@ -741,16 +741,18 @@
 sub print_content {
     my ($rawcontent) = @_;
 #   print &text_to_html($rawcontent, toc=>1);               # Walrus add [part edit]
-#   print &text_to_html($rawcontent, toc=>1, partinfo=>1);  # Walrus add [part edit]
+    print &text_to_html($rawcontent, toc=>1, partinfo=>1);  # Walrus add [part edit]

-    # SHIMADA add [plugin, early sanitize]
-    my ($cooked) = escape($rawcontent);
-    print &text_to_html(do_plugin($cooked), toc=>1, partinfo=>1);
 }

 sub text_to_html {
     my ($txt, %option) = @_;
-    my (@txt) = split(/\n/, $txt);
+#   my (@txt) = split(/\n/, $txt);    # SHIMADA del [plugin, early sanitize]
+
+    # SHIMADA add [plugin, early sanitize]
+    my ($cooked) = do_plugin(escape($txt));
+    my (@txt) = split(/\n/, $cooked);
+
     my (@toc);
     my $tocnum = 0;
     my $partnum = 0;

差し替えました。OKのようです(^-^)。- rica

includeの #embedded 置き換えテスト

管理

from comment_test

file:bubble_door.jpg

OK. --SHIMADA

test: 今更 hogehoge について考えたって、しようがないと思うのです…。

かてごり: テスツページ

tabulate-with-head

管理

(tabulate 項目数 (bold 項目1 項目2 ...) 内容1-1 内容1-2 ...)というパターンをよく見かける(ような気がする)ので作ってみました。ってここに書いていいのでしょうか…。

(def tabulate/head ヘッダつきの表を作る
  (lambda ($head)
    (tabulate (count (split / $head))
              (bold (split / $head))
              $_rest_)))

(tabulate/head
 日付/内容
 2003-07-25 S式中毒の禁断症状が出る
 2003-07-26 禁断症状治まらず)

日付内容
2003-07-25S式中毒の禁断症状が出る
2003-07-26禁断症状治まらず

実は最初、

(tabulate/head
 (list 日付 内容)
 2003-07-25 S式中毒の禁断症状が出る
 2003-07-26 禁断症状治まらず)

みたいな使い方ができるようにしようとしたのですが、tech:プラグイン を見る限りでは仕様的に無理のようです。 --hirofummy 2003-07-26 (Sat) 00:24:10

あ、この点もsseと非互換な仕様のひとつであることに今気づきました。 --hirofummy 2003-07-26 (Sat) 00:51:08

いや待てよ、(list 日付 内容)もできるのかな? --hirofummy 2003-07-26 (Sat) 00:55:38

list を定義してみました。ちょっとクセがありますが使えます。 --SHIMADA 2003-07-27 (Sun) 19:38:39

おお、ありがとうございます。早速実験。

(list (list 1 2) (list 3 4)) => ARRAY(0x18df8f0) ARRAY(0x18df920)
((lambda ($a) $a) ((lambda ($a) $a) (list (list 1 2) (list 3 4)))) => 1 2
((lambda () $_rest_) (list 1 2) (list 3 4)) => ARRAY(0x18cc628) ARRAY(0x18df9e0)
((lambda ($a $b) (list $a $b)) (list 1 2) (list 3 4)) => 1 2 3 4

分かったような分からなかったような。 --hirofummy 2003-07-27 (Sun) 22:57:01

%%あ、これって多値渡しに使えそうですね。 --hirofummy 2003-07-27 (Sun) 23:00:50%%

ああ、何か勘違いしてたような気が致します。 --hirofummy 2003-07-28 (Mon) 19:49:12

スコープ

管理

実験あるのみ。

(let (($t (let (($x レキシカルスコープ))
            (lambda () $x))))
  (let (($x ダイナミックスコープ))
    ($t)))

ダイナミックスコープ のようです。 --hirofummy 2003-07-29 (Tue) 20:57:59

「素朴にして可憐」がモットーですので、当然ダイナミックです。(<それ矛盾してます) --SHIMADA 2003-07-29 (Tue) 21:01:13

現在の実装は、「Wikiページ上でロジックを実行する」という遊びコンセプトにはどのくらいWikiの使い道を拡張するポテンシャルがあるのか、という実験色が強く、変数やlambdaといった要素もあとづけで増築したものですので、まっとうな言語というよりはアドホックな「Lisp風の文法を持つsh」という感じの仕様になっています。

awkのように用途に特化した言語という方向性を意識しているのですが、やっぱりsseやRuchemeのように普通のSchemeもいいなあと思い始めています。--SHIMADA 2003-07-29 (Tue) 21:20:10

sseはレキシカルスコープにしてみたけどそういえばSHIMADAさんのはどうなってたかなあと思って試してみました。sseがScheme風の仕様になっているのは、作り始めた時点ではSHIMADAさんの仕様をあまり意識していなかったのと、Scheme以外のLisp系言語を触ったことがないためです。最初のうちは字句構成とシンボルの扱いが少し違うだけだと思っていたのですが(我ながら浅はか…)最近になってようやくそれだけではないことに気づきあれこれ実験している次第です。

私はSHIMADAさんの方向性がよいかと思います。Wiki上に書く場合文字列は"でくくらない方が自然ですし、スコープを意識して書かなければいけない場面はほとんど出てこないと思いますので実装が素朴に保てる形にする方がいいと思っています。

そんなわけでSHIMADAさんの仕様に惹かれてはいるのですが、Scheme風の仕様(sseはcons/car/cdrすらないのですが…)が好きなのもまた事実で悩ましいところです。

しかしS式プラグインのポテンシャルはすごいですね。tag-linksやら予定表やら支出管理やらMetaWord?やら面白いおもちゃアイディアがいっぱいで楽しい限りです。 --hirofummy 2003-07-29 (Tue) 23:00:49

ああ、なんか怒られちゃってます。ノリコ先生って誰?--SHIMADA 2003-07-30 (Wed) 10:05:38

ごめんなさい、ごめんなさい、ごめんなさい。ところでヒロシ君ってどなた? --hirofummy 2003-07-30 (Wed) 21:20:38

追記。

管理


タイムスタンプを更新

…また名無しページを作ってしまったんですが… (名無しページを作れないようにする修正入れ忘れてました)。- rica 2003-07-27 (Sun) 22:21:58

あれ、ひょっとして、(edit-form ページ名) のページ名を指定してなかったんですか? ページ名なしになる理由が分かった。そういうチェックが必要なのか‥‥‥。_| ̄|○ --SHIMADA 2003-07-28 (Mon) 07:25:49

…あ、やっぱり要るんでした?(笑…いごとじゃないですか?)。途中でふと「ページ名を指定する必要があったんだっけ?」とは思ったんですけど…。ボケナスでスミマセン m(_"_)m。

あれぇ、じゃあ、違うページに追記したり出来るんですか? - rica 2003-07-28 (Mon) 08:40:18 ごめんなさいてすと。 え!?どこ!? と思ったら、あんなところに。

そうか、他のページにも出来たのか…。- rica 2003-07-28 (Mon) 08:44:43

この追記フォームも、書き込み後に書き込み位置にジャンプしてくれるといいなぁと思ったのですが…。あれ? この Wiki は、コメント欄からの書き込みは、ページ先頭から動かないんだったっけ…。- rica 2003-07-28 (Mon) 08:47:21

お名前:
あ、保存後のジャンプは部分編集だけなんですね。 っていうか、他のページに書き込んだときにその位置にジャンプはムリか。

てすと。

管理

'''from from?

こんなルールは?

{{に/な;間違っていたので直します(SHIMADA)}} と書くと、 こんな風に表示。タグ↓ - rica 2003-07-25 (Fri) 19:33:30

<del style="display:none">に</del><ins title="間違っていたので直します(SHIMADA)">な</ins>

いいですねー。 もっと欲を言うと、

“□ タイムスタンプを更新”

の隣に

“□ 校正記号を削除”

みたいなチェックボックスがあって、確認済みの校正記号を一掃できるといいですね。

そのタイミングで削除されるさらに言うと、それをきっかけにして、更新前のテキストが履歴として保存されると、頭に描いていた妄想どおりなんですが。(笑) -- SHIMADA 2003-07-25 (Fri) 23:36:53

]]'''

'''from from?

表の感想をこちらにコメントしてみる

ricaさんの表のページの文章読んでいたら、「書くのはどこか一箇所でざくざく書いて、書いたTextの分類はほぼ自動で(もしくは手軽に整理)できるようにしたい」ってことなのかな?と思った。 - たろう 2003-07-04 (Fri) 13:04:33

…ん? どこですか?##(br) どっちかって言うと、書くのはザクザクページ作って書き散らして、見(せ)るときはある程度まとまった分量を分類整理された形にしたい、という感じかなぁ。##(br) 以前memn0ckさんが、FrontPage の一行コメントから書き込んだメモ類を自動的にページに分類してくれればいいのに、というようなことを仰ってましたが。もちろん、私もそれが出来るととってもよいとおもいます(memn0ck さんのところの FrontPage は名前欄を利用してカテゴリみたいなのを書いていて、きれいに分類できそうなんですけどね)。- rica 2003-07-04 (Fri) 13:17:02

どこって…んーと、「Wikiを前に苦悩している様子を見て」(笑)かな? ##(br) 全体的にricaさんのやりたいことってのは、なんとなく方向性があるように思えるなぁ…なんだろう…と考えて、上記ようなコメントをしてみたわけです- たろう 2003-07-04 (Fri) 13:24:08

ああ、そういうことでしたか。「どこかにそんな事書いたっけ!?」と思って読み返して「?」となりました(笑)。一箇所に書くにしろ、あちこちに書き散らすにしろ、書くときはなるべく自由に書けて、編集も手動じゃなくて、Wiki さんに表示上でナントカしてもらう、ということなのかな…。要は ラクがしたい(笑)。でも一方で楽をするために色んなことを考えてこんがらかって、しかも「自分では実現できない」という辺りが、情けなくも楽しい感じです…。- rica 2003-07-04 (Fri) 13:33:00

いや、「Watsの方が要望にあうのかな?」とふと思っただけなんですけどね…ただ、「設定がややこしいからなぁ…」とも思いましたが(笑) - たろう 2003-07-04 (Fri) 13:40:54

の…乗り換えるとなるとデータの移行がエライことに…(笑)。##(br) 一番いいのは、妄想上の RicaWiki を実際に組んでみることなんですが、下にも書いたようにそんなことは不可能な上に、今朝から色んな事が絡まってきて妄想すら <del>瞑想</del> 迷走状態に突入してしまいました(;_;)。- rica 2003-07-04 (Fri) 13:51:36

]]'''

'''from from?

更新と公開近辺(完全雑談モード)。

やっぱり、Wikiにもageとかsageとかいるんですかね(笑)-たろう 2003-07-03 (Thu) 11:51:08

いや、要らないと思うんですけどねぇ(笑)。でも、誤字脱字の修正なんかは更新しなくていいような。で、私は始終、誤字脱字とか、細かい表現上の修正ばっかりやってるという…。「文章をいじくりまわす」のが趣味なので(笑)。日記なんかは、本当に個人的なもので、別に更新をお知らせしなくてもいいか、とか(笑)。

最初、日記は「個人用 Wiki」に書いてたというか、「公開用」は単なる動作サンプルとして放置しておく予定だったんですけど(「日々の泡」とか「パソコン日記」も、元々はカテゴリ管理のサンプルのつもりで置いたもので)、Wiki がらみだとせっかくだから公開用にも、とか、色々使い分けているうちにどっちに何を書いたか解らなくなって(笑)、「どうしても他人様に見せられないもの」(笑)以外は、全て公開用に書くことにしたんでした。 - rica 2003-07-03 (Thu) 16:59:16 (完全雑談モード)

本来は必要ないと思うんですけどね>age,sage…ただ、公開しちゃうとアンテナとかRSSとかで「更新時間」を見られちゃうから、どうしても気にしてしまうんですよね…Webサイトの更新時間自体が一つの情報となってしまった状態ではage、sageも必要なのかも - たろう 2003-07-03 (Thu) 17:14:01

あー、そう言えば、今は早寝早起きなのでいいんですけど、夜型で朝の5時くらいとかに編集する時、「こんな時間まで起きてると思われるのはやだなぁ」とか思った気が(笑)。- rica 2003-07-03 (Thu) 17:25:40

公開しちゃうと「見られている」ことが気になりません?##(br)

「個人用」に使用しているはずなんだけど、不特定な誰かに気を使ってしまうのって変だなぁ…と思いながら、いつも気にしています(笑)- たろう 2003-07-03 (Thu) 17:29:30

ほーら間に合った。ぴったんこ(謎)。##(br) ほとんど数十秒の誤差(何が)。そうか、これでも間に合うんだ、と思ってしまっては いけない。

↑今日の日記。とても「見ている人」を配慮しているとは思えない(というか「解るように書いたらマズい」という配慮(笑))。ただ「パソコン日記」なんかは、一人で書いていると、後で読み返して自分でも意味不明ということが結構あって、公開すると一応は「人が読んでわかるように書こう」と思うようになって、それが数ヵ月後の自分を救う、と(笑)。私のところは多分 WalWiki? 近辺のヒトが RecentChanges を WikiAntenna に登録するくらいだと思うので、sage れば誰にも気付かれずに済むんじゃないかな。- rica 2003-07-03 (Thu) 17:53:30

上のような独り言を書くために、わざわざ一行コメント欄に sage機能追加してるし(笑)。-- rica 2003-07-03 (Thu) 17:55:55

本当はもうちょっと賢くなって、WalWiki? で「非公開ページ」を作れるように改造できると一番いいんですけど。2つに分けると一括で検索できなくなるのがとても困る。- rica 2003-07-03 (Thu) 18:03:01 どっちに何を書いたか判らなくなるのは、面倒がって同じ CSS を使ってるせいもあるかも、と思いついた。ページ名まで同じだったりするし。2003-07-03 (Thu) 19:23:50

…簡易「非公開ページ」機能ならなんとかなりそうだけど(パスワードとかで認証して通った場合のみ表示とか)、なんかPlugIn/includeとかで取り込んだらあっさり見れそう(笑) - たろう 2003-07-03 (Thu) 20:28:06

PlugIn/includeとかで取り込んだらあっさり見れそう<がーん(笑)。でも、プラグインを改造して、「非公開ページは取り込まない」とか出来そうな気はするんですけど(もちろん私にできるという意味ではないですよ(笑)。ふぅ、それにつけても「できたらいいな」と思うことができるようになりたい…)。- rica 2003-07-03 (Thu) 21:28:03

いや、多分プラグインとの兼ね合いも対応できると思いますけど、一番最初のプロトタイプでは高確率で発生しそうな現象な気が…(笑) - たろう 2003-07-03 (Thu) 21:51:25

なんか非公開ページとインクルード近辺から色んなことを考え初めて、妄想上の RicaWiki がこんがらかって収拾がつかなくなってしまいました…。perl を覚える以前に、「自分が何を考えてるのか」を整理する能力が必要なようです…。でも案外妄想上っていうか、頭の中だけで考えてるからこんがらかるのかな。手を動かして一々考えた事の結果を確認できるといいんだけど、手を動かす頭がない…。- rica 2003-07-04 (Fri) 13:07:24 ]]'''

'''from from?

遊んで欲しいこと。

前に、出来たらいいなぁ、と思っていた事。

SHIMADA 2003-06-28 (Sat) 13:13:48: これでどうだ!? ##(listing (replace '^from ' (replace '\n.*' (find-paragraph test))))

つまり、内容を空白に置換してるってことなんですよね? 私の Wiki は「セクションへのリンク」の改造がしてあって(大元は yaktyさんですが(笑))、ついでに WikiName? に # を含められるようにしてあるので、多分これでうまく行くような気が…。

rica 2003-06-28 (Sat) 13:47:38 と思ったのでやってみました(何かひっ絡まると困るかもしれないので、後で戻しておきます)。##(br) rica 2003-06-28 (Sat) 18:44:19 戻しました。

たろう 2003-06-28 (Sat) 14:06:58 :なるほどっ!さすが!find-paragraphを「条件を満たすパラグラフ名のリスト出力」→「パラグラフ名の内容を表示」というプラグインでできるなぁ…と思っていて、search-paragraphを考えていたのですが、そぉかぁ…目からうろこ雲がもくもく(?)状態です

2003-06-29 (Sun) 12:36:33 たろう:これではどうでしょう?

ページ単位 ##(listing (brackets (search-page test)))

パラグラフ単位 ##(listing (brackets (search-paragraph test)))

ちなみにfind-paragraphは

##(join '\n\n' (read (search-paragraph test)))

でほぼ同じように出力できます。 ]]'''

'''from from?

Includeは

SHIMADA (2003/06/26 09:14): 簡易版ですが、とりあえずこんなんでいかがでしょうか?
$plugin->def("include",
  "受け取ったページ名の内容を取り込む",
  sub {
    my @targets = @_;
    return "" unless @targets;
    my @ret;
    foreach my $target (@targets) {
      next if $target eq $form{mypage};
      push @ret, "'''from ["."[$target]"."]'''\n\n";
      push @ret, $database{$target};
    }
    return join "\n\n", @ret;
  }
);


##(include SHIMADA)

いらっしゃいませーっ。 - rica


できましたっ♪

これって、見出しごとの include とかもできるのでしょうか。検索してソートしてインクルードできる Wiki っていう妄想があるんですが。あーやっぱりちゃんと勉強しようっ。

そうだ、暫定版で放り出したままになっている、日付検索用のカレンダーっていうのもあったかもしれない。できるのかな。


]]'''

'''from from?

ページ内を見出しごとに扱う

(rica): ちょっと質問ですが、現状で(「splitして一行ずつ見ていく形」ではなくて)、「ページ内を見出しごとに扱う」というような事は出来るのでしょうか? (すみません、どういう処理になっているのか全然解ってないのです)

(SHIMADA): 塚本さんが書いた read_by_part や search_by_part のコードを利用・参照すれば、それほど難しくはないと思いますよ。

欲しい機能は

あたりですか?

(rica):辺りですっ!「read_by_part や search_by_part のコードを利用・参照」ってできるんですね(どうすればできるのかは解らず言ってます…)。関連のある記事に特定の ID みたいなものを振っておいて、一覧表示できたら便利かなと妄想してました。

# すみません、毎度見出しを付けて頂いて…。

(SHIMADA): 本当はもっと部品に分解したほうが使いまわしが効くはずなんですが、とりあえずピンポイントで実装してみました。

(SHIMADA): ごめんなさい、自ページにもヒットしたらおかしいですよね。直しました。

本文だけを取り込む版

$plugin->def("find-paragraph",
  "検索文字列にヒットするパラグラフ本文のリストを返す",
  sub {
    my $key = shift;
    my @hits = ();
    foreach my $page (keys %database) {
      next if $page eq $form{mypage};  # [ADD]
      my @parts = read_by_part($page);
      push @hits, grep { $_ =~ $key } @parts;
    }
    return @hits;
  }
);

段落リンク対応WalWiki?

$plugin->def("find-paragraph",
  "検索文字列にヒットするパラグラフ本文のリストを返す",
  sub {
    my $key = shift;
    my @hits = ();
    foreach my $page (keys %database) {
      next if $page eq $form{mypage};  # [ADD]
      my @parts = read_by_part($page);
      for (my $i=0; $i < @parts; $i++) {
        if ($parts[$i] =~ $key) {
          my $link = "["."[$page".($i == 0 ? "" : "#i@{[$i-1]}")."]"."]";
          push @hits, "from $link\n\n", $parts[$i];
        }
      }
    }
    return @hits;
  }
);

]]'''

'''from from?

妄想。

ページ内にあるリンクのリストを作るようなことが出来たら、ちょっと嬉しいかなぁ。 Wiki 内のもだけど、特に外部へのリンク集が自動的に作れるとちょっと便利かも。- rica 2003-07-29 (Tue) 18:29:24 ]]'''

from ただ今の実験内容