Das datatemplate-Plugin hat den Vorteil, dass ich die strukturierten Daten nicht nur in simplen Listen oder Tabellen aggregieren kann, sondern auch in komplexeren HTML-Konstruktionen.
Beispiel: Für jedes Projekt haben wir auf der Projektseite einen data-Block (datatemplate erweitert data ja nur). Der sieht ungefähr so aus (und ja, manche Projekte ziehen sich ein bisschen hin).
---- datatemplateentry project ----
template : projects:display_template
title : DotTrack
participants_ : [[people:raphael_wimmer|Raphael Wimmer]] [...]
keywords_ : Position, Tracking, Pattern, Mouse
status_ : ongoing
start : 2017
end :
photo_img : projects:dottrack_photo.jpg
shortdescription : Absolute position tracking using the raw image of a mouse sensor
----
Auf der Projektseite werden diese Daten dann mithilfe des angegebenen Templates dann etwas hübscher als in einer reinen Tabelle gerendert:
====== Project: @@title@@ ======
<grid>
<col sm="6">
{{@@!photo@@?nolink&600 |}}
</col>
<col sm="6">
<WRAP>
*@@abstract@@*
**Status**: @@status@@
**Runtime**: @@start@@ - @@end@@
**Participants**: @@participants@@
**Keywords**: @@keywords@@
</WRAP>
</col>
</grid>
Das sieht dann so aus: Projekt: DotTrack.
Auf der Startseite haben wir ein Karussell (aus dem Bootstrap3 theme), das mittels eines weiteren datatemplate-Templates mit den laufenden Projekten gefüttert wird:
<carousel interval="5000">
---- datatemplatelist nodiv----
template: wiki:projects_template
cols : title, %pageid% participants_, status_, start_dt, end_dt, keywords_, photo_img, shortdescription_
sort : date
filter : status_=ongoing
----
</carousel>
Das Template dafür sieht dann so aus:
<slide>
[{{@@!photo@@?nolink&500x200 }}](@@!%pageid%@@)
<caption>
[[@@!%pageid%@@|@@title@@]]\\
@@!shortdescription@@
</caption>
</slide>
Und so läuft das überall auf der Seite. Auf jeder Projektseite werden die News und Publikationen zum Projekt aggregiert, bei jeder Person die Projekte und Publikationen, an denen sie beteiligt ist, etc.
Wir verwenden für die Seite übrigens eine leicht angepasste Version des datatemplate-Plugins - u.a., weil die offizielle Version immer ein "div" um alle Elemente macht, was mit anderen Plugins dann nicht immer gut zusammenspielt.