update about text

This commit is contained in:
rolux 2012-06-18 19:09:27 +02:00
parent 7a0725bfa4
commit 568bc2841c

View file

@ -1,13 +1,13 @@
<h1><b>OxJS &mdash; A JavaScript Library for Web Applications</b></h1>
<p>TL;DR: <b>OxJS</b> will be out soon. But it already works. <a href="https://0xDB.org">See it in action</a>!</b></p>
<p>TL;DR: <b>OxJS</b> is awesome &mdash; <a href="https://pan.do/ra#demo">see it in action</a>!</b></p>
<p><b>OxJS</b> (pronounced oh-ex-jay-ess) is a new JavaScript library. It was originially developed as part of <a href="http://pan.do/ra">pan.do/ra</a>, and is currently awaiting its first proper release. While it still has bugs, holes, design errors and lots of cruft, some parts of it may already be useful for a more general audience.</p>
<p><b>OxJS</b> (pronounced oh-ex-jay-ess) is a comprehensive JavaScript library, originally developed for the media archive platform <a href="http://pan.do/ra">pan.do/ra</a>. While it still has bugs, holes, design errors and lots of cruft, some parts of it may already be of interest to a wider audience.</p>
<p>The core of <b>OxJS</b> is <code>Ox.js</code>, a general-purpose utility library (think underscore.js, but quite different). It provides <a href="#doc/Ox.isLeapYear">lots</a> <a href="#doc/Ox.parseDate">of</a> <a href="#doc/Ox.getFirstDayOfTheYear">tools</a> <a href="#doc/Ox.getDaysInMonth">for</a> <a href="#doc/Ox.getTimezoneOffset">dealing</a> <a href="#doc/Ox.getDaysInYear">with</a> <a href="#doc/Ox.formatDate">dates</a>, <a href="#doc/Ox.asinh">has</a> <a href="#doc/Ox.deg">all</a> <a href="#doc/Ox.log">the</a> <a href="#doc/Ox.mod">missing</a> <a href="#doc/Ox.rad">Math</a> <a href="#doc/Ox.sinh">functions</a> (<a href="#doc/Ox.getArea">plus</a> <a href="#doc/Ox.getDistance">some</a> <a href="#doc/Ox.joinAreas">for</a> <a href="#doc/Ox.getXYByLatLng">geographic</a> <a href="#doc/getDegreesPerMeter">coordinates</a>), methods like <a href="#doc/Ox.range">range</a> for those who like Python (and even <a href="#doc/Ox.forEach">some</a> <a href="#doc/Ox.loop">options</a> for those who never want to write a <code>for</code> loop again), can <a href="#doc/Ox.tokenize">tokenize</a> and <a href="#doc/Ox.minify">minify</a> JavaScript, comes with its own <a href="#readme/OxDoc">documentation format</a>, including <a href="#doc/Ox.test">inline tests</a>, and can do about <a href="#readme/23_cool_things_you_can_do_with_oxjs">23 other cool things</a>.</p>
<p>The core of <b>OxJS</b> is <code>Ox.js</code>, a general-purpose utility library. It <a href="#doc/Ox.loop">embraces</a> <a href="#doc/Ox.forEach">functional</a> <a href="#doc/Ox.map">programming</a>, <a href="#doc/Ox.load">supports modules</a>, <a href="#doc/Ox.getDateInWeek">provides</a> <a href="#doc/Ox.getDayOfTheYear">lots</a> <a href="#doc/Ox.getDaysInMonth">of</a> <a href="#doc/Ox.getDaysInYear">tools</a> <a ref="#doc/Ox.getISODate">to</a> <a href="#doc/Ox.getISOWeek">deal</a> <a href="#doc/Ox.parseDate">with</a> <a href="#doc/Ox.formatDate">dates</a>, <a href="#doc/Ox.atanh">has</a> <a href="#doc/Ox.deg">all</a> <a href="#doc/Ox.limit">the</a> <a href="#doc/Ox.mod">missing</a> <a href="#doc/Ox.sign">math</a> <a href="#doc/Ox.trunc">methods</a> (<a href="#doc/Ox.getBearing">plus</a> <a href="#doc/Ox.getCircle">some</a> <a href="#doc/Ox.getDistance">more</a> <a href="#doc/Ox.getLine">for</a> <a href="#doc/Ox.getDegreesPerMeter">geographic</a> <a href="#doc/Ox.getLatLngByXY">coordinates</a>) <a href="#doc/Ox.pad">and</a> <a href="#doc/Ox.repeat">helper</a> <a href="#doc/Ox.startsWith">functions</a> <a href="#doc/Ox.truncate">for</a> <a href="#doc/Ox.wordwrap">strings</a> <a href="#doc/Ox.escapeRegExp">and regular expressions</a>, <a href="#doc/Ox.isEmpty">fixes</a> <a href="#doc/Ox.isInt">type</a> <a href="#doc/Ox.typeOf">detection</a> <a href="#doc/Ox.isEqual">and equality testing</a>, <a href="#doc/Ox.addLinks">includes</a> <a href="#doc/Ox.encodeHTMLEntities">utilities</a> <a href="#doc/Ox.highlight">to</a> <a href="#doc/Ox.normalizeHTML">handle</a> <a href="#doc/Ox.sanitizeHTML">HTML</a>, <a href="#doc/Ox.$">the DOM</a> <a href="#doc/Ox.getJSON">and</a> <a href="#doc/Ox.getJSONC">remote</a> <a href="#doc/Ox.getJSONP">requests</a>, can <a href="#doc/Ox.tokenize">tokenize</a> and <a href="#doc/Ox.minify">minify</a> JavaScript, comes with its own <a href="#doc/Ox.doc">documentation format</a>, including <a href="#doc/Ox.test">inline tests</a>, <a href="#doc/Ox.api">and</a> <a href="#doc/Ox.getset">does</a> <a href="#doc/Ox.getAsync">many</a> <a href="#doc/Ox.getFile">other</a> <a href="#doc/Ox.encodeDeflate">cool</a> <a href="#doc/Ox.encodeUTF8">things</a>.</p>
<p>Then there are modules, most notably <code>Ox.UI</code>, a user interface library for HTML5-compliant browsers (think YUI, but again rather different). <code>Ox.UI</code> has tons of widgets: <a href="#doc/Ox.Input">all</a> <a href="#doc/Ox.DateTimeInput">the</a> <a href="#doc/Ox.PlacePicker">form</a> <a href="#doc/Ox.TimeInput">elements</a> <a href="#doc/Ox.Range">you</a> <a href="#doc/Ox.ColorPicker">ever</a> <a href="#doc/Ox.CheckboxGroup">wanted</a>, resizable <a href="#doc/Ox.SplitPanel">panels</a> and <a href="#doc/Ox.Dialog">dialogs</a>, <a href="#doc/Ox.MainMenu">menus</a> that actually work, <a href="#doc/Ox.IconList">lists</a> and <a href="#doc/Ox.TextList">tables</a> that can hold a million items, <a href="#doc/Ox.Map">maps</a> and <a href="#doc/Ox.Calendar">calendars</a> done right, and a great <a href="#doc/Ox.VideoPlayer">video player</a>. All these widgets are designed to that you can focus on your application and argue less with the DOM. And if you need to, <a href="#doc/Ox.Element">each of them</a> provides, by virtue of <a href="#readme/ParasiticalInheritance">parasitical inheritance</a>, the exact same API as a <a href="#doc/Ox.JQueryElement">jQuery DOM object</a>. But <code>Ox.UI</code> also provides a framework to bring these elements together, including <a href="#doc/Ox.Event">custom</a> <a href="#doc/Ox.Event">events</a>, <a href="#doc/Ox.Keyboard">keyboard</a> <a href="#doc/Ox.Focus">focus</a>, remote <a href="#doc/Ox.API">API</a> discovery and client-side <a href="#doc/Ox.URL">URL</a> handling. It is ideal for real applications with back-ends that speak JSON and don't serve any HTML beyond <code>&lt;body&gt;&lt;/body&gt;</code>.</p>
<p>Then there are modules, most notably <code>Ox.UI</code>, which makes it super simple to write complex, desktop-class web applications for HTML5-compliant browsers. <code>Ox.UI</code> has tons of highly customizable and <a href="#doc/Ox.Theme">fully themable</a> widgets: <a href="#doc/Ox.ArrayInput">all</a> <a href="#doc/Ox.DateInput">the</a> <a href="#doc/Ox.FileInput">form</a> <a href="#doc/Ox.ObjectInput">elements</a> <a href="#doc/Ox.SelectInput">you</a> <a href="#doc/Ox.Range">ever</a> <a href="#doc/Ox.Spreadsheet">wanted</a>, <a href="#doc/Ox.MainMenu">menus</a> that actually work, resizable <a href="#doc/Ox.SplitPanel">panels</a> and <a href="#doc/Ox.Dialog">dialogs</a>, <a href="#doc/Ox.IconList">lists</a> and <a href="#doc/Ox.TextList">tables</a> that can hold millions of items, <a href="#doc/Ox.Map">maps</a> and <a href="#doc/Ox.Calendar">calendars</a> done right, a feature-rich <a href="#doc/Ox.VideoPlayer">video player</a>, <a href="#doc/Ox.Chart">and</a> <a href="#doc/Ox.SourceViewer">lots</a> <a href="#doc/Ox.SyntaxHighlighter">more</a>. These widgets allow you to focus on your application and argue less with the DOM. And if you need to, <a href="#doc/Ox.Element">each of them</a> provides the exact same API as a <a href="#doc/Ox.JQueryElement">jQuery DOM object</a>. But <code>Ox.UI</code> also provides the logic to bring these elements together, including custom events, <a href="#doc/Ox.Keyboard">keyboard</a> <a href="#doc/Ox.Focus">focus</a>, <a href="#doc/Ox.API">remote API discovery</a> and <a href="#doc/Ox.URL">client-side URL handling</a>. As long as your backend speaks JSON, it doesn't have to speak any HTML whatsoever.</p>
<p>Among the other modules, <code>Ox.Unicode</code> helps with sorting, <code>Ox.Image</code> can do steganography, and <code>Ox.Geo</code> is great if you're dealing with geographical data (or want to use a really nice set of flag icons).</p>
<p>Among the other modules, <code>Ox.Unicode</code> helps with <a href="#doc/Ox.toASCII">converting</a> or <a href="#doc/Ox.sortASCII">sorting</a> unicode strings, <code>Ox.Image</code> can do <a href="#doc/Ox.Image">basic image manipulation</a>, including steganography, and <code>Ox.Geo</code> comes into play if you're dealing with <a href="#doc/Ox.getCountryByName">geographical data</a>, or want to use a <a href="#">really nice set</a> of <a href="#doc/Ox.getFlagByCountryCode">flag icons</a>.</p>
<p>Finally, there is a small but growing number of <a href="#readme">articles</a> and <a href="#examples">tutorials</a>, and extensive <a href="#doc">documentation</a> (which, needless to say, may still be incomplete, and sometimes even incorrect). If you want to get involved, file bugs, submit patches or give any other kind of feedback, please head over to the <a href="#development">development</a> section.</p>
<p>Finally, there is a small but growing number of <a href="#readme">articles</a> and <a href="#examples">tutorials</a>, and extensive (albeit still incomplete) <a href="#doc">documentation</a>. If you want to get involved, file bugs or submit patches, please head over to the <a href="#development">development</a> section. Your feedback is welcome!</p>