/[pub]/suikawiki/script/misc/plugins/link/map.wp2
Suika

Diff of /suikawiki/script/misc/plugins/link/map.wp2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.12 by wakaba, Thu Apr 1 04:39:58 2004 UTC revision 1.15 by wakaba, Tue Sep 21 03:18:22 2004 UTC
# Line 23  Plugin: Line 23  Plugin:
23      use Message::Util::Error;      use Message::Util::Error;
24      my $WIKILINKING;      my $WIKILINKING;
25      my $WIKIRESOURCE;      my $WIKIRESOURCE;
26      @Namespace:
27        @@relrev:
28          http://suika.fam.cx/~wakaba/archive/2004/7/25/html-relrev#
29        @@sw:
30          http://suika.fam.cx/~wakaba/archive/2004/7/20/sw#
31    
32  PluginConst:  PluginConst:
33    @NS_XHTML1:    @NS_XHTML1:
# Line 41  PluginConst: Line 46  PluginConst:
46      {($WIKIRESOURCE ||= SuikaWiki::Plugin->module_package ('WikiResource'))}      {($WIKIRESOURCE ||= SuikaWiki::Plugin->module_package ('WikiResource'))}
47    
48  FormattingRule:  FormattingRule:
49      @Category[list]: view
50      @Name: m--wikipage-obsolete
51      @Description:
52        @@@:
53          The navigation notify that this WikiPage is obsolete and
54          should refer the other WikiPages.
55        @@lang: en
56      @Parameter:
57        @@Name: desc-after
58        @@Type: template
59        @@Default: (none)
60        @@Description:
61          @@@lang:en
62          @@@@: The description should be located after WikiPage names if any.
63      @Parameter:
64        @@Name: desc-before
65        @@Type: template
66        @@Default: (none)
67        @@Description:
68          @@@lang:en
69          @@@@: The description should be located before WikiPage names if any.
70      @Parameter:
71        @@Name: page
72        @@Type: WikiName
73        @@Default: (current)
74        @@Description:
75          @@@lang: en
76          @@@@: The WikiPage that might be obsoleted.
77      @Formatting:
78          my $page = $o->{wiki}->name ($p->{page} || $o->{wiki}->{var}->{page});
79          my $content_prop;
80          try {
81            $content_prop = $o->{wiki}->{db}->get (content_prop => $page);
82          } catch SuikaWiki::DB::Util::Error with {
83            my $err = shift;
84            $err->throw if $err->{-type} eq 'ERROR_REPORTED';
85          } catch SuikaWiki::Format::Definition::error with {
86            #
87          };
88    
89        if ($content_prop) {
90          my $obs = $content_prop->get_attribute_value
91                                            (<Q:sw:obsolete>, as_array => 1,
92                                             default => []);
93          if (@$obs) {
94            my $pp = $p->{-parent}->append_new_node
95                                     (type => '#element',
96                                      namespace_uri => $NS_XHTML1,
97                                      local_name => 'p');
98            $pp->set_attribute (class => 'm--wikipage-obsolete');
99            __ATTRNODE:%desc_before->{$pp}__;
100            my $i = 0;
101            for (@$obs) {
102              $pp->append_text (', ') if $i++;
103                __FUNCPACK{WikiLinking}__->to_wikipage_in_html (
104                {
105                } => {
106                  base            => $page,
107                  page_name_relative => $o->{wiki}->name ($_),
108                }, {
109                  o               => $o,
110                  parent          => $pp,
111                });
112            }
113            __ATTRNODE:%desc_after->{$pp}__;
114          }
115        }
116    
117    FormattingRule:
118      @Category[list]: view
119      @Name: m--html-link-navigation
120      @Description:
121        @@@: Navigation links (HTML link elements) made from content properties
122        @@lang: en
123      @Parameter:
124        @@Name: page
125        @@Type: WikiName
126        @@Default: (current)
127        @@Description:
128          @@@lang: en
129          @@@@: Target WikiPage
130      @Formatting:
131          my $page = $o->{wiki}->name ($p->{page} || $o->{wiki}->{var}->{page});
132          my $content_prop;
133          try {
134            $content_prop = $o->{wiki}->{db}->get (content_prop => $page);
135          } catch SuikaWiki::DB::Util::Error with {
136            my $err = shift;
137            $err->throw if $err->{-type} eq 'ERROR_REPORTED';
138          } catch SuikaWiki::Format::Definition::error with {
139            #
140          };
141    
142        if ($content_prop) {
143          for my $rel (
144            {uri => <Q:relrev:prev>, html => 'prev'},
145            {uri => <Q:relrev:next>, html => 'next'},
146            {uri => <Q:relrev:contents>, html => 'contents'},
147            {uri => <Q:relrev:index>, html => 'index'},
148            {uri => <Q:relrev:up>, html => 'up'},
149          ) {
150            if (my $val = $content_prop->get_attribute ($rel->{uri})) {
151              $val = $val->value;
152              for (ref $val eq 'ARRAY' ? @$val : $val) {
153                __FUNCPACK{WikiLinking}__->to_wikipage_in_html (
154                {
155                  label           => qq(%html-link (
156                                          description => {%res (name => {Map:LinkNav:$rel->{html}:Description});: %page-name;: %page-headline;}p,
157                                        );\n),
158                } => {
159                  base            => $page,
160                  page_name_relative => $o->{wiki}->name ($_),
161                }, {
162                  o               => $o,
163                  parent          => $p->{-parent},
164                  -rel            => $rel->{html},
165                });
166              }
167            }
168          }
169        }
170    
171    FormattingRule:
172    @Category[list]:    @Category[list]:
173      form-input      form-input
174      view      view
# Line 314  ViewFragment: Line 442  ViewFragment:
442  ViewFragment:  ViewFragment:
443    @Name: links    @Name: links
444    @Formatting:    @Formatting:
445        %m--html-link-navigation;
446    
447      %link-to-wikipage (      %link-to-wikipage (
448        page => {%ns--root-wikiname;}p,        page => {%ns--root-wikiname;}p,
449        rel => news,        rel => news,
# Line 387  Resource: Line 517  Resource:
517    @Map:Change:WebPageTitle:    @Map:Change:WebPageTitle:
518      @@@: Recent Changes (%page-name;)      @@@: Recent Changes (%page-name;)
519      @@lang: en      @@lang: en
520      @Map:LinkNav:prev:Description:
521        @@lang: en
522        @@@: Previous WikiPage
523      @Map:LinkNav:next:Description:
524        @@lang: en
525        @@@: Next WikiPage
526      @Map:LinkNav:contents:Description:
527        @@lang: en
528        @@@: Table of Contents
529      @Map:LinkNav:index:Description:
530        @@lang: en
531        @@@: Index
532      @Map:LinkNav:up:Description:
533        @@lang: en
534        @@@: Up
535    
536    
537        
538    
539    

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.15

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24