lib/parse.js
function (section) {
		section.children.forEach(function (child) {
			if (child.type === 'section') {
				finalParse(child)
			} else if (child.type === 'text' ||
				child.type === 'value' ||
				child.type === 'code') {
				var sliceStart = child.line - 1,
					sliceEnd = child.line + child.size - 1,
					subLines = lines.slice(sliceStart, sliceEnd)
				if (child.type === 'text') {
					child.content = subLines.join('\n')
				} else if (child.type === 'code') {
					child.language = subLines[0].substr(3)
					child.content = subLines.slice(1, -1).join('\n')
				} else if (child.type === 'value') {
					child.content = subLines.join('\n')

					// Remove starting tab character
					parseValue(child, subLines.map(function (e, i) {
						return {
							line: child.line + i,
							str: e.substr(1)
						}
					}), throwSyntaxError)
				}
			}
		})
	}
function (section) {
		section.children.forEach(function (child) {
			if (child.type === 'section') {
				finalParse(child)
			} else if (child.type === 'text' ||
				child.type === 'value' ||
				child.type === 'code') {
				var sliceStart = child.line - 1,
					sliceEnd = child.line + child.size - 1,
					subLines = lines.slice(sliceStart, sliceEnd)
				if (child.type === 'text') {
					child.content = subLines.join('\n')
				} else if (child.type === 'code') {
					child.language = subLines[0].substr(3)
					child.content = subLines.slice(1, -1).join('\n')
				} else if (child.type === 'value') {
					child.content = subLines.join('\n')

					// Remove starting tab character
					parseValue(child, subLines.map(function (e, i) {
						return {
							line: child.line + i,
							str: e.substr(1)
						}
					}), throwSyntaxError)
				}
			}
		})
	}
Gather text content and parse values