web-dev-qa-db-ja.com

Pandoc:標準化されたUnicode絵文字の使用

標準で定義されているように、flag: Japan絵文字をユニコードU+1F1EF U+1F1F5で使用したい 完全な絵文字リスト、v12. 、マークダウン内(Pandocでレンダリング)。

この絵文字がPandocソースコード内で定義されていない場合: pandoc/Emoji.hs at master・jgm/pandoc 、これをドキュメント内でどのように使用できますか?または、Pandocソースコードでこれをどのように定義できますか?

可能であれば、複数のユニコード絵文字を解析できる一般的な解決策を提案してください。たとえば、????の場合は:thermometer:、????????の場合は:jp:などです。 。

拡張可能なコードは、luaファイル内のcsvファイルまたはデータ構造を読み取ります。

jp,????????
thermometer,????

文字列を置換します。

2
Nikhil

これは@tarlebソリューションよりも一般的です。

ReplacementTable={
      [":jp:"] = "????????", 
      [":in:"] = "????????", 
      [":thermometer:"] = "????", 
      [":snow_capped_mountain:"] = " ???? ", 
      [":beach:"] = " ???? ", 
      [":national_park:"] = " ???? ", 
      [":money_bag:"] = " ???? ", 
      [":see_no_evil_monkey:"] = " ???? ", 
      [":hear_no_evil_monkey:"] = " ???? ", 
      [":speak_no_evil_monkey:"] = " ???? "}

function Str (s)
  return pandoc.Str(s.text:gsub("%S+", ReplacementTable))
end
1
Nikhil

絵文字を直接使用することに対する反対の指示がない限り、ユニコード表現を使用することができます。

別の方法は、 pandoc Lua filter を介してこの機能を追加することです。次のコードをファイルflag-jp.luaに保存し、--lua-filter=flag-jp.luaを介してpandocに渡します。ファイルはUTF-8として保存する必要があります。

function Str (s)
  return pandoc.Str(s.text:gsub(':jp:', '????????'))
end

フラグは、Markdownに:jp:を書き込むことで挿入できます。

1
tarleb