表情符號支援

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 中。適用於 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: 正在擷取 %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.dev.org.tw/dl/github_emojis.zip 下載執行腳本結果的壓縮檔。

若要檢視支援的表情符號,可以發出以下命令
doxygen -f emoji <輸出檔名>

前往下一節或返回索引