diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-03-12 21:07:54 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-03-12 21:07:54 +0000 |
| commit | 04ac1b979cb0539bd70445e3c4ed82572309ffe0 (patch) | |
| tree | 3036081f09a0af072080ae40de6c4858ee3fa43e | |
| parent | 6cfbe0b8952b809bb1a3564041c8155405336167 (diff) | |
Simplify HYPERLINK field handling
| -rw-r--r-- | lib/docx/body-reader.js | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/lib/docx/body-reader.js b/lib/docx/body-reader.js index 74add0a..0d3cfb4 100644 --- a/lib/docx/body-reader.js +++ b/lib/docx/body-reader.js @@ -203,16 +203,11 @@ function BodyReader(options) { } function parseInstrText(instrText, fldChar) { - var externalLinkResult = /^\s*HYPERLINK\s+(?:"(.*)"|([^\\]\S*))/.exec(instrText); - if (externalLinkResult) { - var href = externalLinkResult[1] === undefined ? externalLinkResult[2] : externalLinkResult[1]; - return {type: "hyperlink", options: {href: href}}; - } - - var internalLinkResult = /^\s*HYPERLINK\s+\\l\s+(?:"(.*)"|([^\\]\S*))/.exec(instrText); - if (internalLinkResult) { - var anchor = internalLinkResult[1] === undefined ? internalLinkResult[2] : internalLinkResult[1]; - return {type: "hyperlink", options: {anchor: anchor}}; + var linkResult = /^\s*HYPERLINK\s+(\\l\s+)?(?:"(.*)"|([^\\]\S*))/.exec(instrText); + if (linkResult) { + var target = linkResult[2] === undefined ? linkResult[3] : linkResult[2]; + var options = linkResult[1] === undefined ? {href: target} : {anchor: target}; + return {type: "hyperlink", options: options}; } var checkboxResult = /\s*FORMCHECKBOX\s*/.exec(instrText); |
