From efc68c6f063b0b59918924d4e2153e6ab06ce509 Mon Sep 17 00:00:00 2001 From: Eddy de Vink Date: Fri, 4 Sep 2026 16:08:19 +0200 Subject: [PATCH] Fix blockquote card layout: hard-break (trailing spaces) between name/topic/link so lines render on separate rows; v2.1.7 --- maubot.yaml | 2 +- roomsoverview.mbp | Bin 5633 -> 5853 bytes roomsoverview.py | 14 ++++++++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/maubot.yaml b/maubot.yaml index a45975e..645e404 100644 --- a/maubot.yaml +++ b/maubot.yaml @@ -1,6 +1,6 @@ maubot: 0.1.0 id: nl.roomsoverview -version: 2.1.6 +version: 2.1.7 license: MIT modules: - roomsoverview diff --git a/roomsoverview.mbp b/roomsoverview.mbp index 4eacc28a8db818fea4003ae2f3b32f658d957dc8..9c1906b3c3c8ab7439d54eee6d147e33da1a7e01 100644 GIT binary patch delta 5147 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 J$`t?r007vqv2p+a delta 4939 zcmV-R6SVBzErBdFP)h>@6aWAK2mpX zY*kbV00SA#nra)(ku)HGgNM9<2T{a(*rsV&$WO^8)xNzgmV&2YXTI49RJ&9(w(6u> z;9g_&DyI}A%`VUE-mt20iW<)=a{ay6ufrad3Kd#8=&)?;fD*J-R-Tb^vnad99Kk~pFWg#=|gDp&2(Y}Gx% z{eSl+_axU1fFB?!TeC?vxvEu_ESYFD8jb$=H2{Un6;A}A>0LYtc_&o=eoA?qe}5O@ zl69sDUy^ASPXy;tN_5kTCL*MfY87{@FrMX2NAaCYPQr&lJM5cL>PH;fBt?j&MA+19J2{Z?2?PgoGqD4E?2XJ25dyfx%dW) z36G~?G5AU{$azuLhe7)l+ zgxQQh_dFA};DScImxoU0-SEVJKm4|T?hpDO`UB|kyTeW=Q=<6-WrJr`e^G6x)9L)l zpzsnlgGFJ99k6tggmP(m)@dB#a*~9t!xWxaPDkp61Z+xj2J7cG%rx#ADoUk_x>{8Z z*?&#Wc+9#T0%Q`;qAC3BC zbo6G>Ckf}vl&@K`4%v-Af1$vYm_6{7uIPmMVL(Rxzl_NH^V4@n=iib4=zr%nNF_r> zcQ%CgCT7%Sqi4_kV`He*>`+uvL zH^bqee{}YDl zWu0iu<8VSFpGF}~w@?Yb3MX6ImTWm@i9g|4EOIw!QqdrQB_7{xVWOIw7SN=OXexYA z_hbR9`Y1I_YTa~Ba?*c$bU7H2=a0Fb*Rd+UN73|Thjl_>BZ=x&C{%(--G{Y z7C)C+)I(EY7NhgafBrwfGCCa$K|X{lx?=t^um!snU6P7K#v1rkHUoqAB@MufWD)S2 zcs~tiaX5tq0_9HTG@%oLsODzQVuFef0z_U}$`TY$0C4c~DI`o}Nn9}?92KG`n8XC+ z|NeW+CGZzM%ZZlFA64te*2X>6xYyd~t46=I@k%vbwKiU>f5z+9#;;W4SFMe&RpV>j zh$^3erKB2r*)>e&D1GCq1l-RgGP6?_O0Z zhGY#MwG3mhl(ZtSNsqST!~gzLq1bJNOM0tV0AgW zmKoq5h*wqN;0@s41}&z{AdA4M1x*(zkY8OFBy|lz zE6mZ1bkAKRv#avWn0P?TE_wdy)uBUpqQ11aajR$^U9DIgn4?QdN$4e6>_-&w#tT<- zfMG+_5X8*Lc7E28VAVq&U_g%UnxVg;xIOaw!)Daef5n;Il-6lMc`z!92O9Oqbh4Nw z5XpnyD9M;fymg)tpLtSGJOVDY_mUteh-6{G-7Ue^kYN6f56uxGLp4itnx~0z!uThC;O) zQ@T8m*ycc@p93%r$g67#xfMQTDZy7>r|5Xj1c#|H24y~)9pH-;wRt-}wMJ{I|o)vlGXw4qtpnr9=2ro?5J3B@q;jx%$ht1VCUm#(=msUerq%|hcYok7DejycsMSAM zzdVq+?O+4bxj&F19&A9yd#f3%q(+n;dh_;Xq4rIB^$nILwF5ICNpoKKf}$_+P?jvk zvhT&=VLKhZw7Dycn0UB>R#_x`vD*n-e+kl;AE53guN8y_`u{>28q}|fWAlhGp%yL>e zRl~S;H>@3v>JtxR2>M!_7Q1@DrgpQZZML+l9R`3Dkas7(o&|1EL4eF<)PYkV4_SInJAyCGEr?iFv*Rpn=ew?-pp!%V0pA= z%6T+Ak>6Vavzc2VcMNzc)6)|zf9(qMSW;vx$O2w9!#p7;jLbRI7=W`NIl=n|>QaGu zOK}L}NtC4_2=?^JQ5A}D-3_+0O=B>1^~mRf?V9i zbOnjb!m^~`Dj}bRS@87i!_naM#D9Nue)O)A34faF*OO*j7zo0IO$1Nwe`G*7*r;qN zCDgg{=~JgI)#M?emVAG$0Ff8-W{}WEs+ZmREZ?kgE;CKVPQ%n+^1yDQEmv+iV49$+mngNMp+t2hhIX#M=fGccZu<5w^K z_1~N>l1~yQ8P28Eh09eGe@-wm1-N5!8!l;tU(mQ&TxKCUJD79qAfuQX7{yQbmvlwe z94iJ!7T_YF;5m@UVc0%OCiGYVEg5pYK)a7~arR+afkb|eM~=0K2-~EWAezjxrsNA5 zyi9&;td0P3h7_e5XVGF`X4?H9GM3yCJAi`e=70V(!dA@?N<^YWe;czk75{KxSs4B= zp0^bk)XI}KS*{$zbg{>y5^{MNQ9V z|4xpg2%|l|gDeaHQGZ%6#L*DQVb-_@VBN5pRY_oAfWqEUEO<)J@#VDQC=XzT?BbLVAe$+um{7l8!U0cPl%PMa$R+lidd??Ne6}q({d`V z`z<&lk_d{AS({-A$6Dvp!io)6!(oj_YgPctLy zNx;B|rWb;vgGA`(C|HX*$an#5S4HvCOrc=oF&EW288IDrY)RE^T4+6hH}r7=`WW@M z>VbUwe@*|qU#P1`zI+Z@4TNar*p6IseLd^dZX}>PtG4Eh%rlm$Rh*=B$wqg&mtxte zQ`#C-?zx2*Ht$&V<&zFrm?CZ};d(U=T>J<$uGCQaB3|y>zHR(@23a#k*SNai)^8~k zd!WYM1Jh8gN7hl@3>coD^v}tg@9Le8hew0{f5ma%enbu}uS1S5j@vE{XboQlpe7qI zhjfhGEv_4CMl>mPtpN*Li>`6UvE{%^P0G-8b-7Aev^&YiwZctyg~8;3dds<^b)xXl zzC6n#VT!;A%!SQ7Qk3~AS!8isL|ehxnnQUXV=S%dSMvP$g(9RuK)zDkgMB{Tm#TgJ zf6;q5@StAHpe;`~cq04-yR#t!m}c2L2CJ-1%LN++V5>`SHT@Y^QV}*b!&_;$MLGw3 z8vvkP**BMZ@o+vi%%_)6tWM#NF%Q(v)+-j)SZ6&WjJ$1AR2!V8W#~hOZ8L4@QU=Ja zQ#RbTU|xM%)1lhj?LpS8Ztd20WGi=De`4ISB{eQjNFR@!C9p?Kt0`C9o8eIVAoy z-qvA>+&``HgF)qEjM%^w5$b*v#tYA&!zaF=38(>mUhT9_^%uN-mh0bK#vlOPe}D^F zxrFpUXQw_Ut67;`lu*bU#}$^^o*d+w8=K^-1*lm8z^fi0_PxE0w9tmeG(OBvYRsgEx0tT~j?v3jiw$(_2<4PeQj?n`mO z)*LWo5YDjFmiNa6$NhF!doWR|;w? zwZH@|S1aQK0HE?J2_Pb3FLSu`Ece4g$KakB#sK9gzy!}}{Dj`9f6G|8ZUVhPrYc}q zUljrEYEW3U-1;&#(o$;avma?bIV#70)Q+d~FoLwc##w`>FT*s&N~M@K;jnCcrVb(* zXx3{jN(`i<;e@=|KUHT%(y3A`jcw}-KmsbuR4YZ}h!y*^B4OMPd~haHb*A}ogVgsQ zA)V`jY6kFDp53VJf4N7dfwfx=q?=cp8krY_l${{yH51;0QUV(g)I7Qetz-7A?0$gq z7h?cC&Lff+w@)7l?&U32m%KbwQ5`=kVO`_Btu-N3w(Vu%@$m9&WbZjUY*H8sR3pCb zm6Q0)!e?ro%8KVlAcNcufw|z62WNQTc;rK|%I$~lKxspz&#S!0T~ z!#;*}dUnx2AK~@;VQbA>D{sp^+Rv}E-Qq64TU^_BjcfT%eYg)tgUkK}vA+b{`SJz4 zU&8wpynhGp-^2S4_-=F?p25POy&ar_1r+{4PKM<2{R#eP;-Wt?f8x-S-0MGS=*jVF zyz`0z#i*4de<+plD+74+huSuCu0Inng1cU+t1H)N{phxB6smT5kVF+Y50d12*Vkra z8KUc*gpE7T9{#Z%(b&~$Y60{onf1f$}x0|Cu9CeDhd))o|_Ka)J zWK232qE|3~ZtXPta_6^O#R1hho4-zbRFeuvqykh}y*eX7y=U#}a2ny~9;Xj!3PvQ( z+I+6+H~9}ffci5){%_b_jH90#Dl~svvTMLqC in + # de formatted_body (echte nieuwe regel in Element). link_target = alias if alias else room_id address = _escape_md(alias if alias else room_id) lines = [] @@ -337,9 +343,13 @@ class RoomsOverviewPlugin(Plugin): lines.append(meta) if topic: lines.append(_escape_md(topic)) - # Linktekst = volledige matrix.to URL (fragment mag rauw # en : bevatten) + # Linktekst = full matrix.to URI (fragment mag rauw # en : bevatten) lines.append(f"[{address}](https://matrix.to/#/{link_target})") - rooms_blocks.append("\n".join(f"> {l}" for l in lines)) + cards = [] + for i, ln in enumerate(lines): + suffix = " " if i < len(lines) - 1 else "" + cards.append(f"> {ln}{suffix}") + rooms_blocks.append("\n".join(cards)) chunk_size = max(1, int(self.config.get("rooms_per_message", 50) or 50)) chunks = [