CINXE.COM
404 Not Found
<!DOCTYPE HTML> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Language" content="en-us"> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="initial-scale=1.0, user-scalable=yes, width=device-width"> <meta http-equiv="imagetoolbar" content="no"> <meta name="robots" content="noindex"> <link rel="shortcut icon" href="https://toolforge.org/.error/favicon.ico"> <title>404 Not Found</title> <meta name="color-scheme" content="light dark"> <style> * { margin: 0; } body { background: #fff; font: 15px/1.6 sans-serif; color: #333; } .content { margin: 7% auto 0; padding: 2em 1em 1em; max-width: 640px; } footer { clear: both; margin-top: 14%; border-top: 1px solid #e5e5e5; background: #f9f9f9; padding: 2em 0; font-size: 0.8em; text-align: center; } img { float: left; margin: 0 2em 2em 0; } a img { border: 0; } h1 { margin-top: 1em; font-size: 1.2em; } h2 { margin-top: 1em; font-size: 1em; } .content-text { overflow: hidden; overflow-wrap: break-word; word-wrap: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; -ms-hyphens: auto; hyphens: auto; } p { margin: 0.7em 0 1em 0; } a { color: #0645ad; text-decoration: none; } a:hover { text-decoration: underline; } code { font-family: monospace; background-color:#f0f0f0; color:#000000; } .text-muted { color: #777; } @media (prefers-color-scheme: dark) { a { color: #9e9eff; } body { background: transparent; color: #ddd; } footer { border-top: 1px solid #444; background: #060606; } #logo { filter: invert(1) hue-rotate(180deg); } code { font-family: monospace; background-color:#222222; color:#ffffff; } .text-muted { color: #888; } } </style> </head> <body> <div class="content" role="main"> <a href="https://wikitech.wikimedia.org/wiki/Portal:Toolforge"> <img id="logo" src="https://toolforge.org/.error/toolforge-logo.png" srcset="https://toolforge.org/.error/toolforge-logo-2x.png 2x" alt="Wikimedia Toolforge" width="120" height="120"> </a> <h1>Not found</h1> <div class="content-text"> <p>The URL you have requested, <code>https://wiki.toolforge.org/Special:RecentChangesLinked/Portal:Toolforge</code>, doesn't seem to actually exist.</p> <p>Perhaps the webserver has temporarily become confused, or the link you've followed doesn't actually lead somewhere useful?</p> <p>You might want to look at the <a href="https://toolhub.wikimedia.org">list of tools</a> to find what you were looking for.</p> <div id="fourohfour-didyoumean-target"></div> <p>If you're pretty sure this shouldn't be an error, you may wish to notify the <a href="https://toolsadmin.wikimedia.org/tools/id/admin">project administrators</a> about the error and how you ended up here.</p> </div> </div> <footer> <p> fourohfour-8574854f4f-v2rwl · <a id="source" href="https://gitlab.wikimedia.org/toolforge-repos/fourohfour/">view source</a> </p> </footer> <script> ( async () => { const target = document.querySelector( "#fourohfour-didyoumean-target" ); if ( !target ) { // Don't bother loading the information if we've somehow // landed on a page where that data would not be shown. return; } const response = await fetch( "/_/fourohfour-api/did-you-mean" ); if ( response.status !== 200 ) { console.error( 'Loading did you mean data failed!' ); return; } const data = await response.json(); const { toolsadminUrl, openstackBrowserUrl } = data.settings; if ( data.tools.length > 0 ) { const toolParagraph = document.createElement( "p" ); toolParagraph.innerText = "These tools have similar names:"; target.appendChild( toolParagraph ); const toolList = document.createElement( "ul" ); data.tools.forEach( (tool, _) => { const link = document.createElement( "a" ); link.setAttribute( "href", `${toolsadminUrl}/tools/id/${tool[0]}` ); link.innerText = tool[0]; const listItem = document.createElement( "li" ); listItem.appendChild( link ); toolList.appendChild( listItem ); } ); target.appendChild( toolList ); } if ( data.projects.length > 0 ) { const projectParagraph = document.createElement( "p" ); projectParagraph.innerText = "These Cloud VPS projects have similar names:"; target.appendChild( projectParagraph ); const projectList = document.createElement( "ul" ); data.projects.forEach( (project) => { const link = document.createElement( "a" ); link.setAttribute( "href", `${openstackBrowserUrl}/project/${project[0]}` ); link.innerText = project[0]; const listItem = document.createElement( "li" ); listItem.appendChild( link ); projectList.append( listItem ); } ); target.appendChild( projectList ); } } )(); </script> </body> </html>