表情符号支持

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,有一个专用的 <emoji> 标签,带有 nameunicode 属性。

表情符号图像检索

可以通过以下 Python 脚本下载图像列表

# 用于从 GitHub 下载表情符号并生成 Doxygen 表格的脚本。适用于 python 2.7+ 和 python 3.x
# 包含在 Doxygen 中。
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: 正在获取 %s' % (cur_item,num_items,image_name))
try:
file.write(urlrequest.urlopen(url).read())
except:
print('无法获取 %s' % (image_name))
success = False
if not success
os.remove(dir_name+'/'+image_name)
else:
if not silent
print('%s/%s: 跳过 %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='放置图像的目录')
parser.add_argument('-t','--table',help='生成代码片段',action='store_true')
parser.add_argument('-s','--silent',help='静默模式',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 可以选择请求的目录。

为了方便起见,还可以从 https://doxygen.cpp.org.cn/dl/github_emojis.zip 下载运行脚本的结果的 zip 包

要查看支持的表情符号的概览,可以发出命令
doxygen -f emoji <输出文件名>

转到下一节或返回索引