1 #!/usr/bin/env ruby
     2 require 'json'
     3 
     4 # JSON file needs Emojibase-formatted entries, see https://emojibase.dev
     5 # Also see customizer.rb in this directory.
     6 
     7 if ARGV.length < 2
     8   puts "
     9   Usage:
    10     make-contact-sheet.rb <json input file> <html_output file>
    11 
    12   Examples:
    13     make-contact-sheet.rb emojibase.pretty.json full-sheet.html
    14     make-contact-sheet.rb custom.json custom-sheet.html
    15 "
    16   exit 1
    17 end
    18 
    19 fjson = ARGV[0]
    20 fhtml = ARGV[1]
    21 
    22 json = File.read(fjson)
    23 list = JSON.parse(json)
    24 
    25 html = File.open(fhtml,'w');
    26 html.puts '<html><head><meta charset="utf-8"></head>'
    27 html.puts '<body>'
    28 html.puts "<h1>#{list.length} emoji</h1>"
    29 
    30 # Print stats for the custom set
    31 stats_txt = `ruby getstats.rb #{fjson}`
    32 html.puts "<pre>#{stats_txt}</pre>"
    33 
    34 # Now print the emoji by group
    35 group = nil
    36 group_style='style="background:#FAA;font-weight:bold;"'
    37 list.each do |e|
    38   if e['group'] != group
    39     group = e['group']
    40     html.puts "<br><span #{group_style}}>Group #{group}:</span> "
    41   end
    42   html.puts "<span title=\"#{e['label']}\">#{e['emoji']}</span>"
    43 end
    44 
    45 html.puts "</body></html>"
    46 html.close
    47 
    48 puts "Wrote #{list.length} emoji to #{fhtml}."