Skip to content

Instantly share code, notes, and snippets.

@royletron
Created January 24, 2017 12:32
Show Gist options
  • Save royletron/c4d6168d04ff6278a0f613fb5fdea971 to your computer and use it in GitHub Desktop.
Save royletron/c4d6168d04ff6278a0f613fb5fdea971 to your computer and use it in GitHub Desktop.
Convert members page to markdown!
let cheerio = require('cheerio');
let fs = require('fs');
let path = require('path');
let marked = require('marked');
let yaml = require('js-yaml');
let slugify = require('slugify');
let wiki = process.argv[2]
let data = fs.readFileSync(path.join(wiki), 'utf8');
let $ = cheerio.load(marked(data))
let people = $('p > strong');
let bios = $('li:contains(\'Bio:\')')
let roles = $('li:contains(\'Role title:\')')
people.each(function(i, el) {
var name = $(this).text();
var bio = $(bios[i]).text().replace('Bio: ', '');
var role = $(roles[i]).text().replace('Role title: ', '');
let profile = yaml.dump({'object-id': slugify(name.toLowerCase()), 'first-name': name.split(' ')[0], 'last-name': name.split(' ')[1], image: slugify(name.toLowerCase())+'.png', 'job-title': role, 'bio': bio});
fs.writeFileSync(path.join(__dirname, 'output', slugify(name).toLowerCase()+'.md'), profile);
})
{
"name": "wiki-rip",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"cheerio": "^0.22.0",
"js-yaml": "^3.7.0",
"marked": "^0.3.6",
"slugify": "^1.1.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment