我创建了一个标准的Wiki模板,它为歌曲创建了一个信息框。我将“artist”定义为参数,应用*
个字符来创建列表,并在其贡献者的名称周围添加括号。这是一个例子:
{{song infobox
|artist= * [[Lady Gaga]] (Music & Lyrics)
* [[Zedd]] (Vocal arrangement)
* [[The Gagaband]] (Guitar, piano, drums)
}}
现在我开始使用Semantic Mediawiki从另一个wiki页面访问这些数据,但不幸的是它不能用方括号。有什么方法可以解决这个问题吗?
我的下一个尝试是将数据写入一行(由;
字符分隔)。使用以下代码,我可以将多个值设置为单个属性:
{{#set:
|artist={{{artist}}}|+sep=;
}}
我的问题是,这些分隔的值会显示为链接,包括(Music & Lyrics)
之类的进一步解释。此外,如果我想使用命令{{#show: Pokerface | ?artist |format=ul}}
再次将它们显示为列表,它会在一行中显示艺术家,但在开头只有一个点。
我也听说过子对象,但我不确定在这种情况下这是否会对我有帮助。
你对我的建议是什么?
答案 0 :(得分:0)
我会重新构建你的模板。
{{song infobox
|Music author=Lady Gaga
|Lyrics author=Lady Gaga
|Vocal arrangement author=Zedd
|Guitarist=The Gagaband
|Pianist=The Gagaband
|Drummer=The Gagaband }}
如果您有一首歌曲,其中包含一个像Guitarist这样的属性的值,则用逗号分隔。
您必须修改歌曲信息框模板上的查询,以便根据需要处理这些不同的属性。您可能希望使用语义复合查询,但不是必需的。