[pmwiki-users] RFC: An improved (:attachlist:) - (:filelist:)

christian.ridderstrom at gmail.com christian.ridderstrom at gmail.com
Sat Mar 25 07:10:11 CST 2006


On Fri, 24 Mar 2006 christian.ridderstrom at gmail.com wrote:

Trying to get comments again... ,-)
Let me know if I should write this up as a PITS.

> Then I started thinking... the new (:pagelist:) is *really* powerful, 
> what if we could have something similar for attachments?
...
> Here is some of the basic functionality that I'd like to suggest. Please
> note that I'm not saying it necessarily should be implented using a single
> directive.
> 
> * The core functionality is to generate a listing of files in a 
>   specified directory tree. 
> 
> * The nesting level should be controllable, making it possible to only
>   list files in a single directory.
> 
> * Some kind of filtering should be applied to the listing, just like
>   (:pagelist:) only lists pages matching the search criteria.
> -> This makes it possible to "find" a file...
> 
> * It should be possible to choose the "format" of the listing, i.e.
>   control how much information is shown about each file.

As for controlling the format, I hope that a solution similar to that used
by (:pagelist:) is possible. Here's how it might be invoked:

	(:filelist /dir/subdir name='a*.txt' fmt=#myFormat:)

This should list files in '/dir/subdir/' (and any of its subdirectories)
that match the pattern 'a*.txt'. Each file should be shown using the
custom format 'myFormat'. This format would be defined at Site.FileList
within the anchors #myFormat and #myFormatEnd. Perhaps the section on that
page could look something like this:

	[[#myFormat]]
	* {=$filelist-path}/{=$filelist-name}
	  ({=$filelist-size}, {=$filelist-date})
	[[#myFormatend]]

or if you'd like a link to the file (which you probably want...)

	[[#fmt1]]
	* [[{=$filelist-name} -> {=$filelist-URI}]]
	[[#fmt1end]]

Here's an imagined custom format for showing a directory tree:

	[[#onlyDirectories]]
	(:if {=$filelist-isDir} and {=$filelist-level}=1:)
	* [[{=$filelist-name} -> {=$filelist-URI}]]
	(:if {=$filelist-isDir} and {=$filelist-level}=2:)
	** [[{=$filelist-name} -> {=$filelist-URI}]]
	(:if {=$filelist-isDir} and {=$filelist-level}=3:)
	*** [[{=$filelist-name} -> {=$filelist-URI}]]
	(:if {=$filelist-isDir} and {=$filelist-level}>4:)
	**** [[{=$filelist-name} -> {=$filelist-URI}]]
	(:ifend:)
	[[#onlyDirectoriesend]]

and here's an imagined custom format for showing only files in the tree

	[[#onlyFiles]]
	(:if {=$filelist-isFile} and {=$filelist-level}=1:)
	* [[{=$filelist-name} -> {=$filelist-URI}]]
	(:if {=$filelist-isFile} and {=$filelist-level}=2:)
	** [[{=$filelist-name} -> {=$filelist-URI}]]
	(:if {=$filelist-isFile} and {=$filelist-level}=3:)
	*** [[{=$filelist-name} -> {=$filelist-URI}]]
	(:if {=$filelist-isFile} and {=$filelist-level}>4:)
	**** [[{=$filelist-name} -> {=$filelist-URI}]]
	(:ifend:)
	[[#onlyFilesend]]

Let me know if you think (or don't think) about this kind of
functionality.

/Christian

PS. For now I'm skipping the advanced idea I had for allowing people to
create annotations associated with attachments.

-- 
Christian Ridderström, +46-8-768 39 44               http://www.md.kth.se/~chr






More information about the pmwiki-users mailing list