o $a=@sdZddlmZmZmZmZddlmZddlm Z m Z m Z ddl m Zddl mZddlmZddlmZdd lmZmZdd lmZdd lmZdd lmZdd lmZee Z!GdddeZ"GdddZ#GdddeeZ$dS)z sphinx.writers.manpage ~~~~~~~~~~~~~~~~~~~~~~ Manual page writer, extended for Sphinx custom nodes. :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. )AnyDictIterablecast)nodes)ElementNode TextElement) Translator)Writer)addnodes)Builder)_admonitionlabels)logging)SphinxTranslator) format_date) NodeMatchercs0eZdZdeddffdd ZdddZZS) ManualPageWriterbuilderreturnNcst||_dSN)super__init__r)selfr __class__8/usr/lib/python3/dist-packages/sphinx/writers/manpage.pyrs  zManualPageWriter.__init__cCsLt|j}||j|j|j}tt||_|j||j |_ dSr) NestedInlineTransformdocumentapplyrcreate_translatorrManualPageTranslatorvisitor walkaboutastextoutput)r transformr$rrr translate"s   zManualPageWriter.translate)rN)__name__ __module__ __qualname__r rr) __classcell__rrrrrsrc@s6eZdZdZdejddfddZdeddfdd ZdS) ra Flatten nested inline nodes: Before: foo=1 &bar=2 After: foo=var &bar=2 r rNcCs ||_dSr)r )rr rrrr6 zNestedInlineTransform.__init__kwargsc sttjtjtjt|jD]N}tfdd|Dr_|j |}t t|D]*}| ||r?|j |d|q*|jdd|fi|j}|j |d|q*t|s_|j |qdS)Nc3s|]}|VqdSrr).0subnodematcherrr <z.NestedInlineTransform.apply..)rrliteralemphasisstronglistr traverseanyparentindexreversedremoveinsertr attributeslen)rr/nodeposr1newnoderr2rr!9s   zNestedInlineTransform.apply) r*r+r,__doc__rr rrr!rrrrr+s rcs eZdZUdZiZeeefed<de j de ddffdd Z defd d Z d eddfd d Zd eddfddZd eddfddZd eddfddZd eddfddZd eddfddZd eddfddZd eddfddZd eddfddZd eddfddZd eddfd d!Zd eddfd"d#Zd eddfd$d%Zd eddfd&d'Zd eddfd(d)Zd eddfd*d+Zd eddfd,d-Zd eddfd.d/Z d eddfd0d1Z!d eddfd2d3Z"d eddfd4d5Z#d eddfd6d7Z$d eddfd8d9Z%d eddfd:d;Z&d eddfdd?Z(d eddfd@dAZ)d eddfdBdCZ*d eddfdDdEZ+d eddfdFdGZ,d eddffdHdI Z-d eddfdJdKZ.d eddffdLdM Z/d eddfdNdOZ0d eddfdPdQZ1d eddfdRdSZ2d eddfdTdUZ3d eddfdVdWZ4d eddfdXdYZ5d eddfdZd[Z6d eddfd\d]Z7d eddfd^d_Z8d eddfd`daZ9d eddfdbdcZ:d eddfdddeZ;d eddfdfdgZd eddfdldmZ?d eddfdndoZ@d eddfdpdqZAd eddfdrdsZBd eddfdtduZCd eddfdvdwZDd eddfdxdyZEd eddfdzd{ZFd eddfd|d}ZGd eddfd~dZHd eddfddZId eddfddZJd eddfddZKd eddfddZLd eddfddZMd eddfddZNd eddfddZOd eddfddZPd eddfddZQd eddffdd ZRd eddffdd ZSd eddffdd ZTd eddffdd ZUd eddfddZVd eddfddZWd eddfddZXd eddfddZYd eddfddZZd eddfddZ[d eddfddZ\d eddfddZ]d e^ddfddZ_Z`S)r#z% Custom man page translator. _docinfor rrNcst||d|_d|_|jj|jd<|jj|jd<|jjr&|jj|jd<|jj |jd<|jd |jd<|j j rC|j j |jd<nt |j jpKtd |j jd |jd<|j j|jd <|j j|jd <|j j|jd <tD] \}}|||jj|<qmdS)Nrtitlesubtitleauthormanual_section title_upperdatez %b %d, %Y)language copyrightversion manual_group)rrin_productionlist section_levelsettingsrKrIrLauthorssectionupperconfigtodayr today_fmtrrQrRrSprojectritems deunicodelabels)rr rlabel translationrrrrQs( zManualPageTranslator.__init__cCs d}|jdr |d7}||jS)NzW.TH "%(title_upper)s" "%(manual_section)s" "%(date)s" "%(version)s" "%(manual_group)s" rLz#.SH NAME %(title)s \- %(subtitle)s )rI)rtmplrrrheaderqs  zManualPageTranslator.headerrEcCdSrrrrErrrvisit_start_of_fileyz(ManualPageTranslator.visit_start_of_filecCrfrrrgrrrdepart_start_of_file|riz)ManualPageTranslator.depart_start_of_filecC||dSr)visit_definition_listrgrrr visit_desczManualPageTranslator.visit_desccCrkr)depart_definition_listrgrrr depart_descrnz ManualPageTranslator.depart_desccCs||||dSr)visit_definition_list_item visit_termrgrrrvisit_desc_signatures z)ManualPageTranslator.visit_desc_signaturecCrkr) depart_termrgrrrdepart_desc_signaturernz*ManualPageTranslator.depart_desc_signaturecCrfrrrgrrrvisit_desc_signature_lineriz.ManualPageTranslator.visit_desc_signature_linecC|jddS)N bodyappendrgrrrdepart_desc_signature_linez/ManualPageTranslator.depart_desc_signature_linecCrkr)visit_definitionrgrrrvisit_desc_contentrnz'ManualPageTranslator.visit_desc_contentcCrkr)depart_definitionrgrrrdepart_desc_contentrnz(ManualPageTranslator.depart_desc_contentcCrfrrrgrrrvisit_desc_inlineriz&ManualPageTranslator.visit_desc_inlinecCrfrrrgrrrdepart_desc_inlineriz'ManualPageTranslator.depart_desc_inlinecCrfrrrgrrrvisit_desc_nameriz$ManualPageTranslator.visit_desc_namecCrfrrrgrrrdepart_desc_nameriz%ManualPageTranslator.depart_desc_namecCrfrrrgrrrvisit_desc_addnameriz'ManualPageTranslator.visit_desc_addnamecCrfrrrgrrrdepart_desc_addnameriz(ManualPageTranslator.depart_desc_addnamecCrfrrrgrrrvisit_desc_typeriz$ManualPageTranslator.visit_desc_typecCrfrrrgrrrdepart_desc_typeriz%ManualPageTranslator.depart_desc_typecCrw)Nz -> ryrgrrrvisit_desc_returnsr}z'ManualPageTranslator.visit_desc_returnscCrfrrrgrrrdepart_desc_returnsriz(ManualPageTranslator.depart_desc_returnscCs|jdd|_dS)N(r6)rzr{ first_paramrgrrrvisit_desc_parameterlists  z-ManualPageTranslator.visit_desc_parameterlistcCrw)N)ryrgrrrdepart_desc_parameterlistr}z.ManualPageTranslator.depart_desc_parameterlistcCs |js |jddSd|_dS)N, r)rrzr{rgrrrvisit_desc_parameters z)ManualPageTranslator.visit_desc_parametercCrfrrrgrrrdepart_desc_parameterriz*ManualPageTranslator.depart_desc_parametercCrw)N[ryrgrrrvisit_desc_optionalr}z(ManualPageTranslator.visit_desc_optionalcCrw)N]ryrgrrrdepart_desc_optionalr}z)ManualPageTranslator.depart_desc_optionalcCrfrrrgrrrvisit_desc_annotationriz*ManualPageTranslator.visit_desc_annotationcCrfrrrgrrrdepart_desc_annotationriz+ManualPageTranslator.depart_desc_annotationcCrkr)visit_paragraphrgrrrvisit_versionmodifiedrnz*ManualPageTranslator.visit_versionmodifiedcCrkr)depart_paragraphrgrrrdepart_versionmodifiedrnz+ManualPageTranslator.depart_versionmodifiedcs0t|tjr|jddSt|dSN )r;r<rr:rzr{rrrrgrrrrrszManualPageTranslator.visit_termcCtjrrSkipNodergrrr visit_commentz"ManualPageTranslator.visit_commentcs|t|dSr) ensure_eolrvisit_footnotergrrrrz#ManualPageTranslator.visit_footnotecCs`|t|dkr(|dtdfvr(|jd||dtj |jddS)Nr6 Footnotesz.SH r.sp ) rrDr&rrzr{r`rZrrrgrrr visit_rubrics  "z!ManualPageTranslator.visit_rubriccCrwrryrgrrr depart_rubricr}z"ManualPageTranslator.depart_rubriccCs||ddS)Nseealso)visit_admonitionrgrrr visit_seealsor}z"ManualPageTranslator.visit_seealsocCrkr)depart_admonitionrgrrrdepart_seealsornz#ManualPageTranslator.depart_seealsocCs&|g}|jd7_|jdtttj|}|D] }||dqtdd|D}d}|D]N}|drg|d |}|j|j dd|j| ||j|j dd|jdn|durw|jd d t || ||jd q4|jd |jd8_tj) Nr6z.sp .nf tokennamecss|]}t|VqdSr)rD)r0namerrrr4r5z.r:rz ::= z%s rxrz .fi )rrUrzr{rrr productionmaxljustdefsr`rDr%rr)rrEnamesproductionlistrmaxlenlastnamerrrvisit_productionlists.   z)ManualPageTranslator.visit_productionlistcCrfrrrgrrrvisit_productionriz%ManualPageTranslator.visit_productioncCrfrrrgrrrdepart_production"riz&ManualPageTranslator.depart_productioncCs@d|jvr|jtd|dd|jtddtj)Naltz [image: %s]rz[image])rCrzr{rrrrgrrr visit_image&s z ManualPageTranslator.visit_imagecCs|j|jdd|||j|jdd|dd}|ds5|ds5|ds5|d r_|jjr_||kr_|drJ|d d}|j d |jd d||jd dd gt j )N referencerr6refurir7zmailto:zhttp:zhttps:zftp:z ) rzr{r visit_Textget startswithr[ man_show_urlsr&extendrr)rrEurirrrvisit_reference-s$    z$ManualPageTranslator.visit_referencecCs"t|dd}||tj)NrK#)rTextrrr)rrEtextrrrvisit_number_referenceAs z+ManualPageTranslator.visit_number_referencecCs||jddS)Nz.sp .ce )rrzr{rgrrrvisit_centeredFrz#ManualPageTranslator.visit_centeredcCrw)Nz .ce 0 ryrgrrrdepart_centeredJr}z$ManualPageTranslator.depart_centeredcCrfrrrgrrrvisit_compact_paragraphMriz,ManualPageTranslator.visit_compact_paragraphcCrfrrrgrrrdepart_compact_paragraphPriz-ManualPageTranslator.depart_compact_paragraphcCrfrrrgrrrvisit_download_referenceSriz-ManualPageTranslator.visit_download_referencecCrfrrrgrrrdepart_download_referenceVriz.ManualPageTranslator.depart_download_referencecCrrrrgrrr visit_toctreeYrz"ManualPageTranslator.visit_toctreecCrrrrgrrr visit_index\rz ManualPageTranslator.visit_indexcCrrrrgrrrvisit_tabular_col_spec_rz+ManualPageTranslator.visit_tabular_col_speccCrfrrrgrrrvisit_glossarybriz#ManualPageTranslator.visit_glossarycCrfrrrgrrrdepart_glossaryeriz$ManualPageTranslator.depart_glossarycCszttj|d}tttj|}|ttj|d}tttj|}|jddd|Dd|jdtj )Nrrcss|]}|VqdSr)r&)r0nrrrr4nr5z2ManualPageTranslator.visit_acks...r) rr bullet_listr list_itemrrzr{joinr)rrEr list_itemsrrr visit_ackshs  zManualPageTranslator.visit_ackscCrkr)visit_bullet_listrgrrr visit_hlistrrnz ManualPageTranslator.visit_hlistcCrkr)depart_bullet_listrgrrr depart_hlisturnz!ManualPageTranslator.depart_hlistcCrfrrrgrrrvisit_hlistcolxriz#ManualPageTranslator.visit_hlistcolcCrfrrrgrrrdepart_hlistcol{riz$ManualPageTranslator.depart_hlistcolcC ||Sr)visit_emphasisrgrrrvisit_literal_emphasis~r.z+ManualPageTranslator.visit_literal_emphasiscCrr)depart_emphasisrgrrrdepart_literal_emphasisr.z,ManualPageTranslator.depart_literal_emphasiscCrr visit_strongrgrrrvisit_literal_strongr.z)ManualPageTranslator.visit_literal_strongcCrr depart_strongrgrrrdepart_literal_strongr.z*ManualPageTranslator.depart_literal_strongcCrfrrrgrrrvisit_abbreviationriz'ManualPageTranslator.visit_abbreviationcCrfrrrgrrrdepart_abbreviationriz(ManualPageTranslator.depart_abbreviationcCrrrrgrrr visit_manpager.z"ManualPageTranslator.visit_manpagecCrrrrgrrrdepart_manpager.z#ManualPageTranslator.depart_manpagec:t|jtjr|jdr|jddSt|dS)N literal_blockr) isinstancer>r containerrrzr{r visit_captionrgrrrrz"ManualPageTranslator.visit_captioncr)Nrr) rr>rrrrzr{rdepart_captionrgrrrrrz#ManualPageTranslator.depart_captioncsvt|jtjr|jddSt|jtjr5|jdkrtj |jdkr5|jd| | tj t |S)Nz.IP "rr6z.SH %s )rr>r rrzr{rrYrVrr`r&rZr visit_titlergrrrrs    z ManualPageTranslator.visit_titlecs*t|jtjr|jddSt|S)Nz" )rr>r rrzr{r depart_titlergrrrrs  z!ManualPageTranslator.depart_titlecCs*d|ddvr|j|tj)Nmanpageformatr7)rsplitrzr{r&rrrgrrr visit_rawszManualPageTranslator.visit_rawcCrrrrgrrr visit_metarzManualPageTranslator.visit_metacCrfrrrgrrr visit_inlineriz!ManualPageTranslator.visit_inlinecCrfrrrgrrr depart_inlineriz"ManualPageTranslator.depart_inlinecCrfrrrgrrr visit_mathrizManualPageTranslator.visit_mathcCrfrrrgrrr depart_mathriz ManualPageTranslator.depart_mathcCrkr)rrgrrrvisit_math_blockrnz%ManualPageTranslator.visit_math_blockcCrkr)rrgrrrdepart_math_blockrnz&ManualPageTranslator.depart_math_blockcCstd|jj)NzUnknown node: )NotImplementedErrorrr*rgrrr unknown_visitr}z"ManualPageTranslator.unknown_visit)ar*r+r,rHrIrstrr__annotations__rr r rrerrhrjrmrprsrurvr|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rr r-rrrrr#Js    r#N)%rHtypingrrrrdocutilsrdocutils.nodesrrr docutils.writers.manpager BaseTranslatorr sphinxr sphinx.buildersr sphinx.localerr sphinx.utilrsphinx.util.docutilsrsphinx.util.i18nrsphinx.util.nodesr getLoggerr*loggerrrr#rrrrs"