絵文字サポート

Unicodeコンソーシアムは、対応するUnicodeシーケンスを持つ絵文字のセットを定義しました。Doxygenは、GitHubで使用されている絵文字キャラクターのサブセットをサポートしています(https://api.github.com/emojisのリストに基づいています)。絵文字は、\emojiコマンドを使用して作成されます。たとえば、\emoji smileまたは\emoji :smile:はどちらも😄を生成します。

表現

さまざまなDoxygen出力タイプに対して、定義された出力があります

  • Unicodeコードシーケンス、実際の表現はロードされたフォントの可能性に依存します
    • HTML
    • DocBook
    • RTF、UTF-16表現に変換されます。
  • 画像
    • {\LaTeX}, 画像が見つかった場合(絵文字画像の取得を参照)、それ以外の場合はプレーンな絵文字テキスト(つまり:<text>:)が表示されます
  • プレーンな絵文字テキスト(つまり:<text>:
    • man
    • perl
  • XMLの場合、nameおよびunicode属性を持つ専用の<emoji>タグがあります。

絵文字画像の取得

画像リストは、次のPythonスクリプトを介してダウンロードできます

# GitHubから絵文字をダウンロードし、テーブルを作成するスクリプト
# Doxygenに含めるため。python 2.7+および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, silent)
if not os.path.exists(dir_name)
os.makedirs(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)
success = True
with open(dir_name+'/'+image_name,'wb') as file
if not silent
print('%s/%s: fetching %s' % (cur_item,num_items,image_name))
try:
file.write(urlrequest.urlopen(url).read())
except:
print('Unable to fetch %s' % (image_name))
success = False
if not success
os.remove(dir_name+'/'+image_name)
else:
if not silent
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()
parser.add_argument('-d','--dir',help='directory to place images in')
parser.add_argument('-t','--table',help='generate code fragment',action='store_true')
parser.add_argument('-s','--silent',help='silent mode',action='store_true')
args = parser.parse_args()
if args.table
produce_table()
if args.dir
download_images(args.dir, args.silent)

-d image_dirオプションを指定してスクリプトを呼び出すと、画像はimage_dirディレクトリにダウンロードされます。

-sオプションを指定してスクリプトを呼び出すと、画像のフェッチ中に進行状況メッセージは表示されませんが、画像のフェッチが失敗した場合を除きます。

Doxygen構成パラメーターLATEX_EMOJI_DIRECTORYを使用すると、要求されたディレクトリを選択できます。

便宜上、スクリプトの実行結果を含むzipファイルは、https://doxygen.dokyumento.jp/dl/github_emojis.zipからダウンロードすることもできます

サポートされている絵文字の概要については、次のコマンドを発行できます
doxygen -f emoji <outputFileName>

次のセクションに進むか、インデックスに戻ります。