Files
ant-design/docs/spec/lightweight.html
T
2017-01-21 00:48:58 +08:00

85 lines
25 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="An enterprise-class UI design language and React-based implementation">
<meta name="description" content="A set of high-quality React components">
<meta name="description" content="One of best React UI library for enterprise background">
<title>Ant Design - A UI Design Language</title>
<link rel="icon" href="https://t.alipayobjects.com/images/T1QUBfXo4fXXXXXXXX.png" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.cnpmjs.org/css?family=Lato:400,700|Raleway"/>
<link rel="stylesheet" type="text/css" href="/index.css"/>
<style id="nprogress-style">
#nprogress { display: none }
</style>
<!--[if lte IE 10]>
<script
src="https://as.alipayobjects.com/g/component/??console-polyfill/0.2.2/index.js,media-match/2.0.2/media.match.min.js"></script>
<![endif]-->
<script>
if (!window.Intl) {
document.writeln('<script src="https://as.alipayobjects.com/g/component/intl/1.0.1/??Intl.js,locale-data/jsonp/en.js,locale-data/jsonp/zh.js">' + '<' + '/script>');
}
if (!window.Promise) {
document.writeln('<script src="https://as.alipayobjects.com/g/component/es6-promise/3.2.2/es6-promise.min.js"' + '>' + '<' + '/' + 'script>');
}
</script>
<script>
// Enable Google Analytics
if (!location.port) {
/* eslint-disable */
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-72788897-1', 'auto');
ga('send', 'pageview');
/* eslint-enable */
}
</script>
</head>
<body>
<div id="react-content">
<div class="page-wrapper" data-reactroot="" data-reactid="1" data-react-checksum="-4248738"><header id="header" class="clearfix" data-reactid="2"><div class="ant-row" data-reactid="3"><div class="ant-col-xs-24 ant-col-sm-24 ant-col-md-6 ant-col-lg-4" data-reactid="4"><a id="logo" href="/" data-reactid="5"><img alt="logo" src="https://t.alipayobjects.com/images/rmsweb/T1B9hfXcdvXXXXXXXX.svg" data-reactid="6"/><span data-reactid="7">Ant Design</span></a></div><div class="ant-col-xs-0 ant-col-sm-0 ant-col-md-18 ant-col-lg-20" data-reactid="8"><div id="search-box" data-reactid="9"><div class="ant-select ant-select-combobox ant-select-enabled" data-reactid="10"><div class="ant-select-selection
ant-select-selection--single" role="combobox" aria-autocomplete="list" aria-haspopup="true" aria-expanded="false" data-reactid="11"><div class="ant-select-selection__rendered" data-reactid="12"><div style="display:block;user-select:none;-webkit-user-select:none;" unselectable="unselectable" class="ant-select-selection__placeholder" data-reactid="13">Search Components...</div><ul data-reactid="14"><li class="ant-select-search ant-select-search--inline" data-reactid="15"><div class="ant-select-search__field__wrap" data-reactid="16"><input value="" class="ant-select-search__field" data-reactid="17"/><span class="ant-select-search__field__mirror" data-reactid="18"></span></div></li></ul></div><span class="ant-select-arrow" style="user-select:none;-webkit-user-select:none;" unselectable="unselectable" data-reactid="19"><b data-reactid="20"></b></span></div></div></div><button type="button" class="ant-btn ant-btn-ghost ant-btn-sm lang" data-reactid="21"><span data-reactid="22">中文</span></button><ul class="ant-menu ant-menu-horizontal ant-menu-light ant-menu-root" role="menu" aria-activedescendant="" id="nav" tabindex="0" data-reactid="23"><li class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="24"><a href="/" data-reactid="25"><span data-reactid="26">Home</span></a></li><li class="ant-menu-item-selected ant-menu-item" role="menuitem" aria-selected="true" data-reactid="27"><a href="/docs/spec/introduce" data-reactid="28"><span data-reactid="29">Specification</span></a></li><li class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="30"><a href="/docs/react/introduce" data-reactid="31"><span data-reactid="32">Components</span></a></li><li class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="33"><a href="/docs/pattern/navigation" data-reactid="34"><span data-reactid="35">Pattern</span></a></li><li class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="36"><a href="/docs/practice/cases" data-reactid="37"><span data-reactid="38">Practice</span></a></li><li class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="39"><a href="/docs/resource/download" data-reactid="40"><span data-reactid="41">Resource</span></a></li></ul></div></div></header><div class="main-wrapper" data-reactid="42"><div class="ant-row" data-reactid="43"><div class="ant-col-xs-24 ant-col-sm-24 ant-col-md-6 ant-col-lg-4" data-reactid="44"><ul class="ant-menu ant-menu-inline aside-container ant-menu-light ant-menu-root" role="menu" aria-activedescendant="" tabindex="0" data-reactid="45"><li style="padding-left:24px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="46"><a href="/docs/spec/introduce" data-reactid="47">Ant Design</a></li><li style="padding-left:24px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="48"><a href="/docs/spec/feature" data-reactid="49">Features</a></li><li class="ant-menu-submenu-inline ant-menu-submenu-open ant-menu-submenu-selected ant-menu-submenu" data-reactid="50"><div style="padding-left:24px;" class="ant-menu-submenu-title" aria-expanded="true" aria-owns="Principles$Menu" aria-haspopup="true" data-reactid="51"><h4 data-reactid="52">Principles</h4></div><ul class="ant-menu ant-menu-inline ant-menu-sub" role="menu" aria-activedescendant="" id="Principles$Menu" data-reactid="53"><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="54"><a href="/docs/spec/principle" data-reactid="55">Introduction</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="56"><a href="/docs/spec/proximity" data-reactid="57">Proximity</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="58"><a href="/docs/spec/alignment" data-reactid="59">Alignment</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="60"><a href="/docs/spec/contrast" data-reactid="61">Contrast</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="62"><a href="/docs/spec/repetition" data-reactid="63">Repetition</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="64"><a href="/docs/spec/direct" data-reactid="65">Make it Direct</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="66"><a href="/docs/spec/stay" data-reactid="67">Stay on the Page</a></li><li style="padding-left:48px;" class="ant-menu-item-selected ant-menu-item" role="menuitem" aria-selected="true" data-reactid="68"><a href="/docs/spec/lightweight" data-reactid="69">Keep it Lightweight</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="70"><a href="/docs/spec/invitation" data-reactid="71">Provide an Invitation</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="72"><a href="/docs/spec/transition" data-reactid="73">Use Transition</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="74"><a href="/docs/spec/reaction" data-reactid="75">React Immediately</a></li></ul></li><li class="ant-menu-submenu-inline ant-menu-submenu-open ant-menu-submenu" data-reactid="76"><div style="padding-left:24px;" class="ant-menu-submenu-title" aria-expanded="true" aria-owns="Design Fundamental$Menu" aria-haspopup="true" data-reactid="77"><h4 data-reactid="78">Design Fundamental</h4></div><ul class="ant-menu ant-menu-inline ant-menu-sub" role="menu" aria-activedescendant="" id="Design Fundamental$Menu" data-reactid="79"><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="80"><a href="/docs/spec/font" data-reactid="81">Font</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="82"><a href="/docs/spec/typography" data-reactid="83">Typography</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="84"><a href="/docs/spec/colors" data-reactid="85">Colors</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="86"><a href="/docs/spec/layout" data-reactid="87">Layout</a></li><li style="padding-left:48px;" class="ant-menu-item" role="menuitem" aria-selected="false" data-reactid="88"><a href="/docs/spec/motion" data-reactid="89">Motion</a></li></ul></li></ul></div><div class="main-container ant-col-xs-24 ant-col-sm-24 ant-col-md-18 ant-col-lg-20" data-reactid="90"><article class="markdown" data-reactid="91"><h1 data-reactid="92"><!-- react-text: 93 -->Keep it Lightweight<!-- /react-text --><a class="edit-button" href="https://github.com/ant-design/ant-design/blob/master/docs/spec/lightweight.en-US.md" data-reactid="94"><i class="anticon anticon-edit" data-reactid="95"></i></a></h1><section class="markdown" data-reactid="96"><p data-reactid="97"><!-- react-text: 98 -->Fittss Law is an ergonomic principle that ties the size of a target and its contextual proximity to ease of use.In other words, if a tool is close at hand and large enough to target, then we can improve the users interaction. Putting tools in context makes for lightweight interaction.<!-- /react-text --></p><blockquote data-reactid="99"><p data-reactid="100"><img src="https://os.alipayobjects.com/rmsportal/wAcbQmeqTWDqsnu.png" width="150" data-reactid="101"/><!-- react-text: 102 -->
<!-- /react-text --><strong data-reactid="103"><!-- react-text: 104 --> Fitts&#x27;s Law <!-- /react-text --></strong><!-- react-text: 105 -->: The time to acquire a target is a function of the distance to and size of the target. It is proportional to the distance to the target and inversely proportional to the width of the target.<!-- /react-text --></p></blockquote></section><section class="toc" data-reactid="106"><ul data-reactid="107"><li data-reactid="108"><a class="bisheng-toc-h2" href="#Always-Visible-Tools" data-reactid="109"><!-- react-text: 110 -->Always-Visible Tools<!-- /react-text --></a></li><li data-reactid="111"><a class="bisheng-toc-h2" href="#Hover-Reveal-Tools" data-reactid="112"><!-- react-text: 113 -->Hover-Reveal Tools<!-- /react-text --></a></li><li data-reactid="114"><a class="bisheng-toc-h2" href="#Toggle-Reveal-Tools" data-reactid="115"><!-- react-text: 116 -->Toggle-Reveal Tools<!-- /react-text --></a></li><li data-reactid="117"><a class="bisheng-toc-h2" href="#Interaction-in-Context" data-reactid="118"><!-- react-text: 119 -->Interaction in Context<!-- /react-text --></a></li><li data-reactid="120"><a class="bisheng-toc-h2" href="#Visible-Area-≠-Clickable-Area" data-reactid="121"><!-- react-text: 122 -->Visible Area ≠ Clickable Area<!-- /react-text --></a></li></ul></section><section class="markdown" data-reactid="123"><h2 id="Always-Visible-Tools" data-reactid="124"><span data-reactid="125"><!-- react-text: 126 -->Always-Visible Tools<!-- /react-text --></span><a href="#Always-Visible-Tools" class="anchor" data-reactid="127">#</a></h2><div class="preview-image-boxes clearfix" data-reactid="128"><div class="preview-image-box" data-reactid="129"><div class="preview-image-wrapper false false" data-reactid="130"><img class="preview-img" src="https://os.alipayobjects.com/rmsportal/sfytaOSssRrdYFg.png" alt="example of Always-Visible Tools, from Zhihu" data-reactid="131"/></div><div class="preview-image-title" data-reactid="132">example of Always-Visible Tools, from Zhihu</div><div class="preview-image-description" data-reactid="133">Status No.1: A clear clickable area makes it easier to highlight the button on the page.<br>Status No.2: As hovering over the button, the mouse pointer turns into a hand symbol, and the fill colour of the button changes to a dark colour, which provides a clear call to action.<br>Status No.3: The style of the button obviously changes once clicked.</div><!-- react-empty: 134 --></div></div><p data-reactid="135"><!-- react-text: 136 -->If an action is critical, expose it directly in the interface and keep it always visible.<!-- /react-text --></p><p data-reactid="137"><br data-reactid="138"/></p><hr data-reactid="139"/><h2 id="Hover-Reveal-Tools" data-reactid="140"><span data-reactid="141"><!-- react-text: 142 -->Hover-Reveal Tools<!-- /react-text --></span><a href="#Hover-Reveal-Tools" class="anchor" data-reactid="143">#</a></h2><div class="preview-image-boxes clearfix" data-reactid="144"><div class="preview-image-box" data-reactid="145"><div class="preview-image-wrapper false false" data-reactid="146"><img class="preview-img" src="https://os.alipayobjects.com/rmsportal/AUiWMlbxCvpBFyA.png" alt="example of Hover-Reveal Tools" data-reactid="147"/></div><div class="preview-image-title" data-reactid="148">example of Hover-Reveal Tools</div><div class="preview-image-description" data-reactid="149">On mouse hover, the tools are revealed.</div><!-- react-empty: 150 --></div></div><p data-reactid="151"><!-- react-text: 152 -->Instead of making Contextual Tools always visible, we can show them on demand. One way to do this is to reveal the tools when the user pauses the mouse over an object.<!-- /react-text --></p><p data-reactid="153"><br data-reactid="154"/></p><hr data-reactid="155"/><h2 id="Toggle-Reveal-Tools" data-reactid="156"><span data-reactid="157"><!-- react-text: 158 -->Toggle-Reveal Tools<!-- /react-text --></span><a href="#Toggle-Reveal-Tools" class="anchor" data-reactid="159">#</a></h2><div class="preview-image-boxes clearfix" data-reactid="160"><div class="preview-image-box" data-reactid="161"><div class="preview-image-wrapper false false" data-reactid="162"><img class="preview-img" src="https://os.alipayobjects.com/rmsportal/uGWcpAFgWdynxBy.png" alt="example of Toggle-Reveal Tools" data-reactid="163"/></div><div class="preview-image-title" data-reactid="164">example of Toggle-Reveal Tools</div><div class="preview-image-description" data-reactid="165">The table reveals an input box from the text only when the edit mode is turned on for the area.</div><!-- react-empty: 166 --></div></div><p data-reactid="167"><!-- react-text: 168 -->Toggle a tool mode for an area or page when the actions are not the main flow. The tools to accomplish this are revealed on the activation of the toggle.<!-- /react-text --></p><p data-reactid="169"><br data-reactid="170"/></p><hr data-reactid="171"/><h2 id="Interaction-in-Context" data-reactid="172"><span data-reactid="173"><!-- react-text: 174 -->Interaction in Context<!-- /react-text --></span><a href="#Interaction-in-Context" class="anchor" data-reactid="175">#</a></h2><div class="preview-image-boxes clearfix" data-reactid="176"><div class="preview-image-box" data-reactid="177"><div class="preview-image-wrapper false false" data-reactid="178"><img class="preview-img" src="https://os.alipayobjects.com/rmsportal/STvIHSgnVAHOVHl.png" alt="good example" data-reactid="179"/></div><div class="preview-image-title" data-reactid="180">good example</div><div class="preview-image-description" data-reactid="181">On mouse hover, the Tooltips are revealed to prompt the user to copy the text.</div><!-- react-empty: 182 --></div></div><div class="preview-image-boxes clearfix" data-reactid="183"><div class="preview-image-box" data-reactid="184"><div class="preview-image-wrapper false false" data-reactid="185"><img class="preview-img" src="https://os.alipayobjects.com/rmsportal/aRihOoBCQHGATBA.png" alt="good example" data-reactid="186"/></div><div class="preview-image-title" data-reactid="187">good example</div><div class="preview-image-description" data-reactid="188">When highlighted or double-clicked, the text is automatically copied to the clipboard. The system helps automate the user flow and brings a surprise.</div><!-- react-empty: 189 --></div></div><div class="preview-image-boxes clearfix" data-reactid="190"><div class="preview-image-box" data-reactid="191"><div class="preview-image-wrapper false false" data-reactid="192"><img class="preview-img" src="https://os.alipayobjects.com/rmsportal/MfbnQfAJhQfIODY.png" alt="bad example" data-reactid="193"/></div><div class="preview-image-title" data-reactid="194">bad example</div><div class="preview-image-description" data-reactid="195">The copy icon appears near the copyable text.</div><!-- react-empty: 196 --></div></div><p data-reactid="197"><!-- react-text: 198 -->If the actions are secondary or alternative, hide Contextual Tools in the user flow, in order to keep visual clutter to a minimum, reduce the load of cognition burden and bring a surprise.<!-- /react-text --></p><p data-reactid="199"><!-- react-text: 200 -->Some relative knowledge of <!-- /react-text --><a href="/docs/spec/invitation" data-reactid="201">Providing an Invitation</a><!-- react-text: 202 --> can also be applied.<!-- /react-text --></p><p data-reactid="203"><br data-reactid="204"/></p><hr data-reactid="205"/><h2 id="Visible-Area-≠-Clickable-Area" data-reactid="206"><span data-reactid="207"><!-- react-text: 208 -->Visible Area ≠ Clickable Area<!-- /react-text --></span><a href="#Visible-Area-≠-Clickable-Area" class="anchor" data-reactid="209">#</a></h2><div class="preview-image-boxes clearfix" data-reactid="210"><div class="preview-image-box" data-reactid="211"><div class="preview-image-wrapper false false" data-reactid="212"><img class="preview-img" src="https://os.alipayobjects.com/rmsportal/bCrBxGPJiDvkyOH.png" alt="example of hypertext hot spot" data-reactid="213"/></div><div class="preview-image-title" data-reactid="214">example of hypertext hot spot</div><div class="preview-image-description" data-reactid="215">When hovering on the cell in which the hypertext is positioned, the mouse turns from a cursor to a hand symbol. Click it and jump to another page.</div><!-- react-empty: 216 --></div></div><p data-reactid="217"><!-- react-text: 218 -->The clickable area of hypertext is affected by the length of the string in a cell. The whole cell can be set to a hot spot in order to be triggered easier.<!-- /react-text --></p><p data-reactid="219"><br data-reactid="220"/></p><div class="preview-image-boxes clearfix" data-reactid="221"><div class="preview-image-box" data-reactid="222"><div class="preview-image-wrapper false false" data-reactid="223"><img class="preview-img" src="https://os.alipayobjects.com/rmsportal/dSehXwUuXDFDhJO.png" alt="example of button hot spot" data-reactid="224"/></div><div class="preview-image-title" data-reactid="225">example of button hot spot</div><div class="preview-image-description" data-reactid="226">Move the mouse near the button and activate the hover state.</div><!-- react-empty: 227 --></div></div><p data-reactid="228"><!-- react-text: 229 -->Increase the clickable hot spot to strengthen the responsiveness rather than increase the size of the button.<!-- /react-text --></p><blockquote data-reactid="230"><p data-reactid="231"><!-- react-text: 232 -->Note that it is especially suited for Mobile.<!-- /react-text --></p></blockquote></section></article></div></div><div class="ant-row" data-reactid="233"><div class="ant-col-xs-24 ant-col-sm-24 ant-col-md-18 ant-col-md-offset-6 ant-col-lg-20 ant-col-lg-offset-4" data-reactid="234"><section class="prev-next-nav" data-reactid="235"><a class="prev-page" href="/docs/spec/stay" data-reactid="236">Stay on the Page</a><a class="next-page" href="/docs/spec/invitation" data-reactid="237">Provide an Invitation</a></section></div></div></div><footer id="footer" data-reactid="238"><ul data-reactid="239"><li data-reactid="240"><h2 data-reactid="241">GitHub</h2><div data-reactid="242"><a target="_blank " href="https://github.com/ant-design/ant-design" data-reactid="243"><span data-reactid="244">Repository</span></a></div><div data-reactid="245"><a target="_blank" rel="noopener noreferrer" href="https://github.com/dvajs/dva" data-reactid="246">dva</a><!-- react-text: 247 --> - <!-- /react-text --><span data-reactid="248">Framework</span></div><div data-reactid="249"><a target="_blank" rel="noopener noreferrer" href="https://github.com/dvajs/dva-cli" data-reactid="250">dva-cli</a><!-- react-text: 251 --> -<!-- /react-text --><span data-reactid="252">Scaffold</span></div><div data-reactid="253"><a target="_blank" rel="noopener noreferrer" href="http://ant-tool.github.io" data-reactid="254">ant-tool</a><!-- react-text: 255 --> - <!-- /react-text --><span data-reactid="256">Developer Tools</span></div></li><li data-reactid="257"><h2 data-reactid="258"><span data-reactid="259">Links</span></h2><div data-reactid="260"><a href="http://mobile.ant.design" data-reactid="261">Ant Design Mobile</a><span data-reactid="262"> - </span><span data-reactid="263">Mobile</span></div><div data-reactid="264"><a href="https://g2.alipay.com/" data-reactid="265">G2</a><span data-reactid="266"> - </span><span data-reactid="267">Data Visualization</span></div><div data-reactid="268"><a href="https://antv.alipay.com/" data-reactid="269">AntV</a><span data-reactid="270"> - </span><span data-reactid="271">Data Visualization Specification</span></div><div data-reactid="272"><a href="http://motion.ant.design" data-reactid="273">Ant Motion</a><span data-reactid="274"> - </span><span data-reactid="275">Motion</span></div><div data-reactid="276"><a href="http://library.ant.design/" data-reactid="277">AntD Library</a><span data-reactid="278"> - </span><span data-reactid="279">Axure library of Ant Design</span></div><div data-reactid="280"><a href="http://ux.ant.design" data-reactid="281">Ant UX</a><span data-reactid="282"> - </span><span data-reactid="283">Sitemap Template</span></div></li><li data-reactid="284"><h2 data-reactid="285"><span data-reactid="286">Community</span></h2><div data-reactid="287"><a rel="noopener noreferrer" href="/changelog" data-reactid="288"><span data-reactid="289">Change Log</span></a></div><div data-reactid="290"><a target="_blank" rel="noopener noreferrer" href="https://github.com/ant-design/ant-design/issues" data-reactid="291"><span data-reactid="292">Feedback</span></a></div><div data-reactid="293"><a target="_blank" rel="noopener noreferrer" href="https://gitter.im/ant-design/ant-design" data-reactid="294"><span data-reactid="295">Chat Room</span></a></div><div data-reactid="296"><a target="_blank" rel="noopener noreferrer" href="https://github.com/ant-design/ant-design/issues/new" data-reactid="297"><span data-reactid="298">Bug Report</span></a></div></li><li data-reactid="299"><div data-reactid="300"><!-- react-text: 301 -->©2016 <!-- /react-text --><span data-reactid="302">Created by Ant UED</span></div><div data-reactid="303"><!-- react-text: 304 -->Powered by <!-- /react-text --><a href="https://github.com/benjycui/bisheng" data-reactid="305">BiSheng</a></div><div style="margin-top:10px;" data-reactid="306"><span data-reactid="307">Version: </span><div class="ant-select-sm ant-select ant-select-enabled" data-reactid="308"><div class="ant-select-selection
ant-select-selection--single" role="combobox" aria-autocomplete="list" aria-haspopup="true" aria-expanded="false" tabindex="0" data-reactid="309"><div class="ant-select-selection__rendered" data-reactid="310"><div class="ant-select-selection-selected-value" title="2.6.4" style="display:block;opacity:1;" data-reactid="311">2.6.4</div></div><span class="ant-select-arrow" style="user-select:none;-webkit-user-select:none;" unselectable="unselectable" data-reactid="312"><b data-reactid="313"></b></span></div></div></div></li></ul></footer></div>
</div>
<script>
function isZhCN(pathname) {
return /-cn\/?$/.test(pathname);
}
function getLocalizedPathname(path, zhCN) {
var pathname = path.startsWith('/') ? path : '/' + path;
if (!zhCN) { // to enUS
return /\/?index-cn/.test(pathname) ? '/' : pathname.replace('-cn', '');
} else if (pathname === '/') {
return '/index-cn';
} else if (pathname.endsWith('/')) {
return pathname.replace(/\/$/, '-cn/');
}
return pathname + '-cn';
}
var queryString = location.search;
if (queryString) {
var pathname = location.pathname;
var isZhCNConfig = queryString.indexOf('zh-CN') > -1;
if (isZhCNConfig !== isZhCN(pathname)) {
location.pathname = getLocalizedPathname(pathname, isZhCNConfig)
}
}
</script>
<script src="/common.js"></script>
<script src="/index.js"></script>
</body>
</html>