- From: SVG Working Group repository <cam@mcc.id.au>
- Date: Tue, 21 Aug 2012 00:28:42 -0700
- To: public-svg-wg@w3.org
details: https://svgwg.org/hg/svg2-tools/rev/6f7ca5478368
branches:
changeset: 61:6f7ca5478368
user: Cameron McCormack <cam@mcc.id.au>
date: Tue Aug 21 17:29:06 2012 +1000
description:
Try putting content model elements in an inline list in element summary boxes.
diffstat:
publish/definitions.js | 4 ++--
publish/processing.js | 19 ++++++++++---------
publish/utils.js | 17 ++++++++++++++++-
3 files changed, 28 insertions(+), 12 deletions(-)
diffs (138 lines):
diff --git a/publish/definitions.js b/publish/definitions.js
--- a/publish/definitions.js
+++ b/publish/definitions.js
@@ -104,22 +104,22 @@ function Definitions() {
this.interfaces = { };
this.symbols = { };
this.terms = { };
this.commonAttributesForElements = [];
this.commonAttributes = { };
this.presentationAttributes = { };
}
-Definitions.prototype.formatElementLink = function(name, n) {
+Definitions.prototype.formatElementLink = function(name, n, omitQuotes) {
if (!this.elements[name]) {
utils.warn('unknown element "' + name + '"', n);
return utils.parse('<span class="xxx">@@ unknown element "{{name}}"</span>', { name: name });
}
- return this.elements[name].formatLink();
+ return this.elements[name].formatLink(omitQuotes);
};
Definitions.prototype.formatElementAttributeLink = function(elementName, attributeName, n) {
if (!this.elements[elementName] || !this.elements[elementName].attributes[attributeName]) {
utils.warn('unknown attribute "' + attributeName + '" on element "' + elementName + '"', n);
return utils.parse('<span class="xxx">@@ unknown attribute "{{attribute}}" on element "{{element}}</span>', { attribute: attributeName, element: elementName });
}
return this.elements[elementName].attributes[attributeName].formatLink();
diff --git a/publish/processing.js b/publish/processing.js
--- a/publish/processing.js
+++ b/publish/processing.js
@@ -404,47 +404,48 @@ function formatContentModel(conf, elemen
case 'text':
return 'Character data.';
default:
return 'Empty.';
case 'textoranyof':
intro = 'Any number of the following elements or character data, in any order:';
break;
case 'anyof':
- intro = 'Any number of the following elements or character data:';
+ intro = 'Any number of the following elements, in any order:';
break;
case 'oneormoreof':
- intro = 'One or more of the following elements or character data:';
+ intro = 'One or more of the following elements, in any order:';
break;
}
+ var content = [intro];
+
var ul = utils.parse('<ul class="no-bullets"></ul>');
element.elementCategories.concat().sort().forEach(function(name) {
var cat = conf.definitions.elementCategories[name];
if (!cat) {
return utils.parse('<li><a href="data:," style="background: red; color: white">@@ unknown element category "{{name}}"</a><li>', { name: name });
}
var li = utils.parse('<li><a href="{{href}}">{{name}} elements</a><span class="expanding"> — {{elements}}</span></li>',
{ href: cat.href,
name: cat.name,
elements: utils.fragment(cat.elements.map(function(name) { return conf.definitions.formatElementLink(name, n) }), ', ') });
ul.appendChild(li);
});
+ content.push(ul);
- element.elements.concat().sort().forEach(function(name) {
+ content.push(utils.list(element.elements.concat().sort().map(function(name) {
var e = conf.definitions.elements[name];
if (!e) {
- return utils.parse('<li><a href="data:," style="background: red; color: white">@@ unknown element "{{name}}"</a><li>', { name: name });
+ return utils.parse('<a href="data:," style="background: red; color: white">@@ unknown element "{{name}}"</a>', { name: name });
}
- var li = utils.parse('<li>{{element}}</li>',
- { element: conf.definitions.formatElementLink(name, n) });
- ul.appendChild(li);
- });
+ return conf.definitions.formatElementLink(name, n, true);
+ })));
- return [intro, ul];
+ return content;
}
function formatElementAttributes(conf, element, n) {
if (!element.attributeCategories && !element.commonAttributes && !element.specificAttributes) {
return "None";
}
var ul = utils.parse('<ul class="no-bullets"></ul>');
diff --git a/publish/utils.js b/publish/utils.js
--- a/publish/utils.js
+++ b/publish/utils.js
@@ -158,29 +158,44 @@ exports.initialuc = function(s) {
};
exports.replace = function(n, replacement) {
n.parentNode.replaceChild(replacement, n);
};
exports.englishList = function(items) {
if (!items.length) {
- return null;
+ return undefined;
}
var doc = items[0].ownerDocument;
var frag = doc.createDocumentFragment();
for (var i = 0; i < items.length; i++) {
if (i != 0) {
frag.appendChild(doc.createTextNode(i == items.length - 1 ? ' and ' : ', '));
}
frag.appendChild(items[i]);
}
return frag;
};
+exports.list = function(items) {
+ if (!items.length) {
+ return undefined;
+ }
+ var doc = items[0].ownerDocument;
+ var frag = doc.createDocumentFragment();
+ for (var i = 0; i < items.length; i++) {
+ if (i != 0) {
+ frag.appendChild(doc.createTextNode(', '));
+ }
+ frag.appendChild(items[i]);
+ }
+ return frag;
+};
+
exports.splitList = function(s) {
if (!s) {
return [];
}
return s.split(/,\s*/);
};
exports.values = function(object) {
Received on Tuesday, 21 August 2012 07:29:51 UTC