
    0Vh                        d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	m
Z
 ddlmZ dd	lmZ  ej                  d
      Z ej                  d
      ZdZddZddZddZy)z5Convert straight quotation marks to typographic ones
    )annotationsN)Any   )
charCodeAtisMdAsciiPunctisPunctCharisWhiteSpace)Token   )	StateCorez['\"]u   ’c                2    |dk\  sJ | d | |z   | |dz   d  z   S )Nr   r    )stringindexchs      R/home/dcms/DCMS/lib/python3.12/site-packages/markdown_it/rules_core/smartquotes.py	replaceAtr      s1     A::&5>B	!444    c           	     	   g }t        |       D ]  \  }}|j                  }d}t        t        |            d d d   D ]  }||   d   |k  s n |dz  }|d |dz    }|j                  dk7  r^|j
                  }d}t        |      }	||	k  s}d}
|}t        j                  ||d        }|sdx}}|j                  d      |z   dz   }|j                  d      dk(  }d	}|j                  d      |z   dz
  dk\  r"t        ||j                  d      |z   dz
        }nt        |      d d d   D ]k  }| |   j                  d
k(  s| |   j                  dk(  r nE| |   j
                  s9t        | |   j
                  t        | |   j
                        dz
        } n d	}||	k  rt        ||      }nmt        |dz   t        |             D ]R  }| |   j                  d
k(  s| |   j                  dk(  r n,| |   j
                  s9t        | |   j
                  d      } n |d uxr! t        |      xs t        t        |            }|d uxr! t        |      xs t        t        |            }|d uxr t        |      }|d uxr t        |      }|rd}n|r|s|sd}|rd}n|r|s|sd}|dk(  r$|j                  d      dk(  r||dk\  r	|dk  rdx}}|r|r|}|}|s8|s6|r2t        |j
                  |j                  d      |z   t               |_        |rt        t        |            d d d   D ]`  }||   }||   d   |k  r nM|d   |k(  s ||   d   |k(  s,||   }|rG|j"                  j$                  j&                  d   }|j"                  j$                  j&                  d   }nF|j"                  j$                  j&                  d   }|j"                  j$                  j&                  d   }t        |j
                  |j                  d      |z   |      |_        t        | |d      j
                  |d   |      | |d      _        |t        |      dz
  z  }|d   |k(  r|t        |      dz
  z  }|j
                  }t        |      }	|d | }d}
 n |
rd}
|r)|j)                  ||j                  d      |z   ||d       n6|r4|r2t        |j
                  |j                  d      |z   t               |_        ||	k  rp y )Nr   levelr   textFT'    	softbreak	hardbreak"   "0   9   singler      tokenpos)r#   r$   r!   r   )	enumerater   rangelentypecontentQUOTE_REsearchstartgroupr   r   r   chrr	   r   
APOSTROPHEmdoptionsquotesappend)tokensstatestackir#   	thisLeveljr   r$   maximum
goto_outer	lastIndextcanOpencanCloseisSinglelastCharnextCharisLastPunctCharisNextPunctCharisLastWhiteSpaceisNextWhiteSpaceitem	openQuote
closeQuotes                            r   process_inlinesrJ      sW   "$Ef% d5KK	s5z"4R4( 	AQx I-	 FAgA::}}d)GmJIYZ 01A!%%Gh''!*y(1,CwwqzS(H $(HwwqzI%)Q.%dAGGAJ,BQ,FGq$B$ Aay~~4q	+8U!!9,, )&)*;*;SARAR=SVW=WXH $(HW}%dC0q1uc&k2 	Aay~~4q	+8U!!9,, )&)*;*;Q?H	 'd2 x(FKH,F  'd2 x(FKH,F   (t3NX8N't3NX8N *:o  *:o 4AGGAJ#$5(X-=(dBR */.Hw8 **8$-qwwqzI'=z%EM s5z*4R40 !A 8DQx(94H~1eAhw6G96T$Qx#(-(8(8(?(?(BI).)9)9)@)@)CJ(-(8(8(?(?(BI).)9)9)@)@)CJ
 )2!MM1771:	+A:) 9B"4=1994;	9tG}-5 s:22=A-3y>A#55C$}}"%d) %bq	%)
C!D !&J!" wwqzI5"*!*	 h )MM1771:	#9:![ Gm+dr   c                   | j                   j                  j                  sy | j                  D ]T  }|j                  dk7  st
        j                  |j                        s2|j                  ?t        |j                  |        V y )Ninline)
r0   r1   typographerr4   r(   r*   r+   r)   childrenrJ   )r5   r#   s     r   smartquotesrO      sa    88'' 3::!)G>>%ENNE2	3r   )r   strr   intr   rP   returnrP   )r4   zlist[Token]r5   r   rR   None)r5   r   rR   rS   )__doc__
__future__r   retypingr   common.utilsr   r   r   r	   r#   r
   
state_corer   compileQUOTE_TEST_REr*   r/   r   rJ   rO   r   r   r   <module>r\      sU    " 	  P P  !

8$2::h
5gT3r   