mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	[3.13] gh-129873: IDLE: Improve help.py's method of parsing HTML (GH-129859) (#129884)
gh-129873: IDLE: Improve help.py's method of parsing HTML (GH-129859)
In `help.copy_strip`, only copy the text `<section>`.  In `help.HelpParser.handle_starttag` and elsewhere, remove code to skip the no longer present html.  Add a reminder at the top of idle.rst to run copy_strip after changes.
---------
(cherry picked from commit 6fbf15f98e)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
			
			
This commit is contained in:
		
							parent
							
								
									c28eed3c27
								
							
						
					
					
						commit
						f7d885a8ff
					
				
					 5 changed files with 30 additions and 416 deletions
				
			
		|  | @ -12,6 +12,9 @@ IDLE --- Python editor and shell | |||
|    single: Python Editor | ||||
|    single: Integrated Development Environment | ||||
| 
 | ||||
| .. | ||||
|    Remember to update Lib/idlelib/help.html with idlelib.help.copy_source() when modifying this file. | ||||
| 
 | ||||
| -------------- | ||||
| 
 | ||||
| IDLE is Python's Integrated Development and Learning Environment. | ||||
|  |  | |||
|  | @ -19,6 +19,9 @@ Released on 2024-10-07 | |||
| 
 | ||||
| gh-120104: Fix padding in config and search dialog windows in IDLE. | ||||
| 
 | ||||
| gh-129873: Simplify displaying the IDLE doc by only copying the text | ||||
| section of idle.html to idlelib/help.html. Patch by Stan Ulbrych. | ||||
| 
 | ||||
| gh-120083: Add explicit black IDLE Hovertip foreground color needed for | ||||
| recent macOS. Fixes Sonoma showing unreadable white on pale yellow. | ||||
| Patch by John Riggles. | ||||
|  |  | |||
|  | @ -1,231 +1,7 @@ | |||
| <!DOCTYPE html> | ||||
| 
 | ||||
| <html lang="en" data-content_root="../"> | ||||
|   <head> | ||||
|     <meta charset="utf-8" /> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" /> | ||||
| 
 | ||||
|     <title>IDLE — Python editor and shell — Python 3.14.0a4 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
| 
 | ||||
|     <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" /> | ||||
|     <link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=aa5eeaf2" /> | ||||
|     <link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=5349f25f" /> | ||||
| 
 | ||||
|     <script src="../_static/documentation_options.js?v=058caec0"></script> | ||||
|     <script src="../_static/doctools.js?v=9bcbadda"></script> | ||||
|     <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> | ||||
| 
 | ||||
|     <script src="../_static/sidebar.js"></script> | ||||
| 
 | ||||
|     <link rel="search" type="application/opensearchdescription+xml" | ||||
|           title="Search within Python 3.14.0a4 documentation" | ||||
|           href="../_static/opensearch.xml"/> | ||||
|     <link rel="author" title="About these documents" href="../about.html" /> | ||||
|     <link rel="index" title="Index" href="../genindex.html" /> | ||||
|     <link rel="search" title="Search" href="../search.html" /> | ||||
|     <link rel="copyright" title="Copyright" href="../copyright.html" /> | ||||
|     <link rel="next" title="Development Tools" href="development.html" /> | ||||
|     <link rel="prev" title="tkinter.ttk — Tk themed widgets" href="tkinter.ttk.html" /> | ||||
| 
 | ||||
|     <link rel="canonical" href="https://docs.python.org/3/library/idle.html" /> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     <style> | ||||
|       @media only screen { | ||||
|         table.full-width-table { | ||||
|             width: 100%; | ||||
|         } | ||||
|       } | ||||
|     </style> | ||||
| <link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css"> | ||||
|     <link rel="shortcut icon" type="image/png" href="../_static/py.svg" /> | ||||
|             <script type="text/javascript" src="../_static/copybutton.js"></script> | ||||
|             <script type="text/javascript" src="../_static/menu.js"></script> | ||||
|             <script type="text/javascript" src="../_static/search-focus.js"></script> | ||||
|             <script type="text/javascript" src="../_static/themetoggle.js"></script> | ||||
|             <script type="text/javascript" src="../_static/rtd_switcher.js"></script> | ||||
|             <meta name="readthedocs-addons-api-version" content="1"> | ||||
| 
 | ||||
