1

我创建了一个标准的 Wiki 模板,它为歌曲创建了一个信息框。我将“艺术家”定义为一个参数,应用*字符来创建一个列表并在其贡献者的名称周围添加括号。这是一个例子:

{{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}}它会在一行中显示艺术家,并且开头只有一个点。

我也听说过子对象,但我不确定在这种情况下这是否对我有帮助。

你对我有什么建议?

4

1 回答 1

1

我会重组你的模板。

{{song infobox 
|Music author=Lady Gaga 
|Lyrics author=Lady Gaga 
|Vocal arrangement author=Zedd 
|Guitarist=The Gagaband 
|Pianist=The Gagaband 
|Drummer=The Gagaband }}

如果您有一首歌曲,其属性如 Guitarist 有两个值,则用逗号分隔。

您必须修改对歌曲信息框模板的查询,以按照您的需要处理这些不同的属性。您可能想要使用语义复合查询,但这不是必需的。

于 2016-07-31T22:35:12.977 回答