如何在SmartFormat条件格式中控制EOLN避免空行问题
解决SmartFormat模板中条件块空行冗余问题
问题分析
你当前的模板里,两个cond指令之间存在固定空行,当ShowAddress为false时,这个固定空行不会被移除,导致出现多余空行;而当两个条件都为true时,又需要保证两行之间有一个空行——核心是要让换行仅在两个条件都满足时才出现。
解决方案
把换行逻辑整合到条件判断中,让换行仅在ShowAddress和ShowRemote同时为true时才添加,同时移除模板里的固定空行。以下是调整后的模板:
When: {Event.StartDateTime:M} {Event.StartDateTime:t} - {Event.EndDateTime:t}. {Event.ShowAddress:cond:Where: {Event.Address}{Event.ShowRemote:cond:\n}|}{Event.ShowRemote:cond:{Event.Zoom.Description}: {Event.Zoom.Url}|} Again, thank you for stepping up to help. This is how we win.
逻辑说明
- 当
ShowAddress为true时:- 输出地址内容后,判断
ShowRemote是否为true,如果是则添加一个换行,保证地址行和远程信息行之间有一个空行。
- 输出地址内容后,判断
- 当
ShowAddress为false时:- 不会输出地址相关内容,也不会添加多余换行,直接处理
ShowRemote的条件。
- 不会输出地址相关内容,也不会添加多余换行,直接处理
- 当
ShowRemote为false时:- 不会输出远程信息行,也不会产生多余空行。
如果想要写法更清晰,也可以这样写:
When: {Event.StartDateTime:M} {Event.StartDateTime:t} - {Event.EndDateTime:t}. {Event.ShowAddress:cond:Where: {Event.Address} {Event.ShowRemote:cond:\n}|}{Event.ShowRemote:cond:{Event.Zoom.Description}: {Event.Zoom.Url}|} Again, thank you for stepping up to help. This is how we win.
这种写法里,只有当ShowAddress和ShowRemote同时为true时,才会在地址行末尾添加换行,确保空行仅在需要时出现,彻底避免冗余空行问题。
内容的提问来源于stack exchange,提问作者David Thielen
相关产品推荐
相关产品推荐

