MCPcopy Create free account
hub / github.com/TruthHun/BookStack / openTag

Function openTag

static/word2md/mammoth.browser.js:26702–26779  ·  view source on GitHub ↗
(parser, selfClosing)

Source from the content-addressed store, hash-verified

26700 }
26701
26702 function openTag (parser, selfClosing) {
26703 if (parser.opt.xmlns) {
26704 // emit namespace binding events
26705 var tag = parser.tag
26706
26707 // add namespace info to tag
26708 var qn = qname(parser.tagName)
26709 tag.prefix = qn.prefix
26710 tag.local = qn.local
26711 tag.uri = tag.ns[qn.prefix] || ''
26712
26713 if (tag.prefix && !tag.uri) {
26714 strictFail(parser, 'Unbound namespace prefix: ' +
26715 JSON.stringify(parser.tagName))
26716 tag.uri = qn.prefix
26717 }
26718
26719 var parent = parser.tags[parser.tags.length - 1] || parser
26720 if (tag.ns && parent.ns !== tag.ns) {
26721 Object.keys(tag.ns).forEach(function (p) {
26722 emitNode(parser, 'onopennamespace', {
26723 prefix: p,
26724 uri: tag.ns[p]
26725 })
26726 })
26727 }
26728
26729 // handle deferred onattribute events
26730 // Note: do not apply default ns to attributes:
26731 // http://www.w3.org/TR/REC-xml-names/#defaulting
26732 for (var i = 0, l = parser.attribList.length; i < l; i++) {
26733 var nv = parser.attribList[i]
26734 var name = nv[0]
26735 var value = nv[1]
26736 var qualName = qname(name, true)
26737 var prefix = qualName.prefix
26738 var local = qualName.local
26739 var uri = prefix === '' ? '' : (tag.ns[prefix] || '')
26740 var a = {
26741 name: name,
26742 value: value,
26743 prefix: prefix,
26744 local: local,
26745 uri: uri
26746 }
26747
26748 // if there's any attributes with an undefined namespace,
26749 // then fail on them now.
26750 if (prefix && prefix !== 'xmlns' && !uri) {
26751 strictFail(parser, 'Unbound namespace prefix: ' +
26752 JSON.stringify(prefix))
26753 a.uri = prefix
26754 }
26755 parser.tag.attributes[name] = a
26756 emitNode(parser, 'onattribute', a)
26757 }
26758 parser.attribList.length = 0
26759 }

Callers 1

writeFunction · 0.70

Calls 3

qnameFunction · 0.70
strictFailFunction · 0.70
emitNodeFunction · 0.70

Tested by

no test coverage detected