Scribunto.html 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498
  1. <!DOCTYPE html>
  2. <html dir="ltr">
  3. <head>
  4. <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
  5. <title>Options/Scribunto - XOWA</title>
  6. <link rel="shortcut icon" href="https://gnosygnu.github.io/xowa/xowa_logo.png" />
  7. <link rel="stylesheet" href="https://gnosygnu.github.io/xowa/xowa_common.css" type="text/css">
  8. </head>
  9. <body class="mediawiki ltr sitedir-ltr ns-0 ns-subject skin-vector action-submit vector-animateLayout" spellcheck="false">
  10. <div id="mw-page-base" class="noprint"></div>
  11. <div id="mw-head-base" class="noprint"></div>
  12. <div id="content" class="mw-body">
  13. <h1 id="firstHeading" class="firstHeading"><span>Options/Scribunto</span></h1>
  14. <div id="bodyContent" class="mw-body-content">
  15. <div id="siteSub">From XOWA: the free, open-source, offline wiki application</div>
  16. <div id="contentSub"></div>
  17. <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr">
  18. <div id='xocfg_body'>
  19. <!-- TEXT:err_msg -->
  20. <div id='xocfg_err'></div>
  21. <div>
  22. <!-- BTN:info -->
  23. <span class='xoimg_btn_x16 xoimg_help_tip' href='javascript:void(0)' onclick='return xo.cfg_edit.help__toggle_all()' title='toggle all help'>&nbsp;</span>
  24. <!-- COMBO:cfg_grps -->
  25. <select id='xocfg_nav_select' onchange='xo.cfg_edit.select__send(this);' onkeyup='xo.cfg_edit.select__by_keypress(event, this);' accesskey='l'>
  26. <option value='xowa.app.security' >App - Security</option>
  27. <option value='xowa.app.startup' >App - Startup</option>
  28. <option value='xowa.app.dbs' >App - Databases</option>
  29. <option value='xowa.app.update' >App - Update</option>
  30. <option value='xowa.gui.general' >Gui - General</option>
  31. <option value='xowa.gui.tabs' >Gui - Tabs</option>
  32. <option value='xowa.gui.url_bar' >Gui - Address bar</option>
  33. <option value='xowa.gui.menus' >Gui - Menus</option>
  34. <option value='xowa.gui.shortcuts' >Gui - Shortcuts</option>
  35. <option value='xowa.gui.nightmode' >Gui - Nightmode</option>
  36. <option value='xowa.wiki.hdumps' >Wiki - HTML Databases</option>
  37. <option value='xowa.wiki.edit' >Wiki - Editing</option>
  38. <option value='xowa.bldr.general' >Import - General</option>
  39. <option value='xowa.bldr.db' >Import - Database</option>
  40. <option value='xowa.bldr.page_sync' >Import - Page sync</option>
  41. <option value='xowa.bldr.dansguardian' >Import - Dansguardian</option>
  42. <option value='xowa.html.css' >HTML - CSS</option>
  43. <option value='xowa.html.page' >HTML - Page</option>
  44. <option value='xowa.html.tidy' >HTML - Tidy</option>
  45. <option value='xowa.html.scripting' >HTML - Scripting</option>
  46. <option value='xowa.files.general' >Files - General</option>
  47. <option value='xowa.files.apps' >Files - Apps</option>
  48. <option value='xowa.addon.search' >Addon - Search</option>
  49. <option value='xowa.addon.fulltext_search' >Addon - Full-text search</option>
  50. <option value='xowa.addon.category' >Addon - Category</option>
  51. <option value='xowa.addon.http_server' >Addon - HTTP Server</option>
  52. <option value='xowa.addon.scribunto' selected='selected'>Addon - Scribunto</option>
  53. <option value='xowa.addon.math' >Addon - Math</option>
  54. <option value='xowa.addon.score' >Addon - Score</option>
  55. <option value='xowa.addon.popups' >Addon - Popups</option>
  56. <option value='xowa.addon.wikibase' >Addon - Wikidata</option>
  57. <option value='xowa.dev.general' >Dev - General</option>
  58. <option value='xowa.app.settings' >App - Settings</option>
  59. </select>
  60. <!-- LINK:cfg_link -->
  61. <div style='float:right;margin:2px 7px;'>
  62. <a id='options_lnk'>options link</a>
  63. </div>
  64. </div>
  65. <div id='cfg_grps'>
  66. <!-- TEXT:page_help -->
  67. <div>
  68. <p id='page_help_para'></p>
  69. </div>
  70. <h2>General</h2>
  71. <div class="xocfg_row flex_div">
  72. <!-- BTN:help_item -->
  73. <div class='xocfg_itm_help'>
  74. <span class='xoimg_btn_x16 xoimg_help_tip' href='javascript:void(0)' onclick='return xo.help.toggle("xowa.addon.scribunto.enabled")' title='view more info'>&nbsp;</span>
  75. </div>
  76. <!-- TEXT:key -->
  77. <div id='xowa.addon.scribunto.enabled__name' class='xocfg_itm_name'>Enabled</div>
  78. <!-- BTN:undo -->
  79. <div id='xowa.addon.scribunto.enabled__undo' data-xocfg-type='bool' class='xocfg_itm_delete xocfg_itm_hide'>
  80. <span class='xoimg_btn_x16 xoimg_list_undo' onclick='return xo.cfg_edit.delete__send("xowa.addon.scribunto.enabled")' title="reset to &quot;y&quot;">&nbsp;</span>
  81. </div>
  82. <!-- TEXT:val -->
  83. <div class='xocfg_itm_data'>
  84. <input id="xowa.addon.scribunto.enabled" data-xocfg-key="xowa.addon.scribunto.enabled" data-xocfg-type="bool" accesskey="d" class="xocfg_data__bool" type="checkbox" checked="checked"></input></div>
  85. <!-- HIDDEN:key,ctx -->
  86. <input type='hidden' id='xowa.addon.scribunto.enabled__key_box' value='xowa.addon.scribunto.enabled'></input>
  87. <input type='hidden' id='xowa.addon.scribunto.enabled__ctx_box' value='app'></input>
  88. </div>
  89. <!-- DIV:help -->
  90. <div id='xowa.addon.scribunto.enabled_help_div' class='xohelp_div'>
  91. <div id='xowa.addon.scribunto.enabled_help_msg' class='xohelp_msg'><p>Handles &#123;&#123;#invoke:Module:Module_name|Function_name|Arguments}}
  92. </p>
  93. <ul>
  94. <li> <b>checked</b> to process #invoke statements
  95. </li>
  96. <li> <b>unchecked</b> to render #invoke as text only
  97. </li>
  98. </ul>
  99. </div>
  100. </div>
  101. <div class="xocfg_row flex_div">
  102. <!-- BTN:help_item -->
  103. <div class='xocfg_itm_help'>
  104. <span class='xoimg_btn_x16 xoimg_help_tip' href='javascript:void(0)' onclick='return xo.help.toggle("xowa.addon.scribunto.engine")' title='view more info'>&nbsp;</span>
  105. </div>
  106. <!-- TEXT:key -->
  107. <div id='xowa.addon.scribunto.engine__name' class='xocfg_itm_name'>Lua engine</div>
  108. <!-- BTN:undo -->
  109. <div id='xowa.addon.scribunto.engine__undo' data-xocfg-type='list:xowa.addon.scribunto.engine' class='xocfg_itm_delete xocfg_itm_hide'>
  110. <span class='xoimg_btn_x16 xoimg_list_undo' onclick='return xo.cfg_edit.delete__send("xowa.addon.scribunto.engine")' title="reset to &quot;luaj&quot;">&nbsp;</span>
  111. </div>
  112. <!-- TEXT:val -->
  113. <div class='xocfg_itm_data'>
  114. <select id="xowa.addon.scribunto.engine" data-xocfg-key="xowa.addon.scribunto.engine" data-xocfg-type="list:xowa.addon.scribunto.engine" accesskey="d" class="xocfg_data__list" size="2">
  115. <option value="luaj" selected="selected">luaj</option>
  116. <option value="lua">lua</option>
  117. </select>
  118. </div>
  119. <!-- HIDDEN:key,ctx -->
  120. <input type='hidden' id='xowa.addon.scribunto.engine__key_box' value='xowa.addon.scribunto.engine'></input>
  121. <input type='hidden' id='xowa.addon.scribunto.engine__ctx_box' value='app'></input>
  122. </div>
  123. <!-- DIV:help -->
  124. <div id='xowa.addon.scribunto.engine_help_div' class='xohelp_div'>
  125. <div id='xowa.addon.scribunto.engine_help_msg' class='xohelp_msg'><p>Select lua engine. See <a href="/wiki/App/Xtn/Mediawiki/Scribunto#Engines" id="xolnki_29" title="App/Xtn/Mediawiki/Scribunto" tabindex="-1">App/Xtn/Mediawiki/Scribunto#Engines</a>
  126. </p>
  127. <ul>
  128. <li> <b>luaj</b>: lua code will be processed through the <a href="http://luaj.org/luaj/README.html" rel="nofollow" class="external text" tabindex="-1">luaj</a> jar at /bin/any/java/luaj/.
  129. </li>
  130. <li> <b>lua</b> : lua code will be processed through the <a href="http://lua.org/about" rel="nofollow" class="external text" tabindex="-1">lua</a> binary at /bin/os_name/lua/.
  131. </li>
  132. </ul>
  133. <p><b>Note for Lua engine users:</b>
  134. </p>
  135. <ul>
  136. <li> <b>executable permissions</b>: Linux / Mac OS X users may need to grant execute permission to the Lua binary. To ensure proper setup, please do the following:
  137. <ul>
  138. <li> Open <a href="/wiki/Diagnostics/Scribunto/All" id="xolnki_30" title="Diagnostics/Scribunto/All" class="xowa-visited" tabindex="-1">Diagnostics/Scribunto/All</a>
  139. </li>
  140. <li> If the page fails, then see <a href="/wiki/App/Xtn/Mediawiki/Scribunto#Permissions" id="xolnki_31" title="App/Xtn/Mediawiki/Scribunto" tabindex="-1">App/Xtn/Mediawiki/Scribunto#Permissions</a>
  141. </li>
  142. </ul>
  143. </li>
  144. <li> <b>NTFS partitions</b>: Linux users with NTFS partitions will need to run a command like the following:
  145. </li>
  146. </ul>
  147. <dl>
  148. <dd> <code>sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000 /dev/whatever /mnt/whatever</code>
  149. </dd>
  150. <dd> See <a href="http://askubuntu.com/questions/11840/how-do-i-use-chmod-on-an-ntfs-or-fat32-partition" rel="nofollow" class="external free" tabindex="-1">http://askubuntu.com/questions/11840/how-do-i-use-chmod-on-an-ntfs-or-fat32-partition</a> (Thanks to Anselm)
  151. </dd>
  152. </dl>
  153. </div>
  154. </div>
  155. <h2>Lua options</h2>
  156. <div class="xocfg_row flex_div">
  157. <!-- BTN:help_item -->
  158. <div class='xocfg_itm_help'>
  159. <span class='xoimg_btn_x16 xoimg_help_tip' href='javascript:void(0)' onclick='return xo.help.toggle("xowa.addon.scribunto.lua.cmd")' title='view more info'>&nbsp;</span>
  160. </div>
  161. <!-- TEXT:key -->
  162. <div id='xowa.addon.scribunto.lua.cmd__name' class='xocfg_itm_name'>Lua path</div>
  163. <!-- BTN:undo -->
  164. <div id='xowa.addon.scribunto.lua.cmd__undo' data-xocfg-type='io.cmd' class='xocfg_itm_delete xocfg_itm_hide'>
  165. <span class='xoimg_btn_x16 xoimg_list_undo' onclick='return xo.cfg_edit.delete__send("xowa.addon.scribunto.lua.cmd")' title="reset to &quot;~{<>bin_plat_dir<>}lua\lua5.1.exe|&quot;">&nbsp;</span>
  166. </div>
  167. <!-- TEXT:val -->
  168. <div class='xocfg_itm_data'>
  169. <input class="xocfg_data__io_cmd__exe__txt" id="xowa.addon.scribunto.lua.cmd-exe" data-xocfg-key="xowa.addon.scribunto.lua.cmd" data-xocfg-type="io.cmd-exe" accesskey="d" type="text" value="~{<>bin_plat_dir<>}lua\lua5.1.exe"></input>
  170. <span class="xoimg_btn_x16 xoimg_app_configure" onclick='xo.cfg_edit.io_cmd__select("file", "xowa.addon.scribunto.lua.cmd-exe", "Please select a file.");'>&nbsp;</span><br/>
  171. <input class="xocfg_data__io_cmd__arg__txt" id="xowa.addon.scribunto.lua.cmd-arg" data-xocfg-key="xowa.addon.scribunto.lua.cmd" data-xocfg-type="io.cmd-arg" accesskey="d" type="text" value="">
  172. </div>
  173. <!-- HIDDEN:key,ctx -->
  174. <input type='hidden' id='xowa.addon.scribunto.lua.cmd__key_box' value='xowa.addon.scribunto.lua.cmd'></input>
  175. <input type='hidden' id='xowa.addon.scribunto.lua.cmd__ctx_box' value='app'></input>
  176. </div>
  177. <!-- DIV:help -->
  178. <div id='xowa.addon.scribunto.lua.cmd_help_div' class='xohelp_div'>
  179. <div id='xowa.addon.scribunto.lua.cmd_help_msg' class='xohelp_msg'><p>Path to Lua binary. Only applies to the <code>lua</code>engine.
  180. </p>
  181. </div>
  182. </div>
  183. <div class="xocfg_row flex_div">
  184. <!-- BTN:help_item -->
  185. <div class='xocfg_itm_help'>
  186. <span class='xoimg_btn_x16 xoimg_help_tip' href='javascript:void(0)' onclick='return xo.help.toggle("xowa.addon.scribunto.lua.timeout")' title='view more info'>&nbsp;</span>
  187. </div>
  188. <!-- TEXT:key -->
  189. <div id='xowa.addon.scribunto.lua.timeout__name' class='xocfg_itm_name'>Lua timeout</div>
  190. <!-- BTN:undo -->
  191. <div id='xowa.addon.scribunto.lua.timeout__undo' data-xocfg-type='int' class='xocfg_itm_delete xocfg_itm_hide'>
  192. <span class='xoimg_btn_x16 xoimg_list_undo' onclick='return xo.cfg_edit.delete__send("xowa.addon.scribunto.lua.timeout")' title="reset to &quot;4000&quot;">&nbsp;</span>
  193. </div>
  194. <!-- TEXT:val -->
  195. <div class='xocfg_itm_data'>
  196. <input id="xowa.addon.scribunto.lua.timeout" data-xocfg-key="xowa.addon.scribunto.lua.timeout" data-xocfg-type="int" accesskey="d" class="xocfg_data__int" type="text" value="4000"></input></div>
  197. <!-- HIDDEN:key,ctx -->
  198. <input type='hidden' id='xowa.addon.scribunto.lua.timeout__key_box' value='xowa.addon.scribunto.lua.timeout'></input>
  199. <input type='hidden' id='xowa.addon.scribunto.lua.timeout__ctx_box' value='app'></input>
  200. </div>
  201. <!-- DIV:help -->
  202. <div id='xowa.addon.scribunto.lua.timeout_help_div' class='xohelp_div'>
  203. <div id='xowa.addon.scribunto.lua.timeout_help_msg' class='xohelp_msg'><p>&#35; of milliseconds before canceling Lua call
  204. </p>
  205. </div>
  206. </div>
  207. <div class="xocfg_row flex_div">
  208. <!-- BTN:help_item -->
  209. <div class='xocfg_itm_help'>
  210. <span class='xoimg_btn_x16 xoimg_help_tip' href='javascript:void(0)' onclick='return xo.help.toggle("xowa.addon.scribunto.lua.timeout_polling")' title='view more info'>&nbsp;</span>
  211. </div>
  212. <!-- TEXT:key -->
  213. <div id='xowa.addon.scribunto.lua.timeout_polling__name' class='xocfg_itm_name'>Lua timeout polling</div>
  214. <!-- BTN:undo -->
  215. <div id='xowa.addon.scribunto.lua.timeout_polling__undo' data-xocfg-type='int' class='xocfg_itm_delete xocfg_itm_hide'>
  216. <span class='xoimg_btn_x16 xoimg_list_undo' onclick='return xo.cfg_edit.delete__send("xowa.addon.scribunto.lua.timeout_polling")' title="reset to &quot;1&quot;">&nbsp;</span>
  217. </div>
  218. <!-- TEXT:val -->
  219. <div class='xocfg_itm_data'>
  220. <input id="xowa.addon.scribunto.lua.timeout_polling" data-xocfg-key="xowa.addon.scribunto.lua.timeout_polling" data-xocfg-type="int" accesskey="d" class="xocfg_data__int" type="text" value="1"></input></div>
  221. <!-- HIDDEN:key,ctx -->
  222. <input type='hidden' id='xowa.addon.scribunto.lua.timeout_polling__key_box' value='xowa.addon.scribunto.lua.timeout_polling'></input>
  223. <input type='hidden' id='xowa.addon.scribunto.lua.timeout_polling__ctx_box' value='app'></input>
  224. </div>
  225. <!-- DIV:help -->
  226. <div id='xowa.addon.scribunto.lua.timeout_polling_help_div' class='xohelp_div'>
  227. <div id='xowa.addon.scribunto.lua.timeout_polling_help_msg' class='xohelp_msg'><p>&#35; of milliseconds before checking for timeout.
  228. For example, with a timeout of 4000:
  229. </p>
  230. <dl>
  231. <dd> A timeout polling of 1 will check roughly 4000 times before timing out.
  232. </dd>
  233. <dd> A timeout polling of 1000 will check roughly 4 times before timing out.
  234. </dd>
  235. </dl>
  236. <p>This setting should be left at 1. It is meant to &quot;tweak&quot; certain outlier situations should they arise.
  237. </p>
  238. </div>
  239. </div>
  240. <div class="xocfg_row flex_div">
  241. <!-- BTN:help_item -->
  242. <div class='xocfg_itm_help'>
  243. <span class='xoimg_btn_x16 xoimg_help_tip' href='javascript:void(0)' onclick='return xo.help.toggle("xowa.addon.scribunto.lua.timeout_busy_wait")' title='view more info'>&nbsp;</span>
  244. </div>
  245. <!-- TEXT:key -->
  246. <div id='xowa.addon.scribunto.lua.timeout_busy_wait__name' class='xocfg_itm_name'>Lua timeout busy wait</div>
  247. <!-- BTN:undo -->
  248. <div id='xowa.addon.scribunto.lua.timeout_busy_wait__undo' data-xocfg-type='int' class='xocfg_itm_delete xocfg_itm_hide'>
  249. <span class='xoimg_btn_x16 xoimg_list_undo' onclick='return xo.cfg_edit.delete__send("xowa.addon.scribunto.lua.timeout_busy_wait")' title="reset to &quot;250&quot;">&nbsp;</span>
  250. </div>
  251. <!-- TEXT:val -->
  252. <div class='xocfg_itm_data'>
  253. <input id="xowa.addon.scribunto.lua.timeout_busy_wait" data-xocfg-key="xowa.addon.scribunto.lua.timeout_busy_wait" data-xocfg-type="int" accesskey="d" class="xocfg_data__int" type="text" value="250"></input></div>
  254. <!-- HIDDEN:key,ctx -->
  255. <input type='hidden' id='xowa.addon.scribunto.lua.timeout_busy_wait__key_box' value='xowa.addon.scribunto.lua.timeout_busy_wait'></input>
  256. <input type='hidden' id='xowa.addon.scribunto.lua.timeout_busy_wait__ctx_box' value='app'></input>
  257. </div>
  258. <!-- DIV:help -->
  259. <div id='xowa.addon.scribunto.lua.timeout_busy_wait_help_div' class='xohelp_div'>
  260. <div id='xowa.addon.scribunto.lua.timeout_busy_wait_help_msg' class='xohelp_msg'><p>&#35; of milliseconds before entering timeout poll
  261. This setting should be left at 250 (or higher). It is also meant to &quot;tweak&quot; certain outlier situations.
  262. <br/>
  263. Background:
  264. </p>
  265. <ul>
  266. <li> On Windows, a sleep call can take 15 ms. This could potentially cause each Lua call to take 15 ms.
  267. </li>
  268. <li> Some pages / templates will call Lua hundreds of times. (For example: the Weather Box on <a href="/site/en.wikipedia.org/wiki/Aruba" tabindex="-1">http://en.wikipedia.org/wiki/Aruba</a> or the Citations on <a href="/site/en.wikipedia.org/wiki/Earth" tabindex="-1">http://en.wikipedia.org/wiki/Earth</a> )
  269. </li>
  270. <li> The busy wait is a primitive way to limit a wait to 1 ms (or less) before entering a more expensive sleep
  271. </li>
  272. <li> A higher timeout busy wait value is more performant, but the disadvantage is that the UI will be locked up for longer
  273. </li>
  274. </ul>
  275. <dl>
  276. <dd> For example, a busy wait of 250 means that the code will loop for 250 milliseconds before entering a sleep.
  277. </dd>
  278. <dd> For sub-second values, this freezing will be unnoticeable
  279. </dd>
  280. </dl>
  281. <p>For reference, here is the corresponding code
  282. </p>
  283. <pre style="overflow:auto;">
  284. long time_bgn = System.currentTimeMillis();
  285. long time_woke = time_bgn;
  286. while (true) {
  287. byte[] rv = stream_read.Data();
  288. if (rv != null) return rv;
  289. long time_now = System.currentTimeMillis();
  290. if (time_now &gt; time_woke + server_timeout_busy_wait) {
  291. if (time_now &gt; time_bgn + server_timeout) throw Xoa_xtn_scribunto.err_(&quot;lua_timeout: timeout={0} cmd={1}&quot;, server_timeout, String_.new_utf8_(cmd_last));
  292. ThreadAdp_.Sleep(server_timeout_polling);
  293. time_woke = System.currentTimeMillis();
  294. }
  295. }
  296. </pre>
  297. </div>
  298. </div>
  299. </div>
  300. </div>
  301. </div>
  302. </div>
  303. </div>
  304. <div id="mw-head" class="noprint">
  305. <div id="left-navigation">
  306. <div id="p-namespaces" class="vectorTabs">
  307. <h3>Namespaces</h3>
  308. <ul>
  309. <li id="ca-nstab-main" class="selected"><span><a id="ca-nstab-main-href" href="index.html">Page</a></span></li>
  310. </ul>
  311. </div>
  312. </div>
  313. </div>
  314. <div id='mw-panel' class='noprint'>
  315. <div id='p-logo'>
  316. <a style="background-image: url(https://gnosygnu.github.io/xowa/xowa_logo.png);" href="http://xowa.org/" title="Visit the main page"></a>
  317. </div>
  318. <div class="portal" id='xowa-portal-home'>
  319. <h3>XOWA</h3>
  320. <div class="body">
  321. <ul>
  322. <li><a href="http://xowa.org/index.html" title='Visit the main page'>Main page</a></li>
  323. <li><a href="http://xowa.org/screenshots.html" title='See screenshots of XOWA'>Screenshots</a></li>
  324. <li><a href="https://www.youtube.com/watch?v=q0qbXYXEH6M" title="See a video of XOWA Desktop in action">Video</a></li>
  325. <li><a href="http://xowa.org/home/wiki/Help/Download_XOWA.html" title='Download the XOWA application'>Download XOWA</a></li>
  326. <li><a href="http://xowa.org/home/wiki/Dashboard/Image_databases.html" title='Download offline wikis and image databases'>Download wikis</a></li>
  327. </ul>
  328. </div>
  329. </div>
  330. <div class="portal" id='xowa-portal-started'>
  331. <h3>Getting started</h3>
  332. <div class="body">
  333. <ul>
  334. <li><a href="http://xowa.org/home/wiki/App/Setup/System_requirements.html" title='Get XOWA&apos;s system requirements'>Requirements</a></li>
  335. <li><a href="http://xowa.org/home/wiki/App/Setup/Installation.html" title='Get instructions for installing XOWA'>Installation</a></li>
  336. <li><a href="http://xowa.org/home/wiki/App/Import/Simple_Wikipedia.html" title='Learn how to set up Simple Wikipedia'>Simple Wikipedia</a></li>
  337. <li><a href="http://xowa.org/home/wiki/App/Import/English_Wikipedia.html" title='Learn how to set up English Wikipedia'>English Wikipedia</a></li>
  338. <li><a href="http://xowa.org/home/wiki/App/Import/Other_wikis.html" title='Learn how to set up other Wikipedias'>Other Wikipedias</a></li>
  339. </ul>
  340. </div>
  341. </div>
  342. <div class="portal" id='xowa-portal-android'>
  343. <h3>Android</h3>
  344. <div class="body">
  345. <ul>
  346. <li><a href="http://xowa.org/home/wiki/Android/Setup.html" title='Setup XOWA on your Android device'>Setup</a></li>
  347. <li><a href="https://www.youtube.com/watch?v=jsMTBxGweUw" title="See a video of XOWA Android in action">Video</a></li>
  348. </ul>
  349. </div>
  350. </div>
  351. <div class="portal" id='xowa-portal-help'>
  352. <h3>Help</h3>
  353. <div class="body">
  354. <ul>
  355. <li><a href="http://xowa.org/home/wiki/Help/About.html" title='Get more information about XOWA'>About</a></li>
  356. <li><a href="http://xowa.org/home/wiki/Help/Contents.html" title='View a list of help topics'>Contents</a></li>
  357. <li><a href="http://xowa.org/home/wiki/Help/Media.html" title='Read what others have written about XOWA'>Media</a></li>
  358. <li><a href="http://xowa.org/home/wiki/Help/Feedback.html" title='Questions? Comments? Leave feedback for XOWA'>Feedback</a></li>
  359. </ul>
  360. </div>
  361. </div>
  362. <div class="portal" id='xowa-portal-blog'>
  363. <h3>Blog</h3>
  364. <div class="body">
  365. <ul>
  366. <li><a href="http://xowa.org/home/wiki/Blog.html" title='Follow XOWA''s development process'>Current</a></li>
  367. </ul>
  368. </div>
  369. </div>
  370. <div class="portal" id='xowa-portal-links'>
  371. <h3>Links</h3>
  372. <div class="body">
  373. <ul>
  374. <li><a href="http://dumps.wikimedia.org/backup-index.html" title="Get wiki datababase dumps directly from Wikimedia">Wikimedia dumps</a></li>
  375. <li><a href="https://archive.org/search.php?query=xowa" title="Search archive.org for XOWA files">XOWA @ archive.org</a></li>
  376. <li><a href="http://en.wikipedia.org" title="Visit Wikipedia (and compare to XOWA!)">English Wikipedia</a></li>
  377. </ul>
  378. </div>
  379. </div>
  380. <div class="portal" id='xowa-portal-donate'>
  381. <h3>Donate</h3>
  382. <div class="body">
  383. <ul>
  384. <li><a href="https://archive.org/donate/index.php" title="Support archive.org!">archive.org</a></li><!-- listed first due to recent fire damages: http://blog.archive.org/2013/11/06/scanning-center-fire-please-help-rebuild/ -->
  385. <li><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector" title="Support Wikipedia!">Wikipedia</a></li>
  386. <li><a href="http://xowa.org/home/wiki/Help/Donate.html" title="Support XOWA!">XOWA</a></li>
  387. </ul>
  388. </div>
  389. </div>
  390. </div>
  391. </body>
  392. </html>