o Np` @sdZddlZddlmZmZzddlmZWney4ZzdZGdddej j Z WYdZ[ndZ[wwerAGdddeZ dSdS)zj A parser for CommonMark MarkDown text using `recommonmark`__. __ https://pypi.org/project/recommonmark/ N)nodes Component)CommonMarkParserc@seZdZddZdS)ParsercCs|jd}||dS)NzMissing dependency: MarkDown input is processed by a 3rd party parser but Python did not find the required module "recommonmark" (https://pypi.org/project/recommonmark/).)reporterwarningappend)self inputstringdocumenterrorr G/usr/lib/python3/dist-packages/docutils/parsers/recommonmark_wrapper.pyparses Parser.parseN)__name__ __module__ __qualname__rr r r rrs rc@s,eZdZdZdZdZdZddZddZd S) rz&MarkDown parser based on recommonmark.) recommonmark commonmarkmarkdownmdzrecommonmark parser)parsersc Cst|dD]\}}t||jjkr%|jd|d}||dSqz t |||Wnt yN}z|jd|}||WYd}~nd}~ww| t j D]C}|j}d}|dt|krt||t jrt||dt jrt ||||d||<|||_n|d7}|dt|ksdqU| ddD] }|d d q| t jD]}d |jvr|d |d |d =q| t jD]!}d d |dD|d<|jsdd |jDrq|j|q|jjs| t jD]}|jd} |j|| q| t jD]<}t|ddkr|d||} |d| krE|jd|d| ft d|d} |d| |d=q dS)z=Use the upstream parser and clean up afterwards.  z&Line %d exceeds the line-length-limit.Nz2Parsing with "recommonmark" returned the error: %srcSst|tjtjfS)N) isinstancerliteral literal_block)nr r rWs zParser.parse..classescodelanguagecSg|]}|r|qSr r .0vr r r cz Parser.parse..namescSr#r r r$r r rr'dr(zRaw content disabled.idslevelz1Title level inconsistent. Changing from %d to %d.) enumeratesplitlensettingsline_length_limitrr rrr Exceptiontraverser TextElementchildrenrTextpopparentr attributestargetvaluesremove raw_enabledrawrreplacesectionget_section_levelastextinsert) r r r iliner errnoder5r section_levelr r rr4sv              rcCs2d} |j}t|tjr|St|tjr|d7}q)Nr)r8rrr r@)r rGr+r r rrA~s  zParser.get_section_levelN) rrr__doc__ supportedconfig_sectionconfig_section_dependenciesrrAr r r rr's J) rIdocutils.parsersdocutilsrrrecommonmark.parserr ImportErrorrFrrr r r rs