|   </head> | ||||
| <body> | ||||
| <div class="mobile-nav"> | ||||
|     <input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation" | ||||
|            aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" /> | ||||
|     <nav class="nav-content" role="navigation"> | ||||
|         <label for="menuToggler" class="toggler__label"> | ||||
|             <span></span> | ||||
|         </label> | ||||
|         <span class="nav-items-wrapper"> | ||||
|             <a href="https://www.python.org/" class="nav-logo"> | ||||
|                 <img src="../_static/py.svg" alt="Logo"/> | ||||
|             </a> | ||||
|             <span class="version_switcher_placeholder"></span> | ||||
|             <form role="search" class="search" action="../search.html" method="get"> | ||||
|                 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon"> | ||||
|                     <path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path> | ||||
|                 </svg> | ||||
|                 <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" /> | ||||
|                 <input type="submit" value="Go"/> | ||||
|             </form> | ||||
|         </span> | ||||
|     </nav> | ||||
|     <div class="menu-wrapper"> | ||||
|         <nav class="menu" role="navigation" aria-label="main navigation"> | ||||
|             <div class="language_switcher_placeholder"></div> | ||||
| 
 | ||||
| <label class="theme-selector-label"> | ||||
|     Theme | ||||
|     <select class="theme-selector" oninput="activateTheme(this.value)"> | ||||
|         <option value="auto" selected>Auto</option> | ||||
|         <option value="light">Light</option> | ||||
|         <option value="dark">Dark</option> | ||||
|     </select> | ||||
| </label> | ||||
|   <div> | ||||
|     <h3><a href="../contents.html">Table of Contents</a></h3> | ||||
|     <ul> | ||||
| <li><a class="reference internal" href="#">IDLE — Python editor and shell</a><ul> | ||||
| <li><a class="reference internal" href="#menus">Menus</a><ul> | ||||
| <li><a class="reference internal" href="#file-menu-shell-and-editor">File menu (Shell and Editor)</a></li> | ||||
| <li><a class="reference internal" href="#edit-menu-shell-and-editor">Edit menu (Shell and Editor)</a></li> | ||||
| <li><a class="reference internal" href="#format-menu-editor-window-only">Format menu (Editor window only)</a></li> | ||||
| <li><a class="reference internal" href="#run-menu-editor-window-only">Run menu (Editor window only)</a></li> | ||||
| <li><a class="reference internal" href="#shell-menu-shell-window-only">Shell menu (Shell window only)</a></li> | ||||
| <li><a class="reference internal" href="#debug-menu-shell-window-only">Debug menu (Shell window only)</a></li> | ||||
| <li><a class="reference internal" href="#options-menu-shell-and-editor">Options menu (Shell and Editor)</a></li> | ||||
| <li><a class="reference internal" href="#window-menu-shell-and-editor">Window menu (Shell and Editor)</a></li> | ||||
| <li><a class="reference internal" href="#help-menu-shell-and-editor">Help menu (Shell and Editor)</a></li> | ||||
| <li><a class="reference internal" href="#context-menus">Context menus</a></li> | ||||
| </ul> | ||||
| </li> | ||||
| <li><a class="reference internal" href="#editing-and-navigation">Editing and Navigation</a><ul> | ||||
| <li><a class="reference internal" href="#editor-windows">Editor windows</a></li> | ||||
| <li><a class="reference internal" href="#key-bindings">Key bindings</a></li> | ||||
| <li><a class="reference internal" href="#automatic-indentation">Automatic indentation</a></li> | ||||
| <li><a class="reference internal" href="#search-and-replace">Search and Replace</a></li> | ||||
| <li><a class="reference internal" href="#completions">Completions</a></li> | ||||
| <li><a class="reference internal" href="#calltips">Calltips</a></li> | ||||
| <li><a class="reference internal" href="#code-context">Code Context</a></li> | ||||
| <li><a class="reference internal" href="#shell-window">Shell window</a></li> | ||||
| <li><a class="reference internal" href="#text-colors">Text colors</a></li> | ||||
| </ul> | ||||
| </li> | ||||
| <li><a class="reference internal" href="#startup-and-code-execution">Startup and Code Execution</a><ul> | ||||
| <li><a class="reference internal" href="#command-line-usage">Command line usage</a></li> | ||||
| <li><a class="reference internal" href="#startup-failure">Startup failure</a></li> | ||||
| <li><a class="reference internal" href="#running-user-code">Running user code</a></li> | ||||
| <li><a class="reference internal" href="#user-output-in-shell">User output in Shell</a></li> | ||||
| <li><a class="reference internal" href="#developing-tkinter-applications">Developing tkinter applications</a></li> | ||||
| <li><a class="reference internal" href="#running-without-a-subprocess">Running without a subprocess</a></li> | ||||
| </ul> | ||||
| </li> | ||||
| <li><a class="reference internal" href="#help-and-preferences">Help and Preferences</a><ul> | ||||
| <li><a class="reference internal" href="#help-sources">Help sources</a></li> | ||||
| <li><a class="reference internal" href="#setting-preferences">Setting preferences</a></li> | ||||
| <li><a class="reference internal" href="#idle-on-macos">IDLE on macOS</a></li> | ||||
| <li><a class="reference internal" href="#extensions">Extensions</a></li> | ||||
| </ul> | ||||
| </li> | ||||
| <li><a class="reference internal" href="#module-idlelib">idlelib — implementation of IDLE application</a></li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| 
 | ||||
|   </div> | ||||
|   <div> | ||||
|     <h4>Previous topic</h4> | ||||
|     <p class="topless"><a href="tkinter.ttk.html" | ||||
|                           title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.ttk</span></code> — Tk themed widgets</a></p> | ||||
|   </div> | ||||
|   <div> | ||||
|     <h4>Next topic</h4> | ||||
|     <p class="topless"><a href="development.html" | ||||
|                           title="next chapter">Development Tools</a></p> | ||||
|   </div> | ||||
|   <div role="note" aria-label="source link"> | ||||
|     <h3>This Page</h3> | ||||
|     <ul class="this-page-menu"> | ||||
|       <li><a href="../bugs.html">Report a Bug</a></li> | ||||
|       <li> | ||||
|         <a href="https://github.com/python/cpython/blob/main/Doc/library/idle.rst" | ||||
|             rel="nofollow">Show Source | ||||
|         </a> | ||||
|       </li> | ||||
|     </ul> | ||||
|   </div> | ||||
|         </nav> | ||||
|     </div> | ||||
| </div> | ||||
| 
 | ||||
| 
 | ||||
|     <div class="related" role="navigation" aria-label="Related"> | ||||
|       <h3>Navigation</h3> | ||||
|       <ul> | ||||
|         <li class="right" style="margin-right: 10px"> | ||||
|           <a href="../genindex.html" title="General Index" | ||||
|              accesskey="I">index</a></li> | ||||
|         <li class="right" > | ||||
|           <a href="../py-modindex.html" title="Python Module Index" | ||||
|              >modules</a> |</li> | ||||
|         <li class="right" > | ||||
|           <a href="development.html" title="Development Tools" | ||||
|              accesskey="N">next</a> |</li> | ||||
|         <li class="right" > | ||||
|           <a href="tkinter.ttk.html" title="tkinter.ttk — Tk themed widgets" | ||||
|              accesskey="P">previous</a> |</li> | ||||
| 
 | ||||
|           <li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li> | ||||
|           <li><a href="https://www.python.org/">Python</a> »</li> | ||||
|           <li class="switchers"> | ||||
|             <div class="language_switcher_placeholder"></div> | ||||
|             <div class="version_switcher_placeholder"></div> | ||||
|           </li> | ||||
|           <li> | ||||
| 
 | ||||
|           </li> | ||||
|     <li id="cpython-language-and-version"> | ||||
|       <a href="../index.html">3.14.0a4 Documentation</a> » | ||||
|     </li> | ||||
| 
 | ||||
|           <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li> | ||||
|           <li class="nav-item nav-item-2"><a href="tk.html" accesskey="U">Graphical User Interfaces with Tk</a> »</li> | ||||
|         <li class="nav-item nav-item-this"><a href="">IDLE — Python editor and shell</a></li> | ||||
|                 <li class="right"> | ||||
| 
 | ||||
