diff options
| author | Peter Bacon Darwin | 2014-02-12 22:47:42 +0000 | 
|---|---|---|
| committer | Peter Bacon Darwin | 2014-02-16 19:03:41 +0000 | 
| commit | 389d4879da4aa620ee95d789b19ff9be44eb730a (patch) | |
| tree | 93352ddc8738a975904a1774d51b93d585ca1075 /docs/src/dom.js | |
| parent | a564160511bf1bbed5a4fe5d2981fae1bb664eca (diff) | |
| download | angular.js-389d4879da4aa620ee95d789b19ff9be44eb730a.tar.bz2 | |
chore(doc-gen): new docs
chore(doc-gen): implement dgeni
Diffstat (limited to 'docs/src/dom.js')
| -rw-r--r-- | docs/src/dom.js | 184 | 
1 files changed, 0 insertions, 184 deletions
| diff --git a/docs/src/dom.js b/docs/src/dom.js deleted file mode 100644 index e696faf4..00000000 --- a/docs/src/dom.js +++ /dev/null @@ -1,184 +0,0 @@ -/** - * DOM generation class - */ - -exports.DOM = DOM; -exports.htmlEscape = htmlEscape; -exports.normalizeHeaderToId = normalizeHeaderToId; - -////////////////////////////////////////////////////////// - -function htmlEscape(text){ -  return text -          .replace(/&/g, '&') -          .replace(/</g, '<') -          .replace(/>/g, '>') -          .replace(/\{\{/g, '<span>{{</span>') -          .replace(/\}\}/g, '<span>}}</span>'); -} - -function nonEmpty(header) { -  return !!header; -} - -function idFromCurrentHeaders(headers) { -  if (headers.length === 1) return headers[0]; -  // Do not include the first level title, as that's the title of the page. -  return headers.slice(1).filter(nonEmpty).join('_'); -} - -function normalizeHeaderToId(header) { -  if (typeof header !== 'string') { -    return ''; -  } - -  return header.toLowerCase() -      .replace(/<.*>/g, '')         // html tags -      .replace(/[\!\?\:\.\']/g, '') // special characters -      .replace(/&#\d\d;/g, '')      // html entities -      .replace(/\(.*\)/mg, '')      // stuff in parenthesis -      .replace(/\s$/, '')           // trailing spaces -      .replace(/\s+/g, '-');        // replace whitespaces with dashes -} - - -function DOM() { -  this.out = []; -  this.headingDepth = 0; -  this.currentHeaders = []; -  this.anchors = []; -} - -var INLINE_TAGS = { -    i: true, -    b: true, -    a: true -}; - -DOM.prototype = { -  toString: function() { -    return this.out.join(''); -  }, - -  text: function(content) { -    if (typeof content == "string") { -      this.out.push(htmlEscape(content)); -    } else if (typeof content == 'function') { -      content.call(this, this); -    } else if (content instanceof Array) { -      this.ul(content); -    } -  }, - -  html: function(html) { -    if (!html) return; - -    var self = this; -    // rewrite header levels, add ids and collect the ids -    html = html.replace(/<h(\d)(.*?)>([\s\S]+?)<\/h\1>/gm, function(_, level, attrs, content) { -      level = parseInt(level, 10) + self.headingDepth; // change header level based on the context - -      self.currentHeaders[level - 1] = normalizeHeaderToId(content); -      self.currentHeaders.length = level; - -      var id = idFromCurrentHeaders(self.currentHeaders); -      self.anchors.push(id); -      return '<h' + level + attrs + ' id="' + id + '">' + content + '</h' + level + '>'; -    }); - -    // collect anchors -    html = html.replace(/<a name="(\w*)">/g, function(match, anchor) { -      self.anchors.push(anchor); -      return match; -    }); - -    this.out.push(html); -  }, - -  tag: function(name, attr, text) { -    if (!text) { -      text = attr; -      attr = {}; -      if (name == 'code') -        attr['ng:non-bindable'] = ''; -    } -    this.out.push('<' + name); -    for(var key in attr) { -      this.out.push(" " + key + '="' + attr[key] + '"'); -    } -    this.out.push('>'); -    this.text(text); -    this.out.push('</' + name + '>'); -    if (!INLINE_TAGS[name]) -      this.out.push('\n'); -  }, - -  code: function(text) { -    this.tag('pre', {'class':"prettyprint linenums"}, text); -  }, - -  div: function(attr, text) { -    this.tag('div', attr, text); -  }, - -  h: function(heading, content, fn){ -    if (content==undefined || (content instanceof Array && content.length == 0)) return; - -    this.headingDepth++; -    this.currentHeaders[this.headingDepth - 1] = normalizeHeaderToId(heading); -    this.currentHeaders.length = this.headingDepth; - -    var className = null, -        anchor = null; -    if (typeof heading == 'string') { -      var id = idFromCurrentHeaders(this.currentHeaders); -      this.anchors.push(id); -      anchor = {'id': id}; -      var classNameValue = this.currentHeaders[this.headingDepth - 1] -      if(classNameValue == 'hide') classNameValue = ''; -      className = {'class': classNameValue}; -    } -    this.tag('h' + this.headingDepth, anchor, heading); -    if (content instanceof Array) { -      this.ul(content, className, fn); -    } else if (fn) { -      this.tag('div', className, function() { -        fn.call(this, content); -      }); -    } else { -      this.tag('div', className, content); -    } -    this.headingDepth--; -  }, - -  h1: function(attr, text) { -    this.tag('h1', attr, text); -  }, - -  h2: function(attr, text) { -    this.tag('h2', attr, text); -  }, - -  h3: function(attr, text) { -    this.tag('h3', attr, text); -  }, - -  p: function(attr, text) { -    this.tag('p', attr, text); -  }, - -  ul: function(list, attr, fn) { -    if (typeof attr == 'function') { -      fn = attr; -      attr = {}; -    } -    this.tag('ul', attr, function(dom){ -      list.forEach(function(item){ -        dom.out.push('<li>'); -        dom.text(fn ? fn(item) : item); -        dom.out.push('</li>\n'); -      }); -    }); -  } - -}; | 
