ボット発話にメタデータを付与するための記法。これをフロント側で解析して表示とかに利用するためのもの。
これから。
import {parse, render} from 'minarai-markup-notation';
const sexp = parse("お電話はこちらまで!\n#.tel[0120444444]\nなお営業時間は…");
console.log(sexp);
;; => ["お電話はこちらまで!\n", ["tel", "0120444444"], "\nなお営業時間は…"]
console.log(render(sexp));
;; => お電話はこちらまで!
;; <a href="tel:0120444444">0120444444</a>
;; なお営業時間は…
また、レンダラーをカスタムすることが可能。
- 元issue: https://github.com/Nextremer/minarai-project/issues/695
- 電話番号が電話番号であることをシナリオ(のボット発話)中で表記/明記したい
- 将来、電話番号以外もマークアップしたくなるかもしれない
- →名前による種類の明記 (
tel
など)
- →名前による種類の明記 (
- マークアップ記法をちょっと汎用に設計しておくのがよいかも(実装はしなくていいが)
- 始まり、終わりがはっきり分かれている
- 名前 (マークアップの意味を識別するためのもの)をもつ
- 以下の機能は、実装の必要はないが可能性がゼロではないので設計だけしておく
- 複数パラメータ
- ひとつのパラメータで挙動を決定できないマークアップ
#.location[Nextremer東京Office;緯度;経度]
のようなかんじ- 表示について (文字の大きさ、色など) は
<span>
タグ記法が使えるのでやらない
- マークアップの中にマークアップ
#.address[電話:#.tel[0123-45-67]、住所:#.location[Nextremer;緯度;経度]]
- 通常はこんなことしたいと思わないだろうが、いちおう
- 複数パラメータ
電話番号についてのマークアップはこんな感じ
ご用の際はお気軽に、こちらにお電話ください: #.tel[0120-444-444]
あまり文字数を多くしたくないが、#
だけだと以下のようなふつうの文章がマークアップだと認識される。
フォーラムの#124を参照してください(なお、即日対応できる保証はありません)。
#.
はふつうの文章にはでてこないでしょう、という仮定のもと。
プログラムが利用するので。
CSChatのシナリオで使用可能な構文との統一感のために ([[文言1|文言2|...[[
)、丸括弧ではなく角括弧とする。
空白を含めたかったら、'
で囲んでこうするとか? いらないかも。
#.address[住所: 東京都]
ここで;
の前後に空白を入れると、マークアップ対象の一部になる
#.location[Nextremer東京Office;緯度;経度]
のようなかんじ
こんなやつを中身もマークアップとして扱う、という話。
住所はこちら!
#.address[電話:#.tel[0123-45-67]、住所:#.location[Nextremer;緯度;経度]]