diff options
-rw-r--r-- | src/Text/Pandoc/Readers/Docx/Parse.hs | 4 | ||||
-rw-r--r-- | test/Tests/Readers/Docx.hs | 4 | ||||
-rw-r--r-- | test/docx/empty_field.docx | bin | 0 -> 14312 bytes | |||
-rw-r--r-- | test/docx/empty_field.native | 7 |
4 files changed, 15 insertions, 0 deletions
diff --git a/src/Text/Pandoc/Readers/Docx/Parse.hs b/src/Text/Pandoc/Readers/Docx/Parse.hs index a97d4b3d1..0021741ed 100644 --- a/src/Text/Pandoc/Readers/Docx/Parse.hs +++ b/src/Text/Pandoc/Readers/Docx/Parse.hs @@ -844,6 +844,10 @@ elemToParPart ns element FldCharFieldInfo info : ancestors | fldCharType == "separate" -> do modify $ \st -> st {stateFldCharState = FldCharContent info [] : ancestors} return NullParPart + -- Some fields have no content, since Pandoc doesn't understand any of those fields, we can just close it. + FldCharFieldInfo _ : ancestors | fldCharType == "end" -> do + modify $ \st -> st {stateFldCharState = ancestors} + return NullParPart [FldCharContent info children] | fldCharType == "end" -> do modify $ \st -> st {stateFldCharState = []} return $ Field info $ reverse children diff --git a/test/Tests/Readers/Docx.hs b/test/Tests/Readers/Docx.hs index ea4094c82..be5b89b88 100644 --- a/test/Tests/Readers/Docx.hs +++ b/test/Tests/Readers/Docx.hs @@ -152,6 +152,10 @@ tests = [ testGroup "document" "docx/nested_instrText.docx" "docx/nested_instrText.native" , testCompare + "empty fields with <w:instrText> tag" + "docx/empty_field.docx" + "docx/empty_field.native" + , testCompare "pageref hyperlinks in <w:instrText> tag" "docx/pageref.docx" "docx/pageref.native" diff --git a/test/docx/empty_field.docx b/test/docx/empty_field.docx Binary files differnew file mode 100644 index 000000000..fb3830b0d --- /dev/null +++ b/test/docx/empty_field.docx diff --git a/test/docx/empty_field.native b/test/docx/empty_field.native new file mode 100644 index 000000000..18d892454 --- /dev/null +++ b/test/docx/empty_field.native @@ -0,0 +1,7 @@ +[Para + [Str "\24076\26395\28145\20837\20102\35299\30340\35835\32773\21487\20197\21435\30475David",Space,Str "French",Space,Str "Belding\21644Kevin",Space,Str "J.",Space,Str "Mitchell\30340" + ,Link ("",[],[]) [Str "Foundations",Space,Str "of",Space,Str "Analysis,",Space,Str "2nd",Space,Str "Edition"] ("https://books.google.com/books?id=sp_Zcb9ot90C&lpg=PR4&hl=zh-CN&pg=PA19#v=onepage&q&f=true",""),Str ",\21487\20174\&19\39029\30475\36215\65292\25110D.C.",Space,Str "Goldrei\30340",Space + ,Link ("",[],[]) [Str "Classic",Space,Str "Set",Space,Str "Theory:",Space,Str "For",Space,Str "Guided",Space,Str "Independent",Space,Str "Study"] ("https://books.google.ae/books?id=dlc0DwAAQBAJ&lpg=PT29&hl=zh-CN&pg=PT26#v=onepage&q&f=true","") + ,Str "\65292\20174\31532\20108\31456\30475\36215\65292\38405\35835\26102\35201\27880\24847\26412\25991\19982\36825\20123\20070\25152\19981\21516\30340\26159\24182\27809\26377\25226\23454\25968\30475\20316\26159\26377\29702\25968\38598\30340\20998\21106\12290"] +,Para [Str "Index:"] +,Para [Str "French,",Space,Str "1"]] |