From 95dde29c5e19addaf8098c64a056e5056a4c4334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edwin=20T=C3=B6r=C3=B6k?= Date: Mon, 18 Dec 2023 23:43:57 +0000 Subject: [PATCH] fix(docx): fix validation error on inline w:i/w:iCs order MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From `make validate-docx-golden-tests2`: ``` { "FilePath": "test/docx/golden/definition_list.docx", "ValidationErrors": "[{\"Description\":\"The element has unexpected child element 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:i'.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:document[1]/w:body[1]/w:p[3]/w:r[3]/w:rPr[1]\",\"PartUri\":\"/word/document.xml\"},\"Id\":\"Sch_UnexpectedElementContentExpectingComplex\",\"ErrorType\":\"Schema\"}]" }, ``` Signed-off-by: Edwin Török --- src/Text/Pandoc/Writers/Docx.hs | 4 ++-- test/docx/golden/custom_style_preserve.docx | Bin 10532 -> 10532 bytes test/docx/golden/definition_list.docx | Bin 9801 -> 9800 bytes test/docx/golden/inline_formatting.docx | Bin 9920 -> 9918 bytes 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Text/Pandoc/Writers/Docx.hs b/src/Text/Pandoc/Writers/Docx.hs index 7db854187..3acd695c5 100644 --- a/src/Text/Pandoc/Writers/Docx.hs +++ b/src/Text/Pandoc/Writers/Docx.hs @@ -1364,12 +1364,12 @@ inlineToOpenXML' opts (Span (ident,classes,kvs) ils) = do langmod $ inlinesToOpenXML opts ils wrapBookmark ident contents inlineToOpenXML' opts (Strong lst) = - withTextProp (mknode "w:b" [] ()) $ withTextProp (mknode "w:bCs" [] ()) $ -- needed for LTR, #6911 + withTextProp (mknode "w:b" [] ()) $ inlinesToOpenXML opts lst inlineToOpenXML' opts (Emph lst) = - withTextProp (mknode "w:i" [] ()) $ withTextProp (mknode "w:iCs" [] ()) $ -- needed for LTR, #6911 + withTextProp (mknode "w:i" [] ()) $ inlinesToOpenXML opts lst inlineToOpenXML' opts (Underline lst) = withTextProp (mknode "w:u" [("w:val","single")] ()) $ diff --git a/test/docx/golden/custom_style_preserve.docx b/test/docx/golden/custom_style_preserve.docx index 1a23653add14a386434665fe4eb28a8509544362..f0e87643145aaab87f2cc5d2112f4c18ad396e9d 100644 GIT binary patch delta 603 zcmZ1yv?Pcpz?+#xgn@~JgCTeCMxITKOu2hEA7JETzqZ+J@o6C$7#CI0H0OpH|vN6_!jFC%DJ}kq?z~Iir zz#z!Lz>t!k98i>BP^_PvUzDm>k(;x0(rLfL1_G}2s-Nr%e)#mk$yr3hrCj^d4IaM?lNnn z>DB_D2>$i=tUjzzP^sT|mPPH(q&EVxi%mLYGvqeCFbKR8vEK67rTmqTlg@85abcN(%Z@J6)h-L)`03&6k~5+ISyw!s zoOi{(LpZ^w=CAauc;qPBoFP5|9QMB?wu8cYv!oXri2g5M!UUuzmnxkBM}hKbuqpvn zdyr_LsyRG9Cr?l{2Z^0j^#D=AYMvk}PR$NP%~P`mQMVyHX?0t$Hcl2`N#VQqwYqM;#-zv0s-JpL zeg9-mHe-;y9a|ho-Q;=f??Bu>j%u(rZZ0!U5Z_t&0+=r<%Enj^GUl}NAx9ZT1_pN~ z1_nU}28NXUUy$E}-|E4wD8BrFZSmG|sP^42ry zDHqKy6~AQK!}?rtLEDV_rDoDQzZ7qB{W9m0#`Xjkok@q)3g0#f&N#JUVcdziHyBb= ze|qpP2w-BhWh%B8JjuE8Ny``eh0+XOK`#z89Q9beXpy+SlflQd!wdctOZBqzo3BkT zEPB6qUQg|P@mkx6;D23pd-v_(U;ONrn@AW_rnIVM)|&;nFH&cQ88tYFAM<~^(qsG1 zX6N@!U7kBv`3d*N1w?usI({ep>E^nsI9<=vUSZEgPp`h&b#;#6zkquA{++M(Gx%0r z+Pbf~f~}`>eZBK9eh;kFu1>+*%J{JuFyMn$7g-f4Q9D6Q$NazoLaHN zuv+14U+)@7goY-Fnj2joBYFB~BL z7XcSA-%5y$kpmR4a>>buCwmCX*Pr$~Y#`uTulmWZP>w@O+gE(SItM2ujw9zbEnj=} zhhnwD+xw5ze7%;wyHQ#5UgrMB*!6t7yz36Ir=Fc866q&oaL6lloA;-C>n^iKnrn)F6%3t|7>HKzw(>D8;OHJ^u z@0&BPVdd=3Cp}Y=+;-*P=Vj2;C|PhYVS#Jdg>LbKuM0LO2K=+wdT4R;>}#HL?zS&T zOTPa-GM@L^jQtDd>z~g*ykeyh<4!?`Sy5bVT-F&`RguT0emHRPS7Ei@quh57Z$#@m zhpb!m*=4bKiqPZ@hToUeg!KEron?|57nT{g?C2s5UG1{)jh`OAE;$qWpLNCK$$3}o zJA@N_YW_;kiboFX&AlQMz#%LzwjC6rH^jWyK(vZ%2@{Z>JWKuzh?}8s8m!7x$sQzH zreuzkj<+e9fdt#OpBL~K=M u7*9`*QdI$Q8h{+}$#Ye~8utS^y_4^#DuZMg)npi>C(Eg+vZ*P7>;VAoMVa0J delta 1032 zcmX@%bJB+=z?+#xgn@~JgW=Y$jXawenQrace1MUUk@MEBN#Xm;T>0iqzRu*yWY6QZ_rG@A$SrX{6aOe@_rqzsUY^?@a^Th$!O&yn0UC=R z9edMgl72F6ZcR&>b2(RVdTUEhG!y$3hWkefw)Gs`H#tCm&Z}?S%l$9P|2elZ?`YK1 z)5@pkhrS7^*ZG>4^?Fflg~TR_ef7;j%YxWuhq~CluHTXwuXSqiev1hkQhk*EPdf4^ zg^zE^{-p<({8yiRKDzERA98q23NKxID2;`YVe?`ZV^GLVzQMW-6o3tE)!=~q%l?G} z#Q!Yd0_Ix^u`zOh0`|1?A;-z?!t(WJ^9~sZw8X1^vMqeHLUfap#g<1`yrz0xU1fec z?ts$2iF#4 zW|xXzGVNh~uDGCW#!@rsonMMKxqg{*Nn?A0i_WCOYK3o`1ZSMuurTh#+#3w3sXsk< z7X;KZvDz{f+Y6rLT=}Hsi~T}r2CtwO2O5rgtX{N8T;IvyW7^>be~P7g+4;@arWY2y zUp%j;_P%(nZA9?DuDZSZ_V6!$cFRp9j44xE)iUeNg4`FWGsBD;9K?^kUForXXS4JB zrY_H&tNes};{qbR4jsRf{&aI)Rh+KpX|J&7qNi8i)abf8$M9c3y?p=9SNj=!t1fNb z*IdEY)49Ih`8PXqP;c%LnE(!9IkD}a5WOzu#Rj64WlNZV^yHcHXF%L^h0|bFCQ9}o z(NZOIq;$Mh$qXd;R!N4je=?V{wgM<7T5k3z=Q1!b)Bv$85F@}@*2ynek~ zMjgxg;>*auu#}B~K?tD=$SR#YUs(~Xri-gw;v@$H!-8N227VMZpC;c|mIK-TUs;Cn z#bg;3MG(hcMTSvta*T=s*eReyAp^9*or!@#5Jk6{@Z>;Y;mPY&ctE=L0(CV`zNI1$ z;`|13geOa=DuFmQsxpjcCP%8OfH?I)j>P0SstO>^J|L%W@@-XRAZL=A3}eh>Sv6HQ IbtRBB0EjTL+5i9m diff --git a/test/docx/golden/inline_formatting.docx b/test/docx/golden/inline_formatting.docx index 008828954f4727a38d36de3c10dbb5f43fe1f6ce..f08344cdad7e64c4a2d50d00b095eb46dfbc117d 100644 GIT binary patch delta 1441 zcmX@$yU&*=z?+#xgn@~JgCTeCMxITKOu2hEA7JETr9UI+e4;K z(hU%K%Pm&$?97>&$)|7s4p;SLebI7}b8mFM2IE;@wUT)k?2kXc>R+}0_O-&aij@x4 zLLY7&Ep_64pDW|qC%#}tv^2NXA8W~wGwtDL7T-!pyI4@5cR^FK_I^&COBbhawUlYw zu{nNChlAq}I6UfZWO+VG!Q+|p{dEG@ct9^|s_xP;kCi9y&APg+ z-*(&SgZn)dN@EOXUPx~|_g-?7%uL?kzOvgdcyi^}awn%twzovFutzZ7{oA%@3QuQy z`2Ch2^=2O~8x(PN$68%X;Xl3j_30P;;};6e^E`Oh>Eva-N-Lwvtdwmsw<|)^M7@@I zZ~fQM%f=o1_2T*mTaq^%Vqur%e%KL_Rp)1@DL+$o`Kg7DliBPP|C%2var?6=wOT~q zVAV6eSKKD4aev|$+eok;Y1-Jhv}D5sv!?-p#cMnlJPxVP+PLJ3saIt;@7; zq`h9Q;9EQU-{s7^%O_XwZ;g$bsdshCqYKy5Wi*+pcgCz{e)pX@u>5l8z4zyK??+A* zlfp~aZWd#;040sd0c^`aDdY!RH8`b|a(v+c@v{Y8!2FFuY>XVBlwUyG3Z0)A3rCz01S6Q=6W;trZa@p$VZz1b4Db3yQB;L(EEW031 zzI6JZ2L4mCL^U_fQAuc-dg@Kslf8GBcyG$fdN^Z)T-@H$2Z4?rNwYb9c8K0owsOl9 zsJ>v6axrnyj;(RUJxlKg9zWXnzF}JBz6DYfyzBes%xhdZyYorYlq9!Z`S*DlG&M>V z986f?8g^l|_`%l&+Y zfQGqaC|oVfz>t!k98i>BP^_PvUzDm>k((3X%?MNoE1@QZGp6{tr2w^G0g4Ks*z-*U zNqZu&Y{AeiJ1JbMQnj}OsO<_61Fb^>9g`=hDuKOgJC$pTBpU<6FIff#Q6v=%433j8 zs;X#!e37^G<~)!O8d=f3+Y8iHo?n!rUpzTpO&lCHtui6!<^T;k4#Yr5A^~QF$%+bM Yle5&oQBa{K!+3G>R5ew$IZ7Z!0AIK$wg3PC delta 1458 zcmdnzd%%|`z?+#xgn@~JgW=Y$jXawenQrace1MUUk@MEBN#Pc~GFOEsUuSZxXIZ{# zN{*uI#eE5S>F3VOv2=^OzhBE!%0a#7+>5(KuACWpTnkV4{JUwdUw7&E*VfZmunnVnSWWOa1YbbJC`CZJiL8yL6V(K(#$Pv+}&->#f^R^pZw1HsvPK(VRd1J zp~Wl{n+Pn-pg9*Y5U;5U;=KMrp1NN9*Eyr@#Tb(j^U!8 z;Vz3)j%+PoEqG^chGA3h%QX(y;wD_@s$+HT_+&coR`y#_8F}~rC4W4um7gxFcpY{- ze%lRw>;GzvTQU!)xXov^+MjyDE5*#m^5&Y!!dv!#(es&`Dr1x-D3ick@>%*+l#z;D zT&?({`rilq51+8qk-OaKe*G!GxwGWq-`pXGj5T-6)~uA9{Cx4G=Wb%3H}-}CV!e3Y3?;Owp~rO#_3mn%gd%8m8ZXH z#3h8Bbziam!j;so^}R*uA_CmU*rwe&=yU7J#zpV8t2Or32d_LnDN4K{D5F5-kL7be zqtyLzQyHeLoiY2#Ch4A^isrm6ybMc%%l7#S^tt?V> za=MrlzFCOX3Y0V^`>`zprI2rI)!>v;%<+W-#LpCT0rS@ju`zOhQqIdef8{3c6_&3* zn|H`Spe0`QlWpOn6{4G*EVewl;x*Ol>MHZoaR-$CP28LN;BB@LhwGzbXJ60!Ym>b@ z@{RBGzfK*uZd$JFnv{~TH27BDvnR=0&!neZG`m#%l4%d?bHxR1GnSf3@BC7{$@R;e zOB&k~Ty!QKRx5nlBsk;LhJ|q_=H6gPP5tS?yC9&RiPe^=*k14?=gKE7U+fo3Gk68P zIM8s^WA&m%;`&YoAJYym_){#^%g%4UHodUu{o;8&wfDtqZ6kvJb=B?Nw}*f6vs-Q= zVN99Qs+L)A7UaH2of&4-;2?hN?MjdBJDZ)~H+6aLT;(U+8y67ib?Eq=^rxHas^WA# zPkV(u7d^fDrbgG*IfnlZ?CU=s^EJLf&Gu!~eMcMSV@Iy~Xxj8_Cjsvj>ih-iSxuE~o)SnS03hQ)#Q*>R