ó
    ñZj¨  ã                   ó    • S SK r " S S5      rg)é    Nc            	       óÀ   • \ rS rSr\S\4S j5       r\S\S\S\	4S j5       r
\S\S\S\4S	 j5       r\S
\S\S\S\4S j5       r\S\R                  S\4S j5       rSrg)Ú
ToMarkdowné   Úreturnc           	      óæ  • Ub  Uc  g[        X5       VVs/ s H  u  p4X@R                  U5      S.PM     nnnU(       d  gUR                  S S9  / nU H„  nSnU H$  n	U R                  US   U	S   5      (       d  M"  U	n  O   Uc#  UR	                  U/[        US   5      S.5        MU  US	   R	                  U5        U R                  US   US   5      US'   M†     UR                  S
 S9  / n
SnU Hæ  n	U	S	   R                  S S9  U	S	   S   S   /nU	S	   S   S   nU	S	   SS  HJ  nUS   nUS   US   -
  nUR	                  U R                  XýU5      5        UR	                  US   5        UnML     Ub;  U	S   S   US   -
  nU[        US   U	S   S   5      S-  :”  a  U
R	                  S5        U
R	                  SR                  U5      5        U	S   nMè     SR                  U
5      $ s  snnf )uÝ   
æ ¹æ�® OCR ç»“æžœçš„å��æ ‡ä¿¡æ�¯ï¼Œå°†æ–‡æœ¬è¿˜åŽŸä¸ºè¿‘ä¼¼åŽŸå§‹æŽ’ç‰ˆçš„ Markdownã€‚

Args:
    result (RapidOCROutput): RapidOCR çš„è¾“å‡ºç»“æžœå¯¹è±¡ã€‚

Returns:
    str: æ¨¡æ‹ŸåŽŸå§‹æŽ’ç‰ˆçš„ Markdown å­—ç¬¦ä¸²ã€‚
Nu   æ²¡æœ‰æ£€æµ‹åˆ°ä»»ä½•æ–‡æœ¬ã€‚)ÚtextÚpropsÚ c                 ó"   • U S   S   U S   S   4$ )Nr	   Úcenter_yÚleft© ©Úitems    ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/rapidocr/utils/to_markdown.pyÚ<lambda>ÚToMarkdown.to.<locals>.<lambda>   s   €  T¨'¡]°:Ñ%>ÀÀWÁÈfÑ@UÑ$Vó    )Úkeyr	   )Úitemsr	   r   c                 ó"   • U S   S   U S   S   4$ )Nr	   Útopr   r   )Úlines    r   r   r   ,   s   €  T¨'¡]°5Ñ%9¸4À¹=ÈÑ;PÑ$Qr   c                 ó   • U S   S   $ )Nr	   r   r   r   s    r   r   r   1   s   € °°W±¸fÒ0Er   r   r   é   r   Úrightr   ÚbottomÚheightgš™™™™™é?Ú
)
ÚzipÚget_box_propertiesÚsortÚis_same_lineÚappendÚdictÚmerge_propsÚget_gap_textÚmaxÚjoin)ÚclsÚboxesÚtxtsÚboxr   r   Úlinesr   Úmatched_liner   Úoutput_linesÚprev_line_propsÚcurrent_line_partsÚprev_item_propsÚcurrent_propsÚgapÚvertical_gaps                    r   ÚtoÚToMarkdown.to   sU  € ð ‰=˜D™LØ3ô ! Ô-ô
â-‘	�ð ×$:Ñ$:¸3Ó$?Ô@Ù-ð 	ñ 
ö Øà�
‰
ÑVˆ
ÑWàˆÛˆDØˆLÛ�Ø×#Ñ# D¨¡M°4¸±=×AÓAØ#'�LÙñ ð
 Ñ#Ø—‘¨ v¼¸TÀ'¹]Ó8KÑLÔMÙà˜Ñ!×(Ñ(¨Ô.Ø$'§O¡O°LÀÑ4IÈ4ÐPWÉ=Ó$YˆL˜Ó!ñ ð 	�
