tag-links のカスタマイズ。
- log:2003-12-01 tag-linksをWalWikiに
- カスタマイズのまとめ:WikiLab/BeginnerGuidance/TagLinks
てすと。
[[#tags:ToDo]]
セクションへのジャンプ。by yakty 先生。
- 2004/01/29(Thu) 18:26:51 ToDo[済] tag-links で見出し位置に飛べるといいなぁ…。
sub tag_links { my $tag= shift; my (%has); foreach my $page (keys %database){ next if $page eq $form{mypage}; next if ($page eq $RecentDiffs); my @parts = &read_by_part($page); for(my $i=0; $i<@parts; $i++){ my @matches = ($parts[$i] =~ /_${tag}_\s*(.+)$/gm) or next; foreach my $val (@matches){ my $link = ($i > 0) ? sprintf("%s#i%d", $page, $i-1) : $page; if(defined $has{$val}){ push @{$has{$val}}, $link; } else { $has{$val} = [$link]; } } } } my @result = (); my @keys = sort { $has{$a}[0] cmp $has{$b}[0] } keys %has; foreach my $val (@keys){ my @hits = map { "[[$_]] " } @{$has{$val}}; $val =~ s/$embedded_name//go; push @result, escape($val) . " @hits"; } return @result; }
That's a slick answer to a chgnlenailg question
tag-links 専用コメントボックス。引数つき編。
- 2004/03/27(Sat) 01:08:53 …ちょっとわがままなこと考えちゃった。やっぱり、ドロップダウンリストが長くなると使いづらいかなぁ。例えば「リンク集用」「お仕事メモ用」とかグループ分けをして登録して、[[#commenttag:お仕事用]] って書いたら、お仕事用のタグリストだけ表示して欲しいかも…。そんなことできんの?
- 2004/03/27(Sat) 08:42:25
引数付きのコメント欄を HTML 整形できず
って、正規表現じゃなくて、もしかして、embedded_to_html()
こっち? またまたコピペで} elsif ($embedded =~ /$embed_rcommenttag/) { return &make_commenttag($1);
として、仕方がないので(ぉembedded_to_html()
の中に書いてたのを外に出してmake_commenttag
というのを作ったら、整形だけはできた(make_commenttag()
の中身は今から書くさ)。ところで、じゃあ、昇順と降順を作りたい場合はどーすんのさ。用途から言って昇順だけありゃいいといえばいいんだけどさ。- どんどん自分が何を書いているのか解らなくなってゆく…。
- もういやじゃ。ムリな気がしてきた。だって本当に何を
書いているのかコピペしているのか解らないんですもん。
tag-links 専用 コメントボックス。通常のコメント欄にくっつけ編。
- 2004/03/27(Sat) 01:26:22 も一つ考えた。これは sbox に入れるつもりはなかったんだけど、通常のコメント欄にタグのドロップダウン付きだったら、入れてもいいかな。
- 2004/03/27(Sat) 09:48:20 これはでけた(;_;)。カンタン(;_;)。
my $TagsList = 'WikiTool/TagsList';
sub do_comment { my ($content) = $database{$form{mypage}}; my $datestr = &get_now; my $tagstr = $form{mytag} ? " ::$form{mytag}:: : " : " "; # rica add -------------------------------------------------- if($i == $cmtno){ # unless($matchstr =~ s/(\Q$embed_comment\E)/- $datestr$namestr$form{mymsg}\n$1/ unless($matchstr =~ s/(\Q$embed_comment\E)/- $datestr$tagstr$namestr$form{mymsg}\n$1/ # or $matchstr =~ s/(\Q$embed_rcomment\E)/$1\n- $datestr$namestr$form{mymsg}/){ or $matchstr =~ s/(\Q$embed_rcomment\E)/$1\n- $datestr$tagstr$namestr$form{mymsg}/){ &print_error('Comment form does not exist.'); } }
sub embedded_to_html { my ($embedded) = @_; my $escapedmypage = &escape($form{mypage}); # rica add my $contents; foreach (split /\n/, $database{$TagsList}){ if(/::(.+)::/){ my $tagarg = &escape($1); $contents .= " <option>$tagarg</option>\n"; } } # rica add end -------------------------------------------------- <!-- rica add--> $resource{tagname} <select name="mytag"> $contents </select>
sub tag_links { my $tag= shift; my (%has); foreach my $page (keys %database){ next if $page eq $form{mypage}; next if ($page eq $RecentDiffs); next if ($page eq $TagsList); # rica add
これで全部かな? 何か抜けてる?
空コンテナ。
- 2004/03/27(Sat) 10:44:14 [[#tags:]] の中身がないときも <div class="text"> の空コンテナができてしまうのをなんとかできないかなぁ。↓これ。 [[#tags:からっぽのこれ]]
sub make_tag_links { my @lines = map { "- " . $_ } tag_links(@_); return (@lines) ? &text_to_html(join("\n", @lines)) : ""; #my $html = &text_to_html(join("\n", @lines)); #return $html; }
こう? - どらえもん
- どらえも〜ん、ココロの友よ!! でけた(^-^)。これで安心して InfoBar に 重要メモが置ける。2004/03/27(Sat) 11:52:13 rica
タグにメタ文字が使えない?
2004/04/03(Sat) 15:45:32
あれ? 表示されない…。
なぜか「?」を取ってみたら OK だった…。
- ○ 今日は何の日
- × 今日は何の日?
直し方が解らないので、「?」を取りました(;_;)。
TAGの検索をしている部分でメタ文字がクォートされてないとか?もしされてなければ\Q\Eで括ると幸せになれるかも? - どらえもん
どらえも〜ん、幸せ(^-^)。時々見かける、\Q\E というのはそういう意味だったのか。 でもどらえもん、「そういう意味」がどういう意味なのか本当はよく解ってない証拠に、
my @matches = ($parts[$i] =~ /\Q::${tag}::\E\s*(.+)$/gm) or next; my @matches = ($parts[$i] =~ /::\Q${tag}\E::\s*(.+)$/gm) or next;
どっちでも表示されたんだけど、本当はどっちが正しいのかよく判らない、おれ、のびのびた。
どっちでも大丈夫だよのびたくん多分正体はジャイアン…。\Qと\Eは挟まれた部分のメタ文字をクォートするって意味だから、メタ文字ではない:を括っても影響はないから内容的には同じになるんだよ。でも必要最低限の部分を括った方が間違いは少ないだろうから::\Q$tag\E::の方がいいかな? - どらえもん
どらちゃん、ありがとう。多分解ったわ。 - しずか。
とうとう、yakty 先生が どらえもん の皮を脱ぎ捨て、本格的に動き出した!!
- 2004/04/16(Fri) 15:14:51
- タグを付箋っぽい表示にして、
- タグをボタンにして、クリックごとに(済)が ON/OFF されて、
- タグの一覧ページで表示する。
付箋が流行っているようなので、便乗してみたりとか。
autumnpnk/wiki.css この CSS で
ただし、メモ部分が長いと、とてもマヌケな罠。
やっぱりこれ、タグによって色を変えるぐらいの芸当が欲しいよねぇ。っていうか、荷札の色を変えたいというか、これだと荷札は文字列で表示したい気がしたな。
っていうか 1行に 2つ以上タグを書いた時はどーすりゃいいんだしょうね。
TagLinks抽出部分の正規表現って今はどうなってるの? - どらえもん っていうか今動いているTagLinks関連部分のソースは全部このページに載せておいて欲しいぞ
TagLinks関連部分のソース
< このページにって言うか、ToDo: 完成してる部分は BeginnerGuidance にまとめよう。
と書こうとして忘れてました…。tag-links の抽出部分というか、↑でこんがらかっているのは、整形ルールのところですが。
$line =~ s|::(.+?)::(.*)|<img src="$modifier_url_data/tag.gif" alt="$1" title="$1"><span class="tags">$1</span> <span class="tags_memo">$2</span>|g;
の (.*)
これが雑すぎなんだろうな、と思います…。- しずか
ああ、そういうことか。今のだと一行に2個タグを書いても最初のしか抽出されないだろうからそれが問題なのかと思ってた。
いえ、抽出はされるのですが、付箋仕様にしようとしたら整形が巧くいかなかっただけなのです。 2つ目の抽出てすと。 [[#tags:ほげ]]
$line =~ s!::(.+?)::(.*?)(?=$|::.+?::)!<img src="$modifier_url_data/tag.gif" alt="$1" title="$1"><span class="tags">$1</span> <span class="tags_memo">$2</span>!g;
どう?ちょっと修正
よいみたいv(^-^)。どらえもんありがとう。 やっぱり付箋仕様だと荷札アイコンじゃまかなぁ。文字列表示して付箋の中に入れちゃったほうがいいかなぁ。
今気付いたけど2個目は違うタグなのね。同じタグだと抽出されないでしょ?
あ、ほんとだ。実際には同じタグを 1行に2回以上書くことって、ないような気もしないでもないけど。
($parts[$i] =~ /::\Q${tag}\E::\s*(.+?)(?=$|::\Q${tag}\E::)/gm)
もし対応したければこう。だと思う
($parts[$i] =~ /::\Q${tag}\E::\s*(.+?)(?=$|::.+?::)/gm)
もし表示される内容を次のタグっぽい部分までにしたいならこう。だと思う
同じメモに二つのタグをつけたいことがあるので(
みたいな感じで)、後者はやんないほうがいい感じ?
CSS はまた今度考えよう…。
…<span class="tags_memo"> </span>
この空要素が小癪だ…。
やっぱり単に、タグ部分を付箋仕様表示にすりゃいいだけだったんだろうか…。
$line =~ s!::(.+?)::(.*?)(?=$|::.+?::)!qq(<img src="$modifier_url_data/tag.gif" alt="$1" title="$1"><span class="tags">$1</span>) . ((($_=$2) =~ /\S/) ? qq( <span class="tags_memo">$_</span>) : "")!eg;
空要素対策。 - どらえもん
2004/04/14(Wed) 23:53:26
TagLinks という特殊ページはどうかな?
- 2004/04/14(Wed) 22:55:05 またまた新しい改造案。
AntennaPage みたいに、プルダウンからタグを選択して表示、みたいなの。どかな?
- やっぱりこれは出来るようならあったほうが便利。
- 2004/04/16(Fri) 01:39:42 先生のおうちで出来た予感。これはなんとなく自力でも出来そうな予感がしてたので、頑張ってみてから答え合わせをしようかなぁ。
タグ削除機能はどうかな?
- 2004/04/15(Thu) 16:22:10 タグ削除機能も欲しい気がしてきた。これはちょっと難しいなぁ…。
- イメージとしては、一覧から「タグを削除」ボタンを押すと ::hoge:: の記述が hoge: に変更される、みたいなものなんだけど。…そんなややこしいことしなくても、やっぱり「手動」が一番かなぁ。気軽にタグを追加してもらう分には構わないけど、気軽に削除されるとちょっと困るかもしれないしなぁ。
- あ、::hoge(済):: のほうがいいですね、先生。
- そうすると、TagLinks ぺーじには、各タグと、それぞれ(済)を付加したプルダウンメニューがあるといいのかなぁ。
- 2004/04/15(Thu) 19:16:21 yakty 先生のおうちで出来た予感。
- 2004/04/16(Fri) 15:08:01 一覧表示ページの、(済)チェックボックスも出来た模様。
整形ルール近辺ごちゃごちゃ。_
- StoreRoom/2003/11-21 から移動。
済み
-
_ほげ_
の整形ルールをナントカすること。StoreRoom/2003/11-21
- 2004/01/29(Thu) 17:53:18 WikiTool/FormatRules では、「記号 2つで囲む」というルールなので、
::tag::
というルールに変えてみた。で、問題発覚。-
_tag_
というルールだったときには、_ToDo_
というタグを書いてもリンクにならなかったのに、ルールを変更したらタグの文字列が ToDo ページへのリンクになるようになっちゃった。なんでじゃろ。 - まぁ、ルールも含め、後で考えるよ。
- 2004/03/24(Wed) 11:08:13 結局 ::hoge:: のルールにしちゃった。ページにリンクになっちゃうのは、ある意味便利かもと思ったり。でも、title 属性で「これはタグだよ」というのを簡単に説明して表示しようかと思ったら、リンクだと subjectline が出ちゃうね。ま、細かいことは気にするな。
-
- 2004/01/31(Sat) 20:36:31 タグは行頭じゃなくてもいいことにしようかなぁ、とちょっと思ったんだけど、RecentDiffs からも拾うようになってしまった。でも、「このページは無視してね」という書き方は、前に何度か教えてもらってうっすらと知っているような気がする。
-
next if ($page eq $RecentDiffs);
他のところに書いてあったのをもらってきたよ。
-
- 2004/01/31(Sat) 20:59:17 なんとなく、ページ名のほうを先頭に持って来てみた。
- 2004/01/31(Sat) 21:42:26 < > が < > になっちゃうのがイヤンかも。
escape()
だかunescape()
だか、その辺り?- 2004/03/13(Sat) 18:12:05
push @result, escape($val) . " @hits";
をpush @result, unescape($val) . " @hits";
にしてみたんだけど、何か問題あるかなぁ。
- 2004/03/13(Sat) 18:12:05