MrBertie / pagequery

An all-in-one, multi-column page listing plugin for Dokuwiki
http://www.dokuwiki.org/plugin:pagequery
16 stars 19 forks source link

[Feature Request] Group by heading #27

Closed retostauss closed 10 years ago

retostauss commented 10 years ago

First: I appreciate this great plugin and honor all the work you put in!

As far as I understand the manual/help correctly sort by heading does not lead to a grouped list.

Since we have lots of pages (including NS start pages) with no meaningful page name we can't use sort=name. Respectively this leads to grouped lists which are confusing when display=title is used (which is what we are using for now).

Unless there is no other solution with the existing features I kindly request the implementation of grouping if sort=heading is used.

MrBertie commented 10 years ago

I will certainly have a look and see what the possibilities are! The suggestion is a good one.

On 29 April 2014 10:23, retostauss notifications@github.com wrote:

First: I appreciate this great plugin and honor all the work you put in!

As far as I understand the manual/help correctly sort by heading does not lead to a grouped list.

Since we have lots of pages (including NS start pages) with no meaningful page name we can't use sort=name. Respectively this leads to grouped lists which are confusing when display=title is used (which is what we are using for now).

Unless there is no other solution with the existing features I kindly request the implementation of grouping if sort=heading is used.

— Reply to this email directly or view it on GitHubhttps://github.com/MrBertie/pagequery/issues/27 .

retostauss commented 10 years ago

Great! Looking forward.

MrBertie commented 10 years ago

Hi there! This request is a lot more challenging than it seems, for grouping by title to work, it would mean that every page in that group must have the same title/"first heading". Not so practical...

The grouping feature collects pages together based on a common field, e.g. year, month, first letter of name, and so on. The page title is normally unique so this method doesn't work.

Could you perhaps try to explain to me again what you are hoping to achieve? May there is a other way... ;-)

For example the if you sort by namespace (sort=ns), then pagequery will use the first heading from the namespace's start page as the group header. Could that work?

retostauss commented 10 years ago

Thanks for looking into the request!

Background is that we use pagequeries to generate lists of pages as overview and quick access to this listed pages.

We would like to have lists grouped by the headings first letter. Result should be a list of pages sorted by heading and grouped by the first letter of the heading.

E.g. A

C

Z

MrBertie commented 10 years ago

"sort=a;heading;group" should do what you are asking...

On 5 May 2014 11:06, retostauss notifications@github.com wrote:

Thanks for looking into the request!

Background is that we use pagequeries to generate lists of pages as overview and quick access to this listed pages.

We would like to have lists grouped by the headings first letter. Result should be a list of pages sorted by heading and grouped by the first letter of the heading.

E.g. A

  • A page

C

  • C-Compiler
  • Crash

Z

  • Zelda
  • Ziggy Stardust

— Reply to this email directly or view it on GitHubhttps://github.com/MrBertie/pagequery/issues/27#issuecomment-42170134 .

retostauss commented 10 years ago

Sorry, I didn't give all the information. The query is like this:

{{pagequery>Overviewpage;
  fulltext;
  sort=a;
  heading;
  group;
  cols=2;
  display={title};
}}

The result is a list grouped by the first letter of the page name but displayed is the first headline.

Because the page name does not correspond to the first headline the list is pretty confusing.

Here another example how it looks including the page names in square brackets:

s

t

Expected is a list like this:

d

s

t

It should sort by the first letter of the first headline because the first headline is displayed.

MrBertie commented 10 years ago

the syntax is: {{pagequery>... sort=a,heading; group; ... }}

(Note the comma between a and heading: that means sort first by "a" (first character), then by "heading". That should work... I hope!)

On 5 May 2014 14:45, retostauss notifications@github.com wrote:

Sorry, I didn't give all the information. The query is like this:

{{pagequery>Overviewpage; fulltext; sort=a; heading; group; cols=2; display={title}; }}

The result is a list grouped by the first letter of the page name but displayed is the first headline.

Because the page name does not correspond to the first headline the list is pretty confusing.

Here another example how it looks including the page names in square brackets:

s

  • Database Systems [start]
  • Tools [start]
  • SAP [sap]

t

  • Tagging [tagging]

Expected is a list like this:

d

  • Database Systems [start]

s

  • SAP [sap]

t

  • Tagging [tagging]
  • Tools [start]

It should sort by the first letter of the first headline because the first headline is displayed.

— Reply to this email directly or view it on GitHubhttps://github.com/MrBertie/pagequery/issues/27#issuecomment-42183614 .

retostauss commented 10 years ago

I corrected the query to: {{pagequery>...; fulltext; sort=a,heading; group; cols=2; display={title}; }}

... with no luck. The list looks like this:

s

t

"sort:a,heading;" does actually sort the listed pages 1. for the first letter of the page name and 2. for the first heading. But the group by is by the first letter of the page name.

MrBertie commented 10 years ago

Okay, let me check because it was supposed to work... imperfect software, what a nuisance!

On 5 May 2014 16:14, retostauss notifications@github.com wrote:

I corrected the query to: {{pagequery>...; fulltext; sort=a,heading; group; cols=2; display={title}; }}

... with no luck. The list looks like this:

s

  • Database Systems [start]
  • SAP [sap]
  • Tools [start]

t

  • Tagging [tagging]

"sort:a,heading;" does actually sort the listed pages 1. for the first letter of the page name and 2. for the first heading. But the group by is by the first letter of the page name.

— Reply to this email directly or view it on GitHubhttps://github.com/MrBertie/pagequery/issues/27#issuecomment-42191881 .

MrBertie commented 10 years ago

It was a sneaky little bug, one-line fix. I'll push a new version in the next couple of days!

On 5 May 2014 16:34, Hendry Badao hendrybadao@gmail.com wrote:

Okay, let me check because it was supposed to work... imperfect software, what a nuisance!

On 5 May 2014 16:14, retostauss notifications@github.com wrote:

I corrected the query to: {{pagequery>...; fulltext; sort=a,heading; group; cols=2; display={title}; }}

... with no luck. The list looks like this:

s

  • Database Systems [start]
  • SAP [sap]
  • Tools [start]

t

  • Tagging [tagging]

"sort:a,heading;" does actually sort the listed pages 1. for the first letter of the page name and 2. for the first heading. But the group by is by the first letter of the page name.

— Reply to this email directly or view it on GitHubhttps://github.com/MrBertie/pagequery/issues/27#issuecomment-42191881 .

retostauss commented 10 years ago

Cool! And many thanks for caring.

MrBertie commented 10 years ago

I just pushed a fix for this problem. It now sorts and groups correctly by heading.

MrBertie commented 10 years ago

I pushed a new release with the fix.

On 6 May 2014 09:19, retostauss notifications@github.com wrote:

Cool! And many thanks for caring.

— Reply to this email directly or view it on GitHubhttps://github.com/MrBertie/pagequery/issues/27#issuecomment-42273711 .

retostauss commented 10 years ago

Great. I'm going to test this next week.

retostauss commented 10 years ago

I can conform that it works now as expected. Thanks a lot!

MrBertie commented 10 years ago

Glad to hear it.

On 15 May 2014 14:17, retostauss notifications@github.com wrote:

I can conform that it works now as expected. Thanks a lot!

— Reply to this email directly or view it on GitHubhttps://github.com/MrBertie/pagequery/issues/27#issuecomment-43202047 .