component.io
This is search tool for modular JavaScript component framework. The component framework was invented by TJ Holowaychuk
I have created the search tool because I was not able to find anything useful with the official http://component.github.io
search tool
My version of the search tool is available online at http://component.xmojmr.cz/ under WTFPL license
You can use
multi-column
sorting
by author, component, number of stars GitHub users assigned to it, age in days, number of open issues, freshness in days, version number, number of forksfull-text search
in description, tags, author name, component nametag =
cloud filter, multiple selected tags allow for narrowing down the searchauthor =
cloud filter, authors are up-weighted by number of projects, number of stars and down-weighted by number of open issues. Multiple selected authors allow for filtering a group of popular vendors- Each query is represented by
bookmarkable url
Original design was inspired by Nipster, modified to work with Component Crawler as data source.
Current Status (2014-11-04)
- Maturity
- (+) no serious known bugs on modern desktop browsers
- (+) stable bookmarkable url API
- (+) usable (full text search, tag search, author search..)
- (-) slow and not reliable on low-end mobile devices
- (-) slow when responding to screen or element resize events
- Details (+)
- Display of crawler.js database using searchable sortable jQuery DataTables works.
- Columns author, component and issues are clickable.
- Tag cloud is calculated correctly (shown on button click)
- Author cloud filter (with gravatar images) is available on button click. Projects with many open issues are given less weight
- Clicking on tags (anywhere on the screen) swithes their include/exclude filtering status
- Search and sort and tag and author query generates stateful hash fragments (bookmarkable urls)
- Search filter is sticked to the top of the screen
- 1st version of REST API available
- user interface pixel-aligned, colorized and split into 2 different responsive layouts
- server configured to use gzip compression where possible
- crawler.js dataset contains only subset really used by the application
- Details (-)
- all data processing is done in the client's browser. This causes significant delay on mobile devices
- default 100 rows page length is too heavy to layout and render on low-end mobile processors
- calculation of screen dimensions does not work reliably in portrait layout on mobile devices
- some functions (e.g. cloud display) does not work as designed in Opera Mobile browser, Android 2.3 browser
3rd party credits (A→Z)
- Allane Jardine for jQuery DataTables
- Digital Zoom Studio for Calculate Text Width with jQuery
- Icons8
- Jack Moore for jQuery Modal Tutorial
- Jonas Mosbech for StickyTableHeaders
- jQuery
- leafo for sticky-kit
- LearnBoost for Stylus
- Mozilla for Nunjucks
- Ryan McGeary for timeago
- TJ Holowaychuk for superagent
Internal API
GET /api/v1/crawler.json
Returns component crawler.js JSON dataset as described in https://github.com/component/crawler.js#get-json
POST /api/v1/crawler/updates
Payload ignored. Triggers cache update of the crawler.json dataset from the http://component-crawler.herokuapp.com/ server
Changelog
- Release 1.0.3
- bugfixes
- Release 1.0.2
- code moved from vanilla JavaScript to TypeScript
- Release 1.0.1
- bugfixes and small usability improvements
- Release 1.0.0
- original raw look was colorized. There are two different table layouts at the breakpoint of horizontal screen size 1150 pixels
- moved to xmojmr's site build system
- Release 0.3.0
- not as slow as used to be, Opera Mobile CORS problems solved by hosting on a server with PHP backend