Chris@0: function init() { Chris@0: init_long_literals(); Chris@0: } Chris@0: Chris@0: var long_literal_counter = 0; Chris@0: var long_literal_spans = {}; Chris@0: var long_literal_texts = {}; Chris@0: function init_long_literals() { Chris@0: var spans = document.getElementsByTagName('span'); Chris@0: for (i = 0; i < spans.length; i++) { Chris@0: if (spans[i].className != 'literal') continue; Chris@0: var span = spans[i]; Chris@0: var textNode = span.firstChild; Chris@0: var text = textNode.data; Chris@0: if (text.length < 300) continue; Chris@0: var match = text.match(/([^\0]{150}[^\0]*? )([^\0]*)/); Chris@0: if (!match) continue; Chris@0: span.insertBefore(document.createTextNode(match[1] + ' ... '), span.firstChild); Chris@0: span.removeChild(textNode); Chris@0: var link = document.createElement('a'); Chris@0: link.href = 'javascript:expand(' + long_literal_counter + ');'; Chris@0: link.appendChild(document.createTextNode('\u00BBmore\u00BB')); Chris@0: link.className = 'expander'; Chris@0: span.insertBefore(link, span.firstChild.nextSibling); Chris@0: long_literal_spans[long_literal_counter] = span; Chris@0: long_literal_texts[long_literal_counter] = textNode; Chris@0: long_literal_counter = long_literal_counter + 1; Chris@0: } Chris@0: } Chris@0: Chris@0: function expand(i) { Chris@0: var span = long_literal_spans[i]; Chris@0: span.removeChild(span.firstChild); Chris@0: span.removeChild(span.firstChild); Chris@0: span.insertBefore(long_literal_texts[i], span.firstChild); Chris@0: }