我有一个 DITA 主题图,其中包含一个定义分类的主题方案图。
我的主题图中的主题已使用分类法中的值进行标记。
如何使用构面呈现我的主题图以允许检索主题,其中构面是主题方案图中的值?
我有一个 DITA 主题图,其中包含一个定义分类的主题方案图。
我的主题图中的主题已使用分类法中的值进行标记。
如何使用构面呈现我的主题图以允许检索主题,其中构面是主题方案图中的值?
好吧,除非我误解了这个问题,否则我假设您的意思是渲染到 XHTML,并且您希望输出中的方面元数据以供最终用户在那里检索?我猜你想要它在一个元标记中。
如果是这样,我会这样做:
出于示例的目的,我假设您已经创建了一个映射到该@product
属性的分类法。
首先,在 stylesheetdita2htmlImpl.xsl
中,找到以下模板并将其复制到您的custom.xsl
以覆盖它(作为替代方案,您可以在 中再次覆盖 get-meta 模板get-meta.xsl
,但它太长了......),并添加一个调用generateProductMetadata
:
<xsl:template match="*" mode="chapterHead">
<head><xsl:value-of select="$newline"/>
<!-- initial meta information -->
<xsl:call-template name="generateCharset"/> <!-- Set the character set to UTF-8 -->
<xsl:call-template name="generateDefaultCopyright"/> <!-- Generate a default copyright, if needed -->
<xsl:call-template name="generateDefaultMeta"/> <!-- Standard meta for security, robots, etc -->
<xsl:call-template name="getMeta"/> <!-- Process metadata from topic prolog -->
<xsl:call-template name="copyright"/> <!-- Generate copyright, if specified manually -->
<xsl:call-template name="generateCssLinks"/> <!-- Generate links to CSS files -->
<xsl:call-template name="generateChapterTitle"/> <!-- Generate the <title> element -->
<xsl:call-template name="gen-user-head" /> <!-- include user's XSL HEAD processing here -->
<xsl:call-template name="gen-user-scripts" /> <!-- include user's XSL javascripts here -->
<xsl:call-template name="gen-user-styles" /> <!-- include user's XSL style element and content here -->
<xsl:call-template name="processHDF"/> <!-- Add user HDF file, if specified -->
<xsl:call-template name="generateProductMetadata"/> <!-- Add Product metadata -->
</head>
<xsl:value-of select="$newline"/>
</xsl:template>
然后,再次在您的 中custom.xml
,添加您调用的模板:
<xsl:template name="generateProductMetadata">
<meta name="product" content="{@product}"/>
<xsl:value-of select="$newline"/>
</xsl:template>
这在测试运行中给了我以下结果:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="copyright" content="(C) Copyright 2005"/>
<meta name="DC.rights.owner" content="(C) Copyright 2005"/>
<meta name="DC.Type" content="topic"/>
<meta name="DC.Title" content="Technical data"/>
<meta name="DC.Relation" scheme="URI" content="18014398553839499_Technical_description.html"/>
<meta name="DC.Creator" content="Administrator"/>
<meta name="DC.Contributor" content="Administrator"/>
<meta name="DC.Date.Created" content="2013-03-05T11:13:04"/>
<meta name="DC.Date.Modified" content="2012-12-17T11:11:02"/>
<meta name="class" content="InfoType04"/>
<meta name="wf-state" content="NotReleased"/>
<meta name="DC.Format" content="XHTML"/>
<meta name="DC.Identifier" content="topic18014398553854475"/>
<meta name="DC.Language" content="en"/>
<link rel="stylesheet" type="text/css" href="commonltr.css"/>
<title>Technical data</title>
<meta name="product" content="product1"/>
</head>
那是你要找的吗?
约翰。
DITA 1.2 为您提供了创建分类或方面层次结构(subjectScheme 映射)的方法,以及将分类或方面层次结构应用于您的 DITA 内容的方法(分类映射)。
要利用该标记并实现分面浏览体验,您需要两件事:
目前,我不知道有任何 DITA 处理器或查看执行此操作的应用程序。