mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 07:57:27 +03:00 
			
		
		
		
	Merge pull request #7579 from hugovk/docs-activate-tab
Docs: Activate tabs based on browser's operating system
This commit is contained in:
		
						commit
						af12908dad
					
				
							
								
								
									
										10
									
								
								docs/conf.py
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								docs/conf.py
									
									
									
									
									
								
							|  | @ -166,6 +166,12 @@ html_static_path = ["resources"] | ||||||
| # directly to the root of the documentation. | # directly to the root of the documentation. | ||||||
| # html_extra_path = [] | # html_extra_path = [] | ||||||
| 
 | 
 | ||||||
|  | html_css_files = ["css/dark.css"] | ||||||
|  | 
 | ||||||
|  | html_js_files = [ | ||||||
|  |     "js/activate_tab.js", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, | ||||||
| # using the given strftime format. | # using the given strftime format. | ||||||
| # html_last_updated_fmt = '%b %d, %Y' | # html_last_updated_fmt = '%b %d, %Y' | ||||||
|  | @ -313,10 +319,6 @@ texinfo_documents = [ | ||||||
| # texinfo_no_detailmenu = False | # texinfo_no_detailmenu = False | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def setup(app): |  | ||||||
|     app.add_css_file("css/dark.css") |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| linkcheck_allowed_redirects = { | linkcheck_allowed_redirects = { | ||||||
|     r"https://www.bestpractices.dev/projects/6331": r"https://www.bestpractices.dev/en/.*", |     r"https://www.bestpractices.dev/projects/6331": r"https://www.bestpractices.dev/en/.*", | ||||||
|     r"https://badges.gitter.im/python-pillow/Pillow.svg": r"https://badges.gitter.im/repo.svg", |     r"https://badges.gitter.im/python-pillow/Pillow.svg": r"https://badges.gitter.im/repo.svg", | ||||||
|  |  | ||||||
|  | @ -1,6 +1,14 @@ | ||||||
| Installation | Installation | ||||||
| ============ | ============ | ||||||
| 
 | 
 | ||||||
|  | .. raw:: html | ||||||
|  | 
 | ||||||
|  |     <script> | ||||||
|  |     document.addEventListener('DOMContentLoaded', function() { | ||||||
|  |       activateTab(getOS()); | ||||||
|  |     }); | ||||||
|  |     </script> | ||||||
|  | 
 | ||||||
| Warnings | Warnings | ||||||
| -------- | -------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										36
									
								
								docs/resources/js/activate_tab.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								docs/resources/js/activate_tab.js
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,36 @@ | ||||||
|  | // Based on https://stackoverflow.com/a/38241481/724176
 | ||||||
|  | function getOS() { | ||||||
|  |   const userAgent = window.navigator.userAgent, | ||||||
|  |     platform = window.navigator.userAgentData?.platform || window.navigator.platform, | ||||||
|  |     macosPlatforms = ["macOS", "Macintosh", "MacIntel", "MacPPC", "Mac68K"], | ||||||
|  |     windowsPlatforms = ["Win32", "Win64", "Windows", "WinCE"]; | ||||||
|  | 
 | ||||||
|  |   if (macosPlatforms.includes(platform)) { | ||||||
|  |     return "macOS"; | ||||||
|  |   } else if (windowsPlatforms.includes(platform)) { | ||||||
|  |     return "Windows"; | ||||||
|  |   } else if (/Android/.test(userAgent)) { | ||||||
|  |     return "Android"; | ||||||
|  |   } else if (/Linux/.test(platform)) { | ||||||
|  |     return "Linux"; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function activateTab(tabName) { | ||||||
|  |   // Find all label elements with the specified tab name
 | ||||||
|  |   const labels = document.querySelectorAll(".tab-label"); | ||||||
|  | 
 | ||||||
|  |   labels.forEach((label) => { | ||||||
|  |     if (label.textContent == tabName) { | ||||||
|  |       // Find the associated input element using the "for" attribute
 | ||||||
|  |       const tabInputId = label.getAttribute("for"); | ||||||
|  |       const tabInput = document.getElementById(tabInputId); | ||||||
|  | 
 | ||||||
|  |       // Check if the input element exists before attempting to set the "checked" attribute
 | ||||||
|  |       if (tabInput) { | ||||||
|  |         // Activate the tab by setting its "checked" attribute to true
 | ||||||
|  |         tabInput.checked = true; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user