summaryrefslogtreecommitdiffstats
path: root/doc/emojisup.doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/emojisup.doc')
-rw-r--r--doc/emojisup.doc120
1 files changed, 120 insertions, 0 deletions
diff --git a/doc/emojisup.doc b/doc/emojisup.doc
new file mode 100644
index 0000000..4c861fe
--- /dev/null
+++ b/doc/emojisup.doc
@@ -0,0 +1,120 @@
+/******************************************************************************
+ *
+ *
+ *
+ * Copyright (C) 1997-2018 by Dimitri van Heesch.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation under the terms of the GNU General Public License is hereby
+ * granted. No representations are made about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied warranty.
+ * See the GNU General Public License for more details.
+ *
+ * Documents produced by Doxygen are derivative works derived from the
+ * input used in their production; they are not affected by this license.
+ *
+ */
+/*! \page emojisup Emoji support
+
+The [Unicode consortium](http://www.unicode.org/) has defined a set of
+[emoji](https://en.wikipedia.org/wiki/Emoji) with the corresponding unicode
+sequences. Doxygen supports the subset of emoji characters as used by GitHub (based on the list
+https://api.github.com/emojis).
+An emoji is created using the \ref cmdemoji "\\emoji" command.
+For example `\emoji smile` (or `\emoji :smile:`) both produce \emoji smile.
+
+\section emojirep Representation
+
+For the different doxygen output types there is an output defined:
+- Unicode code sequence, the actual representation is depending on the possibilities of the fonts loaded:
+ - HTML
+ - DocBook
+ - RTF, converted to UTF-16 representation.
+- Image
+ - \LaTeX, in case the image can be found (see \ref emojiimage "Emoji image retrieval") otherwise the plain emoji text (i.e. `:<text>:`) is displayed
+- plain emoji text (i.e. `:<text>:`)
+ - man
+ - perl
+- For XML there is a dedicated `<emoji>` tag with name and unicode attributes.
+
+\section emojiimage Emoji image retrieval
+
+In the list of images can be downloaded via the following Python script:
+\code{.py}
+# script to download the emoticons from GitHub and to produce a table for
+# inclusion in doxygen. Works with python 2.7+ and python 3.x
+import json
+import os
+import argparse
+import re
+try:
+ import urllib.request as urlrequest
+except ImportError:
+ import urllib as urlrequest
+
+unicode_re = re.compile(r'.*?/unicode/(.*?).png\?.*')
+
+def get_emojis():
+ response = urlrequest.urlopen('https://api.github.com/emojis')
+ raw_data = response.read()
+ return json.loads(raw_data)
+
+def download_images(dir_name):
+ json_data = get_emojis()
+ num_items = len(json_data)
+ cur_item=0
+ for image,url in sorted(json_data.items()):
+ image_name = image+'.png'
+ cur_item=cur_item+1
+ if url.find('/unicode/')==-1 or not os.path.isfile(dir_name+'/'+image_name):
+ with open(dir_name+'/'+image_name,'wb') as file:
+ print('%s/%s: fetching %s' % (cur_item,num_items,image_name))
+ file.write(urlrequest.urlopen(url).read())
+ else:
+ print('%s/%s: skipping %s' % (cur_item,num_items,image_name))
+
+def produce_table():
+ json_data = get_emojis()
+ lines = []
+ for image,url in sorted(json_data.items()):
+ match = unicode_re.match(url)
+ if match:
+ unicodes = match.group(1).split('-')
+ unicodes_html = ''.join(["&#x"+x+";" for x in unicodes])
+ image_str = "\":"+image+":\","
+ unicode_str = "\""+unicodes_html+"\""
+ lines.append(' { %-42s %-38s }' % (image_str,unicode_str))
+ out_str = ',\n'.join(lines)
+ print("{")
+ print(out_str)
+ print("};")
+
+if __name__=="__main__":
+ parser = argparse.ArgumentParser()
+ group = parser.add_mutually_exclusive_group()
+ group.add_argument('-d','--dir',help='directory to place images in')
+ group.add_argument('-t','--table',help='generate code fragment',action='store_true')
+ args = parser.parse_args()
+ if args.table:
+ produce_table()
+ else:
+ download_images(args.dir)
+
+\endcode
+When invoking it with the `-d image_dir` option the images will by downloaded in the `image_dir` directory.
+By means of the doxygen configuration parameter
+\ref cfg_latex_emoji_directory "LATEX_EMOJI_DIRECTORY" the requested directory can be selected.
+
+For convenience a zip with the result of running the script can also be downloaded from
+http://www.doxygen.nl/dl/github_emojis.zip
+
+For a overview of the supported emoji one can issue the comand:<br>
+`doxygen -f emoji <outputFileName>`
+
+\htmlonly
+Go to the <a href="langhowto.html">next</a> section or return to the
+ <a href="index.html">index</a>.
+\endhtmlonly
+
+*/
+