| 
 | ||||
|     <div class="inline-search" role="search"> | ||||
|         <form class="inline-search" action="../search.html" method="get"> | ||||
|           <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" /> | ||||
|           <input type="submit" value="Go" /> | ||||
|         </form> | ||||
|     </div> | ||||
|                      | | ||||
|                 </li> | ||||
|             <li class="right"> | ||||
| <label class="theme-selector-label"> | ||||
|     Theme | ||||
|     <select class="theme-selector" oninput="activateTheme(this.value)"> | ||||
|         <option value="auto" selected>Auto</option> | ||||
|         <option value="light">Light</option> | ||||
|         <option value="dark">Dark</option> | ||||
|     </select> | ||||
| </label> |</li> | ||||
| 
 | ||||
|       </ul> | ||||
|     </div> | ||||
| 
 | ||||
|     <div class="document"> | ||||
|       <div class="documentwrapper"> | ||||
|         <div class="bodywrapper"> | ||||
|           <div class="body" role="main"> | ||||
| 
 | ||||
| <section id="idle"> | ||||
| <span id="idle-python-editor-and-shell"></span><h1>IDLE — Python editor and shell<a class="headerlink" href="#idle" title="Link to this heading">¶</a></h1> | ||||
| <p><strong>Source code:</strong> <a class="extlink-source reference external" href="https://github.com/python/cpython/tree/main/Lib/idlelib/">Lib/idlelib/</a></p> | ||||
| <hr class="docutils" id="index-0" /> | ||||
| <span class="target" id="index-0"></span><hr class="docutils" /> | ||||
| <p>IDLE is Python’s Integrated Development and Learning Environment.</p> | ||||
| <p>IDLE has the following features:</p> | ||||
| <ul class="simple"> | ||||
|  | @ -1027,168 +803,3 @@ <h3>Extensions<a class="headerlink" href="#extensions" title="Link to this headi | |||
| </section> | ||||
| 
 | ||||
| 
 | ||||
|             <div class="clearer"></div> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div class="sphinxsidebar" role="navigation" aria-label="Main"> | ||||
|         <div class="sphinxsidebarwrapper"> | ||||
|   <div> | ||||
|     <h3><a href="../contents.html">Table of Contents</a></h3> | ||||
|     <ul> | ||||
| <li><a class="reference internal" href="#">IDLE — Python editor and shell</a><ul> | ||||
| <li><a class="reference internal" href="#menus">Menus</a><ul> | ||||
| <li><a class="reference internal" href="#file-menu-shell-and-editor">File menu (Shell and Editor)</a></li> | ||||
| <li><a class="reference internal" href="#edit-menu-shell-and-editor">Edit menu (Shell and Editor)</a></li> | ||||
| <li><a class="reference internal" href="#format-menu-editor-window-only">Format menu (Editor window only)</a></li> | ||||
| <li><a class="reference internal" href="#run-menu-editor-window-only">Run menu (Editor window only)</a></li> | ||||
| <li><a class="reference internal" href="#shell-menu-shell-window-only">Shell menu (Shell window only)</a></li> | ||||
| <li><a class="reference internal" href="#debug-menu-shell-window-only">Debug menu (Shell window only)</a></li> | ||||
| <li><a class="reference internal" href="#options-menu-shell-and-editor">Options menu (Shell and Editor)</a></li> | ||||
| <li><a class="reference internal" href="#window-menu-shell-and-editor">Window menu (Shell and Editor)</a></li> | ||||
| <li><a class="reference internal" href="#help-menu-shell-and-editor">Help menu (Shell and Editor)</a></li> | ||||
| <li><a class="reference internal" href="#context-menus">Context menus</a></li> | ||||
| </ul> | ||||
| </li> | ||||
| <li><a class="reference internal" href="#editing-and-navigation">Editing and Navigation</a><ul> | ||||
| <li><a class="reference internal" href="#editor-windows">Editor windows</a></li> | ||||
| <li><a class="reference internal" href="#key-bindings">Key bindings</a></li> | ||||
| <li><a class="reference internal" href="#automatic-indentation">Automatic indentation</a></li> | ||||
| <li><a class="reference internal" href="#search-and-replace">Search and Replace</a></li> | ||||
| <li><a class="reference internal" href="#completions">Completions</a></li> | ||||
| <li><a class="reference internal" href="#calltips">Calltips</a></li> | ||||
| <li><a class="reference internal" href="#code-context">Code Context</a></li> | ||||
| <li><a class="reference internal" href="#shell-window">Shell window</a></li> | ||||
| <li><a class="reference internal" href="#text-colors">Text colors</a></li> | ||||
| </ul> | ||||
| </li> | ||||
| <li><a class="reference internal" href="#startup-and-code-execution">Startup and Code Execution</a><ul> | ||||
| <li><a class="reference internal" href="#command-line-usage">Command line usage</a></li> | ||||
| <li><a class="reference internal" href="#startup-failure">Startup failure</a></li> | ||||
| <li><a class="reference internal" href="#running-user-code">Running user code</a></li> | ||||
| <li><a class="reference internal" href="#user-output-in-shell">User output in Shell</a></li> | ||||
| <li><a class="reference internal" href="#developing-tkinter-applications">Developing tkinter applications</a></li> | ||||
| <li><a class="reference internal" href="#running-without-a-subprocess">Running without a subprocess</a></li> | ||||
| </ul> | ||||
| </li> | ||||
| <li><a class="reference internal" href="#help-and-preferences">Help and Preferences</a><ul> | ||||
| <li><a class="reference internal" href="#help-sources">Help sources</a></li> | ||||
| <li><a class="reference internal" href="#setting-preferences">Setting preferences</a></li> | ||||
| <li><a class="reference internal" href="#idle-on-macos">IDLE on macOS</a></li> | ||||
| <li><a class="reference internal" href="#extensions">Extensions</a></li> | ||||
| </ul> | ||||
| </li> | ||||
| <li><a class="reference internal" href="#module-idlelib">idlelib — implementation of IDLE application</a></li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| 
 | ||||
|   </div> | ||||
|   <div> | ||||
|     <h4>Previous topic</h4> | ||||
|     <p class="topless"><a href="tkinter.ttk.html" | ||||
|                           title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.ttk</span></code> — Tk themed widgets</a></p> | ||||
|   </div> | ||||
|   <div> | ||||
|     <h4>Next topic</h4> | ||||
|     <p class="topless"><a href="development.html" | ||||
|                           title="next chapter">Development Tools</a></p> | ||||
|   </div> | ||||
|   <div role="note" aria-label="source link"> | ||||
|     <h3>This Page</h3> | ||||
|     <ul class="this-page-menu"> | ||||
|       <li><a href="../bugs.html">Report a Bug</a></li> | ||||
|       <li> | ||||
|         <a href="https://github.com/python/cpython/blob/main/Doc/library/idle.rst" | ||||
|             rel="nofollow">Show Source | ||||
|         </a> | ||||
|       </li> | ||||
|     </ul> | ||||
|   </div> | ||||
|         </div> | ||||
| <div id="sidebarbutton" title="Collapse sidebar"> | ||||
| <span>«</span> | ||||
| </div> | ||||
| 
 | ||||
|       </div> | ||||
|       <div class="clearer"></div> | ||||
|     </div> | ||||
|     <div class="related" role="navigation" aria-label="Related"> | ||||
|       <h3>Navigation</h3> | ||||
|       <ul> | ||||
|         <li class="right" style="margin-right: 10px"> | ||||
|           <a href="../genindex.html" title="General Index" | ||||
|              >index</a></li> | ||||
|         <li class="right" > | ||||
|           <a href="../py-modindex.html" title="Python Module Index" | ||||
|              >modules</a> |</li> | ||||
|         <li class="right" > | ||||
|           <a href="development.html" title="Development Tools" | ||||
|              >next</a> |</li> | ||||
|         <li class="right" > | ||||
|           <a href="tkinter.ttk.html" title="tkinter.ttk — Tk themed widgets" | ||||
|              >previous</a> |</li> | ||||
| 
 | ||||
|           <li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li> | ||||
|           <li><a href="https://www.python.org/">Python</a> »</li> | ||||
|           <li class="switchers"> | ||||
|             <div class="language_switcher_placeholder"></div> | ||||
|             <div class="version_switcher_placeholder"></div> | ||||
|           </li> | ||||
|           <li> | ||||
| 
 | ||||
|           </li> | ||||
|     <li id="cpython-language-and-version"> | ||||
|       <a href="../index.html">3.14.0a4 Documentation</a> » | ||||
|     </li> | ||||
| 
 | ||||
|           <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li> | ||||
|           <li class="nav-item nav-item-2"><a href="tk.html" >Graphical User Interfaces with Tk</a> »</li> | ||||
|         <li class="nav-item nav-item-this"><a href="">IDLE — Python editor and shell</a></li> | ||||
|                 <li class="right"> | ||||
| 
 | ||||
| 
 | ||||
|     <div class="inline-search" role="search"> | ||||
|         <form class="inline-search" action="../search.html" method="get"> | ||||
|           <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" /> | ||||
|           <input type="submit" value="Go" /> | ||||
|         </form> | ||||
|     </div> | ||||
|                      | | ||||
|                 </li> | ||||
|             <li class="right"> | ||||
| <label class="theme-selector-label"> | ||||
|     Theme | ||||
|     <select class="theme-selector" oninput="activateTheme(this.value)"> | ||||
|         <option value="auto" selected>Auto</option> | ||||
|         <option value="light">Light</option> | ||||
|         <option value="dark">Dark</option> | ||||
|     </select> | ||||
| </label> |</li> | ||||
| 
 | ||||
|       </ul> | ||||
|     </div> | ||||
|     <div class="footer"> | ||||
|     © <a href="../copyright.html">Copyright</a> 2001 Python Software Foundation. | ||||
|     <br /> | ||||
|     This page is licensed under the Python Software Foundation License Version 2. | ||||
|     <br /> | ||||
|     Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License. | ||||
|     <br /> | ||||
|     See <a href="/license.html">History and License</a> for more information.<br /> | ||||
|     <br /> | ||||
| 
 | ||||
|     The Python Software Foundation is a non-profit corporation. | ||||
| <a href="https://www.python.org/psf/donations/">Please donate.</a> | ||||
| <br /> | ||||
|     <br /> | ||||
| 
 | ||||
|     Last updated on Feb 07, 2025 (05:56 UTC). | ||||
|     <a href="/bugs.html">Found a bug</a>? | ||||
|     <br /> | ||||
| 
 | ||||
|     Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.1.3. | ||||
|     </div> | ||||
| 
 | ||||
|   </body> | ||||
| </html> | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ | |||
| 
 | ||||
| HelpWindow - Display HelpFrame in a standalone window. | ||||
| 
 | ||||
| copy_strip - Copy idle.html to help.html, rstripping each line. | ||||
| copy_strip - Copy the text part of idle.html to help.html while rstripping each line. | ||||
| 
 | ||||
| show_idlehelp - Create HelpWindow.  Called in EditorWindow.help_dialog. | ||||
| """ | ||||
|  | @ -54,7 +54,6 @@ def __init__(self, text): | |||
|         self.text = text         # Text widget we're rendering into. | ||||
|         self.tags = ''           # Current block level text tags to apply. | ||||
|         self.chartags = ''       # Current character level text tags. | ||||
|         self.show = False        # Exclude html page navigation. | ||||
|         self.hdrlink = False     # Exclude html header links. | ||||
|         self.level = 0           # Track indentation level. | ||||
|         self.pre = False         # Displaying preformatted text? | ||||
|  | @ -77,11 +76,7 @@ def handle_starttag(self, tag, attrs): | |||
|             if a == 'class': | ||||
|                 class_ = v | ||||
|         s = '' | ||||
|         if tag == 'section' and attrs == [('id', 'idle')]: | ||||
|             self.show = True    # Start main content. | ||||
|         elif tag == 'div' and class_ == 'clearer': | ||||
|             self.show = False   # End main content. | ||||
|         elif tag == 'p' and self.prevtag and not self.prevtag[0]: | ||||
|         if tag == 'p' and self.prevtag and not self.prevtag[0]: | ||||
|             # Begin a new block for <p> tags after a closed tag. | ||||
|             # Avoid extra lines, e.g. after <pre> tags. | ||||
|             lastline = self.text.get('end-1c linestart', 'end-1c') | ||||
|  | @ -112,7 +107,6 @@ def handle_starttag(self, tag, attrs): | |||
|             s = '\n' | ||||
|         elif tag == 'pre': | ||||
|             self.pre = True | ||||
|             if self.show: | ||||
|             self.text.insert('end', '\n\n') | ||||
|             self.tags = 'preblock' | ||||
|         elif tag == 'a' and class_ == 'headerlink': | ||||
|  | @ -120,11 +114,9 @@ def handle_starttag(self, tag, attrs): | |||
|         elif tag == 'h1': | ||||
|             self.tags = tag | ||||
|         elif tag in ['h2', 'h3']: | ||||
|             if self.show: | ||||
|             self.header = '' | ||||
|             self.text.insert('end', '\n\n') | ||||
|             self.tags = tag | ||||
|         if self.show: | ||||
|         self.text.insert('end', s, (self.tags, self.chartags)) | ||||
|         self.prevtag = (True, tag) | ||||
| 
 | ||||
|  | @ -132,7 +124,6 @@ def handle_endtag(self, tag): | |||
|         "Handle endtags in help.html." | ||||
|         if tag in ['h1', 'h2', 'h3']: | ||||
|             assert self.level == 0 | ||||
|             if self.show: | ||||
|             indent = ('        ' if tag == 'h3' else | ||||
|                       '    ' if tag == 'h2' else | ||||
|                       '') | ||||
|  | @ -151,7 +142,7 @@ def handle_endtag(self, tag): | |||
| 
 | ||||
|     def handle_data(self, data): | ||||
|         "Handle date segments in help.html." | ||||
|         if self.show and not self.hdrlink: | ||||
|         if not self.hdrlink: | ||||
|             d = data if self.pre else data.replace('\n', ' ') | ||||
|             if self.tags == 'h1': | ||||
|                 try: | ||||
|  | @ -253,7 +244,7 @@ def __init__(self, parent, filename, title): | |||
| 
 | ||||
| 
 | ||||
| def copy_strip():  # pragma: no cover | ||||
|     """Copy idle.html to idlelib/help.html, stripping trailing whitespace. | ||||
|     """Copy the text part of idle.html to idlelib/help.html while stripping trailing whitespace. | ||||
| 
 | ||||
|     Files with trailing whitespace cannot be pushed to the git cpython | ||||
|     repository.  For 3.x (on Windows), help.html is generated, after | ||||
|  | @ -265,7 +256,7 @@ def copy_strip():  # pragma: no cover | |||
| 
 | ||||
|     It can be worthwhile to occasionally generate help.html without | ||||
|     touching idle.rst.  Changes to the master version and to the doc | ||||
|     build system may result in changes that should not changed | ||||
|     build system may result in changes that should not change | ||||
|     the displayed text, but might break HelpParser. | ||||
| 
 | ||||
|     As long as master and maintenance versions of idle.rst remain the | ||||
|  | @ -278,10 +269,14 @@ def copy_strip():  # pragma: no cover | |||
|     src = join(abspath(dirname(dirname(dirname(__file__)))), | ||||
|             'Doc', 'build', 'html', 'library', 'idle.html') | ||||
|     dst = join(abspath(dirname(__file__)), 'help.html') | ||||
|     with open(src, 'rb') as inn,\ | ||||
|          open(dst, 'wb') as out: | ||||
| 
 | ||||
|     with open(src, 'r', encoding="utf-8") as inn, open(dst, 'w', encoding="utf-8") as out: | ||||
|         copy = False | ||||
|         for line in inn: | ||||
|             out.write(line.rstrip() + b'\n') | ||||
|             if '<section id="idle">' in line: copy = True | ||||
|             if '<div class="clearer">' in line: break | ||||
|             if copy: out.write(line.strip() + '\n') | ||||
| 
 | ||||
|     print(f'{src} copied to {dst}') | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,2 @@ | |||
| Simplify displaying the IDLE doc by only copying the text section of | ||||
| idle.html to idlelib/help.html. Patch by Stan Ulbrych. | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Miss Islington (bot)
						Miss Islington (bot)