Files
KSP_project/data/wiki/vulture_shuttle_en.html
T

297 lines
26 KiB
HTML

<style>
.wiki-article { max-width: 1120px; margin: 0 auto; padding: 24px 32px 48px; color: #202122; background: #fff; font-family: sans-serif; font-size: 14px; line-height: 1.65; }
.wiki-article h1, .wiki-article h2 { font-family: "Linux Libertine", Georgia, "Times New Roman", serif; font-weight: normal; border-bottom: 1px solid #a2a9b1; }
.wiki-article h1 { margin: 0 0 8px; font-size: 2.1em; line-height: 1.25; }
.wiki-article h2 { clear: both; margin: 1.35em 0 0.6em; padding-bottom: 0.18em; font-size: 1.5em; }
.wiki-article h3 { margin: 1em 0 0.35em; font-size: 1.15em; }
.wiki-article p { margin: 0.45em 0 0.85em; }
.wiki-article a { color: #0645ad; text-decoration: none; }
.wiki-article a:hover { text-decoration: underline; }
.wiki-article ul, .wiki-article ol { margin: 0.35em 0 0.9em 1.65em; padding: 0; }
.wiki-article .infobox { float: right; clear: right; width: 330px; margin: 0 0 18px 24px; border: 1px solid #a2a9b1; border-collapse: collapse; background: #f8f9fa; font-size: 88%; line-height: 1.45; }
.wiki-article .infobox caption { padding: 8px; background: #eaecf0; border: 1px solid #a2a9b1; border-bottom: 0; font-weight: bold; font-size: 1.12em; }
.wiki-article .infobox caption span { display: block; font-size: 0.92em; font-weight: normal; }
.wiki-article .infobox td { border: 1px solid #a2a9b1; padding: 6px 8px; vertical-align: top; }
.wiki-article .image-placeholder { min-height: 150px; border: 1px dashed #72777d; background: #eaecf0; color: #54595d; display: flex; align-items: center; justify-content: center; padding: 10px; text-align: center; box-sizing: border-box; }
.wiki-article .infobox .image-placeholder { min-height: 185px; }
.wiki-article img { max-width: 100%; height: auto; }
.wiki-article .media-link img { display: block; width: 100%; cursor: zoom-in; }
.wiki-article .wiki-modal-card img { display: block; width: 100%; }
.wiki-article .media-link { display: block; color: inherit; text-decoration: none; }
.wiki-article .media-link:hover { text-decoration: none; }
.wiki-article .media-link:hover .image-placeholder { border-color: #36c; background: #f8f9fa; color: #202122; }
.wiki-article .thumb { width: 260px; border: 1px solid #c8ccd1; background: #f8f9fa; padding: 3px; font-size: 88%; line-height: 1.4; box-sizing: border-box; }
.wiki-article .tright { float: right; clear: right; margin: 0.35em 0 1em 1.4em; }
.wiki-article .tleft { float: left; clear: left; margin: 0.35em 1.4em 1em 0; }
.wiki-article .thumbcaption { padding: 4px 3px 2px; color: #202122; }
.wiki-article .toc { display: inline-block; min-width: 250px; margin: 0.45em 0 1.2em; padding: 8px 12px; border: 1px solid #a2a9b1; background: #f8f9fa; font-size: 92%; }
.wiki-article .toc-title { text-align: center; font-weight: bold; margin-bottom: 4px; }
.wiki-article .toc ol { margin: 0 0 0 1.5em; }
.wiki-article > table:not(.infobox) { width: 100%; margin: 1em 0; border-collapse: collapse; font-size: 92%; background: #fff; }
.wiki-article > table:not(.infobox) th, .wiki-article > table:not(.infobox) td { border: 1px solid #a2a9b1; padding: 6px 8px; text-align: left; vertical-align: top; }
.wiki-article > table:not(.infobox) th { background: #eaecf0; font-weight: bold; }
.wiki-article > table:not(.infobox) tr:nth-child(even) td { background: #f8f9fa; }
.wiki-article .launch-chart { margin: 1em 0; padding: 8px 10px 10px; border: 1px solid #a2a9b1; background: #f8f9fa; font-size: 92%; }
.wiki-article .launch-stage-label { margin: 8px 0 4px; padding-bottom: 2px; border-bottom: 1px solid #c8ccd1; font-weight: bold; }
.wiki-article .launch-row { display: grid; grid-template-columns: 54px 1fr 46px 66px; gap: 8px; align-items: center; margin: 3px 0; }
.wiki-article .launch-head { color: #54595d; font-weight: bold; }
.wiki-article .launch-track { height: 14px; border: 1px solid #c8ccd1; background: #eaecf0; box-sizing: border-box; }
.wiki-article .launch-bar { display: block; height: 100%; background: #36c; }
.wiki-article .launch-count, .wiki-article .launch-cumulative { text-align: right; white-space: nowrap; }
.wiki-article .launch-cumulative { color: #54595d; }
.wiki-article .wiki-modal { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(32,33,34,0.82); z-index: 9999; box-sizing: border-box; }
.wiki-article .wiki-modal:target { display: flex; }
.wiki-article .wiki-modal-card { width: min(920px, 96vw); max-height: 90vh; overflow: auto; border: 1px solid #a2a9b1; background: #fff; padding: 10px; box-shadow: 0 12px 38px rgba(0,0,0,0.35); box-sizing: border-box; }
.wiki-article .modal-close { float: right; width: 28px; height: 28px; margin: -2px -2px 6px 8px; border: 1px solid #a2a9b1; background: #eaecf0; color: #202122; text-align: center; line-height: 26px; font-weight: bold; }
.wiki-article .modal-close:hover { background: #fff; text-decoration: none; }
@media (max-width: 820px) { .wiki-article { padding: 18px 16px 36px; } .wiki-article .infobox, .wiki-article .thumb { float: none; width: 100%; margin: 0.75em 0 1em; } .wiki-article .toc { display: block; } .wiki-article .launch-row { grid-template-columns: 46px 1fr 40px; } .wiki-article .launch-cumulative { display: none; } .wiki-article .wiki-modal { padding: 12px; } }
.wiki-article img[data-wiki-asset], .vulture-article img[data-wiki-asset] { cursor: zoom-in; }
.wiki-image-lightbox { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(32,33,34,0.84); z-index: 10000; box-sizing: border-box; }
.wiki-image-lightbox[hidden] { display: none; }
.wiki-image-lightbox-panel { position: relative; width: min(1120px, 96vw); max-height: 92vh; overflow: auto; margin: 0; padding: 10px; border: 1px solid #a2a9b1; background: #fff; box-shadow: 0 12px 38px rgba(0,0,0,0.35); box-sizing: border-box; }
.wiki-image-lightbox-panel img { display: block; width: 100%; height: auto; max-height: 82vh; object-fit: contain; background: #000; }
.wiki-image-lightbox-close { position: sticky; top: 0; float: right; width: 30px; height: 30px; margin: -2px -2px 8px 10px; border: 1px solid #a2a9b1; background: #eaecf0; color: #202122; font-weight: bold; line-height: 26px; cursor: pointer; }
.wiki-image-lightbox-close:hover, .wiki-image-lightbox-close:focus { background: #fff; }
body.wiki-image-lightbox-open { overflow: hidden; }
@media (max-width: 820px) { .wiki-image-lightbox { padding: 12px; } .wiki-image-lightbox-panel { width: 98vw; max-height: 94vh; } }
</style>
<article class="mw-parser-output wiki-article">
<h1 id="vulture-shuttle">Vulture Shuttle</h1>
<table class="infobox">
<caption>Vulture Shuttle<span>秃鹫航天飞机</span></caption>
<tbody>
<tr><td><a class="media-link" href="#vulture-img-stack"><img src="/vulture/vulture_shuttle_full_stack_original.png" alt="Vulture Shuttle full launch stack" data-wiki-asset="/vulture/vulture_shuttle_full_stack_original.png"></a><div class="thumbcaption">The Vulture Shuttle stack consists of the MK4 orbiter, an external tank, and two reusable liquid boosters.</div></td></tr>
<tr><td><b>Type</b>: Partially reusable heavy shuttle system</td></tr>
<tr><td><b>Lineage</b>: STS Shuttle - CERV Shuttle - Vulture Shuttle</td></tr>
<tr><td><b>Predecessor</b>: CERV Shuttle</td></tr>
<tr><td><b>Development start</b>: 2030</td></tr>
<tr><td><b>First flight</b>: 2038, uncrewed orbital flight</td></tr>
<tr><td><b>Main launch site</b>: Wenchang</td></tr>
<tr><td><b>Typical target orbit</b>: 1000 km x 1000 km, 45 degrees</td></tr>
<tr><td><b>Block 1 payload</b>: 100 t to the typical target orbit</td></tr>
<tr><td><b>Zero-payload liftoff mass</b>: 4065.9 t</td></tr>
<tr><td><b>Liftoff thrust</b>: 61,949 kN</td></tr>
<tr><td><b>Maximum crew</b>: 19</td></tr>
<tr><td><b>Status</b>: In service</td></tr>
</tbody></table>
<p>The <b>Vulture Shuttle</b> is the third major vehicle in the STS Shuttle - CERV Shuttle - Vulture Shuttle lineage in this alternate spaceflight timeline. It keeps the classic orbiter, external tank, and side-booster arrangement, but replaces solid boosters with reusable liquid boosters and scales the orbiter into the large MK4 class.</p>
<p>Vulture was designed as a heavy high-orbit transport rather than a low Earth orbit utility shuttle. A typical Block 1 mission can deliver a 100 t payload to a 1000 km x 1000 km orbit at 45 degrees inclination. The launch stack inserts the orbiter into a high suborbital trajectory, after which the orbiter completes circularization and mission operations using its own OMS system.</p>
<nav class="toc" aria-label="Contents">
<div class="toc-title">Contents</div>
<ol>
<li><a href="#development">Development</a></li>
<li><a href="#system-components">System components</a></li>
<li><a href="#mission-profile">Mission profile</a></li>
<li><a href="#operational-history">Operational history</a></li>
<li><a href="#block-15">Block 1.5</a></li>
<li><a href="#block-2">Block 2</a></li>
<li><a href="#safety-and-incidents">Safety and incidents</a></li>
<li><a href="#launch-history">Launch history</a></li>
<li><a href="#specifications">Specifications</a></li>
<li><a href="#images">Images</a></li>
<li><a href="#see-also">See also</a></li>
</ol>
</nav>
<h2 id="development">Development</h2>
<p>The alternate timeline diverges from real-world shuttle history after the Columbia accident, which still occurs in 2003 and becomes the central safety lesson for later shuttle development. The CERV Shuttle, developed from 2005 and first flown in 2015, extends the shuttle lineage with an integrated crew-cabin escape system, modern avionics, and improved maintainability.</p>
<p>Vulture development begins in 2030 as a heavier successor to CERV. Instead of being a modest safety upgrade, it is designed for heavy high-orbit logistics, large station modules, and the assembly of interplanetary exploration motherships. Key choices include an enlarged MK4 orbiter, a 10 m external tank, reusable 5 m liquid boosters, and an expanded crew escape concept inherited from CERV.</p>
<h2 id="system-components">System components</h2>
<h3 id="orbiter">Orbiter</h3>
<figure class="thumb tright"><a class="media-link" href="#vulture-img-ascent"><img src="/vulture/vulture_ascent_original.png" alt="Vulture Shuttle during ascent" data-wiki-asset="/vulture/vulture_ascent_original.png"></a><figcaption class="thumbcaption">The MK4 orbiter uses a large delta wing, wingtip vertical tails, canards, and a retractable nose docking port.</figcaption></figure>
<p>The MK4 orbiter is the crew, payload, and on-orbit operations core of the system. It has a large delta wing, wingtip vertical tails, forward canards, a pressurized crew cabin, a large cargo bay, OMS/RCS propulsion, two atmospheric jet engines, and five RS-25E main engines fed by the external tank during ascent.</p>
<p>The payload bay can accommodate cargo about 5.4 m long, 7.75 m wide, and 29.5 m high. This makes Vulture especially useful for wide station modules, large radiators, truss sections, and mothership components that are difficult to package inside cylindrical expendable fairings.</p>
<h3 id="external-tank">External tank</h3>
<p>The external tank stores liquid oxygen and liquid hydrogen for the orbiter's main engines. It is 10 m in diameter, carries 1612.2 t of propellant, and has a dry mass of 31.5 t. Unlike the STS external tank, it uses a lower-shedding insulation coating rather than traditional foam in order to reduce debris risk to the orbiter thermal protection system.</p>
<h3 id="liquid-boosters">Liquid boosters</h3>
<figure class="thumb tleft"><a class="media-link" href="#vulture-img-recovery"><img src="/vulture/vulture_booster_recovery_original.png" alt="Vulture liquid booster recovery" data-wiki-asset="/vulture/vulture_booster_recovery_original.png"></a><figcaption class="thumbcaption">The liquid boosters return to the launch site after separation and land propulsively.</figcaption></figure>
<p>Two 5 m liquid boosters provide most liftoff thrust. Each booster carries 19 Tianhuo-12 LOX/kerosene engines, burns for about 135 seconds, then separates and performs RTLS recovery using grid fins, hot-gas RCS, landing legs, and propulsive landing.</p>
<h2 id="mission-profile">Mission profile</h2>
<figure class="thumb tright"><a class="media-link" href="#vulture-img-separation"><img src="/vulture/vulture_booster_separation_original.png" alt="Vulture liquid booster separation" data-wiki-asset="/vulture/vulture_booster_separation_original.png"></a><figcaption class="thumbcaption">After booster cutoff, the reusable liquid boosters separate and return to the launch site while the orbiter and external tank continue upward.</figcaption></figure>
<p>During ascent, the liquid boosters and five RS-25E main engines operate together. After booster cutoff and separation, the boosters return to the launch site while the orbiter and external tank continue to a high suborbital insertion. After main engine cutoff, the orbiter separates from the external tank and uses OMS burns to enter and raise its orbit.</p>
<p>Abort modes include pad abort, RTLS, Abort to Orbit, and Abort Once Around. Because the orbiter has five RS-25E engines, not every main-engine shutdown triggers an abort. After booster separation, one failed RS-25E is usually tolerated; after T+6 minutes, two failures may still permit orbit insertion; after T+8 minutes, three shutdowns can still result in a low-margin but normal orbit if other systems remain healthy.</p>
<h2 id="operational-history">Operational history</h2>
<p>Vulture first flies an uncrewed orbital test mission in 2038 and becomes the main shuttle-line heavy transport after CERV retirement in 2040. During the 2040s and early 2050s it supports large orbital facilities and the construction of exploration motherships, including Xihe (XH-01), Stellaria (ST-01), and the second early ST-series Stellaria-class ship (ST-02).</p>
<h2 id="block-15">Block 1.5</h2>
<p>Block 1.5 is a high-energy propulsion conversion of the VS-06 and VS-07 Block 1 orbiters. It installs nuclear aerospike engines and modifies propellant management, thermal isolation, aft structure, flight software, and ground safety procedures. Its core ability is SSTO operation, but payload is reduced to about 40 t.</p>
<h2 id="block-2">Block 2</h2>
<p>Block 2 is a later production standard rather than a simple conversion. VS-08, VS-09, and VS-10 are built around nuclear aerospike propulsion, deep-space communications, high-energy propellant management, and stricter re-entry limits. Block 2 can carry about 120 t directly to low lunar orbit and return, but return payload is limited to about 40 t and requires braking to low-Earth-orbit-class re-entry speed.</p>
<h2 id="safety-and-incidents">Safety and incidents</h2>
<figure class="thumb tright"><a class="media-link" href="#vulture-img-ignition"><img src="/vulture/vulture_shuttle_ignition_original.png" alt="Vulture Shuttle engine ignition" data-wiki-asset="/vulture/vulture_shuttle_ignition_original.png"></a><figcaption class="thumbcaption">Pad abort logic was a central part of the Vulture safety case, especially before booster ignition.</figcaption></figure>
<p>Vulture's safety design responds directly to STS-era risks: solid boosters are replaced by throttleable liquid boosters, external-tank insulation shedding is reduced, orbiter leading edges and belly tiles are instrumented, and the crew cabin can separate as an escape module in a wider range of emergencies.</p>
<table>
<thead><tr><th>Mission</th><th>Year</th><th>Event</th><th>Outcome</th></tr></thead>
<tbody>
<tr><td>VLT-02</td><td>2038</td><td>Pad abort after RS-25E sensor disagreement</td><td>Main engines shut down before booster ignition</td></tr>
<tr><td>VLT-12</td><td>2039</td><td>Abort to Orbit after two early RS-25E shutdowns</td><td>Safe parking orbit and early return</td></tr>
<tr><td>VLT-246</td><td>2047</td><td>Two RS-25E shutdowns after T+6 minutes</td><td>Normal orbit with OMS correction</td></tr>
<tr><td>VLT-633</td><td>2053</td><td>Three RS-25E shutdowns after T+8 minutes</td><td>Low-margin normal orbit</td></tr>
<tr><td>VLT-762</td><td>2055</td><td>Block 2 braking anomaly before lunar-return re-entry</td><td>Return delayed and completed safely</td></tr>
</tbody></table>
<h2 id="launch-history">Launch history</h2>
<p>The launch history uses the same count basis as the main Vulture article: 24 cumulative launches by the end of the research phase in 2040, 310 cumulative launches by the end of the main ramp-up phase in 2048, 620 by the end of the mothership-construction peak in 2052, and about 785 by the end of the early Block 2 period in 2055.</p>
<div class="launch-chart" role="img" aria-label="Vulture Shuttle historical launch count chart">
<div class="launch-row launch-head"><span>Year</span><span>Flights</span><span>No.</span><span>Total</span></div>
<div class="launch-stage-label">Research and certification phase</div>
<div class="launch-row"><span>2038</span><span class="launch-track"><span class="launch-bar" style="width:2%;"></span></span><span class="launch-count">2</span><span class="launch-cumulative">2</span></div>
<div class="launch-row"><span>2039</span><span class="launch-track"><span class="launch-bar" style="width:5%;"></span></span><span class="launch-count">8</span><span class="launch-cumulative">10</span></div>
<div class="launch-row"><span>2040</span><span class="launch-track"><span class="launch-bar" style="width:8%;"></span></span><span class="launch-count">14</span><span class="launch-cumulative">24</span></div>
<div class="launch-stage-label">Main operations ramp-up</div>
<div class="launch-row"><span>2044</span><span class="launch-track"><span class="launch-bar" style="width:30%;"></span></span><span class="launch-count">58</span><span class="launch-cumulative">112</span></div>
<div class="launch-row"><span>2048</span><span class="launch-track"><span class="launch-bar" style="width:55%;"></span></span><span class="launch-count">92</span><span class="launch-cumulative">310</span></div>
<div class="launch-stage-label">Mothership construction peak</div>
<div class="launch-row"><span>2052</span><span class="launch-track"><span class="launch-bar" style="width:85%;"></span></span><span class="launch-count">128</span><span class="launch-cumulative">620</span></div>
<div class="launch-stage-label">Early Block 2 period</div>
<div class="launch-row"><span>2055</span><span class="launch-track"><span class="launch-bar" style="width:100%;"></span></span><span class="launch-count">54</span><span class="launch-cumulative">785</span></div>
</div>
<h2 id="specifications">Specifications</h2>
<table>
<thead><tr><th>Parameter</th><th>Value</th></tr></thead>
<tbody>
<tr><td>Launch stack length</td><td>72 m</td></tr>
<tr><td>Zero-payload liftoff mass</td><td>4065.9 t</td></tr>
<tr><td>Liftoff thrust</td><td>61,949 kN</td></tr>
<tr><td>Block 1 orbiter dry mass</td><td>111.6 t</td></tr>
<tr><td>Orbiter length</td><td>61.5 m</td></tr>
<tr><td>Orbiter wingspan</td><td>43.5 m</td></tr>
<tr><td>Main engines</td><td>5 RS-25E engines; maximum burn time 10 min 16 s</td></tr>
<tr><td>OMS propellant</td><td>45.9 t MMH/NTO</td></tr>
<tr><td>Atmospheric jet fuel</td><td>10 t kerosene</td></tr>
<tr><td>Jet engine thrust</td><td>480 kN x 2 dry / 735.8 kN x 2 afterburning</td></tr>
<tr><td>Life support</td><td>19 people for 26 days</td></tr>
<tr><td>Cargo bay</td><td>About 5.4 m x 7.75 m x 29.5 m</td></tr>
<tr><td>External tank propellant</td><td>1612.2 t</td></tr>
<tr><td>External tank dry mass</td><td>31.5 t</td></tr>
<tr><td>Booster dry mass</td><td>46.5 t each</td></tr>
<tr><td>Booster burn time</td><td>135 s</td></tr>
</tbody></table>
<h2 id="images">Images</h2>
<table>
<thead><tr><th>Image</th><th>Content</th><th>Placement</th></tr></thead>
<tbody>
<tr><td>Full launch stack</td><td>MK4 orbiter, external tank, and two reusable liquid boosters.</td><td>Infobox</td></tr>
<tr><td>Engine ignition</td><td>Pad ignition and early abort context.</td><td>Safety</td></tr>
<tr><td>Ascent</td><td>Three-part ascent stack and MK4 wing layout.</td><td>Orbiter section</td></tr>
<tr><td>Booster recovery</td><td>RTLS recovery and propulsive landing of the liquid boosters.</td><td>Liquid boosters section</td></tr>
<tr><td>Booster separation</td><td>Booster cutoff, separation, and continuation of orbiter/external tank ascent.</td><td>Mission profile</td></tr>
</tbody></table>
<h2 id="see-also">See also</h2>
<ul>
<li>CERV Shuttle</li>
<li><a href="/home/Space_Shuttles/Vulture_Shuttle_Block_2">Vulture Shuttle Block 2</a></li>
<li><a href="/home/Space_Shuttles/Echo_Shuttle">Echo Shuttle</a></li>
<li><a href="/home/Space_Shuttles/Enterprise_Shuttle">Enterprise Shuttle</a></li>
<li><a href="/home/Exploration_Motherships/Xihe">Xihe-class interplanetary exploration mothership</a></li>
<li><a href="/home/Exploration_Motherships/Stellaria">Stellaria-class interplanetary exploration mothership</a></li>
<li>Nuclear aerospike engine</li>
</ul>
<div id="vulture-img-stack" class="wiki-modal"><div class="wiki-modal-card"><a class="modal-close" href="#">x</a><img src="/vulture/vulture_shuttle_full_stack_original.png" alt="Vulture Shuttle full launch stack" data-wiki-asset="/vulture/vulture_shuttle_full_stack_original.png"><div class="thumbcaption">Full Vulture Shuttle launch stack with the MK4 orbiter, external tank, and two liquid boosters.</div></div></div>
<div id="vulture-img-ignition" class="wiki-modal"><div class="wiki-modal-card"><a class="modal-close" href="#">x</a><img src="/vulture/vulture_shuttle_ignition_original.png" alt="Vulture Shuttle engine ignition" data-wiki-asset="/vulture/vulture_shuttle_ignition_original.png"><div class="thumbcaption">Engine ignition before launch, relevant to pad-abort procedures and early flight safety.</div></div></div>
<div id="vulture-img-ascent" class="wiki-modal"><div class="wiki-modal-card"><a class="modal-close" href="#">x</a><img src="/vulture/vulture_ascent_original.png" alt="Vulture Shuttle during ascent" data-wiki-asset="/vulture/vulture_ascent_original.png"><div class="thumbcaption">Vulture Shuttle during ascent, showing the MK4 orbiter and side-booster configuration.</div></div></div>
<div id="vulture-img-recovery" class="wiki-modal"><div class="wiki-modal-card"><a class="modal-close" href="#">x</a><img src="/vulture/vulture_booster_recovery_original.png" alt="Vulture liquid booster recovery" data-wiki-asset="/vulture/vulture_booster_recovery_original.png"><div class="thumbcaption">Reusable liquid booster recovery after RTLS return and propulsive landing.</div></div></div>
<div id="vulture-img-separation" class="wiki-modal"><div class="wiki-modal-card"><a class="modal-close" href="#">x</a><img src="/vulture/vulture_booster_separation_original.png" alt="Vulture liquid booster separation" data-wiki-asset="/vulture/vulture_booster_separation_original.png"><div class="thumbcaption">Liquid booster separation before the orbiter and external tank continue toward suborbital insertion.</div></div></div>
</article>
<script>
(function () {
function ready(fn) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', fn, { once: true });
} else {
fn();
}
}
function captionFor(image) {
var container = image.closest('figure, td, tr, .infobox-image');
if (!container) {
return image.alt || '';
}
var caption = container.querySelector('.thumbcaption');
return caption ? caption.textContent.trim() : (image.alt || '');
}
function install(article) {
if (!article || article.dataset.lightboxReady === '1') {
return;
}
article.dataset.lightboxReady = '1';
var overlay = document.createElement('div');
overlay.className = 'wiki-image-lightbox';
overlay.hidden = true;
overlay.innerHTML = '<figure class="wiki-image-lightbox-panel" role="dialog" aria-modal="true"><button class="wiki-image-lightbox-close" type="button" aria-label="Close image preview">x</button><img alt=""><figcaption class="thumbcaption"></figcaption></figure>';
document.body.appendChild(overlay);
var previewImage = overlay.querySelector('img');
var previewCaption = overlay.querySelector('figcaption');
var closeButton = overlay.querySelector('.wiki-image-lightbox-close');
function closePreview() {
overlay.hidden = true;
previewImage.removeAttribute('src');
previewCaption.textContent = '';
document.body.classList.remove('wiki-image-lightbox-open');
}
function openPreview(image, event) {
event.preventDefault();
event.stopPropagation();
if (event.stopImmediatePropagation) {
event.stopImmediatePropagation();
}
previewImage.src = image.currentSrc || image.src;
previewImage.alt = image.alt || '';
previewCaption.textContent = captionFor(image);
overlay.hidden = false;
document.body.classList.add('wiki-image-lightbox-open');
closeButton.focus();
}
Array.prototype.forEach.call(article.querySelectorAll('img[data-wiki-asset]'), function (image) {
if (image.dataset.lightboxBound === '1') {
return;
}
image.dataset.lightboxBound = '1';
image.addEventListener('click', function (event) {
openPreview(image, event);
}, true);
});
article.addEventListener('click', function (event) {
var image = event.target.closest && event.target.closest('img[data-wiki-asset]');
if (!image || !article.contains(image) || image.closest('.wiki-image-lightbox')) {
return;
}
openPreview(image, event);
});
closeButton.addEventListener('click', closePreview);
overlay.addEventListener('click', function (event) {
if (event.target === overlay) {
closePreview();
}
});
document.addEventListener('keydown', function (event) {
if (event.key === 'Escape' && !overlay.hidden) {
closePreview();
}
});
}
function installAll() {
Array.prototype.forEach.call(document.querySelectorAll('.wiki-article, .vulture-article'), install);
}
ready(function () {
installAll();
if (window.MutationObserver) {
var observer = new MutationObserver(installAll);
observer.observe(document.body, { childList: true, subtree: true });
}
window.setTimeout(installAll, 500);
window.setTimeout(installAll, 1500);
window.setTimeout(installAll, 3000);
});
}());
</script>