diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2016-12-24 11:38:47 -0800 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2017-01-04 21:46:25 -0800 |
commit | 7e120e32b824d7d3deda2448f67cfe346c5ff29d (patch) | |
tree | b5fd51b65c9335aa9f4e0e1a4e06efde9e9fefee /platform/darwin/scripts/generate-style-code.js | |
parent | 0fac9d5674453f587a4c86f71b06da668f8cae27 (diff) | |
download | qtlocation-mapboxgl-7e120e32b824d7d3deda2448f67cfe346c5ff29d.tar.gz |
[ios, macos] Added guide for style authors
Added a guide to orient JSON stylesheet authors and Mapbox Studio users around the runtime styling API. An introductory section details the many considerations for designing a robust style for use with iOS and macOS devices.
Diffstat (limited to 'platform/darwin/scripts/generate-style-code.js')
-rw-r--r-- | platform/darwin/scripts/generate-style-code.js | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/platform/darwin/scripts/generate-style-code.js b/platform/darwin/scripts/generate-style-code.js index 46f55c889c..9d42972ab5 100644 --- a/platform/darwin/scripts/generate-style-code.js +++ b/platform/darwin/scripts/generate-style-code.js @@ -370,6 +370,7 @@ const layerM = ejs.compile(fs.readFileSync('platform/darwin/src/MGLStyleLayer.mm const testLayers = ejs.compile(fs.readFileSync('platform/darwin/test/MGLStyleLayerTests.m.ejs', 'utf8'), { strict: true}); const categoryH = ejs.compile(fs.readFileSync('platform/darwin/src/NSValue+MGLStyleEnumAttributeAdditions.h.ejs', 'utf8'), { strict: true}); const categoryM = ejs.compile(fs.readFileSync('platform/darwin/src/NSValue+MGLStyleEnumAttributeAdditions.mm.ejs', 'utf8'), { strict: true}); +const guideMD = ejs.compile(fs.readFileSync('platform/darwin/docs/guides/For Style Authors.md.ejs', 'utf8'), { strict: true }); const layers = Object.keys(spec.layer.type.values).map((type) => { const layoutProperties = Object.keys(spec[`layout_${type}`]).reduce((memo, name) => { @@ -416,14 +417,21 @@ ${macosComment}${decl} var allLayoutProperties = []; var allPaintProperties = []; var allTypes = []; +var allRenamedProperties = {}; -for (var layer of layers) { +for (let layer of layers) { allLayoutProperties.push(layer.layoutProperties); allPaintProperties.push(layer.paintProperties); allTypes.push(layer.type); - const containsEnumerationProperties = _.filter(layer.layoutProperties, function(property){ return property["type"] === "enum"; }).length || _.filter(layer.paintProperties, function(property){ return property["type"] === "enum"; }).length; - layer.containsEnumerationProperties = containsEnumerationProperties; + let properties = _.concat(layer.layoutProperties, layer.paintProperties); + layer.containsEnumerationProperties = _.some(properties, prop => prop.type === "enum"); + let renamedProperties = {}; + _.assign(renamedProperties, _.filter(properties, prop => 'original' in prop || 'getter' in prop)); + if (!_.isEmpty(renamedProperties)) { + allRenamedProperties[layer.type] = renamedProperties; + } + fs.writeFileSync(`platform/darwin/src/${prefix}${camelize(layer.type)}${suffix}.h`, duplicatePlatformDecls(layerH(layer))); fs.writeFileSync(`platform/darwin/src/${prefix}${camelize(layer.type)}${suffix}.mm`, layerM(layer)); fs.writeFileSync(`platform/darwin/test/${prefix}${camelize(layer.type)}${suffix}Tests.m`, testLayers(layer)); @@ -438,3 +446,8 @@ fs.writeFileSync(`platform/darwin/src/NSValue+MGLStyleEnumAttributeAdditions.mm` layoutProperties: _.flatten(allLayoutProperties), paintProperties: _.flatten(allPaintProperties) })); + +fs.writeFileSync(`platform/darwin/docs/guides/For Style Authors.md`, guideMD({ + renamedProperties: allRenamedProperties, + types: allTypes, +})); |