summaryrefslogtreecommitdiff
path: root/platform/darwin/scripts/generate-style-code.js
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2016-12-24 11:38:47 -0800
committerMinh Nguyễn <mxn@1ec5.org>2017-01-04 21:46:25 -0800
commit7e120e32b824d7d3deda2448f67cfe346c5ff29d (patch)
treeb5fd51b65c9335aa9f4e0e1a4e06efde9e9fefee /platform/darwin/scripts/generate-style-code.js
parent0fac9d5674453f587a4c86f71b06da668f8cae27 (diff)
downloadqtlocation-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.js19
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,
+}));