{"action":"created","comment":{"url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/comments/46303000","id":46303000,"diff_hunk":"@@ -0,0 +1,268 @@\n+/**\n+ * runtime Text renderer\n+ * renders a mobiledoc to Text\n+ *\n+ * input: mobiledoc\n+ * output: Text (string)\n+ */\n+import ImageCard from '../cards/image';\n+import RENDER_TYPE from '../utils/render-type';\n+\n+const LINE_BREAK = '\\n';\n+\n+import {\n+  MARKUP_SECTION_TYPE,\n+  LIST_SECTION_TYPE,\n+  CARD_SECTION_TYPE,\n+  IMAGE_SECTION_TYPE\n+} from '../utils/section-types';\n+\n+import {\n+  MARKUP_MARKER_TYPE,\n+  ATOM_MARKER_TYPE\n+} from '../utils/marker-types';\n+\n+export const MOBILEDOC_VERSION = '0.3.0';\n+\n+function validateVersion(version) {\n+  if (version !== MOBILEDOC_VERSION) {\n+    throw new Error(`Unexpected Mobiledoc version \"${version}\"`);\n+  }\n+}\n+\n+export default class Renderer {\n+  constructor(mobiledoc, state) {\n+\n+    let { cards, cardOptions, atoms, unknownCardHandler, unknownAtomHandler } = state;\n+    let { version, sections, atoms: atomTypes, cards: cardTypes } = mobiledoc;\n+    validateVersion(version);\n+\n+    this.root               = [];\n+    this.sections           = sections;\n+    this.atomTypes          = atomTypes;\n+    this.cardTypes          = cardTypes;\n+    this.cards              = cards;\n+    this.atoms              = atoms;\n+    this.cardOptions        = cardOptions;\n+    this.unknownCardHandler = unknownCardHandler || this._defaultUnknownCardHandler;\n+    this.unknownAtomHandler = unknownAtomHandler || this._defaultUnknownAtomHandler;\n+\n+    this._teardownCallbacks  = [];\n+  }\n+\n+  render() {\n+    this.sections.forEach(section => {\n+      this.root.push(this.renderSection(section));\n+    });\n+\n+    let result = this.root.join(LINE_BREAK);\n+    return { result, teardown: () => this.teardown() };\n+  }\n+\n+  teardown() {\n+    for (let i=0; i < this._teardownCallbacks.length; i++) {\n+      this._teardownCallbacks[i]();\n+    }\n+  }\n+\n+  get _defaultUnknownCardHandler() {\n+    return () => {\n+      // for the text renderer, a missing card is a no-op\n+    };\n+  }\n+\n+  get _defaultUnknownAtomHandler() {\n+    return ({ value }) => {\n+      return value || '';\n+    };\n+  }\n+\n+  renderSection(section) {\n+    const [type] = section;\n+    switch (type) {\n+      case MARKUP_SECTION_TYPE:\n+        return  this.renderMarkupSection(section);\n+      case IMAGE_SECTION_TYPE:\n+        return this.renderImageSection(section);\n+      case LIST_SECTION_TYPE:\n+        return this.renderListSection(section);\n+      case CARD_SECTION_TYPE:\n+        return this.renderCardSection(section);\n+      default:\n+        throw new Error('Unimplemented renderer for type ' + type);\n+    }\n+  }\n+\n+  renderImageSection() {\n+    return '';\n+  }\n+\n+  renderListSection([type, tagName, items]) {\n+    return items.map(\n+      li => this.renderListItem(li)\n+    ).join(LINE_BREAK);\n+  }\n+\n+  renderListItem(markers) {\n+    return this.renderMarkers(markers);\n+  }\n+\n+  findCard(name) {\n+    for (let i=0; i < this.cards.length; i++) {\n+      if (this.cards[i].name === name) {\n+        return this.cards[i];\n+      }\n+    }\n+    if (name === ImageCard.name) {\n+      return ImageCard;\n+    }\n+    return this._createUnknownCard(name);\n+  }\n+\n+  _findCardByIndex(index) {\n+    let cardType = this.cardTypes[index];\n+    if (!cardType) {\n+      throw new Error(`No card definition found at index ${index}`);\n+    }\n+\n+    let [ name, payload ] = cardType;\n+    let card = this.findCard(name);\n+\n+    return {\n+      card,\n+      payload\n+    };\n+  }\n+\n+  _createUnknownCard(name) {\n+    return {\n+      name,\n+      type: RENDER_TYPE,\n+      render: this.unknownCardHandler\n+    };\n+  }\n+\n+  renderCardSection([type, index]) {\n+    let { card, payload } = this._findCardByIndex(index);\n+\n+    let cardArg = this._createCardArgument(card, payload);\n+    let rendered = card.render(cardArg);\n+\n+    this._validateCardRender(rendered, card.name);\n+\n+    return rendered || '';\n+  }\n+\n+  _validateCardRender(rendered, cardName) {\n+    if (!rendered) {\n+      return;\n+    }\n+\n+    if (typeof rendered !== 'string') {\n+      throw new Error(`Card \"${cardName}\" must render ${RENDER_TYPE}, but result was ${typeof rendered}\"`);\n+    }\n+  }\n+\n+  _registerTeardownCallback(callback) {\n+    this._teardownCallbacks.push(callback);\n+  }\n+\n+  _createCardArgument(card, payload={}) {\n+    let env = {\n+      name: card.name,\n+      isInEditor: false,\n+      onTeardown: (callback) => this._registerTeardownCallback(callback)\n+    };\n+\n+    let options = this.cardOptions;\n+\n+    return { env, options, payload };\n+  }\n+\n+  renderMarkupSection([type, tagName, markers]) {\n+    return this.renderMarkers(markers);\n+  }\n+\n+  findAtom(name) {\n+    for (let i=0; i < this.atoms.length; i++) {\n+      if (this.atoms[i].name === name) {\n+        return this.atoms[i];\n+      }\n+    }\n+    return this._createUnknownAtom(name);\n+  }\n+\n+  _createUnknownAtom(name) {\n+    return {\n+      name,\n+      type: RENDER_TYPE,\n+      render: this.unknownAtomHandler\n+    };\n+  }\n+\n+  _createAtomArgument(atom, value, payload) {\n+    let env = {\n+      name: atom.name,\n+      onTeardown: (callback) => this._registerTeardownCallback(callback)\n+    };\n+\n+    let options = this.cardOptions;\n+\n+    return { env, options, value, payload };\n+  }\n+\n+  _validateAtomRender(rendered, atomName) {\n+    if (!rendered) {\n+      return;\n+    }\n+\n+    if (typeof rendered !== 'string') {\n+      throw new Error(`Atom \"${atomName}\" must render ${RENDER_TYPE}, but result was ${typeof rendered}\"`);\n+    }\n+  }\n+\n+  _findAtomByIndex(index) {\n+    let atomType = this.atomTypes[index];\n+    if (!atomType) {\n+      throw new Error(`No atom definition found at index ${index}`);\n+    }\n+\n+    let [ name, value, payload ] = atomType;\n+    let atom = this.findAtom(name);\n+\n+    return {\n+      atom,\n+      value,\n+      payload\n+    };\n+  }\n+\n+  _renderAtom(index) {\n+    let { atom, value, payload } = this._findAtomByIndex(index);\n+\n+    let atomArg = this._createAtomArgument(atom, value, payload);\n+    let rendered = atom.render(atomArg);\n+\n+    this._validateAtomRender(rendered, atom.name);\n+\n+    return rendered || '';\n+  }\n+\n+  renderMarkers(markers) {\n+    let str = '';\n+    markers.forEach(m => {\n+      let [type, , , value] = m;\n+      switch (type) {\n+        case MARKUP_MARKER_TYPE:\n+          str += value;\n+          break;\n+        case ATOM_MARKER_TYPE:\n+          str += this._renderAtom(value);","path":"lib/renderers/0-3.js","position":260,"original_position":260,"commit_id":"dd16cbe5a4b0753901d5f9eb327ed17afd250d8e","original_commit_id":"dd16cbe5a4b0753901d5f9eb327ed17afd250d8e","user":{"login":"bantic","id":2023,"avatar_url":"https://avatars.githubusercontent.com/u/2023?v=3","gravatar_id":"","url":"https://api.github.com/users/bantic","html_url":"https://github.com/bantic","followers_url":"https://api.github.com/users/bantic/followers","following_url":"https://api.github.com/users/bantic/following{/other_user}","gists_url":"https://api.github.com/users/bantic/gists{/gist_id}","starred_url":"https://api.github.com/users/bantic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bantic/subscriptions","organizations_url":"https://api.github.com/users/bantic/orgs","repos_url":"https://api.github.com/users/bantic/repos","events_url":"https://api.github.com/users/bantic/events{/privacy}","received_events_url":"https://api.github.com/users/bantic/received_events","type":"User","site_admin":false},"body":"Nevermind, I understand.","created_at":"2015-12-01T16:44:48Z","updated_at":"2015-12-01T16:44:48Z","html_url":"https://github.com/bustlelabs/mobiledoc-text-renderer/pull/5#discussion_r46303000","pull_request_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/5","_links":{"self":{"href":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/comments/46303000"},"html":{"href":"https://github.com/bustlelabs/mobiledoc-text-renderer/pull/5#discussion_r46303000"},"pull_request":{"href":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/5"}}},"pull_request":{"url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/5","id":52194276,"html_url":"https://github.com/bustlelabs/mobiledoc-text-renderer/pull/5","diff_url":"https://github.com/bustlelabs/mobiledoc-text-renderer/pull/5.diff","patch_url":"https://github.com/bustlelabs/mobiledoc-text-renderer/pull/5.patch","issue_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/issues/5","number":5,"state":"open","locked":false,"title":"implement support for mobiledoc 0.3.0 and atoms","user":{"login":"rlivsey","id":3740,"avatar_url":"https://avatars.githubusercontent.com/u/3740?v=3","gravatar_id":"","url":"https://api.github.com/users/rlivsey","html_url":"https://github.com/rlivsey","followers_url":"https://api.github.com/users/rlivsey/followers","following_url":"https://api.github.com/users/rlivsey/following{/other_user}","gists_url":"https://api.github.com/users/rlivsey/gists{/gist_id}","starred_url":"https://api.github.com/users/rlivsey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rlivsey/subscriptions","organizations_url":"https://api.github.com/users/rlivsey/orgs","repos_url":"https://api.github.com/users/rlivsey/repos","events_url":"https://api.github.com/users/rlivsey/events{/privacy}","received_events_url":"https://api.github.com/users/rlivsey/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-11-30T23:20:59Z","updated_at":"2015-12-01T16:44:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a8e6db9c10e612430bcba2610fa2c608d9879694","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/5/commits","review_comments_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/5/comments","review_comment_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/issues/5/comments","statuses_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/statuses/dd16cbe5a4b0753901d5f9eb327ed17afd250d8e","head":{"label":"rlivsey:mobiledoc-0.3.0","ref":"mobiledoc-0.3.0","sha":"dd16cbe5a4b0753901d5f9eb327ed17afd250d8e","user":{"login":"rlivsey","id":3740,"avatar_url":"https://avatars.githubusercontent.com/u/3740?v=3","gravatar_id":"","url":"https://api.github.com/users/rlivsey","html_url":"https://github.com/rlivsey","followers_url":"https://api.github.com/users/rlivsey/followers","following_url":"https://api.github.com/users/rlivsey/following{/other_user}","gists_url":"https://api.github.com/users/rlivsey/gists{/gist_id}","starred_url":"https://api.github.com/users/rlivsey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rlivsey/subscriptions","organizations_url":"https://api.github.com/users/rlivsey/orgs","repos_url":"https://api.github.com/users/rlivsey/repos","events_url":"https://api.github.com/users/rlivsey/events{/privacy}","received_events_url":"https://api.github.com/users/rlivsey/received_events","type":"User","site_admin":false},"repo":{"id":47149133,"name":"mobiledoc-text-renderer","full_name":"rlivsey/mobiledoc-text-renderer","owner":{"login":"rlivsey","id":3740,"avatar_url":"https://avatars.githubusercontent.com/u/3740?v=3","gravatar_id":"","url":"https://api.github.com/users/rlivsey","html_url":"https://github.com/rlivsey","followers_url":"https://api.github.com/users/rlivsey/followers","following_url":"https://api.github.com/users/rlivsey/following{/other_user}","gists_url":"https://api.github.com/users/rlivsey/gists{/gist_id}","starred_url":"https://api.github.com/users/rlivsey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rlivsey/subscriptions","organizations_url":"https://api.github.com/users/rlivsey/orgs","repos_url":"https://api.github.com/users/rlivsey/repos","events_url":"https://api.github.com/users/rlivsey/events{/privacy}","received_events_url":"https://api.github.com/users/rlivsey/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rlivsey/mobiledoc-text-renderer","description":"A text renderer for Mobiledoc","fork":true,"url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer","forks_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/forks","keys_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/teams","hooks_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/hooks","issue_events_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/issues/events{/number}","events_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/events","assignees_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/assignees{/user}","branches_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/branches{/branch}","tags_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/tags","blobs_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/git/refs{/sha}","trees_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/statuses/{sha}","languages_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/languages","stargazers_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/stargazers","contributors_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/contributors","subscribers_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/subscribers","subscription_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/subscription","commits_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/commits{/sha}","git_commits_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/git/commits{/sha}","comments_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/comments{/number}","issue_comment_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/issues/comments{/number}","contents_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/contents/{+path}","compare_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/merges","archive_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/downloads","issues_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/issues{/number}","pulls_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/pulls{/number}","milestones_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/milestones{/number}","notifications_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/labels{/name}","releases_url":"https://api.github.com/repos/rlivsey/mobiledoc-text-renderer/releases{/id}","created_at":"2015-11-30T22:10:22Z","updated_at":"2015-11-30T22:10:22Z","pushed_at":"2015-11-30T23:26:18Z","git_url":"git://github.com/rlivsey/mobiledoc-text-renderer.git","ssh_url":"git@github.com:rlivsey/mobiledoc-text-renderer.git","clone_url":"https://github.com/rlivsey/mobiledoc-text-renderer.git","svn_url":"https://github.com/rlivsey/mobiledoc-text-renderer","homepage":"","size":27,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"bustlelabs:master","ref":"master","sha":"83b0fa54aca0548387b014f01bb8d3bc198e4165","user":{"login":"bustlelabs","id":2198187,"avatar_url":"https://avatars.githubusercontent.com/u/2198187?v=3","gravatar_id":"","url":"https://api.github.com/users/bustlelabs","html_url":"https://github.com/bustlelabs","followers_url":"https://api.github.com/users/bustlelabs/followers","following_url":"https://api.github.com/users/bustlelabs/following{/other_user}","gists_url":"https://api.github.com/users/bustlelabs/gists{/gist_id}","starred_url":"https://api.github.com/users/bustlelabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bustlelabs/subscriptions","organizations_url":"https://api.github.com/users/bustlelabs/orgs","repos_url":"https://api.github.com/users/bustlelabs/repos","events_url":"https://api.github.com/users/bustlelabs/events{/privacy}","received_events_url":"https://api.github.com/users/bustlelabs/received_events","type":"Organization","site_admin":false},"repo":{"id":45481197,"name":"mobiledoc-text-renderer","full_name":"bustlelabs/mobiledoc-text-renderer","owner":{"login":"bustlelabs","id":2198187,"avatar_url":"https://avatars.githubusercontent.com/u/2198187?v=3","gravatar_id":"","url":"https://api.github.com/users/bustlelabs","html_url":"https://github.com/bustlelabs","followers_url":"https://api.github.com/users/bustlelabs/followers","following_url":"https://api.github.com/users/bustlelabs/following{/other_user}","gists_url":"https://api.github.com/users/bustlelabs/gists{/gist_id}","starred_url":"https://api.github.com/users/bustlelabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bustlelabs/subscriptions","organizations_url":"https://api.github.com/users/bustlelabs/orgs","repos_url":"https://api.github.com/users/bustlelabs/repos","events_url":"https://api.github.com/users/bustlelabs/events{/privacy}","received_events_url":"https://api.github.com/users/bustlelabs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/bustlelabs/mobiledoc-text-renderer","description":"A text renderer for Mobiledoc","fork":false,"url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer","forks_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/forks","keys_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/teams","hooks_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/hooks","issue_events_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/issues/events{/number}","events_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/events","assignees_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/assignees{/user}","branches_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/branches{/branch}","tags_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/tags","blobs_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/git/refs{/sha}","trees_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/statuses/{sha}","languages_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/languages","stargazers_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/stargazers","contributors_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/contributors","subscribers_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/subscribers","subscription_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/subscription","commits_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/commits{/sha}","git_commits_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/git/commits{/sha}","comments_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/comments{/number}","issue_comment_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/issues/comments{/number}","contents_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/contents/{+path}","compare_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/merges","archive_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/downloads","issues_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/issues{/number}","pulls_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls{/number}","milestones_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/milestones{/number}","notifications_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/labels{/name}","releases_url":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/releases{/id}","created_at":"2015-11-03T16:53:12Z","updated_at":"2015-11-12T17:05:40Z","pushed_at":"2015-11-30T23:26:19Z","git_url":"git://github.com/bustlelabs/mobiledoc-text-renderer.git","ssh_url":"git@github.com:bustlelabs/mobiledoc-text-renderer.git","clone_url":"https://github.com/bustlelabs/mobiledoc-text-renderer.git","svn_url":"https://github.com/bustlelabs/mobiledoc-text-renderer","homepage":"","size":22,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/5"},"html":{"href":"https://github.com/bustlelabs/mobiledoc-text-renderer/pull/5"},"issue":{"href":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/issues/5"},"comments":{"href":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/issues/5/comments"},"review_comments":{"href":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/5/comments"},"review_comment":{"href":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/pulls/5/commits"},"statuses":{"href":"https://api.github.com/repos/bustlelabs/mobiledoc-text-renderer/statuses/dd16cbe5a4b0753901d5f9eb327ed17afd250d8e"}}}}