Skip to content

Instantly share code, notes, and snippets.

@stoyan
Last active November 17, 2017 06:16
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save stoyan/2714070 to your computer and use it in GitHub Desktop.
Save stoyan/2714070 to your computer and use it in GitHub Desktop.
asciidoc for perfplanet book
// replacements
var t = $$('.entry')[0].innerHTML;
t = t.replace(/’/g, "'").replace(/“/g, '"').replace(/”/g, '"');
t = t.replace(/<li>/g, '<li>* ');
t = t.replace(/<\/ul>/g, '</ul><br>');
t = t.replace(/<code>/g, '`').replace(/<\/code>/g, '`');
t = t.replace(/<h2>/g, '<h2>=== ');
t = t.replace(/<h3>/g, '<h3>==== ');
t = t.replace(/<h4>/g, '<h4>===== ');
t = t.replace(/<pre/g, '[source,js]<br>----------------------------------------------------------------------<pre');
t = t.replace(/<\/pre>/g, '</pre>----------------------------------------------------------------------<br>');
t = t.replace(/<strong>|<\/strong>|<b>|<\/b>/g, '*');
t = t.replace(/<em>|<\/em>|<i>|<\/i>/g, '_');
var title = '<h1>== ' + $$('.posthead div')[2].innerText + '</h1>';
$$('.entry')[0].innerHTML = title + t;
// links
[].slice.call($$('.entry a')).forEach(function(a){
a.insertAdjacentText('afterend', ' (' + a.href + ')');
});
// images
var chap = parseInt($$('.caldate')[0].textContent);
chap = chap < 10 ? '0' + chap : chap;
[].slice.call($$('.entry img')).forEach(function(i, cnt){
cnt++;
var extension = i.src.split('.').reverse()[0];
var fig = "<pre>[[figure_XY]]";
fig += "\n." + i.alt;
fig += '\nimage::figures/X-Y.Z[width="400px"]\n</pre>';
fig = fig.replace(/X/g, chap).replace(/Y/g, cnt).replace(/Z/g, extension);
i.insertAdjacentHTML('afterend', fig);
var fig2 = '(<<figure_XY>>)'.replace(/X/g, chap).replace(/Y/g, cnt);
i.insertAdjacentText('beforebegin', fig2);
console.log("curl -o " + chap + '-' + cnt + '.png ' + i.src);
});
t = $$('.entry')[0].innerHTML;
var note = [];
note.push('<pre>[NOTE]');
note.push('==========================');
note.push('To comment on this chapter, please visit HREF. Originally published on DATE.');
note.push('==========================</pre>');
note = note.join('\n').replace('DATE', "Dec " + chap + ", 2011").replace('HREF', location.href);
document.body.innerHTML = t + note;
function $$(s) {
return document.querySelectorAll(s);
}
undefined;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment