Search
The Caboteria
/
TWiki Web
/
TWikiMetaData
(12 Apr 2012,
TWikiContributor
)
(raw view)
%META:TOPICINFO{author="TWikiContributor" date="1334272120" format="1.1" version="22"}% %STARTINCLUDE% #TWikiMetaData ---+ TWiki Meta Data _Additional topic data, program-generated or from TWikiForms, is stored embedded in the topic text using =META:= tags_ %TOC% ---++ Overview By default, TWiki stores topics in files on disk, in a really simple and obvious directory structure. The big advantage of this approach is that it makes it really easy to manipulate topics from outside TWiki, and is also very safe; there are no complex binary indexes to maintain, and moving a topic from one TWiki to another is as simple as copying a couple of text files. To keep everything together in one place, TWiki uses a simple method for embedding additional data (program-generated or from TWikiForms) in topics. It does this using =META:= tags. =META:= data includes program-generated info like FileAttachment and topic movement data, and user-defined TWikiForms info. ---++ Meta Data Syntax * Format is the same as in TWikiVariables, except all fields have a key. * =%<nop>META:<type>{key1="value1" key2="value2" ...}%= * Order of fields within the meta variables is not defined, except that if there is a field with key =name=, this appears first for easier searching (note the order of the variables themselves is defined). * Each meta variable is on one line. * Values in meta-data are URL encoded so that characters such as \n can be stored. <blockquote> *Example of Format* <pre> %<nop>META:TOPICINFO{version="1.6" date="976762663" author="LastEditorWikiName" format="1.0"}% text of the topic %<nop>META:TOPICMOVED{from="Codev.OldName" to="Codev.NewName" by="TopicMoverWikiName" date="976762680"}% %<nop>META:TOPICPARENT{name="NavigationByTopicContext"}% %<nop>META:FILEATTACHMENT{name="Sample.txt" version="1.3" ... }% %<nop>META:FILEATTACHMENT{name="Smile.gif" version="1.1" ... }% %<nop>META:FORM{name="WebFormTemplate"}% %<nop>META:FIELD{name="OperatingSystem" value="OsWin"}% %<nop>META:FIELD{name="TopicClassification" value="PublicFAQ"}% </pre> </blockquote> ---++ Meta Data Specifications The current version of Meta Data is 1.0, with support for the following variables. ---+++ META:TOPICINFO | *Key* | *Comment* | | version | Same as RCS version | | date | integer, unix time, seconds since start 1970 | | author | last to change topic, is the REMOTE_USER | | format | Format of this topic, will be used for automatic format conversion | ---+++ META:TOPICMOVED This is optional, exists if topic has ever been moved. If a topic is moved more than once, only the most recent META:TOPICMOVED meta variable exists in the topic, older ones are to be found in the rcs history. =%<nop>META:TOPICMOVED{from="Codev.OldName" to="Codev.NewName" by="talintj" date="976762680"}%= | *Key* | *Comment* | | from | Full name, i.e., web.topic | | to | Full name, i.e., web.topic | | by | Who did it, is the REMOTE_USER, not <nop>WikiName | | date | integer, unix time, seconds since start 1970 | Notes: * at present version number is not supported directly, it can be inferred from the RCS history. * there is only one META:TOPICMOVED in a topic, older move information can be found in the RCS history. ---+++ META:TOPICPARENT | *Key* | *Comment* | | name | The topic from which this was created, typically when clicking on a red-link, or by filling out a form. Normally just =TopicName=, but it can be a full =Web.TopicName= format if the parent is in a different Web. | ---+++ META:FILEATTACHMENT | *Key* | *Comment* | | name | Name of file, no path. Must be unique within topic | | version | Same as RCS revision | | path | Full path file was loaded from | | size | In bytes | | date | integer, unix time, seconds since start 1970 | | user | the REMOTE_USER, not <nop>WikiName | | comment | As supplied when file uploaded | | attr | =h= if hidden, optional | Extra fields that are added if an attachment is moved: | *Key* | *Comment* | | movedfrom | full topic name - web.topic | | movedby | the REMOTE_USER, not <nop>WikiName | | movedto | full topic name - web.topic | | moveddate | integer, unix time, seconds since start 1970 | ---+++ META:FORM | *Key* | *Comment* | | name | A topic name - the topic represents one of the TWikiForms. Can optionally include the web name (i.e., web.topic), but doesn't normally | ---+++ META:FIELD Should only be present if there is a META:FORM entry. Note that this data is used when viewing a topic, the form template definition is not read. | *Key* | *Name* | | name | Ties to entry in TWikiForms template, is title with all bar alphanumerics and . removed | | title | Full text from TWikiForms template | | value | Value user has supplied via form | ---+++ Recommended Sequence There is no absolute need for Meta Data variables to be listed in a specific order within a topic, but it makes sense to do so a couple of good reasons: * form fields remain in the order they are defined * the =diff= function output appears in a logical order The recommended sequence is: * =META:TOPICINFO= * =META:TOPICPARENT= (optional) * text of topic * =META:TOPICMOVED= (optional) * =META:FILEATTACHMENT= (0 or more entries) * =META:FORM= (optional) * =META:FIELD= (0 or more entries; FORM required) ---++ Viewing Meta Data in Page Source When viewing a topic the ==Raw Text== link can be clicked to show the text of a topic (i.e., as seen when editing). This is done by adding <code>raw=on</code> to URL. <code>raw=debug</code> shows the meta data as well as the topic data, ex: <a href="%SCRIPTURLPATH{"view"}%/%WEB%/%TOPIC%?raw=debug">debug view for this topic</a> #MetaDataRendering ---++ Rendering Meta Data Meta Data is rendered with the %<nop>META% variable. This is mostly used in the =view=, =preview= and =edit= scripts. You can render form fields in topic text by using the FORMFIELD variable. Example:%BR% =%<nop>FORMFIELD{"TopicClassification"}%= %BR% For details, see VarFORMFIELD. Current support covers: | *Variable usage:* | *Comment:* | | =%<nop>META{"form"}%= | Show form data, see TWikiForms. | | =%<nop>META{"formfield"}%= | Show form field value. Parameter: ==name="field_name"==. Example:%BR% =%<nop>META{ "formfield" name="TopicClassification" }%= | | =%<nop>META{"attachments"}%= | Show attachments, except for hidden ones. Options: <br /> \ ==all="on"==: Show all attachments, including hidden ones. | | =%<nop>META{"moved"}%= | Details of any topic moves. | | =%<nop>META{"parent"}%= | Show topic parent. Options: <br /> \ ==dontrecurse="on"==: By default recurses up tree, at some cost. <br /> \ ==nowebhome="on"==: Suppress <nop>%HOMETOPIC%. <br /> \ ==prefix="..."==: Prefix for parents, only if there are parents, default =""=. <br /> \ ==suffix="..."==: Suffix, only appears if there are parents, default =""=. <br /> \ ==separator="..."==: Separator between parents, default is =" > "=. | __Note:__ SEARCH can also be used to render meta data, see examples in FormattedSearch and SearchPatternCookbook. __Related Topics:__ DeveloperDocumentationCategory, UserDocumentationCategory
E
dit
|
A
ttach
|
P
rint version
|
H
istory
: r22
<
r21
<
r20
<
r19
<
r18
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Copyright © 1999-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding The Caboteria?
Send feedback
Note:
Please contribute updates to this topic on TWiki.org at
TWiki:TWiki.TWikiMetaData
.