diff options
| author | Michael Williamson <mike@zwobble.org> | 2018-01-16 22:39:51 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2018-01-16 22:39:51 +0000 |
| commit | fae22b10bf8664ee65a2674b9c7cdbf926dd758f (patch) | |
| tree | 7e64cca25945bf52580dd8252ede214c7010dc91 /lib | |
| parent | d3b5060cdd565e6d7454c75f8de68987be9ed2c8 (diff) | |
Handle leading slashes in target
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/docx/docx-reader.js | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/docx/docx-reader.js b/lib/docx/docx-reader.js index 67ff11d..f0b6c89 100644 --- a/lib/docx/docx-reader.js +++ b/lib/docx/docx-reader.js @@ -82,12 +82,23 @@ function read(docxFile, input) { function findDocumentFilename(docxFile, relationships) { var targets = ["word/document.xml"].concat(relationships.findTargetsByType("http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument")); - var validTargets = targets.filter(function(target) { + var normalisedTargets = targets.map(function(target) { + return stripPrefix(target, "/"); + }); + var validTargets = normalisedTargets.filter(function(target) { return docxFile.exists(target); }); return validTargets[0]; } +function stripPrefix(value, prefix) { + if (value.substring(0, prefix.length) === prefix) { + return value.substring(prefix.length); + } else { + return value; + } +} + function xmlFileReader(options) { return function(zipFile) { return readXmlFromZipFile(zipFile, options.filename) |
