ó
    �®žjŸN  ã                   óJ  • % S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJrJr  S SKJrJrJrJrJrJrJrJrJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SK J!r!  S SK"J#r#  \ RH                  " \%5      r&Sr'\\(S'   Sr)\\(S'   \" SS9 " S S5      5       r* " S S\5      r+g)é    N)ÚIterator)Ú	dataclass)ÚBytesIO)ÚPath)ÚFinalÚOptionalÚUnion)	ÚDocItemLabelÚDoclingDocumentÚDocumentOriginÚ	GroupItemÚ
GroupLabelÚImageRefÚListItemÚ	TableCellÚ	TableData)ÚDeclarativeDocumentBackend)ÚImageResourceLoader)ÚAsciiDocBackendOptions)ÚInputFormat)ÚInputDocument)ÚDocumentLoadErrorz2(?:\d+(?:\.\d+)?[*+])*[<^>]?(?:\.[<^>])?[adehlms]?Ú
_CELL_SPECz#^(\s*)(\*|-|\.+|\d+\.|\w+\.)\s+(.*)Ú_LIST_ITEM_PATTERNT)Úfrozenc                   ó    • \ rS rSr% \\S'   Srg)Ú_LiteralBlocké'   Útext© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚstrÚ__annotations__Ú__static_attributes__r    ó    Ú]/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/backend/asciidoc_backend.pyr   r   '   s   ‡ à
†Ir(   r   c                   ó¦  ^ • \ rS rSr S/SSS\\\4   S\\   4U 4S jjjr	S\
4S	 jr\S\
4S
 j5       rS r\S\\   4S j5       rS\4S jrS\4S jr\S 5       r\S 5       r\S\\   S\\\-     4S j5       r\S\S\
S\\\S-  4   S\ S-  S\
S\
S\!\
\ S-  \
4   4S j5       r"\S\S\\   S\S-  S\\   4S j5       r#\S\S\\   S\S-  S\\   4S j5       r$\S  5       r%\S! 5       r&\S" 5       r'\S# 5       r(\S$ 5       r)\S% 5       r*\S& 5       r+\S' 5       r,\S( 5       r-\S) 5       r.\S* 5       r/\S+ 5       r0\S, 5       r1\S- 5       r2S.r3U =r4$ )0ÚAsciiDocBackendé,   NÚin_docr   Úpath_or_streamÚoptionsc                 ó”  >• Uc
  [        5       n[        TU ]	  XU5        X l        U   [	        UR
                  UR                  UR                  S9U l         [        U R                  [        5      (       a?  U R                  R                  5       R                  S5      nUR                  S5      U l        [        U R                  [        5      (       a2  [!        U R                  SS9 nUR#                  5       U l        S S S 5        SU l        g ! , (       d  f       N= f! [&         a  n[)        SU R*                   S35      UeS nAff = f)N)Úenable_local_fetchÚenable_remote_fetchÚmax_image_data_base64_bytesz	utf-8-sigÚ
)ÚencodingTz9Could not initialize AsciiDoc backend for file with hash Ú.)r   ÚsuperÚ__init__r.   r   r1   r2   r3   Ú_image_loaderÚ
isinstancer   ÚgetvalueÚdecodeÚsplitÚlinesr   ÚopenÚ	readlinesÚvalidÚ	Exceptionr   Údocument_hash)Úselfr-   r.   r/   Útext_streamÚfÚeÚ	__class__s          €r)   r8   ÚAsciiDocBackend.__init__-   s  ø€ ð ‰?Ü,Ó.ˆGÜ‰Ñ˜°Ô9à,ÔÙÜ0Ø&×9Ñ9Ø '× ;Ñ ;Ø(/×(KÑ(Kñ
ˆÔð	Ü˜$×-Ñ-¬w×7Ñ7Ø"×1Ñ1×:Ñ:Ó<×CÑCÀKÓP�Ø(×.Ñ.¨tÓ4�”
Ü˜$×-Ñ-¬t×4Ñ4Ü˜$×-Ñ-¸ÒDÈØ!"§¡£�D”J÷ EàˆDŒJð 	÷ EÕDûô ó 	Ü#ØKÈD×L^ÑL^ÐK_Ð_`Ðaóàðûð	ús1   ÁBD Ã'DÃ=D Ä
DÄD Ä
EÄ(EÅEÚreturnc                 ó   • U R                   $ ©N)rA   ©rD   s    r)   Úis_validÚAsciiDocBackend.is_validQ   s   € Ø�z‰zÐr(   c                 ó   • g)NFr    ©Úclss    r)   Úsupports_paginationÚ#AsciiDocBackend.supports_paginationT   s   € àr(   c                 ó   • g rL   r    rM   s    r)   ÚunloadÚAsciiDocBackend.unloadX   s   € Ør(   c                 ó$   • [         R                  1$ rL   )r   ÚASCIIDOCrQ   s    r)   Úsupported_formatsÚ!AsciiDocBackend.supported_formats[   s   € ä×$Ñ$Ð%Ð%r(   c                 óÚ   • [        U R                  R                  =(       d    SSU R                  S9n[	        U R                  R
                  =(       d    SUS9nU R                  U5      nU$ )z4
Parses the ASCII into a structured document model.
Úfileztext/asciidoc)ÚfilenameÚmimetypeÚbinary_hash)ÚnameÚorigin)r   r]   ra   rC   r   ÚstemÚ_parse)rD   rb   Údocs      r)   ÚconvertÚAsciiDocBackend.convert_   sX   € ô
  Ø—Y‘Y—^‘^×- vØ$Ø×*Ñ*ñ
