管理 | 差分 || 新規作成 || カテゴリ一覧 | ページ一覧 | 更新履歴 | 差分履歴 || アンテナ || PUT || more≫ ≫omit
shortcut: FrontPage || WikiLab | StoreRoom/最新 | 日々の泡 | むず痒いパソコン日記/最新 || HelpPage ||[edit]
category: WikiLab/WorkReport

WikiLab/WorkReport/TagLinks - tag-links のカスタマイズ。

LastModified : Fri Oct 16 17:01:21 2015
[管理]

tag-links のカスタマイズ。

てすと。

[TOP↑] [管理]

[[#tags:ToDo]]

セクションへのジャンプ。by yakty 先生。

[TOP↑] [管理]
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 専用コメントボックス。引数つき編。

[TOP↑] [管理]

tag-links 専用 コメントボックス。通常のコメント欄にくっつけ編。

[TOP↑] [管理]
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

これで全部かな? 何か抜けてる?

空コンテナ。

[TOP↑] [管理]
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;
}

こう? - どらえもん

タグにメタ文字が使えない?

[TOP↑] [管理]

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::の方がいいかな? - どらえもん

どらちゃん、ありがとう。多分解ったわ。 - しずか。

ToDoToDo tag-links 高機能化計画。

[TOP↑] [管理]

とうとう、yakty 先生が どらえもん の皮を脱ぎ捨て、本格的に動き出した!!

付箋が流行っているようなので、便乗してみたりとか。

[TOP↑] [管理]

autumnpnk/wiki.css この CSS で ほげほげ 付箋のように表示。 ただし、メモ部分が長いと、とてもマヌケな罠。

ほげほげ この部分が長いと、全然付箋ぽさがなくなる罠。ほらね。この部分が長いと、全然付箋ぽさがなくなる罠。ほらね。この部分が長いと、全然付箋ぽさがなくなる罠。ほらね。この部分が長いと、全然付箋ぽさがなくなる罠。ほらね。

やっぱりこれ、タグによって色を変えるぐらいの芸当が欲しいよねぇ。っていうか、荷札の色を変えたいというか、これだと荷札は文字列で表示したい気がしたな。

っていうか 1行に 2つ以上タグを書いた時はどーすりゃいいんだしょうね。 ほげほげ こんな感じでほげほげほげほげ 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)

もし表示される内容を次のタグっぽい部分までにしたいならこう。だと思う

同じメモに二つのタグをつけたいことがあるので(WikiWiki URLめもURLめも http://jm.vis.ne.jp/sbox/ みたいな感じで)、後者はやんないほうがいい感じ?

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 という特殊ページはどうかな?

[TOP↑] [管理]

タグ削除機能はどうかな?

[TOP↑] [管理]

整形ルール近辺ごちゃごちゃ。_

[TOP↑] [管理]

済み

[TOP↑] [管理]
shortcut: FrontPage || WikiLab | StoreRoom/最新 | 日々の泡 | むず痒いパソコン日記/最新 || HelpPage || [edit]
select css: default | sakura | mono | greenheck | snow | NN4.x用(多分) || LinuZau!! | VikiWiki!? || others |

管理 | 差分 || 新規作成 || カテゴリ一覧 | ページ一覧 | 更新履歴 | 差分履歴 || PUT