From ebcdcdbc0b3400ba94af6adeb6d166e1ab21387e Mon Sep 17 00:00:00 2001 From: Dane Springmeyer Date: Wed, 7 Nov 2012 09:55:19 -0500 Subject: [PATCH] add a 2.0.0 reference - refs #35 --- 2.0.0/reference.json | 1029 ++++++++++++++++++++++++++++++++++++++++++ index.js | 2 +- test/test.py | 6 +- 3 files changed, 1032 insertions(+), 5 deletions(-) create mode 100644 2.0.0/reference.json diff --git a/2.0.0/reference.json b/2.0.0/reference.json new file mode 100644 index 0000000..25a15f6 --- /dev/null +++ b/2.0.0/reference.json @@ -0,0 +1,1029 @@ +{ + "version": "2.0.0", + "style": { + "filter-mode": { + "type": [ + "all", + "first" + ], + "doc": "Control the processing behavior of Rule filters within a Style. If 'all' is used then all Rules are processed sequentially independent of whether any previous filters matched. If 'first' is used then it means processing ends after the first match (a positive filter evaluation) and no further Rules in the Style are processed ('first' is usually the default for CSS implementations on top of Mapnik to simplify translation from CSS to Mapnik XML)", + "default-value": "all", + "default-meaning": "All Rules in a Style are processed whether they have filters or not and whether or not the filter conditions evaluate to true." + } + }, + "layer" : { + "name": { + "default-value": "", + "type":"string", + "required" : true, + "default-meaning": "No layer name has been provided", + "doc": "The name of a layer. Can be anything you wish and is not strictly validated, but ideally unique in the map" + }, + "srs": { + "default-value": "", + "type":"string", + "default-meaning": "No srs value is provided and the value will be inherited from the Map's srs", + "doc": "The spatial reference system definition for the layer, aka the projection. Can either be a proj4 literal string like '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs' or, if the proper proj4 epsg/nad/etc identifier files are installed, a string that uses an id like: '+init=epsg:4326'" + }, + "status": { + "default-value": true, + "type":"boolean", + "default-meaning": "This layer will be marked as active and available for processing", + "doc": "A property that can be set to false to disable this layer from being processed" + }, + "minzoom": { + "default-value": "0", + "type":"float", + "default-meaning": "The layer will be visible at the minimum possible scale", + "doc": "The minimum scale denominator that this layer will be visible at. A layer's visibility is determined by whether its status is true and if the Map scale >= minzoom - 1e-6 and scale < maxzoom + 1e-6" + }, + "maxzoom": { + "default-value": "1.79769e+308", + "type":"float", + "default-meaning": "The layer will be visible at the maximum possible scale", + "doc": "The maximum scale denominator that this layer will be visible at. The default is the numeric limit of the C++ double type, which may vary slightly by system, but is likely a massive number like 1.79769e+308 and ensures that this layer will always be visible unless the value is reduced. A layer's visibility is determined by whether its status is true and if the Map scale >= minzoom - 1e-6 and scale < maxzoom + 1e-6" + }, + "queryable": { + "default-value": false, + "type":"boolean", + "default-meaning": "The layer will not be available for the direct querying of data values", + "doc": "This property was added for GetFeatureInfo/WMS compatibility and is rarely used. It is off by default meaning that in a WMS context the layer will not be able to be queried unless the property is explicitly set to true" + }, + "clear-label-cache": { + "default-value": false, + "type":"boolean", + "default-meaning": "The renderer's collision detector cache (used for avoiding duplicate labels and overlapping markers) will not be cleared immediately before processing this layer", + "doc": "This property, by default off, can be enabled to allow a user to clear the collision detector cache before a given layer is processed. This may be desirable to ensure that a given layers data shows up on the map even if it normally would not because of collisions with previously rendered labels or markers" + } + }, + "symbolizers" : { + "map": { + "background-color": { + "css": "background-color", + "default-value": "none", + "default-meaning": "transparent", + "type": "color", + "doc": "Map Background color" + }, + "background-image": { + "css": "background-image", + "type": "uri", + "default-value": "", + "default-meaning": "transparent", + "doc": "An image that is repeated below all features on a map as a background.", + "description": "Map Background image" + }, + "srs": { + "css": "srs", + "type": "string", + "default-value": "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs", + "default-meaning": "The proj4 literal of EPSG:4326 is assumed to be the Map's spatial reference and all data from layers within this map will be plotted using this coordinate system. If any layers do not declare an srs value then they will be assumed to be in the same srs as the Map and not transformations will be needed to plot them in the Map's coordinate space", + "doc": "Map spatial reference (proj4 string)" + }, + "buffer-size": { + "css": "buffer-size", + "default-value": "0", + "type":"float", + "default-meaning": "No buffer will be used", + "doc": "Extra tolerance around the map (in pixels) used to ensure labels crossing tile boundaries are equally rendered in each tile (e.g. cut in each tile). Not intended to be used in combination with \"avoid-edges\"." + }, + "maximum-extent": { + "css": "", + "default-value": "none", + "type":"bbox", + "default-meaning": "No clipping extent will be used", + "doc": "An extent to be used to limit the bounds used to query all layers during rendering. Should be minx, miny, maxx, maxy in the coordinates of the Map." + }, + "base": { + "css": "base", + "default-value": "", + "default-meaning": "This base path defaults to an empty string meaning that any relative paths to files referenced in styles or layers will be interpreted relative to the application process.", + "type": "string", + "doc": "Any relative paths used to reference files will be understood as relative to this directory path if the map is loaded from an in memory object rather than from the filesystem. If the map is loaded from the filesystem and this option is not provided it will be set to the directory of the stylesheet." + }, + "paths-from-xml": { + "css": "", + "default-value": true, + "default-meaning": "Paths read from XML will be interpreted from the location of the XML", + "type": "boolean", + "doc": "value to control whether paths in the XML will be interpreted from the location of the XML or from the working directory of the program that calls load_map()" + }, + "minimum-version": { + "css": "", + "default-value": "none", + "default-meaning": "Mapnik version will not be detected and no error will be thrown about compatibility", + "type": "string", + "doc": "The minumum Mapnik version (e.g. 0.7.2) needed to use certain functionality in the stylesheet" + }, + "font-directory": { + "css": "font-directory", + "type": "uri", + "default-value": "none", + "default-meaning": "No map-specific fonts will be registered", + "doc": "Path to a directory which holds fonts which should be registered when the Map is loaded (in addition to any fonts that may be automatically registered)." + } + }, + "polygon": { + "fill": { + "css": "polygon-fill", + "api": "fill", + "type": "color", + "default-value": "rgba(128,128,128,1)", + "default-meaning": "gray and fully opaque (alpha = 1), same as rgb(128,128,128)", + "doc": "Fill color to assign to a polygon" + }, + "gamma": { + "css": "polygon-gamma", + "api": "gamma", + "type": "float", + "default-value": 1, + "default-meaning": "fully antialiased", + "range": "0-1", + "doc": "Level of antialiasing of polygon edges" + }, + "fill-opacity": { + "css": "polygon-opacity", + "type": "float", + "doc": "The opacity of the polygon", + "default-value": 1, + "default-meaning": "opaque" + }, + "smooth": { + "css": "polygon-smooth", + "api": "smooth", + "type": "float", + "default-value": 0, + "default-meaning": "no smoothing", + "range": "0-1", + "doc": "Amount of smoothing applied" + } + }, + "line": { + "stroke": { + "css": "line-color", + "default-value": "rgba(0,0,0,1)", + "type": "color", + "default-meaning": "black and fully opaque (alpha = 1), same as rgb(0,0,0)", + "doc": "The color of a drawn line" + }, + "stroke-width": { + "css": "line-width", + "default-value": 1, + "type": "float", + "doc": "The width of a line in pixels" + }, + "stroke-opacity": { + "css": "line-opacity", + "default-value": 1, + "type": "float", + "default-meaning": "opaque", + "doc": "The opacity of a line" + }, + "stroke-linejoin": { + "css": "line-join", + "default-value": "miter", + "type": [ + "miter", + "round", + "bevel" + ], + "doc": "The behavior of lines when joining" + }, + "stroke-linecap": { + "css": "line-cap", + "default-value": "butt", + "type": [ + "butt", + "round", + "square" + ], + "doc": "The display of line endings" + }, + "stroke-gamma": { + "css": "line-gamma", + "api": "gamma", + "type": "float", + "default-value": 1, + "default-meaning": "fully antialiased", + "range": "0-1", + "doc": "Level of antialiasing of stroke line" + }, + "stroke-dasharray": { + "css": "line-dasharray", + "type": "numbers", + "doc": "A pair of length values [a,b], where (a) is the dash length and (b) is the gap length respectively. More than two values are supported for more complex patterns.", + "default-value": "none", + "default-meaning": "solid line" + }, + "stroke-dashoffset": { + "css": "line-dash-offset", + "type": "numbers", + "doc": "valid parameter but not currently used in renderers", + "default-value": "none", + "default-meaning": "solid line" + }, + "rasterizer": { + "css": "line-rasterizer", + "type": [ + "full", + "fast" + ], + "default-value": "full", + "doc": "Exposes an alternate AGG rendering method that sacrifices some accuracy for speed." + } + }, + "markers": { + "file": { + "css": "marker-file", + "doc": "An SVG file that this marker shows at each placement. If no file is given, the marker will show an ellipse.", + "default-value": "", + "default-meaning": "An ellipse or circle, if width equals height", + "type": "uri" + }, + "opacity": { + "css": "marker-opacity", + "doc": "The overall opacity of the marker", + "default-value": 1, + "default-meaning": "opaque", + "type": "float" + }, + "stroke": { + "css": "marker-line-color", + "doc": "The color of the stroke around a marker shape.", + "default-value": "black", + "type": "color" + }, + "stroke-width": { + "css": "marker-line-width", + "doc": "The width of the stroke around a marker shape, in pixels. This is positioned on the boundary, so high values can cover the area itself.", + "type": "float" + }, + "stroke-opacity": { + "css": "marker-line-opacity", + "default-value": 1, + "default-meaning": "opaque", + "doc": "The opacity of a line", + "type": "float" + }, + "placement": { + "css": "marker-placement", + "type": [ + "point", + "line" + ], + "doc": "Attempt to place markers on a point once or on a line repeatedly", + "default-value": "line" + }, + "marker-type": { + "css": "marker-type", + "type": [ + "arrow", + "ellipse" + ], + "default-value": "ellipse", + "doc": "The default marker-type. If a SVG file is not given as the marker-file parameter, the renderer provides either an arrow or an ellipse (a circle if height is equal to width)" + }, + "width": { + "css": "marker-width", + "default-value": 10, + "doc": "The width of the marker, if using one of the default types.", + "type": "float" + }, + "height": { + "css": "marker-height", + "default-value": 10, + "doc": "The height of the marker, if using one of the default types.", + "type": "float" + }, + "fill": { + "css": "marker-fill", + "default-value": "blue", + "doc": "The color of the area of the marker.", + "type": "color" + }, + "allow-overlap": { + "css": "marker-allow-overlap", + "type": "boolean", + "default-value": false, + "doc": "Control whether overlapping markers are shown or hidden.", + "default-meaning": "Do not allow makers to overlap with each other - overlapping markers will not be shown." + }, + "ignore-placement": { + "css": "marker-ignore-placement", + "type": "boolean", + "default-value": false, + "default-meaning": "do not store the bbox of this geometry in the collision detector cache", + "doc": "value to control whether the placement of the feature will prevent the placement of other features" + }, + "spacing": { + "css": "marker-spacing", + "doc": "Space between repeated labels", + "default-value": 100, + "type": "float" + }, + "max-error": { + "css": "marker-max-error", + "type": "float", + "default-value": 0.2, + "doc": "The maximum difference between actual marker placement and the marker-spacing parameter. Setting a high value can allow the renderer to try to resolve placement conflicts with other symbolizers." + }, + "transform": { + "css": "marker-transform", + "doc": "An SVG transformation definition", + "default-value": "", + "default-meaning": "no transformation", + "type": "string" + } + }, + "shield": { + "name": { + "css": "shield-name", + "type": "string", + "required": true, + "serialization": "content", + "doc": "Value to use for a shield\"s text label. Data columns are specified using brackets like [column_name]" + }, + "face-name": { + "css": "shield-face-name", + "type": "string", + "validate": "font", + "doc": "Font name and style to use for the shield text", + "default-value": "", + "required": true + }, + "size": { + "css": "shield-size", + "type": "float", + "doc": "The size of the shield text in pixels" + }, + "fill": { + "css": "shield-fill", + "type": "color", + "doc": "The color of the shield text" + }, + "placement": { + "css": "shield-placement", + "type": [ + "point", + "line", + "vertex", + "interior" + ], + "default-value": "point", + "doc": "How this shield should be placed. Point placement attempts to place it on top of points, line places along lines multiple times per feature, vertex places on the vertexes of polygons, and interior attempts to place inside of polygons." + }, + "avoid-edges": { + "css": "shield-avoid-edges", + "doc": "Tell positioning algorithm to avoid labeling near intersection edges.", + "type": "boolean", + "default-value": false + }, + "minimum-distance": { + "css": "shield-min-distance", + "type": "float", + "default-value": 0, + "doc": "Minimum distance to the next shield symbol, not necessarily the same shield." + }, + "spacing": { + "css": "shield-spacing", + "type": "float", + "default-value": 0, + "doc": "The spacing between repeated occurrences of the same shield on a line" + }, + "minimum-padding": { + "css": "shield-min-padding", + "default-value": 0, + "doc": "Determines the minimum amount of padding that a shield gets relative to other shields", + "type": "float" + }, + "wrap-width": { + "css": "shield-wrap-width", + "type": "float", + "default-value": 0, + "doc": "Length before wrapping long names." + }, + "wrap-character": { + "css": "shield-wrap-character", + "type": "string", + "default-value": " ", + "doc": "Use this character instead of a space to wrap long names." + }, + "halo-fill": { + "css": "shield-halo-fill", + "type": "color", + "default-value": "#FFFFFF", + "default-meaning": "white", + "doc": "Specifies the color of the halo around the text." + }, + "halo-radius": { + "css": "shield-halo-radius", + "doc": "Specify the radius of the halo in pixels", + "default-value": 0, + "default-meaning": "no halo", + "type": "float" + }, + "character-spacing": { + "css": "shield-character-spacing", + "type": "float", + "default-value": 0, + "doc": "Horizontal spacing between characters (in pixels). Currently works for point placement only, not line placement." + }, + "line-spacing": { + "css": "shield-line-spacing", + "doc": "Vertical spacing between lines of multiline labels (in pixels)", + "type": "float" + }, + "file": { + "css": "shield-file", + "type": "uri", + "default-value": "none", + "doc": "Image file to render behind the shield text" + }, + "dx": { + "css": "shield-text-dx", + "type": "float", + "doc": "Displace text within shield by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right", + "default-value": 0 + }, + "dy": { + "css": "shield-text-dy", + "type": "float", + "doc": "Displace text within shield by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down", + "default-value": 0 + }, + "shield-dx": { + "css": "shield-dx", + "type": "float", + "doc": "Displace shield by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right", + "default-value": 0 + }, + "shield-dy": { + "css": "shield-dy", + "type": "float", + "doc": "Displace shield by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down", + "default-value": 0 + }, + "opacity": { + "css": "shield-opacity", + "type": "float", + "doc": "(Default 1.0) - opacity of the image used for the shield", + "default-value": 1 + }, + "text-opacity": { + "css": "shield-text-opacity", + "type": "float", + "doc": "(Default 1.0) - opacity of the text placed on top of the shield", + "default-value": 1 + }, + "horizontal-alignment": { + "css": "shield-horizontal-alignment", + "type": [ + "left", + "middle", + "right", + "auto" + ], + "doc": "The shield's horizontal alignment from its centerpoint", + "default-value": "middle" + }, + "text-transform": { + "css": "shield-text-transform", + "type": [ + "none", + "uppercase", + "lowercase", + "capitalize" + ], + "doc": "Transform the case of the characters", + "default-value": "none" + }, + "no-text": { + "css": "shield-no-text", + "type": "boolean", + "doc": "Whether the shield should make room for a text label.", + "default-value": "false" + }, + "justify-alignment": { + "css": "shield-justify-alignment", + "type": "string", + "doc": "Define how text in a shield's label is justified", + "default-value": "middle" + } + }, + "line-pattern": { + "file": { + "css": "line-pattern-file", + "type": "uri", + "default-value": "none", + "required": true, + "doc": "An image file to be repeated and warped along a line" + } + }, + "polygon-pattern": { + "file": { + "css": "polygon-pattern-file", + "type": "uri", + "default-value": "none", + "required": true, + "doc": "Image to use as a repeated pattern fill within a polygon" + }, + "alignment": { + "css": "polygon-pattern-alignment", + "type": ["local","global"], + "default-value": "local", + "doc": "Specify whether to align pattern fills to the layer or to the map." + }, + "gamma": { + "css": "polygon-pattern-gamma", + "api": "gamma", + "type": "float", + "default-value": 1, + "default-meaning": "fully antialiased", + "range": "0-1", + "doc": "Level of antialiasing of polygon pattern edges" + } + }, + "raster": { + "opacity": { + "css": "raster-opacity", + "default-value": 1, + "default-meaning": "opaque", + "type": "float", + "doc": "The opacity of the raster symbolizer on top of other symbolizers." + }, + "mode": { + "css": "raster-mode", + "default-value": "normal", + "type": [ + "normal", + "grain_merge", + "grain_merge2", + "multiply", + "multiply2", + "divide", + "divide2", + "screen", + "hard_light" + ], + "doc": "The blending technique used to overlay this raster image on the layer below. Normal simply covers the layer. Grain merge adds the two layers together and subtracts 128 from the value, making the resulting area sometimes high-contrast. Screen often gives a lighter, washed-out appearance. Multiply multiplies the pixels, giving a high-contrast result. Divide divides the upper layer by the lower layer, making a lighter version." + }, + "filter-factor": { + "css": "raster-filter-factor", + "default-value": -1, + "default-meaning": "Allow the datasource to choose appropriate downscaling.", + "type": "float", + "doc": "This is used by the Raster or Gdal datasources to pre-downscale images using overviews. Higher numbers can sometimes cause much better scaled image output, at the cost of speed." + }, + "scaling": { + "css": "raster-scaling", + "type": [ + "fast", + "bilinear", + "bilinear8", + "bicubic", + "spline16", + "gaussian", + "lanczos" + ], + "default-value": "fast", + "doc": "The scaling algorithm used to making different resolution versions of this raster layer. Bilinear is a good compromise between speed and accuracy, while lanczos gives the highest quality." + }, + "mesh-size": { + "css": "raster-mesh-size", + "default-value": 16, + "default-meaning": "Reprojection mesh will be 1/16 of the resolution of the source image", + "type": "integer", + "doc": "A reduced resolution mesh is used for raster reprojection, and the total image size is divided by the mesh-size to determine the quality of that mesh. Values for mesh-size larger than the default will result in faster reprojection but might lead to distortion." + } + }, + "point": { + "file": { + "css": "point-file", + "type": "uri", + "required": false, + "default-value": "none", + "doc": "Image file to represent a point" + }, + "allow-overlap": { + "css": "point-allow-overlap", + "type": "boolean", + "default-value": false, + "doc": "Control whether overlapping points are shown or hidden.", + "default-meaning": "Do not allow points to overlap with each other - overlapping markers will not be shown." + }, + "ignore-placement": { + "css": "point-ignore-placement", + "type": "boolean", + "default-value": false, + "default-meaning": "do not store the bbox of this geometry in the collision detector cache", + "doc": "value to control whether the placement of the feature will prevent the placement of other features" + }, + "opacity": { + "css": "point-opacity", + "type": "float", + "default-value": 1.0, + "default-meaning": "Fully opaque", + "doc": "A value from 0 to 1 to control the opacity of the point" + }, + "placement": { + "css": "point-placement", + "type": [ + "centroid", + "interior" + ], + "doc": "How this point should be placed. Centroid calculates the geometric center of a polygon, which can be outside of it, while interior always places inside of a polygon.", + "default-value": "centroid" + }, + "transform": { + "css": "point-transform", + "type": "string", + "default-value": "", + "default-meaning": "No transformation", + "doc": "SVG transformation definition" + } + }, + "text": { + "name": { + "css": "text-name", + "type": "string", + "required": true, + "default-value": "", + "serialization": "content", + "doc": "Value to use for a text label. Data columns are specified using brackets like [column_name]" + }, + "face-name": { + "css": "text-face-name", + "type": "string", + "validate": "font", + "doc": "Font name and style to render a label in", + "required": true + }, + "size": { + "css": "text-size", + "type": "float", + "default-value": 10, + "doc": "Text size in pixels" + }, + "text-ratio": { + "css": "text-ratio", + "doc": "Define the amount of text (of the total) present on successive lines when wrapping occurs", + "default-value": 0, + "type": "float" + }, + "wrap-width": { + "css": "text-wrap-width", + "doc": "Length of a chunk of text in characters before wrapping text", + "default-value": 0, + "type": "float" + }, + "wrap-character": { + "css": "text-wrap-character", + "type": "string", + "default-value": " ", + "doc": "Use this character instead of a space to wrap long text." + }, + "spacing": { + "css": "text-spacing", + "type": "float", + "doc": "Distance between repeated text labels on a line" + }, + "character-spacing": { + "css": "text-character-spacing", + "type": "float", + "default-value": 0, + "doc": "Horizontal spacing adjustment between characters in pixels" + }, + "line-spacing": { + "css": "text-line-spacing", + "default-value": 0, + "type": "float", + "doc": "Vertical spacing adjustment between lines in pixels" + }, + "label-position-tolerance": { + "css": "text-label-position-tolerance", + "default-value": 0, + "type": "float", + "doc": "Allows the label to be displaced from its ideal position by a number of pixels" + }, + "max-char-angle-delta": { + "css": "text-max-char-angle-delta", + "type": "float", + "default-value": "none", + "doc": "If present, the maximum angle change, in degrees, allowed between adjacent characters in a label. This will stop label placement around sharp corners." + }, + "fill": { + "css": "text-fill", + "doc": "Specifies the color for the text", + "default-value": "#000000", + "type": "color" + }, + "opacity": { + "css": "text-opacity", + "doc": "A number from 0 to 1 specifying the opacity for the text", + "default-value": 1.0, + "default-meaning": "Fully opaque", + "type": "float" + }, + "halo-fill": { + "css": "text-halo-fill", + "type": "color", + "default-value": "#FFFFFF", + "default-meaning": "white", + "doc": "Specifies the color of the halo around the text." + }, + "halo-radius": { + "css": "text-halo-radius", + "doc": "Specify the radius of the halo in pixels", + "default-value": 0, + "default-meaning": "no halo", + "type": "float" + }, + "dx": { + "css": "text-dx", + "type": "float", + "doc": "Displace text by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right", + "default-value": 0 + }, + "dy": { + "css": "text-dy", + "type": "float", + "doc": "Displace text by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down", + "default-value": 0 + }, + "vertical-alignment": { + "css": "text-vertical-alignment", + "type": [ + "top", + "middle", + "bottom" + ], + "doc": "Position of label relative to point position.", + "default-value": "middle", + "default-meaning": "Default affected by value of dy; \"bottom\" for dy>0, \"top\" for dy<0." + }, + "avoid-edges": { + "css": "text-avoid-edges", + "doc": "Tell positioning algorithm to avoid labeling near intersection edges.", + "default-value": false, + "type": "boolean" + }, + "minimum-distance": { + "css": "text-min-distance", + "doc": "Minimum permitted distance to the next text symbolizer.", + "type": "float" + }, + "minimum-padding": { + "css": "text-min-padding", + "doc": "Determines the minimum amount of padding that a text symbolizer gets relative to other text", + "type": "float" + }, + "minimum-path-length": { + "css": "text-min-path-length", + "type": "float", + "default-value": 0, + "default-meaning": "place labels on all paths", + "doc": "Place labels only on paths longer than this value." + }, + "allow-overlap": { + "css": "text-allow-overlap", + "type": "boolean", + "default-value": false, + "doc": "Control whether overlapping text is shown or hidden.", + "default-meaning": "Do not allow text to overlap with other text - overlapping markers will not be shown." + }, + "orientation": { + "css": "text-orientation", + "type": "float", + "doc": "Rotate the text." + }, + "placement": { + "css": "text-placement", + "type": [ + "point", + "line", + "vertex", + "interior" + ], + "default-value": "point", + "doc": "Control the style of placement of a point versus the geometry it is attached to." + }, + "placement-type": { + "css": "text-placement-type", + "doc": "Re-position and/or re-size text to avoid overlaps. \"simple\" for basic algorithm (using text-placements string,) \"dummy\" to turn this feature off.", + "type": [ + "dummy", + "simple" + ], + "default-value": "dummy" + }, + "placements": { + "css": "text-placements", + "type": "string", + "default-value": "", + "doc": "If \"placement-type\" is set to \"simple\", use this \"POSITIONS,[SIZES]\" string. See TextSymbolizer docs for format." + }, + "text-transform": { + "css": "text-transform", + "type": [ + "none", + "uppercase", + "lowercase", + "capitalize" + ], + "doc": "Transform the case of the characters", + "default-value": "none" + }, + "horizontal-alignment": { + "css": "text-horizontal-alignment", + "type": [ + "left", + "middle", + "right", + "auto" + ], + "doc": "The text's horizontal alignment from its centerpoint", + "default-value": "middle" + }, + "justify-alignment": { + "css": "text-align", + "type": [ + "left", + "right", + "center" + ], + "doc": "Set the text alignment.", + "default-value": "center" + } + }, + "building": { + "fill": { + "css": "building-fill", + "default-value": "#FFFFFF", + "doc": "The color of the buildings walls.", + "type": "color" + }, + "fill-opacity": { + "css": "building-fill-opacity", + "type": "float", + "doc": "The opacity of the building as a whole, including all walls.", + "default-value": 1 + }, + "height": { + "css": "building-height", + "doc": "The height of the building in pixels.", + "type": "float", + "default-value": "0" + } + } + }, + "colors": { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255,235,205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "grey": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50], + "transparent": [0, 0, 0, 0] + } +} + diff --git a/index.js b/index.js index 5310cc0..025f20f 100644 --- a/index.js +++ b/index.js @@ -4,7 +4,7 @@ var fs = require('fs'), // Load all stated versions into the module exports module.exports.version = {}; -['2.0.1', '2.0.2', '2.1.0', 'latest'].map(function(version) { +['2.0.0', '2.0.1', '2.0.2', '2.1.0', 'latest'].map(function(version) { module.exports.version[version] = JSON.parse( fs.readFileSync( path.join(__dirname, version, 'reference.json'), 'utf8')); diff --git a/test/test.py b/test/test.py index c8dcc78..e3320ff 100755 --- a/test/test.py +++ b/test/test.py @@ -7,7 +7,7 @@ # >= python 2.6 import json -versions = ['2.0.1', '2.0.2', '2.1.0', 'latest'] +versions = ['2.0.0','2.0.1', '2.0.2', '2.1.0', 'latest'] for v in versions: print '-- testing %s/reference.json' % v @@ -25,6 +25,4 @@ assert group_name in css_name, "'%s' not properly prefixed by '%s'" % (css_name,group_name) assert 'type' in i[1].keys(), '%s: type not in %s' % (sym[0], i[0]) assert 'doc' in i[1].keys(), '%s: doc string not in %s' % (sym[0], i[0]) - assert 'css' in i[1].keys(), '%s: css not in %s' % (sym[0], i[0]) - -print '... oh yeah, tests passed' + assert 'css' in i[1].keys(), '%s: css not in %s' % (sym[0], i[0]) \ No newline at end of file