599599 Generate a literate navigation file
600600 </ a >
601601
602+ </ li >
603+
604+ < li class ="md-nav__item ">
605+ < a href ="#bind-pages-to-sections-themselves " class ="md-nav__link ">
606+ Bind pages to sections themselves
607+ </ a >
608+
602609</ li >
603610
604611 </ ul >
961968 Generate a literate navigation file
962969 </ a >
963970
971+ </ li >
972+
973+ < li class ="md-nav__item ">
974+ < a href ="#bind-pages-to-sections-themselves " class ="md-nav__link ">
975+ Bind pages to sections themselves
976+ </ a >
977+
964978</ li >
965979
966980 </ ul >
@@ -1058,11 +1072,18 @@ <h3 id="generate-pages-on-the-fly">Generate pages on-the-fly<a class="headerlink
10581072 < span class ="n "> doc_path</ span > < span class ="o "> =</ span > < span class ="n "> path</ span > < span class ="o "> .</ span > < span class ="n "> relative_to</ span > < span class ="p "> (</ span > < span class ="s2 "> "src"</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> with_suffix</ span > < span class ="p "> (</ span > < span class ="s2 "> ".md"</ span > < span class ="p "> )</ span > < span class ="c1 "> # (3)</ span >
10591073 < span class ="n "> full_doc_path</ span > < span class ="o "> =</ span > < span class ="n "> Path</ span > < span class ="p "> (</ span > < span class ="s2 "> "reference"</ span > < span class ="p "> ,</ span > < span class ="n "> doc_path</ span > < span class ="p "> )</ span > < span class ="c1 "> # (4)</ span >
10601074
1061- < span class ="k "> with</ span > < span class ="n "> mkdocs_gen_files</ span > < span class ="o "> .</ span > < span class ="n "> open</ span > < span class ="p "> (</ span > < span class ="n "> full_doc_path</ span > < span class ="p "> ,</ span > < span class ="s2 "> "w"</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> fd</ span > < span class ="p "> :</ span > < span class ="c1 "> # (5)</ span >
1062- < span class ="n "> identifier</ span > < span class ="o "> =</ span > < span class ="s2 "> "."</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> module_path</ span > < span class ="o "> .</ span > < span class ="n "> parts</ span > < span class ="p "> )</ span > < span class ="c1 "> # (6)</ span >
1063- < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="s2 "> "::: "</ span > < span class ="o "> +</ span > < span class ="n "> identifier</ span > < span class ="p "> ,</ span > < span class ="n "> file</ span > < span class ="o "> =</ span > < span class ="n "> fd</ span > < span class ="p "> )</ span > < span class ="c1 "> # (7)</ span >
1075+ < span class ="n "> parts</ span > < span class ="o "> =</ span > < span class ="nb "> list</ span > < span class ="p "> (</ span > < span class ="n "> module_path</ span > < span class ="o "> .</ span > < span class ="n "> parts</ span > < span class ="p "> )</ span >
1076+
1077+ < span class ="k "> if</ span > < span class ="n "> parts</ span > < span class ="p "> [</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span > < span class ="o "> ==</ span > < span class ="s2 "> "__init__"</ span > < span class ="p "> :</ span > < span class ="c1 "> # (5)</ span >
1078+ < span class ="n "> parts</ span > < span class ="o "> =</ span > < span class ="n "> parts</ span > < span class ="p "> [:</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span >
1079+ < span class ="k "> elif</ span > < span class ="n "> parts</ span > < span class ="p "> [</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span > < span class ="o "> ==</ span > < span class ="s2 "> "__main__"</ span > < span class ="p "> :</ span >
1080+ < span class ="k "> continue</ span >
1081+
1082+ < span class ="k "> with</ span > < span class ="n "> mkdocs_gen_files</ span > < span class ="o "> .</ span > < span class ="n "> open</ span > < span class ="p "> (</ span > < span class ="n "> full_doc_path</ span > < span class ="p "> ,</ span > < span class ="s2 "> "w"</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> fd</ span > < span class ="p "> :</ span > < span class ="c1 "> # (6)</ span >
1083+ < span class ="n "> identifier</ span > < span class ="o "> =</ span > < span class ="s2 "> "."</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> parts</ span > < span class ="p "> )</ span > < span class ="c1 "> # (7)</ span >
1084+ < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="s2 "> "::: "</ span > < span class ="o "> +</ span > < span class ="n "> identifier</ span > < span class ="p "> ,</ span > < span class ="n "> file</ span > < span class ="o "> =</ span > < span class ="n "> fd</ span > < span class ="p "> )</ span > < span class ="c1 "> # (8)</ span >
10641085
1065- < span class ="n "> mkdocs_gen_files</ span > < span class ="o "> .</ span > < span class ="n "> set_edit_path</ span > < span class ="p "> (</ span > < span class ="n "> full_doc_path</ span > < span class ="p "> ,</ span > < span class ="n "> path</ span > < span class ="p "> )</ span > < span class ="c1 "> # (8 )</ span >
1086+ < span class ="n "> mkdocs_gen_files</ span > < span class ="o "> .</ span > < span class ="n "> set_edit_path</ span > < span class ="p "> (</ span > < span class ="n "> full_doc_path</ span > < span class ="p "> ,</ span > < span class ="n "> path</ span > < span class ="p "> )</ span > < span class ="c1 "> # (9 )</ span >
10661087</ code > </ pre > </ div >
10671088< ol >
10681089< li > Here we recursively list all < code > .py</ code > files, but you can adapt the code to list
@@ -1072,6 +1093,8 @@ <h3 id="generate-pages-on-the-fly">Generate pages on-the-fly<a class="headerlink
10721093< li > This is the relative path to the Markdown page.</ li >
10731094< li > This is the absolute path to the Markdown page. Here we put all reference pages
10741095 into a < code > reference</ code > folder.</ li >
1096+ < li > This part is only relevant for Python modules. We skip < code > __main__</ code > modules and
1097+ remove < code > __init__</ code > from the module parts as it's implicit during imports.</ li >
10751098< li > Magic! Add the file to MkDocs pages, without actually writing it in the docs folder.</ li >
10761099< li > Build the autodoc identifier. Here we document Python modules, so the identifier
10771100 is a dot-separated path, like < code > project.lorem</ code > .</ li >
@@ -1101,7 +1124,7 @@ <h3 id="generate-pages-on-the-fly">Generate pages on-the-fly<a class="headerlink
11011124< h3 id ="generate-a-literate-navigation-file "> Generate a literate navigation file< a class ="headerlink " href ="#generate-a-literate-navigation-file " title ="Permanent link "> ¤</ a > </ h3 >
11021125< p > mkdocs-gen-files is able to generate a literate navigation file.
11031126But to make use of it, we will need an additional plugin:
1104- < a href ="https://pypi.org/project /mkdocs-literate-nav/ "> mkdocs-literate-nav</ a > .
1127+ < a href ="https://github.com/oprypin /mkdocs-literate-nav "> mkdocs-literate-nav</ a > .
11051128This plugin allows to specify the whole navigation, or parts of it,
11061129into Markdown pages, as plain Markdown lists.
11071130We use it here to specify the navigation for the code reference pages.</ p >
@@ -1132,10 +1155,17 @@ <h3 id="generate-a-literate-navigation-file">Generate a literate navigation file
11321155 < span class ="n "> doc_path</ span > < span class ="o "> =</ span > < span class ="n "> path</ span > < span class ="o "> .</ span > < span class ="n "> relative_to</ span > < span class ="p "> (</ span > < span class ="s2 "> "src"</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> with_suffix</ span > < span class ="p "> (</ span > < span class ="s2 "> ".md"</ span > < span class ="p "> )</ span >
11331156 < span class ="n "> full_doc_path</ span > < span class ="o "> =</ span > < span class ="n "> Path</ span > < span class ="p "> (</ span > < span class ="s2 "> "reference"</ span > < span class ="p "> ,</ span > < span class ="n "> doc_path</ span > < span class ="p "> )</ span >
11341157
1135- < span class ="hll "> < span class ="n "> nav</ span > < span class ="p "> [</ span > < span class ="n "> module_path</ span > < span class ="o "> .</ span > < span class ="n "> parts</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="n "> doc_path</ span > < span class ="c1 "> # (1)</ span >
1158+ < span class ="n "> parts</ span > < span class ="o "> =</ span > < span class ="nb "> list</ span > < span class ="p "> (</ span > < span class ="n "> module_path</ span > < span class ="o "> .</ span > < span class ="n "> parts</ span > < span class ="p "> )</ span >
1159+
1160+ < span class ="k "> if</ span > < span class ="n "> parts</ span > < span class ="p "> [</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span > < span class ="o "> ==</ span > < span class ="s2 "> "__init__"</ span > < span class ="p "> :</ span >
1161+ < span class ="n "> parts</ span > < span class ="o "> =</ span > < span class ="n "> parts</ span > < span class ="p "> [:</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span >
1162+ < span class ="k "> elif</ span > < span class ="n "> parts</ span > < span class ="p "> [</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span > < span class ="o "> ==</ span > < span class ="s2 "> "__main__"</ span > < span class ="p "> :</ span >
1163+ < span class ="k "> continue</ span >
1164+
1165+ < span class ="hll "> < span class ="n "> nav</ span > < span class ="p "> [</ span > < span class ="n "> parts</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="n "> doc_path</ span > < span class ="c1 "> # (1)</ span >
11361166</ span >
11371167 < span class ="k "> with</ span > < span class ="n "> mkdocs_gen_files</ span > < span class ="o "> .</ span > < span class ="n "> open</ span > < span class ="p "> (</ span > < span class ="n "> full_doc_path</ span > < span class ="p "> ,</ span > < span class ="s2 "> "w"</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> fd</ span > < span class ="p "> :</ span >
1138- < span class ="n "> ident</ span > < span class ="o "> =</ span > < span class ="s2 "> "."</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> module_path </ span > < span class =" o " > . </ span > < span class =" n " > parts</ span > < span class ="p "> )</ span >
1168+ < span class ="n "> ident</ span > < span class ="o "> =</ span > < span class ="s2 "> "."</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> parts</ span > < span class ="p "> )</ span >
11391169 < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="s2 "> "::: "</ span > < span class ="o "> +</ span > < span class ="n "> ident</ span > < span class ="p "> ,</ span > < span class ="n "> file</ span > < span class ="o "> =</ span > < span class ="n "> fd</ span > < span class ="p "> )</ span >
11401170
11411171 < span class ="n "> mkdocs_gen_files</ span > < span class ="o "> .</ span > < span class ="n "> set_edit_path</ span > < span class ="p "> (</ span > < span class ="n "> full_doc_path</ span > < span class ="p "> ,</ span > < span class ="n "> path</ span > < span class ="p "> )</ span >
@@ -1160,6 +1190,81 @@ <h3 id="generate-a-literate-navigation-file">Generate a literate navigation file
11601190< li > Note the trailing slash! It is needed so that < code > mkdocs-literate-nav</ code > knows
11611191 it has to look for a < code > SUMMARY.md</ code > file in that folder.</ li >
11621192</ ol >
1193+ < p > At this point, we should be able to see the tree of our modules
1194+ in the navigation.</ p >
1195+ < h3 id ="bind-pages-to-sections-themselves "> Bind pages to sections themselves< a class ="headerlink " href ="#bind-pages-to-sections-themselves " title ="Permanent link "> ¤</ a > </ h3 >
1196+ < p > There's a last improvement we can do.
1197+ With the current script, sections, corresponding to folders,
1198+ will expand or collapse when you click on them,
1199+ revealing < code > __init__</ code > modules under them
1200+ (or equivalent modules in other languages, if relevant).
1201+ Since we are documenting a public API, and given users
1202+ never explicitely import < code > __init__</ code > modules, it would be nice
1203+ if we could get rid of them and instead render their documentation
1204+ inside the section itself.</ p >
1205+ < p > Well, this is possible thanks to a third plugin:
1206+ < a href ="https://github.com/oprypin/mkdocs-section-index "> mkdocs-section-index</ a > .</ p >
1207+ < p > Update the script like this:</ p >
1208+ < div class ="highlight "> < span class ="filename "> docs/gen_ref_pages.py</ span > < pre > < span > </ span > < code > < span class ="sd "> """Generate the code reference pages and navigation."""</ span >
1209+
1210+ < span class ="kn "> from</ span > < span class ="nn "> pathlib</ span > < span class ="kn "> import</ span > < span class ="n "> Path</ span >
1211+
1212+ < span class ="kn "> import</ span > < span class ="nn "> mkdocs_gen_files</ span >
1213+
1214+ < span class ="n "> nav</ span > < span class ="o "> =</ span > < span class ="n "> mkdocs_gen_files</ span > < span class ="o "> .</ span > < span class ="n "> Nav</ span > < span class ="p "> ()</ span >
1215+
1216+ < span class ="k "> for</ span > < span class ="n "> path</ span > < span class ="ow "> in</ span > < span class ="nb "> sorted</ span > < span class ="p "> (</ span > < span class ="n "> Path</ span > < span class ="p "> (</ span > < span class ="s2 "> "src"</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> rglob</ span > < span class ="p "> (</ span > < span class ="s2 "> "*.py"</ span > < span class ="p "> )):</ span >
1217+ < span class ="n "> module_path</ span > < span class ="o "> =</ span > < span class ="n "> path</ span > < span class ="o "> .</ span > < span class ="n "> relative_to</ span > < span class ="p "> (</ span > < span class ="s2 "> "src"</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> with_suffix</ span > < span class ="p "> (</ span > < span class ="s2 "> ""</ span > < span class ="p "> )</ span >
1218+ < span class ="n "> doc_path</ span > < span class ="o "> =</ span > < span class ="n "> path</ span > < span class ="o "> .</ span > < span class ="n "> relative_to</ span > < span class ="p "> (</ span > < span class ="s2 "> "src"</ span > < span class ="p "> )</ span > < span class ="o "> .</ span > < span class ="n "> with_suffix</ span > < span class ="p "> (</ span > < span class ="s2 "> ".md"</ span > < span class ="p "> )</ span >
1219+ < span class ="n "> full_doc_path</ span > < span class ="o "> =</ span > < span class ="n "> Path</ span > < span class ="p "> (</ span > < span class ="s2 "> "reference"</ span > < span class ="p "> ,</ span > < span class ="n "> doc_path</ span > < span class ="p "> )</ span >
1220+
1221+ < span class ="n "> parts</ span > < span class ="o "> =</ span > < span class ="nb "> list</ span > < span class ="p "> (</ span > < span class ="n "> module_path</ span > < span class ="o "> .</ span > < span class ="n "> parts</ span > < span class ="p "> )</ span >
1222+
1223+ < span class ="k "> if</ span > < span class ="n "> parts</ span > < span class ="p "> [</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span > < span class ="o "> ==</ span > < span class ="s2 "> "__init__"</ span > < span class ="p "> :</ span >
1224+ < span class ="n "> parts</ span > < span class ="o "> =</ span > < span class ="n "> parts</ span > < span class ="p "> [:</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span >
1225+ < span class ="hll "> < span class ="n "> doc_path</ span > < span class ="o "> =</ span > < span class ="n "> doc_path</ span > < span class ="o "> .</ span > < span class ="n "> with_name</ span > < span class ="p "> (</ span > < span class ="s2 "> "index.md"</ span > < span class ="p "> )</ span >
1226+ </ span > < span class ="hll "> < span class ="n "> full_doc_path</ span > < span class ="o "> =</ span > < span class ="n "> full_doc_path</ span > < span class ="o "> .</ span > < span class ="n "> with_name</ span > < span class ="p "> (</ span > < span class ="s2 "> "index.md"</ span > < span class ="p "> )</ span >
1227+ </ span > < span class ="k "> elif</ span > < span class ="n "> parts</ span > < span class ="p "> [</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ]</ span > < span class ="o "> ==</ span > < span class ="s2 "> "__main__"</ span > < span class ="p "> :</ span >
1228+ < span class ="k "> continue</ span >
1229+
1230+ < span class ="n "> nav</ span > < span class ="p "> [</ span > < span class ="n "> parts</ span > < span class ="p "> ]</ span > < span class ="o "> =</ span > < span class ="n "> doc_path</ span >
1231+
1232+ < span class ="k "> with</ span > < span class ="n "> mkdocs_gen_files</ span > < span class ="o "> .</ span > < span class ="n "> open</ span > < span class ="p "> (</ span > < span class ="n "> full_doc_path</ span > < span class ="p "> ,</ span > < span class ="s2 "> "w"</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> fd</ span > < span class ="p "> :</ span >
1233+ < span class ="n "> ident</ span > < span class ="o "> =</ span > < span class ="s2 "> "."</ span > < span class ="o "> .</ span > < span class ="n "> join</ span > < span class ="p "> (</ span > < span class ="n "> parts</ span > < span class ="p "> )</ span >
1234+ < span class ="nb "> print</ span > < span class ="p "> (</ span > < span class ="s2 "> "::: "</ span > < span class ="o "> +</ span > < span class ="n "> ident</ span > < span class ="p "> ,</ span > < span class ="n "> file</ span > < span class ="o "> =</ span > < span class ="n "> fd</ span > < span class ="p "> )</ span >
1235+
1236+ < span class ="n "> mkdocs_gen_files</ span > < span class ="o "> .</ span > < span class ="n "> set_edit_path</ span > < span class ="p "> (</ span > < span class ="n "> full_doc_path</ span > < span class ="p "> ,</ span > < span class ="n "> path</ span > < span class ="p "> )</ span >
1237+
1238+ < span class ="k "> with</ span > < span class ="n "> mkdocs_gen_files</ span > < span class ="o "> .</ span > < span class ="n "> open</ span > < span class ="p "> (</ span > < span class ="s2 "> "reference/SUMMARY.md"</ span > < span class ="p "> ,</ span > < span class ="s2 "> "w"</ span > < span class ="p "> )</ span > < span class ="k "> as</ span > < span class ="n "> nav_file</ span > < span class ="p "> :</ span > < span class ="c1 "> # (2)</ span >
1239+ < span class ="n "> nav_file</ span > < span class ="o "> .</ span > < span class ="n "> writelines</ span > < span class ="p "> (</ span > < span class ="n "> nav</ span > < span class ="o "> .</ span > < span class ="n "> build_literate_nav</ span > < span class ="p "> ())</ span > < span class ="c1 "> # (3)</ span >
1240+ </ code > </ pre > </ div >
1241+ < p > And update your MkDocs configuration to list the plugin:</ p >
1242+ < div class ="highlight "> < span class ="filename "> mkdocs.yml</ span > < pre > < span > </ span > < code > < span class ="nt "> plugins</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1243+ < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> search</ span > < span class ="w "> </ span >
1244+ < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> gen-files</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1245+ < span class ="w "> </ span > < span class ="nt "> scripts</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1246+ < span class ="w "> </ span > < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> docs/gen_ref_pages.py</ span > < span class ="w "> </ span >
1247+ < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> literate-nav</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1248+ < span class ="w "> </ span > < span class ="nt "> nav_file</ span > < span class ="p "> :</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> SUMMARY.md</ span > < span class ="w "> </ span >
1249+ < span class ="hll "> < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> section-index</ span > < span class ="w "> </ span >
1250+ </ span > < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> mkdocstrings</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1251+ < span class ="w "> </ span > < span class ="nt "> watch</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1252+ < span class ="w "> </ span > < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="l l-Scalar l-Scalar-Plain "> src/project</ span > < span class ="w "> </ span >
1253+ </ code > </ pre > </ div >
1254+ < p > With this, < code > __init__</ code > modules will be documented and bound to the sections
1255+ themselves, better reflecting our public API.</ p >
1256+ < div class ="admonition important ">
1257+ < p class ="admonition-title "> Important</ p >
1258+ < p > With the new Python handler, don't forget to hide submodules
1259+ when documenting a module, otherwise they will show up in sections:</ p >
1260+ < div class ="highlight "> < span class ="filename "> mkdocs.yml</ span > < pre > < span > </ span > < code > < span class ="nt "> plugins</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1261+ < span class ="p p-Indicator "> -</ span > < span class ="w "> </ span > < span class ="nt "> mkdocstrings</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1262+ < span class ="w "> </ span > < span class ="nt "> handlers</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1263+ < span class ="w "> </ span > < span class ="nt "> python</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1264+ < span class ="w "> </ span > < span class ="nt "> rendering</ span > < span class ="p "> :</ span > < span class ="w "> </ span >
1265+ < 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 >
1266+ </ code > </ pre > </ div >
1267+ </ div >
11631268< 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 >
11641269< p > To prevent the selection of < code > >>></ code > in Python code blocks,
11651270you can use the < code > pycon</ code > syntax highlighting on your code block,
0 commit comments