104 lines
2.7 KiB
Markdown
104 lines
2.7 KiB
Markdown
[[!template id=plugin name=ymlfront author="[[rubykat]]"]]
|
|
[[!tag type/meta]]
|
|
[[!toc]]
|
|
## NAME
|
|
|
|
IkiWiki::Plugin::ymlfront - add YAML-format data to a page
|
|
|
|
## SYNOPSIS
|
|
|
|
# activate the plugin
|
|
add_plugins => [qw{goodstuff ymlfront ....}],
|
|
|
|
## DESCRIPTION
|
|
|
|
This plugin provides a way of adding arbitrary meta-data (data fields) to any
|
|
page by prefixing the page with a YAML-format document. This provides a way to
|
|
create per-page structured data, where each page is treated like a record, and
|
|
the structured data are fields in that record. This can include the meta-data
|
|
for that page, such as the page title.
|
|
|
|
This plugin is meant to be used in conjunction with the [[field]] plugin.
|
|
|
|
## DETAILS
|
|
|
|
The YAML-format data in a page must be placed at the start of the page
|
|
and delimited by lines containing precisely three dashes. The "normal"
|
|
content of the page then follows.
|
|
|
|
For example:
|
|
|
|
---
|
|
title: Foo does not work
|
|
Urgency: High
|
|
Status: Assigned
|
|
AssignedTo: Fred Nurk
|
|
Version: 1.2.3
|
|
---
|
|
When running on the Sprongle system, the Foo function returns incorrect data.
|
|
|
|
What will normally be displayed is everything following the second line of dashes.
|
|
That will be htmlized using the page-type of the page-file.
|
|
|
|
### Accessing the Data
|
|
|
|
There are a few ways to access the data given in the YAML section.
|
|
|
|
* [[getfield]] plugin
|
|
|
|
The **getfield** plugin can display the data as individual variable values.
|
|
|
|
For example:
|
|
|
|
---
|
|
title: Foo does not work
|
|
Urgency: High
|
|
Status: Assigned
|
|
AssignedTo: Fred Nurk
|
|
Version: 1.2.3
|
|
---
|
|
# {{$title}}
|
|
|
|
**Urgency:** {{$Urgency}}\\
|
|
**Status:** {{$Status}}\\
|
|
**Assigned To:** {{$AssignedTo}}\\
|
|
**Version:** {{$Version}}
|
|
|
|
When running on the Sprongle system, the Foo function returns incorrect data.
|
|
|
|
* [[ftemplate]] plugin
|
|
|
|
The **ftemplate** plugin is like the [[plugins/template]] plugin, but it is also aware of [[field]] values.
|
|
|
|
For example:
|
|
|
|
---
|
|
title: Foo does not work
|
|
Urgency: High
|
|
Status: Assigned
|
|
AssignedTo: Fred Nurk
|
|
Version: 1.2.3
|
|
---
|
|
\[[!ftemplate id="bug_display_template"]]
|
|
|
|
When running on the Sprongle system, the Foo function returns incorrect data.
|
|
|
|
* [[report]] plugin
|
|
|
|
The **report** plugin is like the [[ftemplate]] plugin, but it reports on multiple pages, rather than just the current page.
|
|
|
|
* write your own plugin
|
|
|
|
In conjunction with the [[field]] plugin, you can write your own plugin to access the data.
|
|
|
|
## PREREQUISITES
|
|
|
|
IkiWiki
|
|
IkiWiki::Plugin::field
|
|
YAML::Any
|
|
|
|
## DOWNLOAD
|
|
|
|
* browse at GitHub: <http://github.com/rubykat/ikiplugins/blob/master/IkiWiki/Plugin/ymlfront.pm>
|
|
* git repo at git://github.com/rubykat/ikiplugins.git
|