Vitaly Puzrin
10 years ago
1 changed files with 51 additions and 0 deletions
@ -0,0 +1,51 @@ |
|||||
|
#!/usr/bin/env node
|
||||
|
|
||||
|
//
|
||||
|
// Markdown entities generator (from html5 entities)
|
||||
|
//
|
||||
|
'use strict'; |
||||
|
|
||||
|
/*eslint no-console:0*/ |
||||
|
|
||||
|
|
||||
|
var http = require('http'); |
||||
|
|
||||
|
function codeToUni(code) { |
||||
|
var result = code.toString(16).toUpperCase(); |
||||
|
while (result.length < 4) { result = '0' + result; } |
||||
|
return '\\u' + result; |
||||
|
} |
||||
|
|
||||
|
function strToUni(str) { |
||||
|
var result = codeToUni(str.charCodeAt(0)); |
||||
|
if (str.length > 1) { |
||||
|
result += codeToUni(str.charCodeAt(1)); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
|
||||
|
http.get('http://www.w3.org/TR/html5/entities.json', function (res) { |
||||
|
var body = ''; |
||||
|
res.on('data', function(chunk) { |
||||
|
body += chunk; |
||||
|
}); |
||||
|
res.on('end', function() { |
||||
|
var entities = JSON.parse(body); |
||||
|
var out = {}; |
||||
|
|
||||
|
Object.keys(entities).forEach(function (entity) { |
||||
|
// Skip legacy - not allosed in markdown
|
||||
|
if (entity[entity.length - 1] !== ';') { return; } |
||||
|
|
||||
|
out[entity.slice(1, -1)] = strToUni(entities[entity].characters); |
||||
|
}); |
||||
|
|
||||
|
var result = [] |
||||
|
|
||||
|
Object.keys(out).forEach(function (key) { |
||||
|
result.push(' "' + key + '":"' + out[key] + '"'); |
||||
|
}); |
||||
|
|
||||
|
console.log('{\n' + result.join(',\n') + '\n}'); |
||||
|
}); |
||||
|
}); |
Loading…
Reference in new issue