UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050517 
Firefox/1.0.4 (Debian package 1.0.4-2)
IP: 64.81.113.168
URI: http://wesnoth.slack.it/?SyntaxWML
 - - - - -
Index: SyntaxWML
===================================================================
RCS file: /home/wesnoth/cvsroot/wikiroot/SyntaxWML,v
retrieving revision 1.18
diff -u -r1.18 SyntaxWML
--- SyntaxWML   22 Jun 2005 09:43:39 -0000      1.18
+++ SyntaxWML   2 Jul 2005 19:14:27 -0000
@@ -1,4 +1,4 @@
-Wesnoth syntax has two basic elements: tags and attributes.
+Wesnoth syntax has three basic elements: //tags//, //keys//, and //values//.
 
 * ||[//tag-name//] //data// [///tag-name//]|| is a tag.
 Tags are used to partition information.
@@ -7,36 +7,40 @@
 Different tags work differently.
 For information about how a certain tag works, see ReferenceWML
 * ||[+//tag-name//] //data// [///tag-name//]|| means that //data//
-will be considered as part of the data for the most recent [//tagname//]
-* ||//key//=//value//|| is an attribute.
+will be considered as part of the data for the most recent [//tagname//] tag.
+The //data// of [+//tag-name//] will be considered as coming after all data in 
[//tag-name//],
+so attributes of [+//tagname//] will replace attributes of the original 
[//tagname//].
+* ||//key//=//value// //newline//|| is an //attribute//, or an assignment of a 
value to a key.
 When this line is processed, the value of //key// for the tag
-that the attribute is in is set to //value//.
-(All text from '=' until the end of the line is considered to be
-part of //value//, although //value// may be enclosed
-in quotes ( " ) to allow multiple-line values.)
-Note that //key// is not a WML variable;
-the value it is set to has a use which is determined by C++ code,
-not WML code. In order to change the value of a WML variable,
+that the attribute is in is set or changed to //value//
+All text from '=' until the end of the line is considered to be part of 
//value//.
+Note that //key// is not a WML variable (with the exception of VariablesWML);
+the value it is set to has a use which is determined by C++ code, not WML code.
+In order to change the value of a WML variable,
 you need to use ||[set_variable]|| (see InternalActionsWML).
-||There should be no space between the key and the '=' symbol!||
-If there is whitespace, the attribute assignment is ignored.
-Also note that the key cannot contain whitespace.
-* ||//translatable-key//= _ "//text//"|| is another attribute.
+* ||//key1//,//key(s)2//=//value1//,//value(s)2// //newline//|| is the same as
+||//key1//=//value1// //newline// //key(s)2//=//value(s)2// //newline//||.
+If there are extra keys, they will be set to an empty value.
+If there are extra values the last key will be set to the CSV list of all 
remaining values
+
+Although a value can be just text corresponding to a function of its key
+(these values are displayed in quotes(||'||) in ReferenceWML),
+a value can also be encoded:
+* ||"//multiple-line-value//"|| a multiple-line value must be enclosed in 
quotes,
+to prevent it being interpreted as a single-line value.
+Note that //multiple-line-value// doesn't have to have multiple lines;
+it can simply be a single-line value enclosed in quotes for clarity.
+* ||_ "//text//"|| is a //translatable// value.
 //text// is English text that will be displayed in-game at some point.
 Gettext (see GetText) is used to determine what to display if English is not 
the current language.
-* ||//key//="//constant-text //" + _"//text//"|| is another attribute, where 
the value is obtained by concatenation of
-translatable and untranslatable parts.  Any number of strings can be 
concatenated this way.  Newline characters can be
-insterted after a ||+|| sign for clarity.  Note that the ||+|| sign
-from 0.9.0 concatenates even unquoted strings, so if you need a value
-that contains a ||+|| you need to quote the value.
-* ||//key//=$//variable-name//|| is an another attribute.
-When this line is processed,
-the value of //key// for the tag that the attribute is in is set to the value 
of the WML variable //variable-name// (see
-VariablesWML, InternalActionsWML)
-* ||//key1//,//key(s)2//=//value1//,//value(s)2//|| is the same as
-||//key1//=//value1// //newline// //key(s)2//=//value(s)2//||.
-if there are extra keys, they will be set to an empty value.
-if there are extra values the last key will be set to the CSV list of all 
remaining values
+* ||//value-1// + //value-2//|| can be used to concatenate two different 
translatable strings,
+to reduce the work of translators.
+Note that //value-1// or //value-2// can also be a concatenated value,
+so if you want to have a value that actually has a plus sign in it,
+you need to enclose the plus sign in quotes (see ||"//multiple-line-value//"|| 
above).
+* ||$//variable-name//|| a //variable// value depends on the value of the WML 
variable //variable-name//.
+See VariablesWML for more information on WML-variable based values.
+
 
 Example:
  [scenario]
@@ -71,9 +75,9 @@
  id=Elves Besieged
  [/scenario]
 
-However it is recommended that you indent WML files for readability.
-
-Also, any line beginning with a pound(||#||) sign is considered by WML as a 
comment,
+However, you cannot add whitespace into tag names, key names, value names, or 
between WML processing symbols.
+Data inside tags should be separated with tabbing; see ConventionsWML.
+Any line beginning with a pound(||#||) sign is considered by WML as a comment,
 except for preprocessor functions beginning with #.
 
 ||See Also||




_______________________________________________
Wesnoth-wiki-changes mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/wesnoth-wiki-changes

Reply via email to