From acf7fedb0d5b8e53b433ae9342612639e5316a5c Mon Sep 17 00:00:00 2001 From: Brian Terlson Date: Thu, 20 Aug 2015 15:39:29 -0700 Subject: [PATCH] Xref to examples don't include clause name when it's in the same clause. --- lib/Xref.js | 12 +++++++++--- test/xref.html | 3 ++- test/xref.html.baseline | 3 ++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/Xref.js b/lib/Xref.js index 6c886bd2..5d275918 100644 --- a/lib/Xref.js +++ b/lib/Xref.js @@ -1,5 +1,6 @@ 'use strict'; const Builder = require('./Builder'); +const utils = require('./utils'); module.exports = class Xref extends Builder { build() { @@ -94,10 +95,15 @@ function buildExampleLink(spec, xref, entry) { console.log('Warning: could not find parent clause for example id ' + entry.id); } - if (xref.hasAttribute('title')) { - xref.innerHTML = buildXrefLink(entry, clauseEntry.entry.title + ' Example ' + entry.number); + const parentClause = utils.parent(xref, ['EMU-CLAUSE', 'EMU-INTRO', 'EMU-ANNEX']); + if (parentClause && parentClause.id === clauseEntry.entry.id) { + xref.innerHTML = buildXrefLink(entry, 'Example ' + entry.number); } else { - xref.innerHTML = buildXrefLink(entry, clauseEntry.entry.number + ' Example ' + entry.number); + if (xref.hasAttribute('title')) { + xref.innerHTML = buildXrefLink(entry, clauseEntry.entry.title + ' Example ' + entry.number); + } else { + xref.innerHTML = buildXrefLink(entry, clauseEntry.entry.number + ' Example ' + entry.number); + } } } else { xref.innerHTML = buildXrefLink(entry, xref.innerHTML); diff --git a/test/xref.html b/test/xref.html index 2aecd402..5e1a64f6 100644 --- a/test/xref.html +++ b/test/xref.html @@ -35,7 +35,8 @@

Clause Title

- + + with link text diff --git a/test/xref.html.baseline b/test/xref.html.baseline index 597823bd..d1f9ac1c 100644 --- a/test/xref.html.baseline +++ b/test/xref.html.baseline @@ -36,7 +36,8 @@ 1.1 Example 1 - Clause Title Example 1 + Example 1 + Example 1 AbstractOp Example 2 with link text