You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

覆盖DITA XSLT将相关链接移至左侧栏的技术咨询

解决DITA-OT 1.8.5中移动「相关链接/主题」到左侧栏的Bootstrap双栏布局问题

我之前处理过类似的DITA-OT自定义布局需求,针对你提到的DITA-OT 1.8.5版本,把底部的「相关链接/主题」移到左侧Bootstrap双栏布局里,我可以给你一步步的解决方案:

1. 先理清相关链接的生成逻辑

你在dita2htmlImpl.xsl约4085行找到的相关链接引入,大概率是调用了一个名为related-links的模板(或者类似命名的模板)。这个模板通常是把所有相关链接内容打包成一个整体输出的,所以我们需要先找到这个模板的定义:

  • 打开dita2htmlImpl.xsl,搜索<xsl:template name="related-links">,或者在配套的related-links.xsl文件里找这个模板(DITA-OT 1.8.5的相关链接逻辑可能拆分在这个文件里)。
  • 查看这个模板的输出结构,它应该是用一个容器(比如<div class="related-links">)包裹了所有相关链接内容,这就是为什么你觉得它是“整体引入”的原因。

2. 调整页面主布局为Bootstrap双栏

我们需要修改生成页面主体的模板,把原来的单栏结构改成Bootstrap的栅格布局:

  • 在dita2htmlImpl.xsl里找到生成页面主内容容器的部分(通常是包裹<xsl:apply-templates select="topicbody"/>的那个容器)。
  • 把它替换成Bootstrap的栅格结构:
    <div class="container">
      <div class="row">
        <!-- 左侧栏:放置相关链接 -->
        <div class="col-md-3">
          <div class="sidebar-related-links">
            <xsl:call-template name="related-links"/>
          </div>
        </div>
        <!-- 右侧主内容区域 -->
        <div class="col-md-9">
          <!-- 原来的主题内容 -->
          <xsl:apply-templates select="topicbody"/>
        </div>
      </div>
    </div>
    

3. 移除底部的相关链接调用

回到你找到的dita2htmlImpl.xsl约4085行的位置,把那里调用related-links模板的代码(比如<xsl:call-template name="related-links"/>)注释掉或者直接删除,避免相关链接在底部重复显示。

4. 引入Bootstrap CSS样式

需要在页面的<head>部分添加Bootstrap的样式引用,确保布局生效:

  • 在dita2htmlImpl.xsl或者common.xsl里找到生成<head>标签的模板,添加Bootstrap的CSS链接:
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.4.1/dist/css/bootstrap.min.css"/>
    
    (如果你的环境不能访问CDN,可以下载Bootstrap 3.4.1的CSS文件到本地,然后用相对路径引用)

5. 处理样式冲突(可选)

DITA-OT自带的默认样式可能和Bootstrap有冲突,比如相关链接的列表样式、容器间距等。你可以添加自定义CSS来调整:

.sidebar-related-links {
  margin-top: 20px;
  padding: 15px;
  background-color: #f8f9fa;
  border-radius: 4px;
}
.sidebar-related-links ul {
  list-style-type: none;
  padding-left: 0;
}

把这段CSS放到自定义的样式文件里,然后在页面<head>里引入即可。

注意事项

  • DITA-OT 1.8.5是比较老的版本,模板结构可能和后续版本不同,如果你找不到对应的模板,可以搜索关键词related-links或者topicbody来定位。
  • 修改XSLT文件前,建议先备份原文件,避免修改出错导致整个编译流程崩溃。

内容的提问来源于stack exchange,提问作者ham on wry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:05:36