ó Å-õSc@spdZddlmZddlmZmZddlmZd„Zigd„Z igd„Z d„Z d S( s«Add github roles to sphinx docs. Based entirely on Doug Hellmann's bitbucket version, but adapted for Github. (https://bitbucket.org/dhellmann/sphinxcontrib-bitbucket/) iÿÿÿÿ(turljoin(tnodestutils(t set_classesc Cs•|jj}|dkr'tdƒ‚nd||f}t||ƒ}t|ƒ|dkred}ntj||dtj |ƒd||}|S(Ns8Configuration value for 'github_project_url' is not set.s%s/%stissuestissuet trefuri( tconfigtgithub_project_urltNonet ValueErrorRRRt referenceRtunescape( trawtexttappttype_tslugtoptionstbase_urltrelativetfull_reftnode((sT/Users/kyleknap/Documents/GitHub/boto/docs/source/extensions/githublinks/__init__.pyt make_nodes        c Cs7|jjjj}t||d||ƒ}|ggfS(Ntcommit(tdocumenttsettingstenvRR( tnameRttexttlinenotinlinerRtcontentRR((sT/Users/kyleknap/Documents/GitHub/boto/docs/source/extensions/githublinks/__init__.pyt github_shasc CsŸyt|ƒ}WnOtk ra|jjd|d|ƒ}|j|||ƒ} | g|gfSX|jjjj} t || dt |ƒ|ƒ} | ggfS(Ns-Invalid Github Issue '%s', must be an integertlineR( tintR treporterterrort problematicRRRRRtstr( RRRRRRR RtmsgtproblemRR((sT/Users/kyleknap/Documents/GitHub/boto/docs/source/extensions/githublinks/__init__.pyt github_issue$s    cCsD|jdƒ|jdtƒ|jdtƒ|jdddƒdS(NsAdding github link rolestshaRR R(tinfotadd_roleR!R*tadd_config_valueR (R((sT/Users/kyleknap/Documents/GitHub/boto/docs/source/extensions/githublinks/__init__.pytsetup3s N( t__doc__turlparseRtdocutilsRRtdocutils.parsers.rst.rolesRRR!R*R/(((sT/Users/kyleknap/Documents/GitHub/boto/docs/source/extensions/githublinks/__init__.pyts