Instantly share code, notes, and snippets.

What would you like to do?
This script produces a comma separated list of special key symbols in Unicode for WP-Table Reloaded.
#!/usr/bin/env ruby
# coding: utf-8
# Raw data :
# Format :
require 'csv'
require 'htmlentities'
options = {
:col_sep => ';',
:headers => headers = [
'Code value',
'Character name',
'General Category',
'Canonical Combining Classes',
'Bidirectional Category',
'Character Decomposition Mapping',
'Decimal digit value',
'Digit value',
'Numeric value',
'Unicode 1.0 Name',
'10646 comment field',
'Uppercase Mapping',
'Lowercase Mapping',
'Titlecase Mapping'
key_symbols = ['238B','21E5','21E4','21EA','21E7','2303','2325','F8FF','2318','2423','23CE','21A9','232B','2326','20DD','21F1','2196','21B8','21F2','2198','21DE','21DF','2191','21E1','2193','21E3','2190','21E0','2192','21E2','2327','21ED','2324','23CF','233D']
coder =
table = []'./UnicodeData.txt', 'r', options).each do |row|
next unless key_symbols.include? row['Code value']
d = row['Code value'].to_i(16)
table << [ c = d.chr('UTF-8'),
sprintf("U+%02X", d),
coder.encode(coder.encode(c, :basic, :decimal), :named),
coder.encode(row['Character name'].capitalize, :named),
key_symbols.index(row['Code value']) ]
puts "Character,Hex,HTML Entity,Name"
table.sort_by {|row| row[row.length-1]}.each do |row|
row.delete_at row.length-1
puts row.to_csv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment