
    0Vh                    T   d Z ddlmZ ddlZddlZddlmZ ddlmZ  ej                  e
      Z ej                  d      Z ej                  d	ej                  
      Z ej                  d      Z ej                  d      Z ej                  d      Z ej                  d      Z ej                  d      Z ej                  dej*                  
      Z ej                  dej*                  
      Z ej                  dej*                  
      ZddddZddZddZddZddZy)u   Simple typographic replacements

* ``(c)``, ``(C)`` → ©
* ``(tm)``, ``(TM)`` → ™
* ``(r)``, ``(R)`` → ®
* ``+-`` → ±
* ``...`` → …
* ``?....`` → ?..
* ``!....`` → !..
* ``????????`` → ???
* ``!!!!!`` → !!!
* ``,,,`` → ,
* ``--`` → &ndash
* ``---`` → &mdash
    )annotationsN   )Token   )	StateCorez\+-|\.\.|\?\?\?\?|!!!!|,,|--z\((c|tm|r)\))flagsz\+-z\.{2,}u	   ([?!])…z
([?!]){4,}z,{2,}z(^|[^-])---(?=[^-]|$)z(^|\s)--(?=\s|$)z(^|[^-\s])--(?=[^-\s]|$)   ©   ®u   ™)crtmc                N    t         | j                  d      j                            S )Nr   )SCOPED_ABBRgrouplower)matchs    S/home/dcms/DCMS/lib/python3.12/site-packages/markdown_it/rules_core/replacements.py	replaceFnr   :   s    u{{1~++-..    c                   d}| D ]  }|j                   dk(  r+|s)t        j                  t        |j                        |_        |j                   dk(  r|j
                  dk(  r|dz  }|j                   dk(  sp|j
                  dk(  s|dz  } y )Nr   text	link_openautor   
link_close)typeSCOPED_ABBR_REsubr   contentinfoinlineTokensinside_autolinktokens      r   replace_scopedr$   >   s~    O !::*..y%--HEM::$v)=q O::%%***>q O!r   c                d   d}| D ]  }|j                   dk(  rK|sHt        j                  |j                        r(t        j                  d|j                        |_        t        j                  d|j                        |_        t        j                  d|j                        |_        t        j                  d|j                        |_        t        j                  d|j                        |_        t        j                  d|j                        |_        t        j                  d	|j                        |_        t        j                  d	|j                        |_        |j                   d
k(  r|j                  dk(  r|dz  }|j                   dk(  s|j                  dk(  s|dz  } y )Nr   r      ±u   …z\1..z\1\1\1,u   \1—u   \1–r   r   r   r   )r   RARE_REsearchr   PLUS_MINUS_REr   ELLIPSIS_RE ELLIPSIS_QUESTION_EXCLAMATION_REQUESTION_EXCLAMATION_RECOMMA_RE
EM_DASH_RE
EN_DASH_REEN_DASH_INDENT_REr   r    s      r   replace_rarer2   L   s;   O !JJ& $u}}- *--dEMMBEM (OOE5==AEM =@@%--XEM377U]]SEM %LLemm<EM 'NN;FEM 'NN;FEM-11+u}}MEM::$v)=q O::%%***>q O=!r   c                t   | j                   j                  j                  sy | j                  D ]  }|j                  dk7  r|j
                   t        j                  |j                        rt        |j
                         t        j                  |j                        stt        |j
                          y )Ninline)mdoptionstypographertokensr   childrenr   r)   r   r$   r(   r2   )stater#   s     r   replacer;   p   s    88'' 
)::!>>!  /5>>*>>%--((
)r   )r   zre.Match[str]returnstr)r!   zlist[Token]r<   None)r:   r   r<   r>   )__doc__
__future__r   loggingrer#   r   
state_corer   	getLogger__name__LOGGERcompiler(   
IGNORECASEr   r*   r+   r,   r-   r.   	MULTILINEr/   r0   r1   r   r   r$   r2   r;    r   r   <module>rK      s   #  	  !			8	$ "**4
5 O2==A

6"bjj##-2::l#;  $"**]3 2::hRZZ0E
RZZ+2<<@
BJJ:",,O  t51/!!!H)r   