‰
ÑQˆ
ÑRàˆØˆÛˆDØ�‰M×ÑÑ#EÐÑFà"& w¡-°Ñ"2°6Ñ":Ð!;ÐØ" 7™m¨AÑ.¨wÑ7ˆOà˜W™ a bÓ)�Ø $ W¡�Ø# FÑ+¨o¸gÑ.FÑF�Ø"×)Ñ)Ø×$Ñ$ S¸=ÓIôð #×)Ñ)¨$¨v©,Ô7Ø"/’ñ *ð Ñ*Ø# G™}¨UÑ3°oÀhÑ6OÑO�à Ü˜/¨(Ñ3°T¸'±]À8Ñ5LÓMÐPSÑSóTð !×'Ñ'¨Ô+à×Ñ §¡Ð(:Ó ;Ô<Ø" 7™mŠOñ1 ð4 �y‰y˜Ó&Ð&ùóm
s   –G-r4   Ú
line_propsc                 óô   • [        US   U S   5      n[        US   U S   5      n[        SX2-
  5      n[        S[        U S   US   5      5      nXE-  n[        U S   US   -
  5      nUS:„  =(       d    XuS-  :  $ )	Nr   r   g        ç      ð?r   r   ç      à?gffffffÖ?)r(   ÚminÚabs)r4   r9   Úoverlap_topÚoverlap_bottomÚoverlapÚ
min_heightÚoverlap_ratioÚcenter_diffs           r   r#   ÚToMarkdown.is_same_lineL   s“   € ä˜* UÑ+¨]¸5Ñ-AÓBˆÜ˜Z¨Ñ1°=ÀÑ3JÓKˆÜ�c˜>Ñ7Ó8ˆä˜œc -°Ñ"9¸:ÀhÑ;OÓPÓQˆ
ØÑ,ˆÜ˜-¨
Ñ3°jÀÑ6LÑLÓMˆà˜sÑ"×E kÀÑ4EÑ&EÐEr   ÚaÚbc           	      ó¾   • [        U S   US   5      n[        U S   US   5      n[        U S   US   5      n[        U S   US   5      nUUUUX2-
  XT-
  X#U-
  S-  -   S.$ )Nr   r   r   r   é   ©r   r   r   r   r   Úwidthr   )r=   r(   )rF   rG   r   r   r   r   s         r   r&   ÚToMarkdown.merge_propsX   sƒ   € ä�!�E‘(˜A˜e™HÓ%ˆÜ�Q�x‘[ ! H¡+Ó.ˆÜ�1�V‘9˜a ™iÓ(ˆÜ�A�g‘J  '¡
Ó+ˆð ØØØØ‘lØ‘\Ø¨™|¨qÑ0Ñ0ñ
ð 	
r   r5   Ú
prev_propsc                 óÂ   • U S::  a  g[        S[        US   US   5      5      n[        S[        [        U [        SUS-  5      -  5      5      5      nS[        US5      -  $ )Nr   r
   r;   rK   r<   Ú é   )r(   r=   ÚintÚround)r5   rM   r4   Ú	ref_widthÚspacess        r   r'   ÚToMarkdown.get_gap_texti   s`   € à�!‹8Øä˜œS ¨GÑ!4°mÀGÑ6LÓMÓNˆ	Ü�QœœE #¬¨C°¸S±Ó(AÑ"AÓBÓCÓDˆØ”S˜ “_Ñ$Ð$r   r-   c           	      ó  • U SS2S4   nU SS2S4   n[         R                  " U5      n[         R                  " U5      n[         R                  " U5      n[         R                  " U5      nUUUUXC-
  Xe-
  X4U-
  S-  -   S.$ )u*   ä»Žå��æ ‡æ•°ç»„ä¸­è®¡ç®—æ¡†çš„å‡ ä½•å±žæ€§Nr   r   rI   rJ   )Únpr=   r(   )r-   ÚysÚxsr   r   r   r   s          r   r!   ÚToMarkdown.get_box_propertiesr   sƒ   € ð ’�A�‰YˆØ’�A�‰Yˆä�fŠf�R‹jˆÜ—’˜“ˆÜ�vŠv�b‹zˆÜ—’�r“
ˆð ØØØØ‘lØ‘\Ø¨™|¨qÑ0Ñ0ñ
ð 	
r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚclassmethodÚstrr7   Ústaticmethodr%   Úboolr#   r&   Úfloatr'   rW   Úndarrayr!   Ú__static_attributes__r   r   r   r   r      sÌ   † ØðC' ó C'ó ðC'ðJ ð	F Dð 	F°dð 	F¸tó 	Fó ð	Fð ð
�tð 
 ð 
¨ó 
ó ð
ð  ð%˜%ð %¨Tð %À$ð %È3ó %ó ð%ð ð
 §
¡
ð 
¨tó 
ó ó
r   r   )ÚnumpyrW   r   r   r   r   Ú<module>rg      s   ðã ÷A
ò A
r   