
    fe	                         d dl Z dgZ e j                  de j                        Z e j                  d      ZdZd Zd Zd Z	d	 Z
d
 Zy)    Nspoilerz
^ {0,3}! ?z^( {0,3}![^\n]*\n)+$z>!\s*(?P<spoiler_text>.+?)\s*!<c                 J   | j                  ||      \  }}|j                  d      s|dz  }|j                         }|s.t        j	                  |      rt
        j                  d|      }d}nd}|j                  |      }|j                         | j                  dz
  k\  r't        | j                        }|j                  d       n| j                  }| j                  ||       ||j                  d}	|r|j                  |	       |S |j                  |	       |j                   S )N
 block_spoilerblock_quote   typechildren)extract_block_quoteendswithdepth_BLOCK_SPOILER_MATCHmatch_BLOCK_SPOILER_STARTsubchild_statemax_nested_levellistblock_quote_rulesremoveparsetokensprepend_tokenappend_tokencursor)
blockmstatetextend_posr   tok_typechildrulestokens
             R/var/www/cvtools/html/venv/lib/python3.12/site-packages/mistune/plugins/spoiler.pyparse_block_spoilerr(      s   --a7MD'== 	KKME)//5#''D1"  d#E{{}..22U,,-]#''	KKu5<<8EE"	u<<    c                     |j                  d      }|j                         }||_        | j                  |      }|j	                  d|d       |j                         S )Nspoiler_textinline_spoilerr
   )groupcopysrcrenderr   end)inliner   r    r!   	new_stater   s         r'   parse_inline_spoilerr4   *   sO    77>"D

IIM}}Y'H	 0hGH557Nr)   c                     d|z   dz   S )Nz<div class="spoiler">
z</div>
 rendererr!   s     r'   render_block_spoilerr9   3   s    $t+j88r)   c                     d|z   dz   S )Nz<span class="spoiler">z</span>r6   r7   s     r'   render_inline_spoilerr;   7   s    #d*Y66r)   c                 ^   | j                   j                  ddt               | j                  j                  dt        t
               | j                  r[| j                  j                  dk(  rA| j                  j                  dt               | j                  j                  dt               yyy)a  A mistune plugin to support block and inline spoiler. The
    syntax is inspired by stackexchange:

    .. code-block:: text

        Block level spoiler looks like block quote, but with `>!`:

        >! this is spoiler
        >!
        >! the content will be hidden

        Inline spoiler is surrounded by `>!` and `!<`, such as >! hide me !<.

    :param md: Markdown instance
    r   Nr,   htmlr   )
r   registerr(   r2   INLINE_SPOILER_PATTERNr4   r8   NAMEr9   r;   )mds    r'   r   r   ;   s~    " HHmT+>?II')?AUV	{{r{{''61
_.BC
-/DE 2{r)   )re__all__compileMr   r   r?   r(   r4   r9   r;   r   r6   r)   r'   <module>rF      sX    	+!rzz-6 !rzz"9: ; >97Fr)   