Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

出力文字列に($,$R[]{})が含まれる場合、値をタグとして解釈されている。 #65

Open
IgarashiTaBbreak opened this issue Mar 14, 2024 · 1 comment
Labels

Comments

@IgarashiTaBbreak
Copy link

事象

・出力データに置換タグ形式の文字列(${test}等)が含まれる場合、その箇所が空で出力される。
・$test$のように$が出力データに複数含まれる場合、全ての$が消えてtestのみ出力される。
・出力データが$R[]{*}の場合、処理がループし正常に終了しない。

値の文字列をタグとして解釈できてしまうので、対応いただきたい。

@maruTA-bis5
Copy link
Member

確認が遅くなりすみません。ご指摘の3点についてそれぞれ以下の通りとなります。

・出力データに置換タグ形式の文字列(${test}等)が含まれる場合、その箇所が空で出力される。

こちらは意図した挙動です。(テンプレートの置換タグに対応する値がなければブランクで出力されるのと同じ)

・$test$のように$が出力データに複数含まれる場合、全ての$が消えてtestのみ出力される。

excella-coreの仕様上、パラメーター部({})がなくてもタグとして扱われることから、$はタグとして有効となり置換されます。
excella-reprotsで定義されるタグについては基本的にパラメーターを必要とするため、パラメーター部がなければタグとして扱われないような仕組みを設ける必要がありますね。

・出力データが$R[]{*}の場合、処理がループし正常に終了しない。

ループの発生は問題ですが、現状はループを検知すること自体が難しいです。
(タグを展開した結果同じタグが出てきたことを検出していないし、同じタグを複数セルに記載することも可能なため単純に"タグが2回出てきた"という条件で検知できない)
繰り返し系のタグを置換した結果が再度パースされないよう、エスケープする構文を導入できないか検討します。(エスケープできるようになるなら、1点目についてもエスケープして出力すれば済むかと)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants