mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-09 15:14:20 +00:00

...change by wmllint. This is a step towards cleaning up the mess around "description", which is translatable in some contexts and not in others.
Tools for hacking or generating WML, maps, images, and sounds belong here. Tools for sanity-checking the mainline campaigns and associated data also belong here. == Scripts == === mk-edges === Automatically generate border images for tiles. Works by copying the way in which border tiles are done for an existing terrain type. For instance, if you made a new terrain type, 'lava.png' and you wanted to have the same style of edges as snow does, you could run the command data/tools/mk-edges.pl images/terrain/lava images/terrain/snow and it will make the edges for you. === wmllint === This tool lifts WML from older dialects to current and performs sanity checks. See the header comment of wmllint for a description and invocation options. === wmlscope === A WML cross-reference checker. Normally you'll use this to list unresolved symbols., if any. See the header comment of wmlscope for a description and invocation options. === wmlmove === Use this tool to generate commands that will move a unit between namespaces; campaign to core, core to campaign, or campaign to campaign. See the header comment of wmlmove for a description and invocation options. == Python API == === wmltools.py === The main facility in this module is a cross-referencer class. It also contains utility methods for working with the data tree. See the header comment of wmtools.py for details === wmlparser.py === This python module contains code originally developed for CampGen - it contains a general WML Parser written in Python, just like the Perl one. So if you want to develop tools in Python instead of Perl and need a WML parser, it may save some time. The API currently is very sparsely documented, but I plan to extend this. In general, wmlparser.py contains the WML Parser, which is used like: parser = wmlparser.Parser(datapath) Then: parser.parse_file(filename) or parser.parse_stream(file) or parser.parse_text(string) to set what to parse, and finally: wmldata = parser.parse() to read everything into a Python representation of the parsed data. === wmldata.py === This file has several utility methods defined to access and manipulate WML data. Most of them will not be generally useful. An example: for unit in wmldata.get_all("unit"): print unit.get_text_val("id") == Standalone use == === wmlparser === If called standalone, wmlparser.py will parse whatever you give it and dump back to stdout. For example: python wmlparser.py -e {game.cfg} > game.dump Should produce a nice several 100000 lines file of the complete configuration with all included files and macros expanded to a single file.