614614</ li >
615615
616616 < li class ="md-nav__item ">
617- < a href ="#prevent-selection-of-in-python-code-blocks " class ="md-nav__link ">
618- Prevent selection of >>> in Python code blocks
617+ < a href ="#prevent-selection-of-prompts-and-output- in-python-code-blocks " class ="md-nav__link ">
618+ Prevent selection of prompts and output in Python code blocks
619619 </ a >
620620
621621</ li >
983983</ li >
984984
985985 < li class ="md-nav__item ">
986- < a href ="#prevent-selection-of-in-python-code-blocks " class ="md-nav__link ">
987- Prevent selection of >>> in Python code blocks
986+ < a href ="#prevent-selection-of-prompts-and-output- in-python-code-blocks " class ="md-nav__link ">
987+ Prevent selection of prompts and output in Python code blocks
988988 </ a >
989989
990990</ li >
@@ -1266,12 +1266,14 @@ <h3 id="bind-pages-to-sections-themselves">Bind pages to sections themselves<a c
12661266< span class ="w "> </ span > < span class ="nt "> show_submodules</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> no</ span > < span class ="w "> </ span >
12671267</ code > </ pre > </ div >
12681268</ div >
1269- < h2 id ="prevent-selection-of-in-python-code-blocks "> Prevent selection of < code > >>> </ code > in Python code blocks< a class ="headerlink " href ="#prevent-selection-of-in-python-code-blocks " title ="Permanent link "> ¤</ a > </ h2 >
1270- < p > To prevent the selection of < code > >>></ code > in Python code blocks,
1271- you can use the < code > pycon</ code > syntax highlighting on your code block ,
1272- and add some CSS rules to your site using MkDocs < code > extra_css</ code > option:</ p >
1269+ < h2 id ="prevent-selection-of-prompts-and-output- in-python-code-blocks "> Prevent selection of prompts and output in Python code blocks< a class ="headerlink " href ="#prevent-selection-of-prompts-and-output -in-python-code-blocks " title ="Permanent link "> ¤</ a > </ h2 >
1270+ < p > To prevent the selection of < code > >>></ code > , < code > ... </ code > and output in Python "Console" code blocks,
1271+ you can use the < code > pycon</ code > syntax highlighting on your code blocks ,
1272+ and add global CSS rules to your site using MkDocs < code > extra_css</ code > option:</ p >
12731273< div class ="highlight "> < pre > < span > </ span > < code > < span class ="sb "> ```pycon</ span >
1274- < span class ="gp "> >>> </ span > < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="s2 "> "Hello mkdocstrings!"</ span > < span class ="p "> )</ span >
1274+ < span class ="gp "> >>> </ span > < span class ="k "> for</ span > < span class ="n "> word</ span > < span class ="ow "> in</ span > < span class ="p "> (</ span > < span class ="s2 "> "Hello"</ span > < span class ="p "> ,</ span > < span class ="s2 "> "mkdocstrings!"</ span > < span class ="p "> ):</ span >
1275+ < span class ="gp "> ... </ span > < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="n "> word</ span > < span class ="p "> ,</ span > < span class ="n "> end</ span > < span class ="o "> =</ span > < span class ="s2 "> " "</ span > < span class ="p "> )</ span >
1276+ < span class ="go "> Hello mkdocstrings!</ span >
12751277< span class ="sb "> ```</ span >
12761278</ code > </ pre > </ div >
12771279< div class ="highlight "> < span class ="filename "> docs/css/code_select.css</ span > < pre > < span > </ span > < code > < span class ="p "> .</ span > < span class ="nc "> highlight</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="nc "> gp</ span > < span class ="o "> ,</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="nc "> highlight</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="nc "> go</ span > < span class ="w "> </ span > < span class ="p "> {</ span > < span class ="w "> </ span > < span class ="c "> /* Generic.Prompt, Generic.Output */</ span > < span class ="w "> </ span >
@@ -1281,14 +1283,42 @@ <h2 id="prevent-selection-of-in-python-code-blocks">Prevent selection of <code>&
12811283< div class ="highlight "> < span class ="filename "> mkdocs.yml</ span > < pre > < span > </ span > < code > < span class ="nt "> extra_css</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
12821284< span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> css/code_select.css</ span > < span class ="w "> </ span >
12831285</ code > </ pre > </ div >
1286+ < div class ="admonition warning ">
1287+ < p class ="admonition-title "> Warning</ p >
1288+ < p > The < code > .highlight .gp, .highlight .go</ code > CSS selector can have unintended side-effects.
1289+ To target < code > pycon</ code > code blocks more specifically, you can configure the
1290+ < code > pymdownx.highlight</ code > extension to use Pygments and set language classes
1291+ on code blocks:</ p >
1292+ < div class ="highlight "> < span class ="filename "> mkdocs.yml</ span > < pre > < span > </ span > < code > < span class ="nt "> markdown_extensions</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1293+ < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> pymdownx.highlight</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1294+ < span class ="w "> </ span > < span class ="nt "> use_pygments</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> true</ span > < span class ="w "> </ span >
1295+ < span class ="w "> </ span > < span class ="nt "> pygments_lang_class</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> true</ span > < span class ="w "> </ span >
1296+ </ code > </ pre > </ div >
1297+ < p > Then you can update the CSS selector like this:</ p >
1298+ < div class ="highlight "> < span class ="filename "> docs/css/code_select.css</ span > < pre > < span > </ span > < code > < span class ="p "> .</ span > < span class ="nc "> language-pycon</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="nc "> gp</ span > < span class ="o "> ,</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="nc "> language-pycon</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="nc "> go</ span > < span class ="w "> </ span > < span class ="p "> {</ span > < span class ="w "> </ span > < span class ="c "> /* Generic.Prompt, Generic.Output */</ span > < span class ="w "> </ span >
1299+ < span class ="w "> </ span > < span class ="k "> user-select</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="kc "> none</ span > < span class ="p "> ;</ span > < span class ="w "> </ span >
1300+ < span class ="p "> }</ span > < span class ="w "> </ span >
1301+ </ code > </ pre > </ div >
1302+ </ div >
1303+ < p > If you don't want to enable this globally,
1304+ you can still use < code > style</ code > tags in the relevant pages,
1305+ with more accurate CSS selectors:</ p >
1306+ < div class ="highlight "> < pre > < span > </ span > < code > < span class ="p "> <</ span > < span class ="nt "> style</ span > < span class ="p "> ></ span > < span class ="w "> </ span >
1307+ < span class ="p "> #</ span > < span class ="nn "> my-div</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="nc "> highlight</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="nc "> gp</ span > < span class ="o "> ,</ span > < span class ="w "> </ span > < span class ="p "> #</ span > < span class ="nn "> my-div</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="nc "> highlight</ span > < span class ="w "> </ span > < span class ="p "> .</ span > < span class ="nc "> go</ span > < span class ="w "> </ span > < span class ="p "> {</ span > < span class ="w "> </ span > < span class ="c "> /* Generic.Prompt, Generic.Output */</ span > < span class ="w "> </ span >
1308+ < span class ="w "> </ span > < span class ="k "> user-select</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="kc "> none</ span > < span class ="p "> ;</ span > < span class ="w "> </ span >
1309+ < span class ="p "> }</ span > < span class ="w "> </ span >
1310+ < span class ="p "> </</ span > < span class ="nt "> style</ span > < span class ="p "> ></ span >
1311+ </ code > </ pre > </ div >
12841312< p > Try to select the following code block's text:</ p >
12851313< style >
12861314.highlight .gp , .highlight .go { /* Generic.Prompt, Generic.Output */
12871315 user-select : none;
12881316}
12891317</ style >
12901318
1291- < div class ="highlight "> < pre > < span > </ span > < code > < span class ="gp "> >>> </ span > < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="s2 "> "Hello mkdocstrings!"</ span > < span class ="p "> )</ span >
1319+ < div class ="highlight "> < pre > < span > </ span > < code > < span class ="gp "> >>> </ span > < span class ="k "> for</ span > < span class ="n "> word</ span > < span class ="ow "> in</ span > < span class ="p "> (</ span > < span class ="s2 "> "Hello"</ span > < span class ="p "> ,</ span > < span class ="s2 "> "mkdocstrings!"</ span > < span class ="p "> ):</ span >
1320+ < span class ="gp "> ... </ span > < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="n "> word</ span > < span class ="p "> ,</ span > < span class ="n "> end</ span > < span class ="o "> =</ span > < span class ="s2 "> " "</ span > < span class ="p "> )</ span >
1321+ < span class ="go "> Hello mkdocstrings!</ span >
12921322</ code > </ pre > </ div >
12931323
12941324
0 commit comments