diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 8a134c57559854df323af19f8d7a222fd639476c..bfb0a4f51f435e1dbbb0422b15493bbd844f115e 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -36,6 +36,8 @@ For a detailed view of what's changed, refer to the {url-repo}/commits[commit hi === Changed * preserve block attributes (except for style and shorthands) on doctitle when adding page to assembly (#99) +* support assembly-navtitle override for doctitle when root level is 1 (#119) + === Fixed diff --git a/packages/assembler/lib/produce-assembly-file.js b/packages/assembler/lib/produce-assembly-file.js index bc4dd4c11bb35912672fdc598b04ae40fbce6ad7..6c4e6019385f69de3e21887119f199b9c74c5578 100644 --- a/packages/assembler/lib/produce-assembly-file.js +++ b/packages/assembler/lib/produce-assembly-file.js @@ -147,7 +147,15 @@ function mergeAsciiDoc ( if (doc.hasAttribute('assembly-navtitle')) { navtitleAsciiDoc = doc.getAttribute('assembly-navtitle') navtitlePlain = sanitize((navtitle = doc.$apply_reftext_subs(navtitleAsciiDoc))) - if (buffer.inBody == null) buffer.navtitle = navtitle + if (buffer.inBody == null) { + buffer.navtitle = navtitle + // Q do we need to assert !level here? + if (assemblyModel.rootLevel) { + let doctitle = navtitleAsciiDoc + if (navtitlePlain !== componentVersion.title) doctitle = `${componentVersion.title}: ${doctitle}` + buffer[0] = `= ${doctitle}` + } + } } if (atDocumentRoot) { const authors = doc.getAuthors() diff --git a/packages/assembler/test/produce-assembly-files-test.js b/packages/assembler/test/produce-assembly-files-test.js index 4d220442c33ee4f1a392dae4b83c029fe17a3762..7d019a86ecf4abf65dd87d24b9bf42968dfbdd49 100644 --- a/packages/assembler/test/produce-assembly-files-test.js +++ b/packages/assembler/test/produce-assembly-files-test.js @@ -306,6 +306,10 @@ describe('produceAssemblyFiles()', () => { assert.equal(assemblyFiles[0].src.stem, 'the-page') }) + it('should use value of assembly-navtitle to override doctitle when root level is 1', async () => { + await runScenario('root-level-1-assembly-navtitle', __dirname) + }) + it('should process content in AsciiDoc table cell', async () => { await runScenario('process-asciidoc-table-cell', __dirname) }) diff --git a/packages/assembler/test/scenarios/root-level-1-assembly-navtitle/data.yml b/packages/assembler/test/scenarios/root-level-1-assembly-navtitle/data.yml new file mode 100644 index 0000000000000000000000000000000000000000..a5896d0073a15c09128e3e88fe5cc550be9d6bd4 --- /dev/null +++ b/packages/assembler/test/scenarios/root-level-1-assembly-navtitle/data.yml @@ -0,0 +1,23 @@ +name: the-component +version: '1.0' +title: The Component +navigation: + items: + - content: xref:page-a.adoc[] + - content: xref:page-b.adoc[] +files: +- relative: page-a.adoc + contents: |- + = Page A + :assembly-navtitle: A + + contents +- relative: page-b.adoc + contents: |- + = Page B + :assembly-navtitle: B + + contents +assembler: + assembly: + rootLevel: 1 diff --git a/packages/assembler/test/scenarios/root-level-1-assembly-navtitle/expects/a.adoc b/packages/assembler/test/scenarios/root-level-1-assembly-navtitle/expects/a.adoc new file mode 100644 index 0000000000000000000000000000000000000000..b6b100a76a0e3b25d9fc4874d0ca5ae201720132 --- /dev/null +++ b/packages/assembler/test/scenarios/root-level-1-assembly-navtitle/expects/a.adoc @@ -0,0 +1,21 @@ +[#page-a] += The Component: A +:revnumber: 1.0 +:doctype: book +:underscore: _ +:page-component-name: the-component +:page-component-version: 1.0 +:page-version: {page-component-version} +:page-component-display-version: 1.0 +:page-component-title: The Component + +:docname: page-a +:page-module: ROOT +:page-relative-src-path: page-a.adoc +:page-origin-url: https://github.com/acme/the-component +:page-origin-start-path: +:page-origin-refname: v1.0 +:page-origin-reftype: branch +:page-origin-refhash: a00000000000000000000000000000000000000z + +contents diff --git a/packages/assembler/test/scenarios/root-level-1-assembly-navtitle/expects/b.adoc b/packages/assembler/test/scenarios/root-level-1-assembly-navtitle/expects/b.adoc new file mode 100644 index 0000000000000000000000000000000000000000..936bebd0c198643a0c2e924daaaecd962b243fc4 --- /dev/null +++ b/packages/assembler/test/scenarios/root-level-1-assembly-navtitle/expects/b.adoc @@ -0,0 +1,21 @@ +[#page-b] += The Component: B +:revnumber: 1.0 +:doctype: book +:underscore: _ +:page-component-name: the-component +:page-component-version: 1.0 +:page-version: {page-component-version} +:page-component-display-version: 1.0 +:page-component-title: The Component + +:docname: page-b +:page-module: ROOT +:page-relative-src-path: page-b.adoc +:page-origin-url: https://github.com/acme/the-component +:page-origin-start-path: +:page-origin-refname: v1.0 +:page-origin-reftype: branch +:page-origin-refhash: a00000000000000000000000000000000000000z + +contents