U C^ @sjdZdZddlZddlmZmZddlmZddlmZddl m Z Gdd d ej Z Gd d d eZ dS) z4 Directives for typically HTML-specific constructs. ZreStructuredTextN)nodesutils) Directive)states) componentsc@s6eZdZGdddejejejZddZddZ dS)MetaBodyc@seZdZdZdS)z MetaBody.metazHTML-specific "meta" element.N)__name__ __module__ __qualname____doc__r r J/tmp/pip-install-6_kvzl1k/docutils/docutils/parsers/rst/directives/html.pymetasrcCs&||\}}|j|7_g|gfS)z Meta element.) parsemetaparent)selfmatchcontext next_statenode blank_finishr r r field_markerszMetaBody.field_markerc Cs||}tt|}|j|\}}}}|}t t j dd|gd}ttd ||d<|s|jj } |jd|t| | } | |fS|} z&t| dd\} } | || <Wn"tjk r| d|d<YnX| d dD]}z"t|d\} } | || <Wqtjk rz}z:|jj } |jd ||ft| | } | |fWYSd}~XYqXq|j|||fS) Nwriterhtml) componentformatr contentzNo content for meta tag "%s".rnamez*Error parsing meta tag attribute "%s": %s.)Zparse_field_markerrunescapeZ escape2null state_machineZget_first_known_indentedendrrpendingrFilterjoinlinereporterinfo literal_blocksplitZextract_name_valuelowerZNameValueErrorerrordocumentZ note_pending)rrrZindentedindent line_offsetrrr#r&msgtokensZattnamevaltokenZdetailr r r rsT     $ zMetaBody.parsemetaN) rr r rSpecialZPreBibliographicElementrrrr r r r rsrc@s"eZdZdZdefiZddZdS)MetaTZ state_classescCsv|t}|jj|j|j|dd|jd\}}||jt|jkrp|j j j dt |j |j |jd}||7}|jS)NrT)Z initial_staterZstate_machine_kwargszInvalid meta directive.)r&)Zassert_has_contentrr5stateZnested_list_parserZcontent_offsetSMkwargslenr!r'r,r)Z block_textlinenochildren)rrZnew_line_offsetrr,r r r runJs$ zMeta.runN)rr r Z has_contentrr8r<r r r r r6Ds r6)r Z __docformat__sysZdocutilsrrZdocutils.parsers.rstrrZdocutils.transformsrZSpecializedBodyrr6r r r r s   2