mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-18 22:48:10 +02:00
Use svg for maki also
This commit is contained in:
@@ -1,31 +1,30 @@
|
||||
# See the README for installation instructions.
|
||||
|
||||
all: \
|
||||
$(MAKI_TARGETS) \
|
||||
$(BUILDJS_TARGETS) \
|
||||
dist/iD.css \
|
||||
dist/iD.js \
|
||||
dist/iD.min.js \
|
||||
dist/img/iD-sprite.svg
|
||||
dist/img/iD-sprite.svg \
|
||||
dist/img/maki-sprite.svg
|
||||
|
||||
MAKI_TARGETS = \
|
||||
css/feature-icons.css \
|
||||
data/feature-icons.json
|
||||
|
||||
MAKI_SOURCES = \
|
||||
node_modules/maki/www/maki-sprite.json \
|
||||
dist/img/maki-sprite.png
|
||||
|
||||
$(MAKI_TARGETS): $(MAKI_SOURCES) data/maki_sprite.js
|
||||
node data/maki_sprite.js
|
||||
MAKI_SOURCES = node_modules/maki/src/*.svg
|
||||
MAKI_SPRITE = svg/maki-sprite.src.svg
|
||||
|
||||
$(MAKI_SOURCES): node_modules/.install
|
||||
|
||||
dist/img/maki-sprite.png: node_modules/maki/www/images/maki-sprite.png
|
||||
cp $< $@
|
||||
$(MAKI_SPRITE): $(MAKI_SOURCES) Makefile
|
||||
svg-sprite --symbol --symbol-inline --symbol-dest . --symbol-sprite $(MAKI_SPRITE) $(MAKI_SOURCES)
|
||||
|
||||
dist/img/iD-sprite.svg: svg/iD-sprite.svg svg/iD-sprite.json
|
||||
node svg/spriteify.js --svg svg/iD-sprite.svg --json svg/iD-sprite.json > dist/img/iD-sprite.svg
|
||||
data/feature-icons.json: $(MAKI_SOURCES)
|
||||
cp -f node_modules/maki/www/maki-sprite.json $@
|
||||
|
||||
dist/img/maki-sprite.svg: $(MAKI_SPRITE) $(MAKI_SOURCES)
|
||||
node svg/spriteify.js --svg $(MAKI_SPRITE) > $@
|
||||
|
||||
dist/img/iD-sprite.svg: svg/iD-sprite.src.svg svg/iD-sprite.json
|
||||
node svg/spriteify.js --svg svg/iD-sprite.src.svg --json svg/iD-sprite.json > $@
|
||||
|
||||
BUILDJS_TARGETS = \
|
||||
data/presets/categories.json \
|
||||
@@ -40,6 +39,7 @@ BUILDJS_TARGETS = \
|
||||
|
||||
BUILDJS_SOURCES = \
|
||||
$(filter-out $(BUILDJS_TARGETS), $(shell find data -type f -name '*.json')) \
|
||||
data/feature-icons.json \
|
||||
data/core.yaml
|
||||
|
||||
$(BUILDJS_TARGETS): $(BUILDJS_SOURCES) build.js
|
||||
@@ -107,14 +107,14 @@ dist/iD.min.js: dist/iD.js Makefile
|
||||
@rm -f $@
|
||||
node_modules/.bin/uglifyjs $< -c -m -o $@
|
||||
|
||||
dist/iD.css: $(MAKI_TARGETS) css/*.css
|
||||
cat css/reset.css css/map.css css/app.css css/feature-icons.css > $@
|
||||
dist/iD.css: css/*.css
|
||||
cat css/reset.css css/map.css css/app.css > $@
|
||||
|
||||
node_modules/.install: package.json
|
||||
npm install && touch node_modules/.install
|
||||
|
||||
clean:
|
||||
rm -f $(MAKI_TARGETS) $(BUILDJS_TARGETS) dist/iD*.js dist/iD.css
|
||||
rm -f $(BUILDJS_TARGETS) $(MAKI_SPRITE) data/feature-icons.json dist/iD*.js dist/iD.css dist/img/*.svg
|
||||
|
||||
translations:
|
||||
node data/update_locales
|
||||
|
||||
+27
-13
@@ -801,17 +801,10 @@ button.save.has-count .count::before {
|
||||
background: #ececec;
|
||||
}
|
||||
|
||||
.preset-icon {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.preset-icon-fill-area {
|
||||
cursor: inherit;
|
||||
height: 39px;
|
||||
width: 39px;
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
@@ -822,17 +815,38 @@ button.save.has-count .count::before {
|
||||
position: absolute;
|
||||
top: 7px;
|
||||
left: 7px;
|
||||
height: 42px;
|
||||
width: 42px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.preset-icon .icon {
|
||||
.preset-icon-frame .icon {
|
||||
width: 46px;
|
||||
height: 46px;
|
||||
}
|
||||
|
||||
.preset-icon-60 {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.preset-icon-60 .icon {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.preset-icon-frame .icon {
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
.preset-icon-32 {
|
||||
position: absolute;
|
||||
top: 14px;
|
||||
left: 14px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.preset-icon-32 .icon {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
.preset-list-button .label {
|
||||
|
||||
@@ -1,118 +0,0 @@
|
||||
/* This file is generated by make. Do NOT edit manually. */
|
||||
|
||||
.feature-circle-stroked{background-position:-0px -0px;}
|
||||
.feature-circle{background-position:-54px -0px;}
|
||||
.feature-square-stroked{background-position:-108px -0px;}
|
||||
.feature-square{background-position:-162px -0px;}
|
||||
.feature-triangle-stroked{background-position:-216px -0px;}
|
||||
.feature-triangle{background-position:-0px -24px;}
|
||||
.feature-star-stroked{background-position:-54px -24px;}
|
||||
.feature-star{background-position:-108px -24px;}
|
||||
.feature-cross{background-position:-162px -24px;}
|
||||
.feature-marker-stroked{background-position:-216px -24px;}
|
||||
.feature-marker{background-position:-0px -48px;}
|
||||
.feature-religious-jewish{background-position:-54px -48px;}
|
||||
.feature-religious-christian{background-position:-108px -48px;}
|
||||
.feature-religious-muslim{background-position:-162px -48px;}
|
||||
.feature-cemetery{background-position:-216px -48px;}
|
||||
.feature-rocket{background-position:-0px -72px;}
|
||||
.feature-airport{background-position:-54px -72px;}
|
||||
.feature-heliport{background-position:-108px -72px;}
|
||||
.feature-rail{background-position:-162px -72px;}
|
||||
.feature-rail-metro{background-position:-216px -72px;}
|
||||
.feature-rail-light{background-position:-0px -96px;}
|
||||
.feature-bus{background-position:-54px -96px;}
|
||||
.feature-fuel{background-position:-108px -96px;}
|
||||
.feature-parking{background-position:-162px -96px;}
|
||||
.feature-parking-garage{background-position:-216px -96px;}
|
||||
.feature-airfield{background-position:-0px -120px;}
|
||||
.feature-roadblock{background-position:-54px -120px;}
|
||||
.feature-ferry{background-position:-108px -120px;}
|
||||
.feature-harbor{background-position:-162px -120px;}
|
||||
.feature-bicycle{background-position:-216px -120px;}
|
||||
.feature-park{background-position:-0px -144px;}
|
||||
.feature-park2{background-position:-54px -144px;}
|
||||
.feature-museum{background-position:-108px -144px;}
|
||||
.feature-lodging{background-position:-162px -144px;}
|
||||
.feature-monument{background-position:-216px -144px;}
|
||||
.feature-zoo{background-position:-0px -168px;}
|
||||
.feature-garden{background-position:-54px -168px;}
|
||||
.feature-campsite{background-position:-108px -168px;}
|
||||
.feature-theatre{background-position:-162px -168px;}
|
||||
.feature-art-gallery{background-position:-216px -168px;}
|
||||
.feature-pitch{background-position:-0px -192px;}
|
||||
.feature-soccer{background-position:-54px -192px;}
|
||||
.feature-america-football{background-position:-108px -192px;}
|
||||
.feature-tennis{background-position:-162px -192px;}
|
||||
.feature-basketball{background-position:-216px -192px;}
|
||||
.feature-baseball{background-position:-0px -216px;}
|
||||
.feature-golf{background-position:-54px -216px;}
|
||||
.feature-swimming{background-position:-108px -216px;}
|
||||
.feature-cricket{background-position:-162px -216px;}
|
||||
.feature-skiing{background-position:-216px -216px;}
|
||||
.feature-school{background-position:-0px -240px;}
|
||||
.feature-college{background-position:-54px -240px;}
|
||||
.feature-library{background-position:-108px -240px;}
|
||||
.feature-post{background-position:-162px -240px;}
|
||||
.feature-fire-station{background-position:-216px -240px;}
|
||||
.feature-town-hall{background-position:-0px -264px;}
|
||||
.feature-police{background-position:-54px -264px;}
|
||||
.feature-prison{background-position:-108px -264px;}
|
||||
.feature-embassy{background-position:-162px -264px;}
|
||||
.feature-beer{background-position:-216px -264px;}
|
||||
.feature-restaurant{background-position:-0px -288px;}
|
||||
.feature-cafe{background-position:-54px -288px;}
|
||||
.feature-shop{background-position:-108px -288px;}
|
||||
.feature-fast-food{background-position:-162px -288px;}
|
||||
.feature-bar{background-position:-216px -288px;}
|
||||
.feature-bank{background-position:-0px -312px;}
|
||||
.feature-grocery{background-position:-54px -312px;}
|
||||
.feature-cinema{background-position:-108px -312px;}
|
||||
.feature-pharmacy{background-position:-162px -312px;}
|
||||
.feature-hospital{background-position:-216px -312px;}
|
||||
.feature-danger{background-position:-0px -336px;}
|
||||
.feature-industrial{background-position:-54px -336px;}
|
||||
.feature-warehouse{background-position:-108px -336px;}
|
||||
.feature-commercial{background-position:-162px -336px;}
|
||||
.feature-building{background-position:-216px -336px;}
|
||||
.feature-place-of-worship{background-position:-0px -360px;}
|
||||
.feature-alcohol-shop{background-position:-54px -360px;}
|
||||
.feature-logging{background-position:-108px -360px;}
|
||||
.feature-oil-well{background-position:-162px -360px;}
|
||||
.feature-slaughterhouse{background-position:-216px -360px;}
|
||||
.feature-dam{background-position:-0px -384px;}
|
||||
.feature-water{background-position:-54px -384px;}
|
||||
.feature-wetland{background-position:-108px -384px;}
|
||||
.feature-disability{background-position:-162px -384px;}
|
||||
.feature-telephone{background-position:-216px -384px;}
|
||||
.feature-emergency-telephone{background-position:-0px -408px;}
|
||||
.feature-toilets{background-position:-54px -408px;}
|
||||
.feature-waste-basket{background-position:-108px -408px;}
|
||||
.feature-music{background-position:-162px -408px;}
|
||||
.feature-land-use{background-position:-216px -408px;}
|
||||
.feature-city{background-position:-0px -432px;}
|
||||
.feature-town{background-position:-54px -432px;}
|
||||
.feature-village{background-position:-108px -432px;}
|
||||
.feature-farm{background-position:-162px -432px;}
|
||||
.feature-bakery{background-position:-216px -432px;}
|
||||
.feature-dog-park{background-position:-0px -456px;}
|
||||
.feature-lighthouse{background-position:-54px -456px;}
|
||||
.feature-clothing-store{background-position:-108px -456px;}
|
||||
.feature-polling-place{background-position:-162px -456px;}
|
||||
.feature-playground{background-position:-216px -456px;}
|
||||
.feature-entrance{background-position:-0px -480px;}
|
||||
.feature-heart{background-position:-54px -480px;}
|
||||
.feature-london-underground{background-position:-108px -480px;}
|
||||
.feature-minefield{background-position:-162px -480px;}
|
||||
.feature-rail-underground{background-position:-216px -480px;}
|
||||
.feature-rail-above{background-position:-0px -504px;}
|
||||
.feature-camera{background-position:-54px -504px;}
|
||||
.feature-laundry{background-position:-108px -504px;}
|
||||
.feature-car{background-position:-162px -504px;}
|
||||
.feature-suitcase{background-position:-216px -504px;}
|
||||
.feature-hairdresser{background-position:-0px -528px;}
|
||||
.feature-chemist{background-position:-54px -528px;}
|
||||
.feature-mobilephone{background-position:-108px -528px;}
|
||||
.feature-scooter{background-position:-162px -528px;}
|
||||
.feature-gift{background-position:-216px -528px;}
|
||||
.feature-ice-cream{background-position:-0px -552px;}
|
||||
+349
-1
File diff suppressed because one or more lines are too long
@@ -1,26 +0,0 @@
|
||||
var fs = require('fs');
|
||||
var _ = require('../js/lib/lodash');
|
||||
|
||||
var maki = require('maki/www/maki-sprite.json');
|
||||
|
||||
// Generate CSS
|
||||
var template = '.feature-{name}{background-position:-{x}px -{y}px;}\n';
|
||||
var css = "/* This file is generated by make. Do NOT edit manually. */\n\n";
|
||||
var images = {};
|
||||
|
||||
_.forEach(maki, function(dimensions, name) {
|
||||
var match = name.match(/(.*)-(12|18|24)/),
|
||||
name = match[1],
|
||||
size = match[2],
|
||||
group = images[name] = images[name] || {};
|
||||
group[size] = [dimensions.x, dimensions.y];
|
||||
|
||||
if (dimensions.width === 24) {
|
||||
css += template.replace('{name}', name.replace('-24', ''))
|
||||
.replace('{x}', dimensions.x)
|
||||
.replace('{y}', dimensions.y);
|
||||
}
|
||||
});
|
||||
|
||||
fs.writeFileSync('./css/feature-icons.css', css);
|
||||
fs.writeFileSync('./data/feature-icons.json', JSON.stringify(images));
|
||||
Vendored
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 113 KiB |
Vendored
+4063
File diff suppressed because it is too large
Load Diff
|
After Width: | Height: | Size: 526 KiB |
@@ -7,7 +7,6 @@
|
||||
<link rel='stylesheet' href='css/reset.css'>
|
||||
<link rel='stylesheet' href='css/map.css'>
|
||||
<link rel='stylesheet' href='css/app.css'>
|
||||
<link rel='stylesheet' href='css/feature-icons.css'>
|
||||
|
||||
<!-- mobile devices -->
|
||||
<meta name='viewport' content='initial-scale=1.0 maximum-scale=1.0'>
|
||||
|
||||
+2
-39
@@ -3,16 +3,6 @@
|
||||
used once globally, since defs IDs must be unique within a document.
|
||||
*/
|
||||
iD.svg.Defs = function(context) {
|
||||
function autosize(image) {
|
||||
var img = document.createElement('img');
|
||||
img.src = image.attr('xlink:href');
|
||||
img.onload = function() {
|
||||
image.attr({
|
||||
width: img.width,
|
||||
height: img.height
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
function SVGSpriteDefinition(id, href) {
|
||||
return function(defs) {
|
||||
@@ -25,22 +15,6 @@ iD.svg.Defs = function(context) {
|
||||
};
|
||||
}
|
||||
|
||||
function ImageSpriteDefinition(id, href, data) {
|
||||
return function(defs) {
|
||||
defs.append('image')
|
||||
.attr('id', id)
|
||||
.attr('xlink:href', href)
|
||||
.call(autosize);
|
||||
|
||||
defs.selectAll()
|
||||
.data(data)
|
||||
.enter().append('use')
|
||||
.attr('id', function(d) { return d.key; })
|
||||
.attr('transform', function(d) { return 'translate(-' + d.value[0] + ',-' + d.value[1] + ')'; })
|
||||
.attr('xlink:href', '#' + id);
|
||||
};
|
||||
}
|
||||
|
||||
return function (selection) {
|
||||
var defs = selection.append('defs');
|
||||
|
||||
@@ -121,23 +95,12 @@ iD.svg.Defs = function(context) {
|
||||
return d;
|
||||
});
|
||||
|
||||
// maki
|
||||
var maki = [];
|
||||
_.forEach(iD.data.featureIcons, function (dimensions, name) {
|
||||
if (dimensions['12'] && dimensions['18'] && dimensions['24']) {
|
||||
maki.push({key: 'maki-' + name + '-12', value: dimensions['12']});
|
||||
maki.push({key: 'maki-' + name + '-18', value: dimensions['18']});
|
||||
maki.push({key: 'maki-' + name + '-24', value: dimensions['24']});
|
||||
}
|
||||
});
|
||||
|
||||
defs.call(SVGSpriteDefinition(
|
||||
'iD-sprite',
|
||||
context.imagePath('iD-sprite.svg')));
|
||||
|
||||
defs.call(ImageSpriteDefinition(
|
||||
defs.call(SVGSpriteDefinition(
|
||||
'maki-sprite',
|
||||
context.imagePath('maki-sprite.png'),
|
||||
maki));
|
||||
context.imagePath('maki-sprite.svg')));
|
||||
};
|
||||
};
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ iD.svg.Icon = function(name, svgklass, useklass) {
|
||||
.data([0])
|
||||
.enter()
|
||||
.append('svg')
|
||||
.attr('class', 'icon ' + svgklass)
|
||||
.attr('class', 'icon ' + (svgklass || ''))
|
||||
.append('use')
|
||||
.attr('xlink:href', name)
|
||||
.attr('class', useklass);
|
||||
|
||||
+3
-4
@@ -161,19 +161,18 @@ iD.svg.Labels = function(projection, context) {
|
||||
}
|
||||
|
||||
function drawAreaIcons(group, entities, filter, classes, labels) {
|
||||
|
||||
var icons = group.selectAll('use')
|
||||
.filter(filter)
|
||||
.data(entities, iD.Entity.key);
|
||||
|
||||
icons.enter()
|
||||
.append('use')
|
||||
.attr('clip-path', 'url(#clip-square-18)')
|
||||
.attr('class', 'icon');
|
||||
.attr('width', '18px')
|
||||
.attr('height', '18px');
|
||||
|
||||
icons.attr('transform', get(labels, 'transform'))
|
||||
.attr('xlink:href', function(d) {
|
||||
return '#maki-' + context.presets().match(d, context.graph()).icon + '-18';
|
||||
return '#' + context.presets().match(d, context.graph()).icon + '-18';
|
||||
});
|
||||
|
||||
|
||||
|
||||
+4
-3
@@ -35,9 +35,10 @@ iD.svg.Points = function(projection, context) {
|
||||
.call(markerPath, 'stroke');
|
||||
|
||||
group.append('use')
|
||||
.attr('class', 'icon')
|
||||
.attr('transform', 'translate(-6, -20)')
|
||||
.attr('clip-path', 'url(#clip-square-12)');
|
||||
.attr('class', 'icon')
|
||||
.attr('width', '12px')
|
||||
.attr('height', '12px');
|
||||
|
||||
groups.attr('transform', iD.svg.PointTransform(projection))
|
||||
.call(iD.svg.TagClasses());
|
||||
@@ -49,7 +50,7 @@ iD.svg.Points = function(projection, context) {
|
||||
groups.select('.icon')
|
||||
.attr('xlink:href', function(entity) {
|
||||
var preset = context.presets().match(entity, context.graph());
|
||||
return preset.icon ? '#maki-' + preset.icon + '-12' : '';
|
||||
return preset.icon ? '#' + preset.icon + '-12' : '';
|
||||
});
|
||||
|
||||
groups.exit()
|
||||
|
||||
@@ -119,8 +119,9 @@ iD.svg.Vertices = function(projection, context) {
|
||||
enter.filter(function(d) { return icon(d); })
|
||||
.append('use')
|
||||
.attr('transform', 'translate(-6, -6)')
|
||||
.attr('clip-path', 'url(#clip-square-12)')
|
||||
.attr('xlink:href', function(d) { return '#maki-' + icon(d) + '-12'; });
|
||||
.attr('xlink:href', function(d) { return '#' + icon(d) + '-12'; })
|
||||
.attr('width', '12px')
|
||||
.attr('height', '12px');
|
||||
|
||||
// Vertices with tags get a fill.
|
||||
enter.filter(function(d) { return d.hasInterestingTags(); })
|
||||
|
||||
@@ -8,7 +8,9 @@ iD.ui.PresetIcon = function() {
|
||||
function setup() {
|
||||
var selection = d3.select(this),
|
||||
p = preset.apply(this, arguments),
|
||||
geom = geometry.apply(this, arguments);
|
||||
geom = geometry.apply(this, arguments),
|
||||
icon = p.icon || (geom === 'line' ? 'other-line' : 'marker-stroked'),
|
||||
isMaki = iD.data.featureIcons.hasOwnProperty(icon + '-24');
|
||||
|
||||
var $fill = selection.selectAll('.preset-icon-fill')
|
||||
.data([0]);
|
||||
@@ -43,11 +45,12 @@ iD.ui.PresetIcon = function() {
|
||||
.attr('class', 'preset-icon')
|
||||
.call(iD.svg.Icon(''));
|
||||
|
||||
$icon
|
||||
.classed('preset-icon-60', !isMaki)
|
||||
.classed('preset-icon-32', isMaki);
|
||||
|
||||
$icon.selectAll('use')
|
||||
.attr('href', function() {
|
||||
var icon = p.icon || (geom === 'line' ? 'other-line' : 'marker-stroked');
|
||||
return '#' + icon;
|
||||
});
|
||||
.attr('href', function() { return '#' + icon + (isMaki ? '-24' : ''); });
|
||||
}
|
||||
|
||||
presetIcon.preset = function(_) {
|
||||
|
||||
+3
-2
@@ -24,7 +24,7 @@
|
||||
"smash": "0.0",
|
||||
"lodash-cli": "3.9.3",
|
||||
"uglify-js": "~2.4.16",
|
||||
"maki": "0.4.5",
|
||||
"maki": "0.5.0",
|
||||
"eslint": "~1.2.1",
|
||||
"mocha": "~1.21.5",
|
||||
"mocha-phantomjs": "~3.5.3",
|
||||
@@ -40,7 +40,8 @@
|
||||
"name-suggestion-index": "0.0.1",
|
||||
"minimist": "~1.2.0",
|
||||
"xml2js": "~0.4.13",
|
||||
"xmlbuilder": "~3.1.0"
|
||||
"xmlbuilder": "~3.1.0",
|
||||
"svg-sprite": "~1.2.12"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 217 KiB After Width: | Height: | Size: 217 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 500 KiB |
+12
-5
@@ -3,12 +3,12 @@
|
||||
'use strict';
|
||||
|
||||
var argv = require('minimist')(process.argv.slice(2));
|
||||
if (argv.help || argv.h || !argv.svg || !argv.json) {
|
||||
if (argv.help || argv.h || !argv.svg) {
|
||||
return help();
|
||||
}
|
||||
|
||||
var fs = require('fs');
|
||||
var json = JSON.parse(fs.readFileSync(argv.json));
|
||||
var json = (argv.json ? JSON.parse(fs.readFileSync(argv.json)) : {});
|
||||
var _ = require('../js/lib/lodash.js');
|
||||
var xml2js = require('xml2js');
|
||||
|
||||
@@ -43,14 +43,14 @@ function xmlToJs(filename, cb) {
|
||||
|
||||
|
||||
function jsToXml(obj, cb) {
|
||||
var json = transform(obj.svg);
|
||||
var src = transform(obj.svg);
|
||||
var builder = require('xmlbuilder');
|
||||
var doc = builder.create('svg',
|
||||
{ version: '1.0', encoding: 'UTF-8' },
|
||||
{ pubID: '-//W3C//DTD SVG 1.1//EN', sysID: 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'}
|
||||
);
|
||||
|
||||
doc = build(doc, json);
|
||||
doc = build(doc, src);
|
||||
process.stdout.write(doc.end({ pretty: true }), 'utf8', cb);
|
||||
}
|
||||
|
||||
@@ -101,7 +101,14 @@ function build(doc, source) {
|
||||
doc = build(doc, source['#child'][i]);
|
||||
}
|
||||
}
|
||||
if (!isRoot) {
|
||||
|
||||
if (isRoot) {
|
||||
doc = doc.att({
|
||||
'version': "1.1",
|
||||
'xmlns': "http://www.w3.org/2000/svg",
|
||||
'xmlns:xlink': "http://www.w3.org/1999/xlink"
|
||||
});
|
||||
} else {
|
||||
doc = doc.up();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
<meta charset='utf-8'>
|
||||
<title>Rendering Tests</title>
|
||||
<link rel="stylesheet" href="../css/map.css">
|
||||
<link rel="stylesheet" href="../css/feature-icons.css">
|
||||
</head>
|
||||
<body>
|
||||
<!-- include source files here... -->
|
||||
|
||||
Reference in New Issue
Block a user