假设我有一个基础XMLUI主题/Mirage1
,另一个主题/Mirage1-green
和/Mirage1-red
。我怎样才能使Mirage1-green
和Mirage1-red
不必拥有所有XSL代码和逻辑的副本,而只需拥有green.xsl,green.js和green.css,然后另一个主题有red.xsl,red.js和red.css?
我这样做的目的是让我可以对基本主题Mirage1进行错误修复和其他改进,而不必重复修改其他主题。
我认为解决方案涉及Mirage1-green
主题的sitemap.xmap导入Mirage1-green / xsl / green.xsl,然后导入../Mirage1/aspect/artifactbrowser/common.xsl
等等,但链接到代码,或者其他指南将非常感激。
答案 0 :(得分:1)
我们已经实施了类似的解决方案,我们可以轻松推出一个新的自定义主题,只需进行少量更改。
我们倾向于为每个集合自定义标题图像和链接目标,页脚文本和一些CSS样式。
以下是我们的自定义收藏样式表的示例。
<xsl:stylesheet xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
xmlns:dri="http://di.tamu.edu/DRI/1.0/" xmlns:mets="http://www.loc.gov/METS/"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dim="http://www.dspace.org/xmlns/dspace/dim"
xmlns:mods="http://www.loc.gov/mods/v3" xmlns:xlink="http://www.w3.org/TR/xlink/"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="../non-GU-lib.xsl" />
<xsl:output indent="yes" />
<xsl:variable name="header-logo"
select="concat($context-path,'/themes/GU-base-theme/non-GU-lib/ir/images/ir-logo.png')" />
<xsl:variable name="header-logo-link">
http://library.georgetown.edu/ir/home
</xsl:variable>
<xsl:variable name="teaser-image"
select="concat($theme-path,'/images/ir-teaser.jpg')" />
</xsl:stylesheet>
答案 1 :(得分:1)
以下内容仅适用于基于最近提供的幻影2主题的XMLUI主题:
基础Mirage 2主题的继承是隐式和自动的。
在DSpace主分支中已经建立了一个示例,以明确这一点:
此文件夹当前包含一个_style.scss文件,覆盖Mirage 2源文件中styles文件夹中的_style.scss:
https://github.com/DSpace/DSpace/tree/master/dspace-xmlui-mirage2/src/main/webapp