This is the historical archive of the now-inactive 'grubstreet' list.
Discussion on OpenGuides development
has now moved to OpenGuides-Dev.
Discussion on The Open Guide to
London now takes place on OpenGuides-London.
[grubstreet] indexing patch 2
[prev] [thread] [next] [lurker] [Date index for 2002/5/19]
From: Ivor Williams
Subject: [grubstreet] indexing patch 2
Date: 00:36 on 19 May 2002
Subject: [grubstreet] indexing patch 2
Date: 00:36 on 19 May 2002
> Pipe pluslinks don't work.
Fixed. [[+foo|bar]] and [[>foo|bar]] are both rendered as >bar
> There's no easy way to create a new page. There is also the related
> problem that if you do a plus link and typo it, the Preview doesn't give
> you the visual clue that you've done this in the same way that it would
> if you typoed an ordinary link.
Fixed, although rendering a pair of [ ]s round the ? to aid mouse
differentiation. E.g. [[+missing]] renders as [?] >Missing
> It's clumsy that there is no easy way to click on the heading and search.
Added. There is now a link to the search on the index page.
> Multi word index links appear with square brackets, when the page
> does not exist.
No change. This is correct and normal Wiki behaviour with freelinks.
> It would be really handy to turn off the redirect sometimes. Can this
> be a user profile setting?
Not fixed. I changed my mind about this one.
> It might be an idea to add a config setting to limit the depth that the
> indexing goes to; for example, I can see us having something like
> Site > Food And Drink > Food > Food Types > Vegetarian Food
> Vegan Food, which would make the tree very wide. A nice default
> might be to index to three levels.
Feature added. There is now a listbox allowing you to pick 2,3,4,5 or all
levels. The default is 3. If any pages are obscured, this appears as a >
link to the right of the page name.
> Plus links to subpages e.g. [[+IvorW/Ratings]] don't work
Fixed.
> Plus links are still indexed inside <nowiki> tags.
Fixed
__PATCH FOLLOWS__
796,798c796,797
< my ($id,$prefix) = @_;
< $prefix ||= '';
< my $name = $prefix.$id;
---
> my ($id,$name) = @_;
> $name ||= $id;
871c870,871
< return &ScriptLink("id=$id&action=index",$prefix.$name) if $prefix;
---
> return '['.&GetEditLink($id,"?").'] '.
> &ScriptLink("id=$id&action=index",$prefix.$name) if $prefix;
2929c2929,2939
< print '<br>';
---
> print '<h3>Search for ',&GetSearchLink($id),
> '</h3>',$q->startform,
> '<h3>Show index levels: ',"\n",
> &GetHiddenValue('id',$id),
> &GetHiddenValue('action','index'),
> $q->popup_menu(
> -name => 'depth',
> -values => [2,3,4,5,'All'],
> -default=> 3),
> $q->submit(name=>'Go'),
> $q->endform,"</h3>\n";
3076a3087,3089
> my $pending = '';
> my $parent_page;
> my $depth = &GetParam('depth','3');
3080,3082c3093,3101
< my @plusses = /\+/g;
< print "..." x @plusses;
< print &GetPageLink($pagename), "<br>\n";
---
> my $indent_level = scalar @{[/\+/g]};
> if (($depth eq 'All') || ($indent_level < $depth)) {
> print $pending,"..." x $indent_level;
> print &GetPageLink($pagename), "\n";
> $pending = '<br>';
> $parent_page = $pagename;
> } else {
> $pending = " ".&GetIndexLink($parent_page,">").'<br>';
> }
3083a3103
> print $pending,"\n";
3457c3477
< my (%appearsOn);
---
> my ($appears) = &IndexCrossRef($id,$id);
3459,3467c3479
< &OpenPage($id);
< &OpenDefaultText();
< my $txt = $Text{'text'};
<
< foreach my $refer ($txt =~ /\[\+(.+?)\]/g) {
< $refer = &FreeToNormal($refer);
< $appearsOn{$refer}++;
< }
< return if !%appearsOn;
---
> return if !%$appears;
3469c3481
< print &GetIndexLink($_,'>'),"<BR>\n" foreach (sort keys %appearsOn);
---
> print &GetIndexLink($_,">$_"),"<BR>\n" foreach (sort keys %$appears);
3472,3473c3484,3485
< sub PageIndex {
< my ($string) = @_;
---
> sub IndexCrossRef {
> my ($string,@pages) = @_;
3477c3489
< foreach $name (&AllPagesList()) {
---
> foreach $name (@pages) {
3481,3482c3493,3496
<
< foreach my $refer ($txt =~ /\[\+(.+?)\]/g) {
---
> my ($root) = ($name =~ m!^([^/]*)!);
>
> $txt =~ s!<nowiki>.*?</nowiki>!!gs;
> foreach my $refer ($txt =~ /\[\+(.+?)[|\]]/g) {
3483a3498
> $refer =~ s!^/!$root/!;
3491c3506,3511
<
---
> (\%appearsOn,\%found);
> }
>
> sub PageIndex {
> my $string = shift;
> my ($appears,$results) = &IndexCrossRef($string,&AllPagesList());
3495c3515
< foreach (my @k = keys %found) {
---
> foreach (my @k = keys %$results) {
3497c3517
< foreach my $child (@{$appearsOn{$parent}}) {
---
> foreach my $child (@{$appears->{$parent}}) {
3499,3500c3519,3520
< next if $found{$_.'+'.$child};
< $found{$_.'+'.$child} = 1;
---
> next if $results->{$_.'+'.$child};
> $results->{$_.'+'.$child} = 1;
3505c3525
< foreach (my @k = keys %found) {
---
> foreach (my @k = keys %$results) {
3507c3527
< delete $found{$'};
---
> delete $results->{$'};
3509d3528
< #delete $found{$_} if !/^$string/;
3511,3512c3530
<
< sort keys %found;
---
> sort keys %$results;
__END OF PATCH__
--
grubstreet mailing list
http://london.openguides.org/old-list-archives/
-
Kate L Pugh
12:11 on 16 May 2002
I've made a start. I'll wait on the new patch before I do any more.-
[grubstreet] indexing patch 2
Ivor Williams 00:36 on 19 May 2002
Fixed. [[+foo|bar]] and [[>foo|bar]] are both rendered as >bar-
Re: [grubstreet] indexing patch 2
Kate L Pugh 12:43 on 19 May 2002
Applied.
-
Re: [grubstreet] indexing patch 2
Kate L Pugh 12:43 on 19 May 2002
-
[grubstreet] indexing patch 2
Ivor Williams 00:36 on 19 May 2002