ˆô  4§9¡9§>¡>×#;°VÀFÑKˆà�k‰k˜#Óˆàˆ
r(   re   c           
      óü  • SnSn/ n/ n/ nSnSn0 n	0 n
[        S5       H  nSX›'   SX«'   M     U R                  U R                  5       GH—  n[        U[        5      (       a�  U R                  SUU	UUSS9u  p'nU R                  UUU R                  U	5      S9nU R                  UUU R                  U	5      S9nUR                  UR                  U(       a  UOU R                  U	5      S	9  SnM¦  UnUR                  5       nU R                  UUU	UUSS9u  p'nU R                  U5      (       a=  U R                  U5      nUS
   nUR                  US   [        R                   S9U	U'   GM"  U R#                  U5      (       a`  U R%                  U5      nUS
   nUR'                  US   US
   U	US-
     S9U	U'   U	R)                  5        H  u  nnUU:”  d  M  SU	U'   M     GM˜  U R+                  U5      (       Ga~  [,        R/                  SU 35        U R1                  U5      n[,        R/                  SU 35        U R3                  U	5      nU(       dJ  SnU R                  UUU	U   S9nUR5                  U	U   S[6        R8                  S9U	US-   '   US   U
US-   '   O�U(       a@  US   U
U   :”  a4  UR5                  U	U   S[6        R8                  S9U	US-   '   US   U
US-   '   OHU(       aA  US   U
U   :  a5  US:”  a/  US   U
U   :  a#  SU	U'   SU
U'   US-  nUS:”  a  US   U
U   :  a  M#  UR;                  US   US   US   SS R=                  5       (       a  US   OSU R                  U	5      S9nSnGM-  U(       a  US:X  a  SnGM?  UR                  5       S:X  a  U(       d  SnGM_  U R?                  U5      (       a%  SnURA                  U RC                  U5      5        GMš  U(       a¢  U R?                  U5      (       a  UR                  5       S:X  ax  Sn[E        U5      S:”  a-  UR                  SRG                  U5      [        RH                  S9n/ nU RK                  U5      nURM                  UU R                  U	5      US9  Sn/ nGMC  U RO                  U5      (       aê  Sn[E        U5      S:”  a-  UR                  SRG                  U5      [        RH                  S9n/ nU RQ                  U5      nSnSU;   ar  U RR                  RT                  (       aW  U RR                  RV                  b  [Y        U RR                  RV                  5      OSnU RZ                  R]                  US   U5      nUR_                  UUU(       a  UOSS9  SnGMC  U Ra                  U5      (       a7  [E        U5      S:X  a(  U Rc                  U5      nURA                  US   5        GM�  [E        UR                  5       5      S:”  a7  [E        U5      S:”  a(  U Re                  U5      nURA                  US   5        GMä  [E        UR                  5       5      S:X  aQ  [E        U5      S:”  aB  UR                  SRG                  U5      [        Rf                  U R                  U	5      S9  / nGMR  [E        UR                  5       5      S:”  d  GMr  U Re                  U5      nURA                  US   5        GMš     [E        U5      S:”  a?  UR                  SRG                  U5      [        Rf                  U R                  U	5      S9  / nU(       aC  [E        U5      S:”  a4  U RK                  U5      nURM                  UU R                  U	5      S 9  Sn/ nU$ )!zv
Main function that orchestrates the parsing by yielding components:
title, section headers, text, lists, and tables.
FNé
   z<literal-block>T)ÚlineÚin_listÚparentsÚlast_list_itemÚlist_continuationÚis_continuation_block©re   Ú	text_dataÚparent©re   Úcaption_datarr   )r   rr   Úlevelr   )r   Úlabelé   )r   ru   rr   zline: zparsed list-item: Úlist)rr   ra   rv   Úindentr   ÚnumberedÚmarkeréÿÿÿÿ)Ú
enumeratedr{   rr   Ú+z|===Ú )Údatarr   ÚcaptionÚuri)Úimager�   rr   ©r   rv   rr   )r€   rr   )4ÚrangeÚ_iter_blocksr>   r:   r   Ú_close_list_if_neededÚ_flush_text_dataÚ_get_current_parentÚ_flush_caption_dataÚadd_coder   ÚstripÚ	_is_titleÚ_parse_titleÚadd_textr
   ÚTITLEÚ_is_section_headerÚ_parse_section_headerÚadd_headingÚitemsÚ_is_list_itemÚ_logÚdebugÚ_parse_list_itemÚ_get_current_levelÚ	add_groupr   ÚLISTÚadd_list_itemÚisdigitÚ_is_table_lineÚappendÚ_parse_table_lineÚlenÚjoinÚCAPTIONÚ_populate_table_as_gridÚ	add_tableÚ_is_pictureÚ_parse_picturer/   Úfetch_imagesÚ
source_urir%   r9   Úload_image_refÚadd_pictureÚ_is_captionÚ_parse_captionÚ_parse_textÚ	PARAGRAPH)rD   re   rk   Úin_tablerq   Ú
table_datart   rm   rn   rl   ÚindentsÚiÚblockrj   Ústripped_lineÚitemru   ÚkÚvr�   r€   rƒ   Ú	base_paths                          r)   rd   ÚAsciiDocBackend._parsep   s¡  € ð ˆØˆà!ˆ	Ø "ˆ
Ø"$ˆØ*.ˆØ!Ðð 68ˆà57ˆä�r–ˆAØˆG‰JØˆG‹Jñ ð ×&Ñ& t§z¡z×2ˆEä˜%¤×/Ñ/Ø=A×=WÑ=WØ*Ø#Ø#Ø#1Ø&7Ø*.ð >Xð >Ñ:�Ð):ð !×1Ñ1ØØ'Ø×3Ñ3°GÓ<ð 2ð �	ð
  $×7Ñ7ØØ!-Ø×3Ñ3°GÓ<ð  8ð  �ð
 —‘ØŸ™æ*1™°t×7OÑ7OÐPWÓ7Xð ñ ð %*Ð!ÙàˆDØ ŸJ™J›LˆMØ9=×9SÑ9SØØØØ-Ø"3Ø&+ð :Tð :Ñ6ˆGÐ%6ð �~‰~˜d×#Ñ#Ø×(Ñ(¨Ó.�Ø˜W™�à!$§¡Ø˜f™¬\×-?Ñ-?ð ".ð "�˜”ð
 ×(Ñ(¨×.Ñ.Ø×1Ñ1°$Ó7�Ø˜W™�à!$§¡Ø˜f™¨T°'©]À7È5ÐSTÉ9ÑCUð "1ð "�˜‘ð $ŸM™MžO‘D�A�qØ˜5•yØ%)˜ ›
ô ,ð
 ×#Ñ# D×)Ò)Ü—
‘
˜V D 6˜?Ô+Ø×,Ñ,¨TÓ2�Ü—
‘
Ð/°¨vÐ6Ô7à×/Ñ/°Ó8�æØ"�GØ#'×#;Ñ#;ØØ%1Ø& u™~ð $<ð $�Lð *-¯©Ø& u™~°FÄ*Ç/Á/ð *7ð *�G˜E A™IÑ&ð *.¨h©�G˜E A™IÒ&æ  h¡°'¸%±.Ó!@Ø),¯©Ø& u™~°FÄ*Ç/Á/ð *7ð *�G˜E A™IÑ&ð *.¨h©�G˜E A™IÒ&æ  h¡°'¸%±.Ó!@à !›)¨¨X©¸À¹Ó(Gà)-˜ ™Ø)-˜ ™Ø ™
˜ð	   !›)¨¨X©¸À¹Õ(Gð "%×!2Ñ!2Ø˜‘LØ# JÑ/Ø.2°8©n¸S¸bÐ.A×.IÑ.I×.KÑ.K˜D šNÐQUØ×3Ñ3°GÓ<ð	 "3ð "�ð %*Ó!æ˜]¨cÓ1Ø$(Ð!Úð —‘“ Ó'¶Ø“à×$Ñ$ T×*Ñ*Ø�Ø×!Ñ! $×"8Ñ"8¸Ó">×?æØ×(Ñ(¨×.Ñ.°4·:±:³<À6Ó3Ià�Ü�|Ó$ qÓ(Ø!Ÿl™lØ ŸX™X lÓ3¼<×;OÑ;Oð +ð �Gð  "�à×3Ñ3°JÓ?�Ø—‘Ø d×&>Ñ&>¸wÓ&GÐQXð ñ ð !�Ø“
ð ×!Ñ! $×'Ñ'Ø�Ü�|Ó$ qÓ(Ø!Ÿl™lØ ŸX™X lÓ3¼<×;OÑ;Oð +ð �Gð  "�à×*Ñ*¨4Ó0�à,0�Ø˜D“= T§\¡\×%>×%>ð  Ÿ<™<×2Ñ2Ñ>ô ˜DŸL™L×3Ñ3Ô4à!ð ð
 !×.Ñ.×=Ñ=¸dÀ5¹kÈ9ÓU�EØ—‘ØØ#Þ-4™>¸$ð  ñ ð
 %*Ó!ð ×!Ñ! $×'Ñ'¬C°Ó,=ÀÓ,BØ×*Ñ*¨4Ó0�Ø×#Ñ# D¨¡L×1ô �D—J‘J“LÓ! AÓ%¬#¨lÓ*;¸aÓ*?à×'Ñ'¨Ó-�Ø×#Ñ# D¨¡L×1ô �T—Z‘Z“\Ó" aÓ'¬C°	«N¸QÓ,>Ø—‘ØŸ™ )Ó,Ü&×0Ñ0Ø×3Ñ3°GÓ<ð ñ ð
 “	ä�T—Z‘Z“\Ó" QÖ&Ø×'Ñ'¨Ó-�Ø× Ñ   f¡×.ñs 3ôv ˆy‹>˜AÓØ�L‰LØ—X‘X˜iÓ(Ü"×,Ñ,Ø×/Ñ/°Ó8ð ñ ð
 ˆIæœ˜J›¨!Ó+Ø×/Ñ/°
Ó;ˆDØ�M‰M˜t¨D×,DÑ,DÀWÓ,MˆMÑNàˆHØˆJàˆ
r(   c                 óZ   • U R                  5        H  u  pUb  M
  US:”  d  M  US-
  s  $    g©Nr   rw   ©r”   ©rl   r·   r¸   s      r)   r™   Ú"AsciiDocBackend._get_current_levelT  s-   € à—M‘M–O‰DˆAØ‹y˜Q �UØ˜1‘u’ñ $ð r(   c                 ó^   • U R                  5        H  u  pUb  M
  US:”  d  M  XS-
     s  $    g r¼   r½   r¾   s      r)   r‰   Ú#AsciiDocBackend._get_current_parent\  s0   € à—M‘M–O‰DˆAØ‹y˜Q �UØ 1™u‘~Ò%ñ $ð r(   r>   c              #   ó   #   • S nU  Hd  nUR                  5       S:X  a$  Uc  / nO[        SR                  U5      S9v •  S nM;  Uc  Uv •  MD  UR                  UR	                  S5      5        Mf     Ub  [        SR                  U5      S9v •  g g 7f)Nz....r4   )r   z
)rŒ   r   r¢   rŸ   Úrstrip)r>   Úliteral_datarj   s      r)   r†   ÚAsciiDocBackend._iter_blocksd  sŒ   é € à)-ˆãˆDØ�z‰z‹|˜vÓ%ØÑ'Ø#%‘Lä'¨T¯Y©Y°|Ó-DÑEÒEØ#'�LÙàÑ#Ø”
à×#Ñ# D§K¡K°Ó$7Ö8ñ ð Ñ#Ü T§Y¡Y¨|Ó%<Ñ=Ó=ð $ùs   ‚BBrj   rk   rl   rm   rn   ro   c                óà   • U(       aN  U R                  U5      (       d8  UR                  5       S;   d$  U(       a!  U(       d  U R                  U5      (       a  X$U4$ U R                  U5      nS X7'   g)N>   Ú r~   )FNF)r•   rŒ   r¦   r™   )rR   rj   rk   rl   rm   rn   ro   ru   s           r)   r‡   Ú%AsciiDocBackend._close_list_if_neededy  sa   € ö Ø× Ñ  ×&Ñ&Ø�z‰z‹|˜yÓ(Þ!Ö'<ÀÇÁÐPT×@UÑ@UàÐ,=Ð=Ð=à×&Ñ& wÓ/ˆØˆ‰Ø!r(   rq   rr   c                 ó€   • [        U5      S:”  a.  U R                  SR                  U5      [        R                  US9  / $ ©Nr   r   r„   )r¡   r�   r¢   r
   r¯   rp   s      r)   rˆ   Ú AsciiDocBackend._flush_text_data�  s@   € ô ˆy‹>˜AÓØ�L‰LØ—X‘X˜iÓ(Ü"×,Ñ,Øð ñ ð
 ˆ	r(   rt   c                 ó€   • [        U5      S:”  a.  U R                  SR                  U5      [        R                  US9  / $ rÊ   )r¡   r�   r¢   r
   r£   rs   s      r)   rŠ   Ú#AsciiDocBackend._flush_caption_dataŸ  sA   € ô ˆ|Ó˜qÓ Ø�L‰LØ—X‘X˜lÓ+Ü"×*Ñ*Øð ñ ð
 ˆ	r(   c                 ó0   • [         R                  " SU 5      $ )Nz^= ©ÚreÚmatch©rj   s    r)   r�   ÚAsciiDocBackend._is_title¯  s   € ä�xŠx˜ Ó%Ð%r(   c                 ó0   • SU SS  R                  5       SS.$ )NÚtitleé   r   )Útyper   ru   ©rŒ   rÒ   s    r)   rŽ   ÚAsciiDocBackend._parse_title³  s   € à¨¨a¨b¨¯©Ó)9ÀAÑFÐFr(   c                 ó0   • [         R                  " SU 5      $ )Nz^==+\s+rÏ   rÒ   s    r)   r‘   Ú"AsciiDocBackend._is_section_header¸  s   € ä�xŠx˜
 DÓ)Ð)r(   c                 óÄ   • [         R                  " SU 5      nUR                  S5      nUR                  S5      nUR                  S5      nSUS-
  UR	                  5       S.$ )Nz^(=+)\s+(.*)rw   rÖ   Ú=Úheader)r×   ru   r   )rÐ   rÑ   ÚgroupÚcountrŒ   )rj   rÑ   r{   r   Úheader_levels        r)   r’   Ú%AsciiDocBackend._parse_section_header¼  sX   € ä—’˜¨$Ó/ˆà—‘˜Q“ˆØ�{‰{˜1‹~ˆà—|‘| CÓ(ˆàØ! AÑ%Ø—J‘J“Lñ
ð 	
r(   c                 ó8   • [         R                  " [        U 5      $ rL   )rÐ   rÑ   r   rÒ   s    r)   r•   ÚAsciiDocBackend._is_list_itemË  s   € ä�xŠxÔ*¨DÓ1Ð1r(   c                 ó�  • [         R                  " [        U 5      nU(       a�  UR                  S5      nUR                  S5      nUR                  S5      n[	        U5      nUR                  S5      (       a  U[	        U5      S-
  -  nUS:X  d  US:X  a  SUUR                  5       SUS	.$ SUUR                  5       S
US	.$ SSU SSS	.$ )zKExtract the item marker (number or bullet symbol) and the text of the item.rw   rÖ   é   r6   Ú*Ú-Ú	list_itemF)r×   r{   r   rz   ry   Tr   )rÐ   rÑ   r   rß   r¡   Ú
startswithrŒ   )rj   rÑ   ry   r{   r   Úindent_widths         r)   r˜   Ú AsciiDocBackend._parse_list_itemÏ  sÓ   € ô —’Ô+¨TÓ2ˆÞØ—[‘[ “^ˆFØ—[‘[ “^ˆFØ—;‘;˜q“>ˆDÜ˜v›;ˆLØ× Ñ  ×%Ñ%Ø¤ F£¨a¡Ñ/�à˜‹} ¨#£à'Ø$Ø ŸJ™J›LØ %Ø*ñð ð (Ø$Ø ŸJ™J›LØ $Ø*ñð ð $ØØØ!Øñð r(   c                 ó@   • [         R                  " S[         S3U 5      $ )NÚ^z\|.*\|)rÐ   rÑ   r   rÒ   s    r)   rž   ÚAsciiDocBackend._is_table_line÷  s   € ä�xŠx˜1œZ˜L¨Ð/°Ó6Ð6r(   c                 ó´   • [         R                  " S[         S3SU 5      n U R                  S5      SS  nU Vs/ s H  o"R	                  5       PM     sn$ s  snf )Nz(^|\s)z(?=\|)z\1Ú|rw   )rÐ   Úsubr   r=   rŒ   )rj   ÚcellsÚcells      r)   r    Ú!AsciiDocBackend._parse_table_lineû  sO   € ô �vŠv˜¤
˜|¨6Ð2°E¸4Ó@ˆà—
‘
˜3“  Ð#ˆá).Ó/ª —
‘
–©Ñ/Ð/ùÒ/s   ¹Ac                 ó  • [        U 5      n[        S U  5       SS9n[        X/ S9n[        U 5       HP  u  pE[        U5       H<  u  pgSnSn	[	        UUU	UXH-   UXi-   US:H  SS9	n
UR
                  R                  U
5        M>     MR     U$ )Nc              3   ó8   #   • U  H  n[        U5      v •  M     g 7frL   )r¡   )Ú.0Úrows     r)   Ú	<genexpr>Ú:AsciiDocBackend._populate_table_as_grid.<locals>.<genexpr>
  s   é € Ð7ªJ Sœ˜CŸ˜ªJùs   ‚r   )Údefault)Únum_rowsÚnum_colsÚtable_cellsrw   F)	r   Úrow_spanÚcol_spanÚstart_row_offset_idxÚend_row_offset_idxÚstart_col_offset_idxÚend_col_offset_idxÚcolumn_headerÚ
row_header)r¡   Úmaxr   Ú	enumerater   rÿ   rŸ   )r±   rý   rþ   r€   Úrow_idxrù   Úcol_idxr   r   r  rô   s              r)   r¤   Ú'AsciiDocBackend._populate_table_as_grid  s¤   € ä�z“?ˆô Ñ7©JÓ7ÀÑCˆä (È2ÑNˆÜ% jÖ1‰LˆGô "+¨3¦‘�Ø�Ø�ä ØØ%Ø%Ø)0Ø'.Ñ'9Ø)0Ø'.Ñ'9Ø")¨Q¡,Ø$ñ
�ð × Ñ ×'Ñ'¨Ö-ó "0ñ	 2ð* ˆr(   c                 ó0   • [         R                  " SU 5      $ )Nz^image::rÏ   rÒ   s    r)   r¦   ÚAsciiDocBackend._is_picture%  s   € ä�xŠx˜ TÓ*Ð*r(   c                 ó  • [         R                  " SU 5      nU(       aé  UR                  S5      R                  5       nUR                  S5      R	                  S5      nSUS.nU(       aœ  US   (       a  US   R                  5       /OS/nUSS	  H^  nS
U;   a6  UR	                  S
S5      u  pxUR                  5       XGR                  5       '   M?  UR                  UR                  5       5        M`     SR                  U5      US'   U$ SU S.$ )z‹
Parse an image macro, extracting its path and attributes.
Syntax: image::path/to/image.png[Alt Text, width=200, height=150, align=center]
z^image::(.+)\[(.*)\]$rw   rÖ   Ú,Úpicture)r×   r‚   r   rÇ   NrÝ   z, Úalt)rÐ   rÑ   rß   rŒ   r=   rŸ   r¢   )	rj   ÚmtchÚpicture_pathÚ
attributesÚpicture_infoÚ	alt_partsÚattrÚkeyÚvalues	            r)   r§   ÚAsciiDocBackend._parse_picture)  së   € ô �xŠxÐ0°$Ó7ˆÞØŸ:™: a›=×.Ñ.Ó0ˆLØŸ™ A›×,Ñ,¨SÓ1ˆJØ$-°lÑCˆLö Ø7AÀ!·}˜Z¨™]×0Ñ0Ó2Ñ3È2È$�	Ø& q r›N�DØ˜d“{Ø%)§Z¡Z°°QÓ%7™
˜Ø49·K±K³M˜§Y¡Y£[Ó1à!×(Ñ(¨¯©«Ö6ñ +ð '+§i¡i°	Ó&:�˜UÑ#àÐà!¨$Ñ/Ð/r(   c                 ó0   • [         R                  " SU 5      $ )Nz	^\.(\S.*)rÏ   rÒ   s    r)   r¬   ÚAsciiDocBackend._is_captionE  s   € ä�xŠx˜ dÓ+Ð+r(   c                 ót   • [         R                  " SU 5      nU(       a  UR                  S5      nSUS.$ SSS.$ )Nz^\.(.+)rw   r�   ©r×   r   rÇ   )rÐ   rÑ   rß   )rj   r  r   s      r)   r­   ÚAsciiDocBackend._parse_captionI  s8   € ä�xŠx˜
 DÓ)ˆÞØ—:‘:˜a“=ˆDØ%¨tÑ4Ð4à!¨2Ñ.Ð.r(   c                 ó(   • SU R                  5       S.$ )Nr   r  rØ   rÒ   s    r)   r®   ÚAsciiDocBackend._parse_textS  s   € à¨¯
©
«Ñ5Ð5r(   )r9   r>   r.   rA   rL   )5r!   r"   r#   r$   r	   r   r   r   r   r8   ÚboolrN   ÚclassmethodrS   rV   Úsetr   rZ   r   rf   rd   Ústaticmethodr™   r‰   rx   r%   r   r   r†   ÚdictÚintr   r   Útupler‡   rˆ   rŠ   r�   rŽ   r‘   r’   r•   r˜   rž   r    r¤   r¦   r§   r¬   r­   r®   r'   Ú__classcell__)rH   s   @r)   r+   r+   ,   s#  ø† ð
 59ñ	"àð"ð ˜g t˜mÑ,ð"ð Ð0Ñ1÷	"ð "ðH˜$ô ð ð Dó ó ðòð ð& # kÑ"2ó &ó ð&ð˜ô ð"b˜/ô bðH ñó ðð ñó ðð ð>˜D ™Ið >¨(°3¸Ñ3FÑ*Gó >ó ð>ð( ð"ð ð"ð ð	"ð
 �c˜9 tÑ+Ð+Ñ,ð"ð ! 4™ð"ð  ð"ð  $ð"ð 
ˆt�X ‘_ dÐ*Ñ	+ó"ó ð"ð, ðàðð ˜‘9ðð ˜DÑ ð	ð
 
ˆc‰óó ðð ðàðð ˜3‘iðð ˜DÑ ð	ð
 
ˆc‰óó ðð ñ&ó ð&ð ñGó ðGð ñ*ó ð*ð ñ
ó ð
ð ñ2ó ð2ð ñ$ó ð$ðN ñ7ó ð7ð ñ0ó ð0ð ñó ðð> ñ+ó ð+ð ñ0ó ð0ð6 ñ,ó ð,ð ñ/ó ð/ð ñ6ó ö6r(   r+   ),ÚloggingrÐ   Úcollections.abcr   Údataclassesr   Úior   Úpathlibr   Útypingr   r   r	   Údocling_core.types.docr
   r   r   r   r   r   r   r   r   Ú docling.backend.abstract_backendr   Ú+docling.backend.utils.image_resource_loaderr   Ú!docling.datamodel.backend_optionsr   Údocling.datamodel.base_modelsr   Údocling.datamodel.documentr   Údocling.exceptionsr   Ú	getLoggerr!   r–   r   r&   r   r   r+   r    r(   r)   Ú<module>r9     s˜   ðô Û 	Ý $Ý !Ý Ý ß )Ñ )÷
÷ 
õ 
õ HÝ KÝ DÝ 5Ý 4Ý 0à×Ò˜Ó"€ð J€
ˆEÓ IØBÐ �EÓ Bñ �$Ñ÷ð ó ðôi6Ð0õ i6r(   