Showing preview only (683K chars total). Download the full file or copy to clipboard to get everything.
Repository: mholt/PapaParse
Branch: master
Commit: cc8c801f83fa
Files: 43
Total size: 48.5 MB
Directory structure:
gitextract_8bywzl85/
├── .eslintrc.js
├── .github/
│ └── workflows/
│ └── node.js.yml
├── .gitignore
├── .npmignore
├── CHANGELOG.md
├── Gruntfile.js
├── LICENSE
├── README.md
├── bower.json
├── docs/
│ ├── CNAME
│ ├── Caddyfile
│ ├── demo.html
│ ├── docs.html
│ ├── faq.html
│ ├── index.html
│ └── resources/
│ ├── css/
│ │ ├── common.css
│ │ ├── demo.css
│ │ ├── home.css
│ │ ├── tomorrow.highlight.css
│ │ └── unsemantic.css
│ ├── files/
│ │ ├── big.csv
│ │ ├── malformed.tsv
│ │ └── normal.csv
│ └── js/
│ ├── common.js
│ ├── demo.js
│ ├── home.js
│ ├── lovers.js
│ └── papaparse.js
├── package.json
├── papaparse.js
├── player/
│ ├── player.css
│ ├── player.html
│ └── player.js
└── tests/
├── .eslintrc.js
├── long-sample.csv
├── node-tests.js
├── sample-header.csv
├── sample.csv
├── test-cases.js
├── test.js
├── tests.html
├── utf-8-bom-sample.csv
└── verylong-sample.csv
================================================
FILE CONTENTS
================================================
================================================
FILE: .eslintrc.js
================================================
module.exports = {
"parserOptions": {
"ecmaVersion": 6
},
"env": {
"es6": true,
"browser": true,
"worker": true,
"node": true
},
"extends": "eslint:recommended",
"rules": {
"accessor-pairs": "error",
"array-bracket-newline": ["error", "consistent"],
"array-bracket-spacing": [
"error",
"never"
],
"array-callback-return": "error",
"array-element-newline": "off",
"arrow-body-style": "error",
"arrow-parens": "error",
"arrow-spacing": "error",
"block-scoped-var": "error",
"block-spacing": "error",
"brace-style": "off",
"callback-return": "error",
"camelcase": ["error", {"properties": "never"}],
"capitalized-comments": "off",
"class-methods-use-this": "error",
"comma-dangle": "off",
"comma-spacing": "off",
"comma-style": [
"error",
"last"
],
"complexity": "off",
"computed-property-spacing": [
"error",
"never"
],
"consistent-return": "off",
"consistent-this": "off",
"curly": "off",
"default-case": "error",
"dot-location": "error",
"dot-notation": "error",
"eol-last": "error",
"eqeqeq": "error",
"for-direction": "error",
"func-call-spacing": "error",
"func-name-matching": "error",
"func-names": [
"error",
"never"
],
"func-style": "off",
"function-paren-newline": "off",
"generator-star-spacing": "error",
"getter-return": "error",
"global-require": "off",
"guard-for-in": "off",
"handle-callback-err": "error",
"id-blacklist": "error",
"id-length": "off",
"id-match": "error",
"implicit-arrow-linebreak": "error",
"indent": [
"error",
"tab"
],
"indent-legacy": "off",
"init-declarations": "off",
"jsx-quotes": "error",
"key-spacing": "error",
"keyword-spacing": "off",
"line-comment-position": "off",
"linebreak-style": [
"error",
"unix"
],
"lines-around-comment": "off",
"lines-around-directive": "off",
"lines-between-class-members": "error",
"max-depth": "off",
"max-len": "off",
"max-lines": "off",
"max-nested-callbacks": "error",
"max-params": "off",
"max-statements": "off",
"max-statements-per-line": "off",
"multiline-comment-style": "off",
"multiline-ternary": [
"error",
"always-multiline"
],
"new-parens": "error",
"newline-after-var": "off",
"newline-before-return": "off",
"newline-per-chained-call": "off",
"no-alert": "error",
"no-array-constructor": "error",
"no-await-in-loop": "error",
"no-bitwise": "error",
"no-buffer-constructor": "error",
"no-caller": "error",
"no-catch-shadow": "off",
"no-cond-assign": [
"error",
"except-parens"
],
"no-confusing-arrow": "error",
"no-console": "off",
"no-continue": "off",
"no-div-regex": "error",
"no-duplicate-imports": "error",
"no-else-return": "off",
"no-empty": ["error", {"allowEmptyCatch": true}],
"no-empty-function": "off",
"no-eq-null": "error",
"no-eval": "error",
"no-extend-native": "error",
"no-extra-bind": "error",
"no-extra-label": "error",
"no-extra-parens": "off",
"no-floating-decimal": "error",
"no-implicit-globals": "error",
"no-implied-eval": "error",
"no-inline-comments": "off",
"no-inner-declarations": [
"error",
"functions"
],
"no-invalid-this": "off",
"no-iterator": "error",
"no-label-var": "error",
"no-labels": "error",
"no-lone-blocks": "error",
"no-lonely-if": "error",
"no-loop-func": "error",
"no-magic-numbers": "off",
"no-mixed-operators": "off",
"no-mixed-requires": "error",
"no-multi-assign": "error",
"no-multi-spaces": "off",
"no-multi-str": "error",
"no-multiple-empty-lines": "off",
"no-native-reassign": "error",
"no-negated-condition": "off",
"no-negated-in-lhs": "error",
"no-nested-ternary": "off",
"no-new": "error",
"no-new-func": "error",
"no-new-object": "error",
"no-new-require": "error",
"no-new-wrappers": "error",
"no-octal-escape": "error",
"no-param-reassign": "off",
"no-path-concat": "off",
"no-plusplus": "off",
"no-process-env": "error",
"no-process-exit": "error",
"no-proto": "error",
"no-prototype-builtins": "error",
"no-restricted-globals": "error",
"no-restricted-imports": "error",
"no-restricted-modules": "error",
"no-restricted-properties": "error",
"no-restricted-syntax": "error",
"no-return-assign": "error",
"no-return-await": "error",
"no-script-url": "error",
"no-self-compare": "error",
"no-sequences": "error",
"no-shadow": "off",
"no-shadow-restricted-names": "error",
"no-spaced-func": "error",
"no-sync": ["error", {"allowAtRootLevel": true}],
"no-tabs": "off",
"no-template-curly-in-string": "error",
"no-ternary": "off",
"no-throw-literal": "error",
"no-trailing-spaces": "error",
"no-undef-init": "error",
"no-undefined": "off",
"no-underscore-dangle": "off",
"no-unmodified-loop-condition": "off",
"no-unneeded-ternary": "error",
"no-unused-expressions": "off",
"no-unused-vars": ["error", {"args": "none"}],
"no-use-before-define": "off",
"no-useless-call": "error",
"no-useless-computed-key": "error",
"no-useless-concat": "error",
"no-useless-constructor": "error",
"no-useless-rename": "error",
"no-useless-return": "off",
"no-var": "off",
"no-void": "error",
"no-warning-comments": "error",
"no-whitespace-before-property": "error",
"no-with": "error",
"nonblock-statement-body-position": [
"error",
"any"
],
"object-curly-newline": ["error", {"consistent": true}],
"object-curly-spacing": "off",
"object-shorthand": "off",
"one-var": "off",
"one-var-declaration-per-line": "off",
"operator-assignment": [
"error",
"always"
],
"operator-linebreak": "off",
"padded-blocks": "off",
"padding-line-between-statements": "error",
"prefer-arrow-callback": "off",
"prefer-const": "error",
"prefer-destructuring": "off",
"prefer-numeric-literals": "error",
"prefer-promise-reject-errors": "error",
"prefer-reflect": "off",
"prefer-rest-params": "off",
"prefer-spread": "error",
"prefer-template": "off",
"quote-props": "off",
"quotes": "off",
"radix": [
"error",
"as-needed"
],
"require-await": "error",
"require-jsdoc": "off",
"rest-spread-spacing": "error",
"semi": "error",
"semi-spacing": "error",
"semi-style": [
"error",
"last"
],
"sort-imports": "error",
"sort-keys": "off",
"sort-vars": "off",
"space-before-blocks": "error",
"space-before-function-paren": [
"error",
"never"
],
"space-in-parens": [
"error",
"never"
],
"space-infix-ops": "error",
"space-unary-ops": [
"error",
{
"nonwords": false,
"words": false
}
],
"spaced-comment": "off",
"strict": "off",
"switch-colon-spacing": "error",
"symbol-description": "error",
"template-curly-spacing": "error",
"template-tag-spacing": "error",
"unicode-bom": [
"error",
"never"
],
"valid-jsdoc": "off",
"vars-on-top": "off",
"wrap-iife": "off",
"wrap-regex": "off",
"yield-star-spacing": "error",
"yoda": "off"
}
};
================================================
FILE: .github/workflows/node.js.yml
================================================
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Node.js CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x, 22.x, 24.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm install
- run: npm run lint && npm run test-node && npm run build
================================================
FILE: .gitignore
================================================
_gitignore/
bower_components/
node_modules/
package-lock.json
yarn.lock
================================================
FILE: .npmignore
================================================
_gitignore/
bower_components/
node_modules/
docs/
================================================
FILE: CHANGELOG.md
================================================
# Changelog
## 5.5.3
### Bug Fixes
- Avoid infinite loop with duplicate header counting (#1095)
## 5.5.2
### Bug Fixes
- Only attempt to parse headers once, fixing performance issue (#1086)
### Maintenance
- Do not run headless tests on CI (#1087)
- Fix package URL in package.json
## 5.5.1
### Maintenance
- Revert "Remove ES6 features to allow minifying papaparse file" — updated `grunt-contrib-uglify` instead to support ES6+
- Update grunt-contrib-uglify version
- Run build script in CI
## 5.5.0
### Features
- Add `skipFirstNLines` option to skip first N lines before parsing (#1021, #738)
- Add `renamedHeaders` to parse result meta, reporting original-to-renamed header mappings (#990)
### Bug Fixes
- Fix `escapeFormulae` option to handle boolean values correctly (#1025)
- Fix cursor position when encountering duplicated headers (#997)
- Only skip first N lines in the first chunk and don't incorrectly consume the header line (#1045, #1046)
- Refactor header renaming logic to correctly handle duplicates (#1058, #1052, #1007)
### Performance
- Faster duplicate header detection using a header map (#991)
- Use `for` loop instead of `for...in` for header parsing to only iterate over array elements (#987)
### Maintenance
- Update minimum ES version to 6
- Documentation and README improvements (#1002, #1034, #1041, #1044, #1060)
## 5.4.1
### Bug Fixes
- Remove jsperf.com links from README.md. (#986)
- Only test duplicate headers on first row
- Rename duplicated headers
================================================
FILE: Gruntfile.js
================================================
module.exports = function(grunt) {
grunt.initConfig({
uglify: {
options: {
compress: {
global_defs: {
'PAPA_BROWSER_CONTEXT': true
},
dead_code: true
},
output: {
comments: 'some',
},
},
min: {
files: {
'papaparse.min.js': ['papaparse.js']
},
},
},
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.registerTask('build', ['uglify']);
grunt.registerTask('default', ['uglify']);
};
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2015 Matthew Holt
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================
FILE: README.md
================================================
Parse CSV with JavaScript
========================================
Papa Parse is the fastest in-browser CSV (or delimited text) parser for JavaScript. It is reliable and correct according to [RFC 4180](https://tools.ietf.org/html/rfc4180), and it comes with these features:
- Easy to use
- Parse CSV files directly (local or over the network)
- Fast mode
- Stream large files (even via HTTP)
- Reverse parsing (converts JSON to CSV)
- Auto-detect delimiter
- Worker threads to keep your web page reactive
- Header row support
- Pause, resume, abort
- Can convert numbers and booleans to their types
- Optional jQuery integration to get files from `<input type="file">` elements
- One of the only parsers that correctly handles line-breaks and quotations
Papa Parse has **no dependencies** - not even jQuery.
Install
-------
papaparse is available on [npm](https://www.npmjs.com/package/papaparse). It
can be installed with the following command:
```shell
npm install papaparse
```
If you don't want to use npm, [papaparse.min.js](https://unpkg.com/papaparse@latest/papaparse.min.js) can be downloaded to your project source.
Usage
-----
```js
import Papa from 'papaparse';
Papa.parse(file, config);
const csv = Papa.unparse(data[, config]);
```
Homepage & Demo
----------------
- [Homepage](https://www.papaparse.com)
- [Demo](https://www.papaparse.com/demo)
To learn how to use Papa Parse:
- [Documentation](https://www.papaparse.com/docs)
The website is hosted on [Github Pages](https://pages.github.com/). Its content is also included in the docs folder of this repository. If you want to contribute on it just clone the master of this repository and open a pull request.
Papa Parse for Node
--------------------
Papa Parse can parse a [Readable Stream](https://nodejs.org/api/stream.html#stream_readable_streams) instead of a [File](https://www.w3.org/TR/FileAPI/) when used in Node.js environments (in addition to plain strings). In this mode, `encoding` must, if specified, be a Node-supported character encoding. The `Papa.LocalChunkSize`, `Papa.RemoteChunkSize` , `download`, `withCredentials` and `worker` config options are unavailable.
Papa Parse can also parse in a node streaming style which makes `.pipe` available. Simply pipe the [Readable Stream](https://nodejs.org/api/stream.html#stream_readable_streams) to the stream returned from `Papa.parse(Papa.NODE_STREAM_INPUT, options)`. The `Papa.LocalChunkSize`, `Papa.RemoteChunkSize` , `download`, `withCredentials`, `worker`, `step`, and `complete` config options are unavailable. To register a callback with the stream to process data, use the `data` event like so: `stream.on('data', callback)` and to signal the end of stream, use the 'end' event like so: `stream.on('end', callback)`.
Get Started
-----------
For usage instructions, see the [homepage](https://www.papaparse.com) and, for more detail, the [documentation](https://www.papaparse.com/docs).
Tests
-----
Papa Parse is under test. Download this repository, run `npm install`, then `npm test` to run the tests.
Contributing
------------
To discuss a new feature or ask a question, open an issue. To fix a bug, submit a pull request to be credited with the [contributors](https://github.com/mholt/PapaParse/graphs/contributors)! Remember, a pull request, *with test*, is best. You may also discuss on Twitter with [#PapaParse](https://twitter.com/search?q=%23PapaParse&src=typd&f=realtime) or directly to me, [@mholt6](https://twitter.com/mholt6).
If you contribute a patch, ensure the tests suite is running correctly. We run continuous integration on each pull request and will not accept a patch that breaks the tests.
================================================
FILE: bower.json
================================================
{
"name": "papaparse",
"main": "papaparse.js",
"homepage": "http://papaparse.com",
"authors": [
"Matthew Holt"
],
"description": "Fast and powerful CSV parser for the browser. Converts CSV->JSON and JSON->CSV. Supports web workers and streaming large files.",
"keywords": [
"csv",
"parse",
"parsing",
"parser",
"delimited",
"text",
"data",
"auto-detect",
"comma",
"tab",
"pipe",
"file",
"filereader",
"stream",
"worker",
"workers",
"ajax",
"thread",
"threading",
"multi-threaded"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests",
"player"
]
}
================================================
FILE: docs/CNAME
================================================
www.papaparse.com
================================================
FILE: docs/Caddyfile
================================================
localhost
ext .html
================================================
FILE: docs/demo.html
================================================
<!DOCTYPE html>
<html>
<head>
<title>Demo - Papa Parse</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, maximum-scale=1.0">
<meta name="theme-color" content="#ffffff">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Arvo|Source+Sans+Pro:400,400italic,700|Lato:300,400">
<link rel="stylesheet" href="/resources/css/unsemantic.css">
<link rel="stylesheet" href="/resources/css/common.css">
<link rel="stylesheet" href="/resources/css/demo.css">
<script src="/resources/js/jquery.min.js"></script>
<script src="/resources/js/common.js"></script>
<script src="https://unpkg.com/papaparse@latest/papaparse.min.js"></script>
<script src="/resources/js/demo.js"></script>
</head>
<body>
<main>
<header>
<div class="grid-container">
<div class="grid-40 mobile-grid-50">
<div class="links">
<a href="/demo">
<i class="fa fa-magic fa-lg"></i> Demo
</a>
<a href="/docs">
<i class="fa fa-book fa-lg"></i> Docs
</a>
<a href="/faq">
<i class="fa fa-question fa-lg"></i> FAQ
</a>
</div>
</div>
<div class="grid-20 hide-on-mobile text-center">
<a href="/" class="text-logo">Papa Parse 5</a>
</div>
<div class="grid-40 mobile-grid-50 text-right">
<div class="links">
<a href="https://github.com/mholt/PapaParse">
<i class="fa fa-github fa-lg"></i> GitHub
</a>
<a href="http://stackoverflow.com/questions/tagged/papaparse">
<i class="fa fa-stack-overflow fa-lg"></i> Help
</a>
</div>
</div>
</div>
</header>
<h1>Choose a Demo</h1>
<div class="tabs">
<div class="tab active" id="tab-string">String</div>
<div class="tab" id="tab-local">Local File(s)</div>
<div class="tab" id="tab-remote">Remote File</div>
<div class="tab" id="tab-unparse">JSON to CSV</div>
</div>
<div class="grid-container">
<div class="grid-25">
<label>
<input type="checkbox" id="stream"> Stream
<dfn>Results are delivered row by row to a step function. Use with large inputs that would crash the browser.</dfn>
</label>
<label>
<input type="checkbox" id="worker"> Worker thread
<dfn>Uses a separate thread so the web page doesn't lock up.</dfn>
</label>
<label>
<input type="checkbox" id="header"> Header row
<dfn>Keys data by field name rather than an array.</dfn>
</label>
<label>
<input type="checkbox" id="dynamicTyping"> Dynamic typing
<dfn>Turns numeric data into numbers and true/false into booleans.</dfn>
</label>
<label>
<input type="checkbox" id="skipEmptyLines"> Skip empty lines
<dfn>By default, empty lines are parsed; check to skip.</dfn>
</label>
</div>
<div class="grid-75 grid-parent">
<div class="grid-33 push-66">
<label>
Delimiter:<input type="text" size="4" maxlength="1" placeholder="auto" id="delimiter"><a href="javascript:" id="insert-tab">tab</a>
<dfn>The delimiting character. Usually comma or tab. Default is comma.</dfn>
</label>
<label>
Preview:<input type="number" min="0" max="1000" placeholder="0" id="preview">
<dfn>If > 0, stops parsing after this many rows.</dfn>
</label>
<label>
Encoding:<input type="text" id="encoding" placeholder="default" size="7">
<dfn>Only applies when reading local files. Default is specified by the browser (usually UTF-8).</dfn>
</label>
<label>
Comment char:<input type="text" size="7" maxlength="10" placeholder="default" id="comments">
<dfn>If specified, skips lines starting with this string.</dfn>
</label>
</div>
<div class="grid-66 pull-33">
<div class="input-area" id="input-string">
<textarea id="input" placeholder="String input">Column 1,Column 2,Column 3,Column 4
1-1,1-2,1-3,1-4
2-1,2-2,2-3,2-4
3-1,3-2,3-3,3-4
4,5,6,7</textarea>
</div>
<div class="input-area" id="input-local">
<div class="text-center">
Choose one or more delimited text files for Papa to parse.
</div>
<input type="file" id="files" multiple>
Sample files:
<ul>
<li>
<a href="/resources/files/normal.csv" id="local-normal-file">Normal file</a>
</li>
<li>
<a href="/resources/files/big.csv" id="local-large-file">Large file</a>
</li>
<li>
<a href="/resources/files/malformed.tsv" id="local-malformed-file">Malformed file</a>
</li>
</ul>
</div>
<div class="input-area" id="input-remote">
<div class="text-center">
Type the URL of the file to be downloaded and parsed.
<br>
<small>(cross-origin requests require Access-Control-Allow-Origin header)</small>
</div>
<input type="text" id="url" placeholder="URL">
Sample files:
<ul>
<li>
<a href="javascript:" id="remote-normal-file">Normal file</a>
</li>
<li>
<a href="javascript:" id="remote-large-file">Large file</a>
</li>
<li>
<a href="javascript:" id="remote-malformed-file">Malformed file</a>
</li>
</ul>
</div>
<div class="input-area" id="input-unparse">
<textarea id="json" placeholder="JSON string">[
{
"Column 1": "1-1",
"Column 2": "1-2",
"Column 3": "1-3",
"Column 4": "1-4"
},
{
"Column 1": "2-1",
"Column 2": "2-2",
"Column 3": "2-3",
"Column 4": "2-4"
},
{
"Column 1": "3-1",
"Column 2": "3-2",
"Column 3": "3-3",
"Column 4": "3-4"
},
{
"Column 1": 4,
"Column 2": 5,
"Column 3": 6,
"Column 4": 7
}
]</textarea>
</div>
<div class="text-center">
<div class="see-results">
Results will appear in the console of your browser's inspector tools
</div>
<button id="submit" class="green">Parse</button>
</div>
</div>
</div>
</div>
</main>
<footer>
<!--<div class="footer-top">
<h3>Make Your Papa Proud</h3>
<h4><a href="https://github.com/mholt/PapaParse">Star</a> and <a href="https://github.com/mholt/PapaParse/blob/gh-pages/resources/js/lovers.js">shout</a> if you love #PapaParse</h4>
</div>-->
<div class="footer-main">
<div class="grid-container">
<div class="grid-40 text-center">
<div class="logo">P</div>
<br><br>
Papa Parse by <a href="https://twitter.com/mholt6">Matt Holt</a>
<br>
© 2013-2019
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Learn</h5>
<a href="/demo">Demo</a>
<a href="/docs">Documentation</a>
<a href="/faq">FAQ</a>
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Project</h5>
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=S6VTL9FQ6L8EN&item_name=PapaParse¤cy_code=EUR&source=url">Donate</a>
<a href="https://github.com/mholt/PapaParse">GitHub</a>
<a href="https://twitter.com/search?q=%23PapaParse">Share</a>
</div>
<div class="clear hide-on-desktop"></div>
<div class="grid-15 mobile-grid-50 links">
<h5>Download</h5>
<a href="https://github.com/mholt/PapaParse/archive/master.zip">Latest (master)</a>
<hr>
<a href="https://github.com/mholt/PapaParse/blob/master/papaparse.min.js">Lil' Papa</a>
<a href="https://github.com/mholt/PapaParse/blob/master/papaparse.js">Fat Papa</a>
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Community</h5>
<a href="https://twitter.com/search?q=%23PapaParse">Twitter</a>
<a href="http://stackoverflow.com/questions/tagged/papaparse">Stack Overflow</a>
</div>
</div>
</div>
</footer>
</body>
</html>
================================================
FILE: docs/docs.html
================================================
<!DOCTYPE html>
<html>
<head>
<title>Documentation - Papa Parse</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, maximum-scale=1.0">
<meta name="theme-color" content="#ffffff">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Arvo|Source+Sans+Pro:400,400italic,700|Lato:300,400">
<link rel="stylesheet" href="/resources/css/unsemantic.css">
<link rel="stylesheet" href="/resources/css/tomorrow.highlight.css">
<link rel="stylesheet" href="/resources/css/common.css">
<script src="/resources/js/jquery.min.js"></script>
<script src="/resources/js/highlight.min.js"></script>
<script src="/resources/js/common.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</head>
<body>
<main>
<header>
<div class="grid-container">
<div class="grid-40 mobile-grid-50">
<div class="links">
<a href="/demo">
<i class="fa fa-magic fa-lg"></i> Demo
</a>
<a href="/docs">
<i class="fa fa-book fa-lg"></i> Docs
</a>
<a href="/faq">
<i class="fa fa-question fa-lg"></i> FAQ
</a>
</div>
</div>
<div class="grid-20 hide-on-mobile text-center">
<a href="/" class="text-logo">Papa Parse 5</a>
</div>
<div class="grid-40 mobile-grid-50 text-right">
<div class="links">
<a href="https://github.com/mholt/PapaParse">
<i class="fa fa-github fa-lg"></i> GitHub
</a>
<a href="http://stackoverflow.com/questions/tagged/papaparse">
<i class="fa fa-stack-overflow fa-lg"></i> Help
</a>
</div>
</div>
</div>
</header>
<h1>Documentation</h1>
<div class="grid-container">
<div class="prefix-33 grid-33 suffix-33">
<ol>
<li>
<a href="#csv-to-json">Convert CSV to JSON</a>
<ul>
<li><a href="#strings">Parse string</a></li>
<li><a href="#local-files">Parse local file</a></li>
<li><a href="#remote-files">Parse remote file</a></li>
<li><a href="#jquery">Using jQuery to select files</a></li>
</ul>
</li>
<li><a href="#json-to-csv">Convert JSON to CSV</a></li>
<li><a href="#config">Config</a></li>
<li>
<a href="#results">Results</a>
<ul>
<li><a href="#data">Data</a></li>
<li><a href="#errors">Errors</a></li>
<li><a href="#meta">Meta</a></li>
</ul>
</li>
<li><a href="#extras">Extras</a></li>
</ol>
</div>
</div>
<section>
<div class="grid-container">
<div class="grid-100">
<h4 id="csv-to-json">Convert CSV to JSON</h4>
<p>
Delimited data can be parsed out of strings or files. Files that are parsed can be local or remote. Local files are opened with FileReader, and remote files are downloaded with XMLHttpRequest.
</p>
</div>
<div class="grid-100">
<h5 id="strings">Parse string</h5>
</div>
<div class="grid-50">
<pre><code class="language-javascript">Papa.parse(csvString<i>[, <a href="#config">config</a>]</i>)</code></pre>
</div>
<div class="grid-50">
<ul>
<li><code>csvString</code> is a string of delimited text to be parsed.</li>
<li><code>config</code> is an optional <a href="#config">config object</a>.</li>
<li>Returns a <a href="#results">parse results</a> object (if not streaming or using worker).</li>
</ul>
</div>
<div class="clear"></div>
<div class="grid-100">
<h5 id="local-files">Parse local files</h5>
</div>
<div class="grid-50">
<pre><code class="language-javascript">Papa.parse(file, <a href="#config">config</a>)</code></pre>
</div>
<div class="grid-50">
<ul>
<li><code>file</code> is a <a href="https://developer.mozilla.org/en-US/docs/Web/API/File">File</a> object obtained from the DOM.</li>
<li><code>config</code> is a <a href="#config">config object</a> which contains a callback.</li>
<li>Doesn't return anything. Results are provided asynchronously to a callback function.</li>
</ul>
</div>
<div class="clear"></div>
<div class="grid-100">
<h5 id="remote-files">Parse remote file</h5>
</div>
<div class="grid-50">
<pre><code class="language-javascript">Papa.parse(url, {
download: true,
// rest of config ...
})</code></pre>
</div>
<div class="grid-50">
<ul>
<li><code>url</code> is the path or URL to the file to download.</li>
<li>The second argument is a <a href="#config">config object</a> where <code>download: true</code> is set.</li>
<li>Doesn't return anything. Results are provided asynchronously to a callback function.</li>
</ul>
</div>
<div class="clear"></div>
<div class="grid-100">
<h5 id="jquery">Using jQuery to select files</h5>
</div>
<div class="grid-50">
<pre><code class="language-javascript">$('input[type=file]').parse({
config: {
<span class="comment">// base <a href="#config">config</a> to use for each file</span>
},
before: function(file, inputElem)
{
<span class="comment">// executed before parsing each file begins;
// what you return here controls the flow</span>
},
error: function(err, file, inputElem, reason)
{
<span class="comment">// executed if an error occurs while loading the file,
// or if before callback aborted for some reason</span>
},
complete: function()
{
<span class="comment">// executed after all files are complete</span>
}
});</code></pre>
</div>
<div class="grid-50">
<ul>
<li>Select the file input elements with files you want to parse.</li>
<li>
<code>before</code> is an optional callback that lets you inspect each file before parsing begins. Return an object like:
<pre><code class="language-javascript">{
action: "abort",
reason: "Some reason",
config: <span class="comment">// altered config...</span>
}</code></pre>
to alter the flow of parsing. Actions can be <code>"abort"</code> to skip this and all other files in the queue, <code>"skip"</code> to skip just this file, or <code>"continue"</code> to carry on (equivalent to returning nothing). <code>reason</code> can be a reason for aborting. <code>config</code> can be a modified <a href="#config">configuration</a> for parsing just this file.
</li>
<li>The <code>complete</code> callback shown here is executed after <i>all</i> files are finished and does not receive any data. Use the complete callback in <a href="#config">config</a> for per-file results.</li>
</ul>
</div>
<div class="clear"></div>
</div>
</section>
<section>
<div class="grid-container">
<div class="grid-100">
<h4 id="json-to-csv">Convert JSON to CSV</h4>
<p>
Papa's <code>unparse</code> utility writes out correct delimited text strings given an array of arrays or an array of objects.
</p>
</div>
<div class="grid-100">
<h5 id="unparse">Unparse</h5>
</div>
<div class="grid-50">
<pre><code class="language-javascript">Papa.unparse(data<i>[, <a href="#unparse-config-default">config</a>]</i>)</code></pre>
</div>
<div class="grid-50">
<ul>
<li>Returns the resulting delimited text as a string.</li>
<li>
<code>data</code> can be one of:
<ul>
<li>An array of arrays</li>
<li>An array of objects</li>
<li>An object explicitly defining <code>fields</code> and <code>data</code></li>
</ul>
</li>
<li>
<code>config</code> is an optional <a href="#unparse-config-default">config object</a>
</li>
</ul>
</div>
<div class="clear"></div>
<div class="grid-100">
<h5 id="unparse-config-default">Default Unparse Config with all options</h5>
</div>
<div class="prefix-25 grid-50 suffix-25">
<pre><code class="language-javascript">
{
quotes: false, //or array of booleans
quoteChar: '"',
escapeChar: '"',
delimiter: ",",
header: true,
newline: "\r\n",
skipEmptyLines: false, //other option is 'greedy', meaning skip delimiters, quotes, and whitespace.
columns: null //or array of strings
}
</code></pre>
</div>
<div class="clear"></div>
<div class="grid-100">
<h5>Unparse Config Options</h5>
</div>
<div class="grid-100" style="overflow-x: auto;">
<table>
<tr>
<th style="width: 20%;">Option</th>
<th style="width: 80%;">Explanation</th>
</tr>
<tr>
<td>
<code>quotes</code>
</td>
<td>
If <code>true</code>, forces all fields to be enclosed in quotes. If an array of <code>true/false</code> values, specifies which fields should be force-quoted (first boolean is for the first column, second boolean for the second column, ...). A function that returns a boolean values can be used to determine the quotes value of a cell. This function accepts the cell value and column index as parameters. <br />
Note that this option is ignored for <code>undefined</code>, <code>null</code> and <code>date-object</code> values. The option <code>escapeFormulae</code> also takes precedence over this.
</td>
</tr>
<tr>
<td><code>quoteChar</code></td>
<td>
The character used to quote fields.
</td>
</tr>
<tr>
<td><code>escapeChar</code></td>
<td>
The character used to escape <code>quoteChar</code> inside field values.
</td>
</tr>
<tr>
<td>
<code>delimiter</code>
</td>
<td>
The delimiting character. Multi-character delimiters are supported. It must not be found in <a href="#readonly">Papa.BAD_DELIMITERS</a>.
</td>
</tr>
<tr>
<td>
<code>header</code>
</td>
<td>
If <code>false</code>, will omit the header row. If <code>data</code> is an array of arrays this option is ignored. If <code>data</code> is an array of objects the keys of the first object are the header row. If <code>data</code> is an object with the keys <code>fields</code> and <code>data</code> the <code>fields</code> are the header row.
</td>
</tr>
<tr>
<td>
<code>newline</code>
</td>
<td>
The character used to determine newline sequence. It defaults to <code>"\r\n"</code>.
</td>
</tr>
<tr>
<td>
<code>skipEmptyLines</code>
</td>
<td>
If <code>true</code>, lines that are completely empty (those which evaluate to an empty string) will be skipped. If set to <code>'greedy'</code>, lines that don't have any content (those which have only whitespace after parsing) will also be skipped.
</td>
</tr>
<tr>
<td>
<code>columns</code>
</td>
<td>
If <code>data</code> is an array of objects this option can be used to manually specify the keys (columns) you expect in the objects. If not set the keys of the first objects are used as column.
</td>
</tr>
<tr>
<td>
<code>escapeFormulae</code>
</td>
<td>
If <code>true</code>, field values that begin with <code>=</code>, <code>+</code>, <code>-</code>, <code>@</code>, <code>\t</code>, or <code>\r</code>, will be prepended with a <code>'</code> to defend against <a href="https://owasp.org/www-community/attacks/CSV_Injection" target="_blank" rel="noopener">injection attacks</a>, because Excel and LibreOffice will automatically parse such cells as formulae. You can override those values by setting this option to a regular expression
</td>
</tr>
</table>
</div>
<div class="clear"></div>
<div class="grid-100">
<h5 id="unparse-examples">Examples</h5>
</div>
<div class="grid-33">
<pre><code class="language-javascript">// Two-line, comma-delimited file
var csv = Papa.unparse([
["1-1", "1-2", "1-3"],
["2-1", "2-2", "2-3"]
]);</code></pre>
</div>
<div class="grid-33">
<pre><code class="language-javascript">// With implicit header row
// (keys of first object populate header row)
var csv = Papa.unparse([
{
"Column 1": "foo",
"Column 2": "bar"
},
{
"Column 1": "abc",
"Column 2": "def"
}
]);</code></pre>
</div>
<div class="grid-33">
<pre><code class="language-javascript">// Specifying fields and data explicitly
var csv = Papa.unparse({
"fields": ["Column 1", "Column 2"],
"data": [
["foo", "bar"],
["abc", "def"]
]
});</code></pre>
</div>
<div class="clear"></div>
</div>
</section>
<section>
<div class="grid-container">
<div class="grid-100">
<h4 id="config">The Parse Config Object</h4>
<p>
The <code>parse</code> function may be passed a configuration object. It defines settings, behavior, and callbacks used during parsing. Any properties left unspecified will resort to their default values.
</p>
</div>
<div class="grid-100">
<h5 id="config-default">Default Config With All Options</h5>
</div>
<div class="prefix-25 grid-50 suffix-25">
<pre><code class="language-javascript">{
delimiter: "", // auto-detect
newline: "", // auto-detect
quoteChar: '"',
escapeChar: '"',
header: false,
transformHeader: undefined,
dynamicTyping: false,
preview: 0,
encoding: "",
worker: false,
comments: false,
step: undefined,
complete: undefined,
error: undefined,
download: false,
downloadRequestHeaders: undefined,
downloadRequestBody: undefined,
skipEmptyLines: false,
chunk: undefined,
chunkSize: undefined,
fastMode: undefined,
beforeFirstChunk: undefined,
withCredentials: undefined,
transform: undefined,
delimitersToGuess: [',', '\t', '|', ';', <a href="#readonly">Papa.RECORD_SEP</a>, <a href="#readonly">Papa.UNIT_SEP</a>],
skipFirstNLines: 0
}</code></pre>
</div>
<div class="clear"></div>
<div class="grid-100">
<h5 id="config-details">Config Options</h5>
</div>
<div class="grid-100" style="overflow-x: auto;">
<table>
<tr>
<th style="width: 20%;">Option</th>
<th style="width: 80%;">Explanation</th>
</tr>
<tr>
<td>
<code>delimiter</code>
</td>
<td>
The delimiting character. Leave blank to auto-detect from a list of most common delimiters, or any values passed in through <code>delimitersToGuess</code>. It can be a string or a function. If a string, it can be of any length (so multi-character delimiters are supported). If a function, it must accept the input as first parameter and it must return a string which will be used as delimiter. In both cases it cannot be found in <a href="#readonly">Papa.BAD_DELIMITERS</a>.
</td>
</tr>
<tr>
<td>
<code>newline</code>
</td>
<td>
The newline sequence. Leave blank to auto-detect. Must be one of \r, \n, or \r\n.
</td>
</tr>
<tr>
<td>
<code>quoteChar</code>
</td>
<td>
The character used to quote fields. The quoting of all fields is not mandatory. Any field which is not quoted will correctly read.
</td>
</tr>
<tr>
<td>
<code>escapeChar</code>
</td>
<td>
The character used to escape the quote character within a field. If not set, this option will default to the value of <code>quoteChar</code>, meaning that the default escaping of quote character within a quoted field is using the quote character two times. (e.g. <code>"column with ""quotes"" in text"</code>)
</td>
</tr>
<tr>
<td>
<code>header</code>
</td>
<td>
If true, the first row of parsed data will be interpreted as field names. An array of field names will be returned in <a href="#meta">meta</a>, and each row of data will be an object of values keyed by field name instead of a simple array. Rows with a different number of fields from the header row will produce an error.
Warning: Duplicated field names will be automatically renamed to avoid values in previous fields having the same name to be overwritten. Renamed fields with original (or transformed by <code>transformHeader</code>) are stored in <code>ParseResult.meta.renamedHeaders</code>
</td>
</tr>
<tr>
<td>
<code>transformHeader</code>
</td>
<td>
A function to apply on each header. Requires <code>header</code> to be <code>true</code>. The function receives the header as its first argument and the index as second.<br>
Only available starting with version 5.0.
</td>
</tr>
<tr>
<td>
<code>dynamicTyping</code>
</td>
<td>
If true, numeric and boolean data will be converted to their type instead of remaining strings. Numeric data must conform to the definition of a decimal literal. Numerical values greater than <code>2^53</code> or less than <code>-2^53</code> will not be converted to numbers to preserve precision. European-formatted numbers must have commas and dots swapped. It also accepts an object or a function. If it's an object, its values should be a boolean to indicate if dynamic typing should be applied for each column number (or header name if using headers). If it's a function, it should return a boolean value for each field number (or name if using headers) which will be passed as first argument.
</td>
</tr>
<tr>
<td>
<code>preview</code>
</td>
<td>
If > 0, only that many rows will be parsed.
</td>
</tr>
<tr>
<td>
<code>encoding</code>
</td>
<td>
The encoding to use when opening local files. If specified, it must be a value supported by the FileReader API.
</td>
</tr>
<tr>
<td>
<code>worker</code>
</td>
<td>
Whether or not to use a <a href="/faq#workers">worker thread</a>. Using a worker will keep your page reactive, but may be slightly slower.
</td>
</tr>
<tr>
<td>
<code>comments</code>
</td>
<td>
A string that indicates a comment (for example, "#" or "//"). When Papa encounters a line starting with this string, it will skip the line.
</td>
</tr>
<tr>
<td>
<code>step</code>
</td>
<td>
To <a href="/faq#streaming">stream</a> the input, define a callback function:
<pre><code class="language-javascript">step: function(<a href="#results">results</a>, parser) {
console.log("Row data:", results.data);
console.log("Row errors:", results.errors);
}</code></pre>
Streaming is necessary for large files which would otherwise crash the browser. You can call <code>parser.abort()</code> to abort parsing. And, except when using a <a href="/faq#worker">Web Worker</a>, you can call <code>parser.pause()</code> to pause it, and <code>parser.resume()</code> to resume.
</td>
</tr>
<tr>
<td>
<code>complete</code>
</td>
<td>
The callback to execute when parsing is complete. It receives the parse <a href="#results">results</a>. If parsing a local file, the <a href="https://developer.mozilla.org/en-US/docs/Web/API/File">File</a> is passed in, too:
<pre><code class="language-javascript">complete: function(results, file) {
console.log("Parsing complete:", results, file);
}</code></pre>
When streaming, parse results are <i>not</i> available in this callback.
</td>
</tr>
<tr>
<td>
<code>error</code>
</td>
<td>
A callback to execute if FileReader encounters an error. The function is passed two arguments: the error and the File.
</td>
</tr>
<tr>
<td>
<code>download</code>
</td>
<td>
If true, this indicates that the string you passed as the first argument to <code>parse()</code> is actually a URL from which to download a file and parse its contents.
</td>
</tr>
<tr>
<td>
<code>downloadRequestHeaders</code>
</td>
<td>
If defined, should be an object that describes the headers, example:
<pre>
<code class="language-javascript">downloadRequestHeaders: {
'Authorization': 'token 123345678901234567890',
}</code>
</pre>
</tr>
<tr>
<td>
<code>downloadRequestBody</code>
</td>
<td>
Use POST request on the URL of the download option. The value passed will be set as the body of the request.
</td>
</tr>
<tr>
<td>
<code>skipEmptyLines</code>
</td>
<td>
If true, lines that are completely empty (those which evaluate to an empty string) will be skipped. If set to <code>'greedy'</code>, lines that don't have any content (those which have only whitespace after parsing) will also be skipped.
</td>
</tr>
<tr>
<td>
<code>chunk</code>
</td>
<td>
A callback function, identical to step, which activates streaming. However, this function is executed after every <i>chunk</i> of the file is loaded and parsed rather than every row. Works only with local and remote files. Do not use both chunk and step callbacks together. For the function signature, see the documentation for the step function.
</td>
</tr>
<tr>
<td>
<code>chunkSize</code>
</td>
<td>
Overrides <code>Papa.LocalChunkSize</code> and <code>Papa.RemoteChunkSize</code>. See <a href="#configurable">configurable</a> section to know the usage of both parameters.
</td>
</tr>
<tr>
<td>
<code>fastMode</code>
</td>
<td>
Fast mode speeds up parsing significantly for large inputs. However, it only works when the input has no quoted fields. Fast mode will automatically be enabled if no <code>"</code> characters appear in the input. You can force fast mode either way by setting it to <code>true</code> or <code>false</code>.
</td>
</tr>
<tr>
<td>
<code>beforeFirstChunk</code>
</td>
<td>
A function to execute before parsing the first chunk. Can be used with chunk or step streaming modes. The function receives as an argument the chunk about to be parsed, and it may return a modified chunk to parse. This is useful for stripping header lines (as long as the header fits in a single chunk).
</td>
</tr>
<tr>
<td>
<code>withCredentials</code>
</td>
<td>
A boolean value passed directly into XMLHttpRequest's "withCredentials" property.
</td>
</tr>
<tr>
<td>
<code>transform</code>
</td>
<td>
A function to apply on each value. The function receives the value as its first argument and the column number or header name when enabled as its second argument. The return value of the function will replace the value it received. The transform function is applied before dynamicTyping.
</td>
</tr>
<tr>
<td>
<code>delimitersToGuess</code>
</td>
<td>
An array of delimiters to guess from if the <code>delimiter</code> option is not set.
</td>
</tr>
<tr>
<td>
<code>skipFirstNLines</code>
</td>
<td>
To skip first N number of lines when converting a CSV file to JSON
</td>
</tr>
</table>
</div>
</div>
</section>
<section>
<div class="grid-container">
<div class="grid-100">
<h4 id="results">The Parse Result Object</h4>
<p>
A parse result always contains three objects: data, errors, and meta. Data and errors are arrays, and meta is an object. In the step callback, the data array will only contain one element.
</p>
</div>
<div class="grid-100">
<h5 id="results-structure">Result Structure</h5>
</div>
<div class="grid-50">
<pre><code class="language-javascript">{
data: // array of parsed data
errors: // array of errors
meta: // object with extra info
}</code></pre>
</div>
<div class="grid-50">
<ul>
<li><code>data</code> is an array of rows. If header is false, rows are arrays; otherwise they are objects of data keyed by the field name.</li>
<li><code>errors</code> is an array of <a href="#errors">errors</a>.</li>
<li><code>meta</code> contains extra information about the parse, such as delimiter used, the newline sequence, whether the process was aborted, etc. Properties in this object are not guaranteed to exist in all situations.</li>
</ul>
</div>
<div class="clear"></div>
<div class="grid-100">
<h5 id="data">Data</h5>
</div>
<div class="grid-50">
<pre><code class="language-javascript">// Example (header: false)
[
["Column 1", "Column 2"],
["foo", "bar"],
["abc", "def"]
]
// Example (header: true)
[
{
"Column 1": "foo",
"Column 2": "bar",
"Column 1": "foo1",
},
{
"Column 1": "abc",
"Column 2": "def",
"Column 1": "abc1",
}
]</code></pre>
</div>
<div class="grid-50">
<ul>
<li>If header row is enabled and more fields are found on a row of data than in the header row, an extra field will appear in that row called <code>__parsed_extra</code>. It contains an array of all data parsed from that row that extended beyond the header row.</li>
</ul>
</div>
<div class="clear"></div>
<div class="grid-100">
<h5 id="errors">Errors</h5>
</div>
<div class="grid-50">
<pre><code class="language-javascript">// Error structure
{
type: "", // A generalization of the error
code: "", // Standardized error code
message: "", // Human-readable details
row: 0, // Row index of parsed data where error is
<!--index: 0 // Character index within original input-->
}</code></pre>
</div>
<div class="grid-50">
<ul>
<li>The error <code>type</code> will be one of "Quotes", "Delimiter", or "FieldMismatch".</li>
<li>The <code>code</code> may be "MissingQuotes", "UndetectableDelimiter", "TooFewFields", or "TooManyFields" (depending on the error type).</li>
<!--<li><code>index</code> may not be available on all error messages because some errors are only generated after parsing is already complete.</li>-->
<li>Just because errors are generated does not necessarily mean that parsing failed. The worst error you can get is probably MissingQuotes.</li>
</ul>
</div>
<div class="clear"></div>
<div class="grid-100">
<h5 id="meta">Meta</h5>
</div>
<div class="grid-50">
<pre><code class="language-javascript">{
delimiter: // Delimiter used
linebreak: // Line break sequence used
aborted: // Whether process was aborted
fields: // Array of field names
truncated: // Whether preview consumed all input
renamedHeaders: // Headers that are automatically renamed by the library to avoid duplication. {Column 1_1: 'Column 1' // the later header 'Column 1' was renamed to 'Column 1_1'}
}</code></pre>
</div>
<div class="grid-50">
<ul>
<li>Not all meta properties will always be available. For instance, <code>fields</code> is only given when header row is enabled.</li>
</ul>
</div>
<div class="clear"></div>
</div>
</section>
<section style="border-bottom: 0; padding-bottom: 0;">
<div class="grid-container">
<div class="grid-100">
<h4 id="extras">Extras</h4>
<p>
There's a few other things that Papa exposes to you that weren't explained above.
</p>
</div>
<div class="grid-100">
<h5 id="readonly">Read-Only</h5>
</div>
<div class="grid-100">
<table>
<tr>
<th>Read-Only Property</th>
<th>Explanation</th>
</tr>
<tr>
<td><code>Papa.BAD_DELIMITERS</code></td>
<td>
An array of characters that are not allowed as delimiters (<code>\r, \n, ", \ufeff</code>).
</td>
</tr>
<tr>
<td><code>Papa.BYTE_ORDER_MARK</code></td>
<td>
The unicode <a href="https://en.wikipedia.org/wiki/Byte_order_mark">Byte Order Mark</a> (<code>\ufeff</code>).
</td>
</tr>
<tr>
<td><code>Papa.RECORD_SEP</code></td>
<td>
The true delimiter. Invisible. ASCII code 30. Should be doing the job we strangely rely upon commas and tabs for.
</td>
</tr>
<tr>
<td><code>Papa.UNIT_SEP</code></td>
<td>
Also sometimes used as a delimiting character. ASCII code 31.
</td>
</tr>
<tr>
<td><code>Papa.WORKERS_SUPPORTED</code></td>
<td>
Whether or not the browser supports HTML5 Web Workers. If false, <code>worker: true</code> will have no effect.
</td>
</tr>
</table>
</div>
<div class="grid-100">
<h5 id="configurable">Configurable</h5>
</div>
<div class="grid-100">
<table>
<tr>
<th>Configurable Property</th>
<th>Explanation</th>
</tr>
<tr>
<td><code>Papa.LocalChunkSize</code></td>
<td>
The size in bytes of each file chunk. Used when streaming files obtained from the DOM that exist on the local computer. Default 10 MB.
</td>
</tr>
<tr>
<td><code>Papa.RemoteChunkSize</code></td>
<td>
Same as LocalChunkSize, but for downloading files from remote locations. Default 5 MB.
</td>
</tr>
<tr>
<td><code>Papa.DefaultDelimiter</code></td>
<td>
The delimiter used when it is left unspecified and cannot be detected automatically. Default is comma.
</td>
</tr>
</table>
</div>
<div class="clear"></div>
</div>
</section>
</main>
<footer>
<!--<div class="footer-top">
<h3>Make Your Papa Proud</h3>
<h4><a href="https://github.com/mholt/PapaParse">Star</a> and <a href="https://github.com/mholt/PapaParse/blob/gh-pages/resources/js/lovers.js">shout</a> if you love #PapaParse</h4>
</div>-->
<div class="footer-main">
<div class="grid-container">
<div class="grid-40 text-center">
<div class="logo">P</div>
<br><br>
Papa Parse by <a href="https://twitter.com/mholt6">Matt Holt</a>
<br>
© 2013-2019
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Learn</h5>
<a href="/demo">Demo</a>
<a href="/docs">Documentation</a>
<a href="/faq">FAQ</a>
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Project</h5>
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=S6VTL9FQ6L8EN&item_name=PapaParse¤cy_code=EUR&source=url">Donate</a>
<a href="https://github.com/mholt/PapaParse">GitHub</a>
<a href="https://twitter.com/search?q=%23PapaParse">Share</a>
</div>
<div class="clear hide-on-desktop"></div>
<div class="grid-15 mobile-grid-50 links">
<h5>Download</h5>
<a href="https://github.com/mholt/PapaParse/archive/master.zip">Latest (master)</a>
<hr>
<a href="https://github.com/mholt/PapaParse/blob/master/papaparse.min.js">Lil' Papa</a>
<a href="https://github.com/mholt/PapaParse/blob/master/papaparse.js">Fat Papa</a>
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Community</h5>
<a href="https://twitter.com/search?q=%23PapaParse">Twitter</a>
<a href="http://stackoverflow.com/questions/tagged/papaparse">Stack Overflow</a>
</div>
</div>
</div>
</footer>
</body>
</html>
================================================
FILE: docs/faq.html
================================================
<!DOCTYPE html>
<html>
<head>
<title>FAQ - Papa Parse</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, maximum-scale=1.0">
<meta name="theme-color" content="#ffffff">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Arvo|Source+Sans+Pro:400,400italic,700|Lato:300,400">
<link rel="stylesheet" href="/resources/css/unsemantic.css">
<link rel="stylesheet" href="/resources/css/tomorrow.highlight.css">
<link rel="stylesheet" href="/resources/css/common.css">
<script src="/resources/js/jquery.min.js"></script>
<script src="/resources/js/highlight.min.js"></script>
<script src="/resources/js/common.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</head>
<body>
<main>
<header>
<div class="grid-container">
<div class="grid-40 mobile-grid-50">
<div class="links">
<a href="/demo">
<i class="fa fa-magic fa-lg"></i> Demo
</a>
<a href="/docs">
<i class="fa fa-book fa-lg"></i> Docs
</a>
<a href="/faq">
<i class="fa fa-question fa-lg"></i> FAQ
</a>
</div>
</div>
<div class="grid-20 hide-on-mobile text-center">
<a href="/" class="text-logo">Papa Parse 5</a>
</div>
<div class="grid-40 mobile-grid-50 text-right">
<div class="links">
<a href="https://github.com/mholt/PapaParse">
<i class="fa fa-github fa-lg"></i> GitHub
</a>
<a href="http://stackoverflow.com/questions/tagged/papaparse">
<i class="fa fa-stack-overflow fa-lg"></i> Help
</a>
</div>
</div>
</div>
</header>
<h1>FAQ</h1>
<div class="grid-container">
<div class="prefix-15 grid-70 suffix-15">
<h4 id="general">General</h4>
<h6 id="why">Why use Papa Parse?</h6>
<p>
There's a thousand CSV libraries for Javascript. Papa is different. It's written with correctness and performance in mind. Papa is the first (and so far only) multi-threaded CSV parser that runs on web pages. It can parse files gigabytes in size without crashing the browser. It correctly handles malformed or edge-case CSV text. It can parse files on the local file system or download them over the Internet. Papa is boss.
</p>
<p>
Privacy advocates also use Papa Parse to avoid having to transmit sensitive files over the Internet. Now all the processing can be done locally on the client's computer. This is especially significant considering some organizations' policies.
</p>
<p>
As of version 4, Papa Parse is the <a href="http://jsperf.com/javascript-csv-parsers/4">fastest CSV parser</a> for the browser, whereas it used to be the slowest.
</p>
<h6 id="nodejs">Can I use Papa Parse server-side with Node.js?</h6>
<p>Yes, Paparse supports Node. See <a href="https://github.com/mholt/PapaParse/blob/master/README.md#papa-parse-for-node" target="_blank">our README</a> for further details.
</p>
<h6 id="dependencies">Does Papa Parse have any dependencies?</h6>
<p>
No. Papa Parse has no dependencies. If jQuery is present, however, it plugs in to make it easier to select files from the DOM.
</p>
<h6 id="combine">Can I put other libraries in the same file as Papa Parse?</h6>
<p>
Yes.
</p>
<h6 id="browsers">Which browsers is it compatible with?</h6>
<p>
All modern, competent browsers should support all of the features. However, as usual, use IE at your own risk. It looks like IE 10+ and Safari 6+ should support all the features. Firefox and Chrome should work with all features back to versions 3 and 4. Opera 11 and up should be fine. If you really need to use Papa in old IE or Opera, then keep the fancy features off and you may be in luck.
</p>
<h6 id="async">Can Papa Parse be loaded asynchronously (after the page loads)?</h6>
<p>
Yes.
</p>
<h6 id="open-source">Is it open source? (Can I contribute something?)</h6>
<p>
Yes, please! I don't want to do this all by myself. Head over to the <a href="https://github.com/mholt/PapaParse">GitHub project page</a> and hack away. If you're making a significant change, open an issue first so we can talk about it.
</p>
<h6 id="fast-mode">What's the deal with fast mode?</h6>
<p>
Fast mode makes <a href="http://jsperf.com/javascript-csv-parsers/3">Papa Parse screaming fast</a>, but you wouldn't want to use it if there are quoted fields in your input. Fast mode is fast because it makes one major assumption: no quoted fields. If you don't specify fastMode either way, fast mode will be turned on automatically if there are no quote characters in the input. With fast mode on, 1 GB files can be parsed in about 20 seconds.
</p>
<h6 id="encoding">Why do non-ASCII characters look weird?</h6>
<p>
It's probably an encoding issue. The FileReader API allows you to specify an encoding, which you can do using the <code>encoding</code> configuration property. This property only works with local files and does not apply to strings or remote files. Also see issues <a href="https://github.com/mholt/PapaParse/issues/64">#64</a> and <a href="https://github.com/mholt/PapaParse/issues/169">#169</a> if you're having trouble parsing CSV files generated from Excel.
</p>
<br><br>
<h4 id="streaming">Streaming</h4>
<h6>Can Papa load and parse huge files?</h6>
<p>
Yes. Parsing huge text files is facilitated by <i>streaming</i>, where the file is loaded a little bit at a time, parsed, and the results are sent to your <a href="/docs#config">step</a> callback function, row-by-row. You can also get results chunk-by-chunk (which is usually faster) by using the <code>chunk</code> callback function in the same way.
</p>
<h6>How do I stream my input?</h6>
<p>
Just specify a <a href="/docs#config">step</a> callback function. Results will <i>not</i> be available after parsing is finished, however. You have to inspect the results one row at a time.
</p>
<h6>What if I want more than 1 row at a time?</h6>
<p>
Use the <code>chunk</code> callback instead. It works just like step, but you get an entire chunk of the file at a time, rather than a single row. Don't try to use step and chunk together (the behavior is undefined).
</p>
<h6>What is a stream and when should I stream files?</h6>
<p>
A stream is a unique data structure which, given infinite time, gives you infinite space.
So if you're short on memory (as browsers often are), use a stream.
</p>
<h6>Wait, does that mean streaming takes more time?</h6>
<p>
Yes and no. Typically, when we gain speed, we pay with space. The opposite is true, too. Streaming uses significantly less memory with large inputs, but since the reading happens in chunks and results are processed at each row instead of at the very end, yes, it can be slower.
</p>
<p>
But consider the alternative: upload the file to a remote server, open and process it there, then compress the output and have the client download the results. How long does it take you to upload a 500 MB or 1 GB file? Then consider that the server still has to open the file and read its contents, which is what the client would have done minutes ago. The server might parse it faster with natively-compiled binaries, but only if its resources are dedicated to the task and isn't already parsing files for many other users.
</p>
<p>
So unless your clients have <a href="http://google.com/fiber">a fiber line</a> and you have a scalable cloud application, local parsing by streaming is nearly guaranteed to be faster.
</p>
<h6>How do I get all the results together after streaming?</h6>
<p>
You don't. Unless you assemble it manually. And really, don't do that... it defeats the purpose of using a stream. Just take the parts you need as they come through.
</p>
<h6>Does Papa use a true stream?</h6>
<p>
Papa uses HTML5's FileReader API which uses a stream. FileReader doesn't technically allow us to hook into the underlying stream, but it does let us load the file in pieces. But fortunately you don't have to worry about that; it's all taken care of for you. Just take the results one row at a time.
</p>
<h6>Can I stream files over a network or the Internet?</h6>
<p>
Yes, Papa Parse supports this. It will download a file in pieces using HTTP's standard Range header, then pass the parsed results to your step function just like a local file. However, these requests may not work cross-origin (different domain/hostname), depending on the server's configuration.
</p>
<p>
Streaming remote files also requires the Content-Range header in the server's response. Most production-ready servers support this header, but Python's SimpleHTTPServer does not. If you need a quick and easy server, <a href="https://caddyserver.com">Caddy</a> will do the trick: <code>$ caddy</code>
</p>
<h6>Can I pause and resume parsing?</h6>
<p>
Yes, as long as you are streaming and not using a worker. Your <a href="/docs#step">step callback</a> (same with the <code>chunk</code> callback) is passed a parser which has pause, resume, and abort functions. This is exceptionally useful when performing asynchronous actions during parsing, for example, AJAX requests. You can always abort parsing in your callback, even when using workers, but pause and resume is only available without a worker.
</p>
<br><br>
<h4 id="workers">Multi-Threading (Workers)</h4>
<h6>Can I use workers for unparsing?</h6>
<p>
No, unparsing CSV files with workers is not currently available. Workers can only be used for parsing CSV files.
</p>
<h6>What is a web worker? Why use one?</h6>
<p>
<a href="https://developer.mozilla.org/en-US/docs/Web/API/Worker">HTML5 Web Workers</a> facilitate basic multi-threading in the browser. This means that a web page can spawn a new thread in the operating system that runs Javascript code. This is highly beneficial for long-running scripts that would otherwise lock up the web page.
</p>
<h6>How do I use a worker?</h6>
<p>
Just specify <code>worker: true</code> in your <a href="/docs#config">config</a>. You'll also need to make a <code>complete</code> callback (unless you're streaming) so that you can get the results, because using a worker makes the parse function asynchronous.
</p>
<h6>Can I use a worker if I combine/concatenate my Javascript files?</h6>
<p>
Yes.
</p>
<h6>When should I use a worker?</h6>
<p>
That's up to you. The most typical reason to use a web worker is if your web page becomes unresponsive during parsing. In other words, if it freezes and you can't click things or the scrolling becomes choppy. If that happens, some browsers (like Firefox) will warn the user that a script has become unresponsive or is taking a long time (even if it's working properly). If this happens to you or some of your users, consider using a web worker, at least for the large inputs.
</p>
<p>
However, read the next answer for more info. Using workers has performance implications (both good and bad).
</p>
<h6>What are the performance implications of using a worker thread?</h6>
<p>
Using a worker will be a little slower. In Javascript, threads don't share memory. That's really annoying because sharing memory is the primary reason for multi-threading. As such, all parse results in a worker thread need to be <i>copied</i> to the main thread. And if you're parsing a string in a worker thread, that string also needs to be copied into the worker in the first place. (Files will be opened or downloaded by the worker itself, so the input doesn't need to be copied from the main thread in those cases.)
</p>
<p>
The process of sending data between the page and the worker thread can stall the main page for just a moment. Each thread must also wait for the data to finish sending before un-blocking.
</p>
<p>
Basically: if you don't have much time, don't use a worker. If you can afford a little extra time, use a worker. It will keep your page from appearing unresponsive and give users an overall better experience.
</p>
<h6>Can I stream and use a worker at the same time?</h6>
<p>
Yup. If the input is too large to fit in memory (or large enough to crash the browser), streaming is <i>always</i> the answer, even in a worker thread. Workers keep the page reactive. Streaming makes it able to fit in memory. Use both if you need to.
</p>
<h6>Can I pause/resume workers?</h6>
<p>
No. This would drastically slow down parsing, as it would require the worker to wait after every chunk for a "continue" signal from the main thread. But you <i>can</i> abort workers by calling <code>.abort()</code> on the parser that gets passed to your callback function.
</p>
<h6>I set worker:true and now I'm getting an error: "window is not defined." How do I fix it?</h6>
<p>
This is a fairly common issue with configuration and it appears to be related to the use of React or other third party tools. Since this is a configuration issue, the exact steps needed to solve it may vary. See <a href="https://github.com/mholt/PapaParse/issues/655">Issue #655</a> on GitHub for a solution that worked for one person, and for links to other related issues.
</p>
</div>
</div>
</main>
<footer>
<!--<div class="footer-top">
<h3>Make Your Papa Proud</h3>
<h4><a href="https://github.com/mholt/PapaParse">Star</a> and <a href="https://github.com/mholt/PapaParse/blob/gh-pages/resources/js/lovers.js">shout</a> if you love #PapaParse</h4>
</div>-->
<div class="footer-main">
<div class="grid-container">
<div class="grid-40 text-center">
<div class="logo">P</div>
<br><br>
Papa Parse by <a href="https://twitter.com/mholt6">Matt Holt</a>
<br>
© 2013-2019
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Learn</h5>
<a href="/demo">Demo</a>
<a href="/docs">Documentation</a>
<a href="/faq">FAQ</a>
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Project</h5>
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=S6VTL9FQ6L8EN&item_name=PapaParse¤cy_code=EUR&source=url">Donate</a>
<a href="https://github.com/mholt/PapaParse">GitHub</a>
<a href="https://twitter.com/search?q=%23PapaParse">Share</a>
</div>
<div class="clear hide-on-desktop"></div>
<div class="grid-15 mobile-grid-50 links">
<h5>Download</h5>
<a href="https://github.com/mholt/PapaParse/archive/master.zip">Latest (master)</a>
<hr>
<a href="https://github.com/mholt/PapaParse/blob/master/papaparse.min.js">Lil' Papa</a>
<a href="https://github.com/mholt/PapaParse/blob/master/papaparse.js">Fat Papa</a>
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Community</h5>
<a href="https://twitter.com/search?q=%23PapaParse">Twitter</a>
<a href="http://stackoverflow.com/questions/tagged/papaparse">Stack Overflow</a>
</div>
</div>
</div>
</footer>
</body>
</html>
================================================
FILE: docs/index.html
================================================
<!DOCTYPE html>
<html>
<head>
<title>Papa Parse - Powerful CSV Parser for JavaScript</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, maximum-scale=1.0">
<meta name="theme-color" content="#ffffff">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css">
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Arvo|Source+Sans+Pro:400,400italic,700|Lato:300,400">
<link rel="stylesheet" href="/resources/css/unsemantic.css">
<link rel="stylesheet" href="/resources/css/tomorrow.highlight.css">
<link rel="stylesheet" href="/resources/css/common.css">
<link rel="stylesheet" href="/resources/css/home.css">
<script src="/resources/js/jquery.min.js"></script>
<script src="/resources/js/skrollr.min.js"></script>
<script src="/resources/js/highlight.min.js"></script>
<script src="/resources/js/lovers.js"></script>
<script src="/resources/js/common.js"></script>
<script src="/resources/js/home.js"></script>
</head>
<body>
<div id="skrollr-body">
<div id="top" data-top="bottom: 0px; opacity: 1;" data-top-bottom="bottom: -350px; opacity: .3;">
<div class="grid-container">
<div class="grid-100">
<div id="title-main">
<h1>Papa Parse</h1>
<h2>The powerful, in-browser CSV parser for big boys and girls</h2>
<a href="https://github.com/mholt/PapaParse/archive/5.0.2.zip" class="button">
<i class="fa fa-download"></i> Download
</a>
<a href="/demo" class="button red">
<i class="fa fa-magic"></i> Demo
</a>
<a href="/docs" class="button gray">
<i class="fa fa-book"></i> Documentation
</a>
</div>
<div id="title-code">
<pre><code class="language-javascript">// Parse CSV string
var data = Papa.parse(csv);
// Convert back to CSV
var csv = Papa.unparse(data);
// Parse local CSV file
Papa.parse(file, {
complete: function(results) {
console.log("Finished:", results.data);
}
});
// Stream big file in worker thread
Papa.parse(bigFile, {
worker: true,
step: function(results) {
console.log("Row:", results.data);
}
});</code></pre>
</div>
</div>
</div>
</div>
<main>
<header>
<div class="grid-container">
<div class="grid-40 mobile-grid-50">
<div class="links">
<a href="/demo">
<i class="fa fa-magic fa-lg"></i> Demo
</a>
<a href="/docs">
<i class="fa fa-book fa-lg"></i> Docs
</a>
<a href="/faq">
<i class="fa fa-question fa-lg"></i> FAQ
</a>
</div>
</div>
<div class="grid-20 hide-on-mobile text-center">
<a href="/" class="text-logo">Papa Parse 5</a>
</div>
<div class="grid-40 mobile-grid-50 text-right">
<div class="links">
<a href="https://github.com/mholt/PapaParse">
<i class="fa fa-github fa-lg"></i> GitHub
</a>
<a href="http://stackoverflow.com/questions/tagged/papaparse">
<i class="fa fa-stack-overflow fa-lg"></i> Help
</a>
</div>
</div>
</div>
</header>
<div class="insignia">
<div class="firefox-hack"><div id="version-intro">Version</div><div id="version">5.0</div></div>
</div>
<section style="padding-top: 0;">
<div class="grid-container">
<div class="grid-100">
<h3>Features</h3>
</div>
</div>
<div id="ticker">
<div class="ticker-item current">
<p>Now the <a href="http://jsperf.com/javascript-csv-parsers/4">fastest</a> JavaScript CSV parser for the browser</p>
</div>
<div class="ticker-item">
<p>The world's first multi-threaded CSV parser for the browser</p>
</div>
<div class="ticker-item">
<p>Papa can handle files gigabytes in size without crashing</p>
</div>
<div class="ticker-item">
<p>Use Papa when performance, privacy, and correctness matter to you</p>
</div>
<div class="ticker-item">
<p>Papa alleviates privacy concerns related to uploading files</p>
</div>
<div class="ticker-item">
<p>Malformed CSV is handled gracefully with a detailed error report</p>
</div>
</div>
<div class="grid-container">
<div class="grid-33">
<li>CSV→JSON and <a href="#unparse">JSON→CSV</a></li>
<li>Auto-detect <a href="#delimiter">delimiter</a></li>
<li><a href="#local-files">Open local files</a></li>
<li><a href="#remote-files">Download remote files</a></li>
</div>
<div class="grid-33">
<li><a href="#stream">Stream</a> local and remote files</li>
<li><a href="#worker">Multi-threaded</a></li>
<li><a href="#header">Header row</a> support</li>
<li><a href="#type-conversion">Type conversion</a></li>
</div>
<div class="grid-33">
<li>Skip <a href="#comments">commented lines</a></li>
<li>Fast mode</li>
<li>Graceful <a href="#errors">error</a> handling</li>
<li>Optional <a href="#jquery">sprinkle</a> of jQuery</li>
</div>
<div class="clear"></div>
<br>
<br>
<div class="grid-100 text-center">
<a href="https://github.com/mholt/PapaParse" class="button">
<i class="fa fa-github"></i> GitHub
</a>
<a href="/docs" class="button gray">
<i class="fa fa-book"></i> Documentation
</a>
</div>
</div>
</section>
<section>
<div class="grid-container">
<div class="grid-100 text-center">
<h3>People <i class="fa fa-heart"></i> Papa</h3>
</div>
<div class="grid-100 text-center">
<br>
<p>
<a href="https://www.npmjs.com/package/papaparse">
<img
src="https://img.shields.io/npm/dm/papaparse.svg"
alt="PapaParse"
/>
</a>
<a href="https://www.npmjs.com/package/react-papaparse">
<img
src="https://img.shields.io/npm/dt/papaparse.svg?label=total%20downloads"
alt="PapaParse"
/>
</a>
</p>
</div>
<div class="grid-33">
<p class="lover">
<a href="https://smartystreets.com">SmartyStreets</a> verifies addresses, many of which are in CSV files. Papa Parse can process huge files in the browser. <i>"We rapidly built an awesome client-side file processor with Papa Parse."</i>
</p>
</div>
<div class="grid-33">
<p class="lover">
<a href="http://jannah.github.io/MetaReader/">MetaReader</a> helps you see your data from a meta level before you start detailed analysis. <i>"Papa Parse made it very easy to load and ready user CSV files in the browser on the client side."</i>
</p>
</div>
<div class="grid-33">
<p class="lover">
<a href="http://jannah.github.io/MetaReader/">EpiML</a> is an agent-based mathematical model for the web, still in its early stages of development. <i>"Papa makes it so easy to use CSV, which is good for scientists."</i>
</p>
</div>
<div class="clear"></div>
<div class="grid-100 text-center">
<br>
<b><a href="https://github.com/mholt/PapaParse/blob/master/docs/resources/js/lovers.js" class="add-lover-link subheader"><i class="fa fa-plus-square"></i> Add your link (it's free)</a></b>
</div>
</div>
</section>
<section id="parse">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>CSV Parsing</h4>
<h5>"Isn't parsing CSV just <code>String.split(',')</code>?"</h5>
<p>Heavens, no. Papa does it right. Just pass in the CSV string with an optional <a href="/docs#config">configuration</a>.</p>
<pre><code class="language-javascript">var results = Papa.parse(csvString, <a href="/docs#config">config</a>);
/*
results = {
data: [ ... ], // parsed data
errors: [ ... ], // errors encountered
meta: { ... } // extra parse info
}
*/</code></pre>
</div>
</div>
</section>
<section id="delimiter">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>Delimiter Detection</h4>
<h5>"But I don't know the delimiter..."</h5>
<p>That's okay. Papa will scan the first few rows to find the right delimiter.</p>
<pre><code class="language-javascript">var results = Papa.parse(csvString);
console.log(results.meta.delimiter);
// "\t"</code></pre>
</div>
</div>
</section>
<section id="local-files">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>Local Files</h4>
<h5>"Great, but I have a <i>file</i> to parse."</h5>
<p>Then give Papa a <a href="https://developer.mozilla.org/en-US/docs/Web/API/File">File</a> instead of a string. Since file parsing is asynchronous, don't forget a callback.</p>
<pre><code class="language-javascript">Papa.parse(fileInput.files[0], {
complete: function(results) {
console.log(results);
}
});</code></pre>
</div>
</div>
</section>
<section id="remote-files">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>Remote Files</h4>
<h5>"No—I mean, the file isn't on my computer."</h5>
<p>Oh, well then just pass in the URL and—of course—a callback.</p>
<pre><code class="language-javascript">Papa.parse("http://example.com/file.csv", {
download: true,
complete: function(results) {
console.log(results);
}
});</code></pre>
</div>
</div>
</section>
<section id="stream">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>Streaming</h4>
<h5>"Did I mention the file is huge?"</h5>
<p>That's what streaming is for. Specify a step callback to receive the results row-by-row. This way, you won't load the whole file into memory and crash the browser.</p>
<pre><code class="language-javascript">Papa.parse("http://example.com/big.csv", {
download: true,
step: function(row) {
console.log("Row:", row.data);
},
complete: function() {
console.log("All done!");
}
});</code></pre>
</div>
</div>
</section>
<section id="worker">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>Multi-Threading</h4>
<h5>"Lovely. Now my web page locked up."</h5>
<p>That happens when a long-running script is executing in the same thread as the page. Use a <a href="https://developer.mozilla.org/en-US/docs/Web/API/Worker">Worker</a> thread by specifying <code>worker: true</code>. It may take slightly longer, but your page will stay reactive.</p>
<pre><code class="language-javascript">Papa.parse(bigFile, {
worker: true,
step: function(row) {
console.log("Row:", row.data);
},
complete: function() {
console.log("All done!");
}
});</code></pre>
</div>
</div>
</section>
<section id="header">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>Header Row</h4>
<h5>"Great! Now I want data keyed by field name."</h5>
<p>If you tell Papa there is a header row, each row will be organized by field name instead of index.</p>
<pre><code class="language-javascript">// Key data by field name instead of index/position
var results = Papa.parse(csv, {
header: true
});</code></pre>
</div>
</div>
</section>
<section id="type-conversion">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>Type Conversion</h4>
<h5>"Hey, these numbers are parsed as strings."</h5>
<p><i>Everything</i> is parsed as strings. If you want numbers and booleans, you can enable dynamic typing to do the conversion for you.</p>
<pre><code class="language-javascript">// Converts numeric/boolean data
var results = Papa.parse(csv, {
dynamicTyping: true
});</code></pre>
</div>
</div>
</section>
<section id="comments">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>Comments</h4>
<h5>"I forgot to mention: my CSV files have comments in them."</h5>
<p>Okay, first off: that's really weird. But fortunately, you can skip those lines... just specify the comment string.</p>
<pre><code class="language-javascript">// Mostly found in academia, some CSV files
// may have commented lines in them
var results = Papa.parse(csv, {
comments: "#"
});</code></pre>
</div>
</div>
</section>
<section id="errors">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>Error Handling</h4>
<h5>"Aw, shoot. Errors."</h5>
<p>Papa handles errors pretty well. The <a href="http://tools.ietf.org/html/rfc4180">CSV standard</a> is somewhat <strike>loose</strike> ambiguous, so Papa is designed for edge cases. For example, mismatched fields won't break parsing.</p>
<pre><code class="language-javascript">// Example error:
{
type: "FieldMismatch",
code: "TooManyFields",
message: "Expected 3 fields, but parsed 4",
row: 1
}</code></pre>
</div>
</div>
</section>
<section id="jquery">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>jQuery Plugin</h4>
<h5>"Can I use Papa with jQuery?"</h5>
<p>Sure, but it's not required. You can use jQuery to select file input elements and then parse their files. Papa exposes its file parsing API as a jQuery plugin only when jQuery is defined. Papa Parse has <b>no dependencies</b>.</p>
<pre><code class="language-javascript">$("input[type=file]").parse({
config: {
complete: function(results, file) {
console.log("This file done:", file, results);
}
},
complete: function() {
console.log("All files done!");
}
});</code></pre>
</div>
</div>
</section>
<section id="unparse">
<div class="grid-container narrow-grid">
<div class="grid-100">
<h4>JSON to CSV</h4>
<h5>"Last thing: what about converting JSON to CSV?"</h5>
<p>Call <code>unparse()</code> instead of <code>parse()</code>, passing in your array of arrays or array of objects. Papa will figure it out.</p>
<pre><code class="language-javascript">// Output is a properly-formatted CSV string.
// See <a href="/docs#json-to-csv">the docs</a> for more configurability.
var csv = Papa.unparse(yourData);</code></pre>
</div>
</div>
</section>
<section id="download">
<div class="grid-container">
<div class="grid-100">
<h3>Who's Your Papa?</h3>
</div>
<div class="grid-45 suffix-5 mini-papa">
<p>
<b><a href="https://github.com/mholt/PapaParse/blob/master/papaparse.min.js">Lil' Papa</a></b>
(minified) for production use
</p>
</div>
<div class="grid-45 prefix-5">
<p>
<b><a href="https://github.com/mholt/PapaParse/blob/master/papaparse.js">Fat Papa</a></b>
(un-minified) for development
</p>
</div>
<div class="clear"></div>
<div class="prefix-30 grid-40 suffix-30">
<b style="display: block; text-align: center;">npm</b>
<pre><code class="language-bash">$ npm install papaparse</code></pre>
<br>
<b style="display: block; text-align: center;">bower</b>
<pre><code class="language-bash">$ bower install papaparse</code></pre>
</div>
<div class="clear"></div>
<div class="grid-100 text-center">
<br><br>
<a href="https://github.com/mholt/PapaParse" class="button">
<i class="fa fa-github"></i> GitHub
</a>
<a href="/demo" class="button red">
<i class="fa fa-magic"></i> Demo
</a>
<a href="/docs" class="button gray">
<i class="fa fa-book"></i> Documentation
</a>
</div>
</div>
</section>
</main>
<footer>
<!--<div class="footer-top">
<h3>Make Your Papa Proud</h3>
<h4><a href="https://github.com/mholt/PapaParse">Star</a> and <a href="https://github.com/mholt/PapaParse/blob/gh-pages/resources/js/lovers.js">shout</a> if you love #PapaParse</h4>
</div>-->
<div class="footer-main">
<div class="grid-container">
<div class="grid-40 text-center">
<div class="logo">P</div>
<br><br>
Papa Parse by <a href="https://twitter.com/mholt6">Matt Holt</a>
<br>
© 2013-2019
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Learn</h5>
<a href="/demo">Demo</a>
<a href="/docs">Documentation</a>
<a href="/faq">FAQ</a>
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Project</h5>
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=S6VTL9FQ6L8EN&item_name=PapaParse¤cy_code=EUR&source=url">Donate</a>
<a href="https://github.com/mholt/PapaParse">GitHub</a>
<a href="https://twitter.com/search?q=%23PapaParse">Share</a>
</div>
<div class="clear hide-on-desktop"></div>
<div class="grid-15 mobile-grid-50 links">
<h5>Download</h5>
<a href="https://github.com/mholt/PapaParse/archive/master.zip">Latest (master)</a>
<hr>
<a href="https://unpkg.com/papaparse@latest/papaparse.min.js">Lil' Papa</a>
<a href="https://unpkg.com/papaparse@latest/papaparse.js">Fat Papa</a>
</div>
<div class="grid-15 mobile-grid-50 links">
<h5>Community</h5>
<a href="https://twitter.com/search?q=%23PapaParse">Twitter</a>
<a href="http://stackoverflow.com/questions/tagged/papaparse">Stack Overflow</a>
</div>
</div>
</div>
</footer>
</div>
</body>
</html>
================================================
FILE: docs/resources/css/common.css
================================================
/* Eric Meyer's Reset CSS v2.0 */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}
body,
main {
background: #FFF;
}
body {
font: 18px/1.5em 'Source Sans Pro', 'Helvetica Neue', sans-serif;
color: #333;
height: 100%;
}
main {
padding-top: 100px;
}
a {
color: #1D58B1;
}
a:hover {
color: #2AACFC;
}
b {
font-weight: bold;
}
i {
font-style: italic;
}
p,
li {
line-height: 1.75em;
}
p {
margin-bottom: 25px;
}
small {
font-size: 12px;
}
h1,
h2,
h3,
h4,
h5 {
text-align: center;
}
h1 {
font-family: Lato;
font-weight: 300;
font-size: 40px;
margin-bottom: 50px;
}
h2 {
font-size: 60px;
line-height: 1.25em;
}
h3 {
font-size: 48px;
margin-bottom: 30px;
line-height: 1.5em;
}
h4 {
font-size: 28px;
margin-bottom: 50px;
line-height: 1.25em;
}
h5, footer h4 {
font-size: 20px;
letter-spacing: 2px;
text-transform: uppercase;
color: #242627;
line-height: 1em;
margin: 50px auto;
}
h6 {
font-weight: bold;
text-align: left;
margin: 40px auto 5px;
}
/*
Neat hack! http://css-tricks.com/hash-tag-links-padding/
So when you navigate in-page, the sticky header doesn't cover it up
*/
h2[id]:before,
h3[id]:before,
h4[id]:before,
h5[id]:before,
h6[id]:before {
display: block;
content: " ";
margin-top: -75px;
height: 75px;
visibility: hidden;
}
ul,
ol {
margin: 0 0 0 2em;
}
ul {
list-style-type: disc;
}
ol {
list-style-type: decimal;
}
header,
main,
footer {
position: relative;
z-index: 1;
}
header,
.insignia {
background: #FFF;
border-color: #CCC;
border-style: solid;
box-shadow: 0 -4px 20px -3px rgba(0, 0, 0, 0.2);
}
header {
position: fixed;
top: 0;
width: 100%;
border-bottom-width: 1px;
}
section {
padding: 100px 0;
border-bottom: 1px solid #E3E3E3;
}
main h2 {
color: #253C50; /* #365DA3 */ /* #3D3D3D */ /* #9B0000 */
font-weight: 300;
line-height: 1.25em;
margin: 0px 0 50px;
}
main pre {
padding: 10px;
background: #F5F5F5;
}
.text-logo,
header .links a {
display: inline-block;
color: #777;
}
.text-logo {
font-family: Arvo, sans-serif;
letter-spacing: -1px;
color: #1D80AB;
font-size: 24px;
text-decoration: none;
padding: 15px 10px;
}
.text-logo:hover {
color: #66B0E2;
}
header .links a {
font-size: 14px;
padding: 15px 25px;
text-decoration: none;
}
header .links a:hover {
color: #000;
}
header .links a:first-child {
padding-left: 10px;
}
header .links a .fa {
margin-right: 5px;
}
.donate {
background: #D9FFD1;
}
.donate:hover {
background: #A1FF87 !important;
}
code {
font: 75%/1em 'Liberation Mono', 'Consolas', 'Monaco', 'Menlo', 'Courier New', monospace;
color: #000;
padding: 5px;
background: #F5F5F5;
}
h2 code {
font-size: 42px;
background: none;
}
pre > code {
display: block;
line-height: 1.5em;
font-size: 14px;
tab-size: 4;
}
.button,
button,
input[type=button],
button[type=submit] {
display: inline-block;
padding: 10px 25px;
color: #FFF;
border: 0;
text-decoration: none;
background: #366992;
margin: 5px;
transition: background .2s;
border-radius: 50px;
cursor: pointer;
outline: none;
line-height: 1.5em;
font-size: 18px;
}
.button[disabled],
button[disabled],
input[disabled] {
background: #BBB !important;
cursor: default !important;
}
.button:hover,
button:hover,
input[type=button]:hover,
button[type=submit]:hover {
text-decoration: none;
background: #4B91C9;
color: #FFF;
}
.button.red,
button.red {
background: #A01919;
}
.button.red:hover,
button.red:hover {
background: #DD2222;
}
.button.green,
button.green {
background: #419236;
}
.button.green:hover,
button.green:hover {
background: #4DB43F;
}
.button.gray,
button.gray {
background: #666;
}
.button.gray:hover,
button.gray:hover {
background: #999;
}
hr {
border: 0;
border-top: 1px solid #D0D0D0;
}
table {
border-collapse: collapse;
width: 100%;
}
th,
td {
padding: 20px;
font-size: 16px;
border-bottom: 1px solid #E0E0E0;
}
th {
font-weight: bold;
text-align: left;
}
table pre code {
font-size: 12px;
}
table pre,
li pre {
margin: 10px 0;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
footer {
z-index: 0;
background: #263A49;
box-shadow: 0 0 50px rgba(0, 0, 0, 0.5);
border-bottom: 0;
padding: 0;
font-weight: 300;
font-size: 15px;
color: #EFEFEF;
line-height: 1.5em;
margin-top: 75px;
}
footer a {
color: #EFEFEF;
text-decoration: underline;
}
/*
footer .footer-top {
padding: 20px;
background: #2C4252;
}
*/
footer .footer-main {
font-family: Lato;
padding: 65px 0;
}
footer .links a {
color: #A1B2C2;
text-decoration: none;
transition: color .2s;
display: block;
font-size: 14px;
font-weight: 300;
line-height: 2em;
}
footer .links a:hover {
color: #ACD7FF;
text-decoration: none;
}
footer h3 {
color: #FFF;
font-size: 22px;
margin: 0;
}
footer h4 {
margin: 0;
}
footer h4 a {
color: #A1B2C2;
text-decoration: underline;
}
footer h5 {
color: #FFF;
text-transform: uppercase;
font-size: 16px;
margin: 0 0 10px 0;
font-weight: normal;
text-align: left;
}
footer hr {
border: 0;
border-top: 1px solid #3E5566;
width: 60%;
min-width: 50px;
margin: 10px 0;
}
.logo {
display: inline-block;
color: #263A49;
font-family: Arvo;
font-size: 90px;
line-height: 1em;
background: #EFEFEF;
border-radius: 100px;
padding: 10px 30px;
}
.stuck {
position: fixed;
top: 0;
width: 100%;
border-top-width: 0;
border-bottom-width: 1px;
}
@media (max-width: 1100px) {
.text-logo {
font-size: 18px;
}
p,
li {
line-height: 1.5em;
}
}
@media (max-width: 970px) {
header .links a {
padding: 15px;
}
header > .grid-container,
header .mobile-grid-50 {
padding: 0;
}
}
@media (max-width: 840px) {
header .links a {
font-size: 12px;
}
}
@media (max-width: 767px) {
/* mobile */
p,
li {
line-height: 1.5em;
}
header,
.sticky-wrapper {
position: static;
margin-bottom: 50px !important;
}
header > .grid-container,
header .mobile-grid-50 {
padding: 0;
}
section {
padding: 50px 0;
}
header .links a {
font-size: 16px;
display: block;
text-align: left;
padding: 15px 10% !important;
}
main {
padding-top: 0;
}
main h2 {
font-size: 40px;
}
main h2 code {
font-size: 30px;
}
td,
th {
font-size: 14px;
padding: 10px;
}
footer h5 {
margin-top: 40px;
}
}
================================================
FILE: docs/resources/css/demo.css
================================================
.tabs,
.tab {
border-color: #B4E3FF;
border-style: solid;
}
.tabs {
border-bottom-width: 1px;
padding: 0 5%;
margin-bottom: 30px;
text-align: center;
}
.tab {
display: inline-block;
padding: 8px 20px;
border-bottom-width: 1px;
border-radius: 5px 5px 0 0;
z-index: 2;
cursor: pointer;
font-size: 14px;
color: #777;
background: #FFF;
margin-bottom: -1px;
}
.tab.active {
border-width: 1px;
border-bottom-color: #FFF;
color: #000;
}
.tab:not(.active):hover {
color: #007FB6;
}
label {
display: block;
font-size: 14px;
line-height: 2em;
}
input[type=checkbox] {
margin-right: 4px;
}
textarea,
input[type=text],
input[type=number],
input[type=password],
input[type=email] {
font: 12px/1.25em Menlo, Monaco, 'Courier New', monospace;
padding: 4px;
tab-size: 4;
}
input[type=text],
input[type=number],
input[type=password],
input[type=email] {
margin: 0 6px;
}
textarea {
box-sizing: border-box;
width: 100%;
height: 320px;
padding: 10px;
resize: vertical;
}
dfn {
font-size: 12px;
color: #999;
display: block;
line-height: 1.2em;
margin-bottom: 15px;
}
input[type=checkbox] + dfn {
padding-left: 22px;
}
input[type=file],
#url {
margin: 20px auto;
display: block;
}
input[type=file] {
padding: 10px;
font-size: 12px;
background: #F0F0F0;
}
#insert-tab {
font-size: 12px;
}
.input-area {
margin-bottom: 20px;
font-size: 16px;
line-height: 1em;
}
ul {
margin-top: 20px;
}
li {
line-height: 1.5em;
}
#input-local,
#input-remote,
#input-unparse {
display: none;
}
#submit {
width: 100%;
max-width: 150px;
}
#url {
width: 100%;
font-size: 14px;
max-width: 500px;
}
.see-results {
color: #CC0000;
margin-bottom: 20px;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 1px;
line-height: 1.5em;
}
@media (max-width: 767px) {
/* mobile */
textarea {
height: 250px;
}
.tab {
border: 0;
background: #F0F0F0;
border-radius: 0;
margin: 10px;
display: block;
}
.tab.active {
background: #3B9CE2;
color: #FFF;
}
}
================================================
FILE: docs/resources/css/home.css
================================================
#top {
padding: 6% 0 8%;
color: #1D80AB;
background: #FFF;
position: relative;
z-index: 0;
/*
For better performance, trigger 3D graphics acceleration.
This reduces lag/jitter considerably, esp. in Chrome.
*/
-webkit-transform: translateZ(0);
-webkit-backface-visibility: hidden;
transform-origin: 100% 100%;
}
#top code {
background: none;
}
h1 {
text-align: left;
font-family: Arvo;
font-size: 100px;
line-height: 1em;
margin-top: 8%;
margin-bottom: 40px;
letter-spacing: -5px;
}
h2 {
font-size: 24px;
text-align: left;
margin-bottom: 50px;
}
/* Switch around h4 and h5 for homepage... */
h4 {
font-size: 12px;
letter-spacing: 2px;
margin-bottom: 10px;
text-transform: uppercase;
color: #A1B2C2;
line-height: 1em;
}
h5 {
font-size: 28px;
margin-bottom: 50px;
line-height: 1.25em;
text-transform: none;
color: inherit;
letter-spacing: 0;
margin-top: 0;
}
#title-main {
float: left;
}
#title-code {
float: right;
}
main {
padding-top: 0;
}
.fa-heart {
color: #F00;
}
header {
border-top-width: 1px;
}
header,
.insignia {
position: relative;
}
header,
.sticky-wrapper {
margin-bottom: -150px;
}
header .fa-heart {
color: inherit;
}
.insignia {
display: block;
width: 250px;
height: 250px;
box-sizing: border-box;
border-radius: 50%;
margin: 0 auto;
text-align: center;
color: #1D80AB;
z-index: 2;
margin-bottom: 30px;
border-width: 1px;
}
#version-intro {
position: absolute;
font-size: 12px;
top: 18%;
width: 100%;
font-family: 'Source Sans Pro', sans-serif;
text-transform: uppercase;
letter-spacing: 2px;
}
#version {
text-shadow: 0 3px 2px rgba(169, 169, 169, 0.5);
font: 100px/250px Arvo, sans-serif;
}
.firefox-hack {
position: absolute;
width: 100%;
}
.lover {
margin-bottom: 0;
}
.grid-container.narrow-grid {
max-width: 850px;
}
.mini-papa {
text-align: right;
}
#ticker {
width: 90%;
max-width: 800px;
margin: 0 auto;
height: 80px;
position: relative;
}
.ticker-item {
font-size: 24px;
color: #565656;
text-align: center;
font-family: Lato;
font-weight: 300;
line-height: 1.25em;
width: 100%;
position: absolute;
top: 0;
-webkit-transition: transform .25s;
transition: transform .25s;
-webkit-transform: scale(0);
transform: scale(0);
}
.ticker-item.current {
-webkit-transform: scale(1);
transform: scale(1);
}
.add-lover-link {
text-decoration: none;
}
footer {
margin-top: 0;
}
@media (max-width: 1150px) {
#title-main h1 {
font-size: 85px;
}
#title-main h2 {
font-size: 20px;
margin-bottom: 30px;
}
#title-code code {
font-size: 12px;
}
button,
.button {
padding: 8px 20px;
font-size: 14px;
}
header,
.sticky-wrapper {
margin-bottom: -120px;
}
.insignia {
width: 175px;
height: 175px;
}
#version {
font-size: 70px;
line-height: 175px;
}
}
@media (max-width: 950px) {
#title-code {
display: none;
}
#top {
padding-top: 0;
}
#title-main,
#title-main h1,
#title-main h2 {
width: 100%;
text-align: center;
}
#title-main {
padding-bottom: 50px;
}
}
@media (max-width: 767px) {
/* mobile */
#top h2 {
margin-bottom: 20px;
}
#title-main {
padding-bottom: 10px;
}
.stuck {
position: static;
}
.insignia {
display: none;
}
#ticker {
height: 120px;
}
.lover {
margin-bottom: 25px;
}
.mini-papa {
text-align: left;
}
}
================================================
FILE: docs/resources/css/tomorrow.highlight.css
================================================
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
/* Tomorrow Comment */
.hljs-comment {
color: #8e908c;
}
/* Tomorrow Red */
.hljs-variable,
.hljs-attribute,
.hljs-tag,
.hljs-regexp,
.ruby .hljs-constant,
.xml .hljs-tag .hljs-title,
.xml .hljs-pi,
.xml .hljs-doctype,
.html .hljs-doctype,
.css .hljs-id,
.css .hljs-class,
.css .hljs-pseudo {
color: #c82829;
}
/* Tomorrow Orange */
.hljs-number,
.hljs-preprocessor,
.hljs-pragma,
.hljs-built_in,
.hljs-literal,
.hljs-params,
.hljs-constant {
color: #f5871f;
}
/* Tomorrow Yellow */
.ruby .hljs-class .hljs-title,
.css .hljs-rules .hljs-attribute {
color: #eab700;
}
/* Tomorrow Green */
.hljs-string,
.hljs-value,
.hljs-inheritance,
.hljs-header,
.ruby .hljs-symbol,
.xml .hljs-cdata {
color: #718c00;
}
/* Tomorrow Aqua */
.css .hljs-hexcolor {
color: #3e999f;
}
/* Tomorrow Blue */
.hljs-function,
.python .hljs-decorator,
.python .hljs-title,
.ruby .hljs-function .hljs-title,
.ruby .hljs-title .hljs-keyword,
.perl .hljs-sub,
.javascript .hljs-title,
.coffeescript .hljs-title {
color: #4271ae;
}
/* Tomorrow Purple */
.hljs-keyword,
.javascript .hljs-function {
color: #8959a8;
}
.hljs {
display: block;
overflow-x: auto;
/*background: white;
padding: 0.5em;*/
color: #4d4d4c;
-webkit-text-size-adjust: none;
}
.coffeescript .javascript,
.javascript .xml,
.tex .hljs-formula,
.xml .javascript,
.xml .vbscript,
.xml .css,
.xml .hljs-cdata {
opacity: 0.5;
}
================================================
FILE: docs/resources/css/unsemantic.css
================================================
/* ============================================ */
/* This file has a mobile-to-desktop breakpoint */
/* ============================================ */
@media screen and (max-width: 400px) {
@-ms-viewport {
width: 320px;
}
}
.clear {
clear: both;
display: block;
overflow: hidden;
visibility: hidden;
width: 0;
height: 0;
}
.grid-container:before, .clearfix:before,
.grid-container:after,
.clearfix:after {
content: ".";
display: block;
overflow: hidden;
visibility: hidden;
font-size: 0;
line-height: 0;
width: 0;
height: 0;
}
.grid-container:after, .clearfix:after {
clear: both;
}
.grid-container {
margin-left: auto;
margin-right: auto;
max-width: 1200px;
padding-left: 10px;
padding-right: 10px;
}
.grid-5, .mobile-grid-5, .grid-10, .mobile-grid-10, .grid-15, .mobile-grid-15, .grid-20, .mobile-grid-20, .grid-25, .mobile-grid-25, .grid-30, .mobile-grid-30, .grid-35, .mobile-grid-35, .grid-40, .mobile-grid-40, .grid-45, .mobile-grid-45, .grid-50, .mobile-grid-50, .grid-55, .mobile-grid-55, .grid-60, .mobile-grid-60, .grid-65, .mobile-grid-65, .grid-70, .mobile-grid-70, .grid-75, .mobile-grid-75, .grid-80, .mobile-grid-80, .grid-85, .mobile-grid-85, .grid-90, .mobile-grid-90, .grid-95, .mobile-grid-95, .grid-100, .mobile-grid-100, .grid-33, .mobile-grid-33, .grid-66, .mobile-grid-66 {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding-left: 10px;
padding-right: 10px;
}
.grid-parent {
padding-left: 0;
padding-right: 0;
}
@media screen and (max-width: 767px) {
.mobile-grid-100:before,
.mobile-grid-100:after {
content: ".";
display: block;
overflow: hidden;
visibility: hidden;
font-size: 0;
line-height: 0;
width: 0;
height: 0;
}
.mobile-grid-100:after {
clear: both;
}
.mobile-push-5, .mobile-pull-5, .mobile-push-10, .mobile-pull-10, .mobile-push-15, .mobile-pull-15, .mobile-push-20, .mobile-pull-20, .mobile-push-25, .mobile-pull-25, .mobile-push-30, .mobile-pull-30, .mobile-push-35, .mobile-pull-35, .mobile-push-40, .mobile-pull-40, .mobile-push-45, .mobile-pull-45, .mobile-push-50, .mobile-pull-50, .mobile-push-55, .mobile-pull-55, .mobile-push-60, .mobile-pull-60, .mobile-push-65, .mobile-pull-65, .mobile-push-70, .mobile-pull-70, .mobile-push-75, .mobile-pull-75, .mobile-push-80, .mobile-pull-80, .mobile-push-85, .mobile-pull-85, .mobile-push-90, .mobile-pull-90, .mobile-push-95, .mobile-pull-95, .mobile-push-33, .mobile-pull-33, .mobile-push-66, .mobile-pull-66 {
position: relative;
}
.hide-on-mobile {
display: none !important;
}
.mobile-grid-5 {
float: left;
width: 5%;
}
.mobile-prefix-5 {
margin-left: 5%;
}
.mobile-suffix-5 {
margin-right: 5%;
}
.mobile-push-5 {
left: 5%;
}
.mobile-pull-5 {
left: -5%;
}
.mobile-grid-10 {
float: left;
width: 10%;
}
.mobile-prefix-10 {
margin-left: 10%;
}
.mobile-suffix-10 {
margin-right: 10%;
}
.mobile-push-10 {
left: 10%;
}
.mobile-pull-10 {
left: -10%;
}
.mobile-grid-15 {
float: left;
width: 15%;
}
.mobile-prefix-15 {
margin-left: 15%;
}
.mobile-suffix-15 {
margin-right: 15%;
}
.mobile-push-15 {
left: 15%;
}
.mobile-pull-15 {
left: -15%;
}
.mobile-grid-20 {
float: left;
width: 20%;
}
.mobile-prefix-20 {
margin-left: 20%;
}
.mobile-suffix-20 {
margin-right: 20%;
}
.mobile-push-20 {
left: 20%;
}
.mobile-pull-20 {
left: -20%;
}
.mobile-grid-25 {
float: left;
width: 25%;
}
.mobile-prefix-25 {
margin-left: 25%;
}
.mobile-suffix-25 {
margin-right: 25%;
}
.mobile-push-25 {
left: 25%;
}
.mobile-pull-25 {
left: -25%;
}
.mobile-grid-30 {
float: left;
width: 30%;
}
.mobile-prefix-30 {
margin-left: 30%;
}
.mobile-suffix-30 {
margin-right: 30%;
}
.mobile-push-30 {
left: 30%;
}
.mobile-pull-30 {
left: -30%;
}
.mobile-grid-35 {
float: left;
width: 35%;
}
.mobile-prefix-35 {
margin-left: 35%;
}
.mobile-suffix-35 {
margin-right: 35%;
}
.mobile-push-35 {
left: 35%;
}
.mobile-pull-35 {
left: -35%;
}
.mobile-grid-40 {
float: left;
width: 40%;
}
.mobile-prefix-40 {
margin-left: 40%;
}
.mobile-suffix-40 {
margin-right: 40%;
}
.mobile-push-40 {
left: 40%;
}
.mobile-pull-40 {
left: -40%;
}
.mobile-grid-45 {
float: left;
width: 45%;
}
.mobile-prefix-45 {
margin-left: 45%;
}
.mobile-suffix-45 {
margin-right: 45%;
}
.mobile-push-45 {
left: 45%;
}
.mobile-pull-45 {
left: -45%;
}
.mobile-grid-50 {
float: left;
width: 50%;
}
.mobile-prefix-50 {
margin-left: 50%;
}
.mobile-suffix-50 {
margin-right: 50%;
}
.mobile-push-50 {
left: 50%;
}
.mobile-pull-50 {
left: -50%;
}
.mobile-grid-55 {
float: left;
width: 55%;
}
.mobile-prefix-55 {
margin-left: 55%;
}
.mobile-suffix-55 {
margin-right: 55%;
}
.mobile-push-55 {
left: 55%;
}
.mobile-pull-55 {
left: -55%;
}
.mobile-grid-60 {
float: left;
width: 60%;
}
.mobile-prefix-60 {
margin-left: 60%;
}
.mobile-suffix-60 {
margin-right: 60%;
}
.mobile-push-60 {
left: 60%;
}
.mobile-pull-60 {
left: -60%;
}
.mobile-grid-65 {
float: left;
width: 65%;
}
.mobile-prefix-65 {
margin-left: 65%;
}
.mobile-suffix-65 {
margin-right: 65%;
}
.mobile-push-65 {
left: 65%;
}
.mobile-pull-65 {
left: -65%;
}
.mobile-grid-70 {
float: left;
width: 70%;
}
.mobile-prefix-70 {
margin-left: 70%;
}
.mobile-suffix-70 {
margin-right: 70%;
}
.mobile-push-70 {
left: 70%;
}
.mobile-pull-70 {
left: -70%;
}
.mobile-grid-75 {
float: left;
width: 75%;
}
.mobile-prefix-75 {
margin-left: 75%;
}
.mobile-suffix-75 {
margin-right: 75%;
}
.mobile-push-75 {
left: 75%;
}
.mobile-pull-75 {
left: -75%;
}
.mobile-grid-80 {
float: left;
width: 80%;
}
.mobile-prefix-80 {
margin-left: 80%;
}
.mobile-suffix-80 {
margin-right: 80%;
}
.mobile-push-80 {
left: 80%;
}
.mobile-pull-80 {
left: -80%;
}
.mobile-grid-85 {
float: left;
width: 85%;
}
.mobile-prefix-85 {
margin-left: 85%;
}
.mobile-suffix-85 {
margin-right: 85%;
}
.mobile-push-85 {
left: 85%;
}
.mobile-pull-85 {
left: -85%;
}
.mobile-grid-90 {
float: left;
width: 90%;
}
.mobile-prefix-90 {
margin-left: 90%;
}
.mobile-suffix-90 {
margin-right: 90%;
}
.mobile-push-90 {
left: 90%;
}
.mobile-pull-90 {
left: -90%;
}
.mobile-grid-95 {
float: left;
width: 95%;
}
.mobile-prefix-95 {
margin-left: 95%;
}
.mobile-suffix-95 {
margin-right: 95%;
}
.mobile-push-95 {
left: 95%;
}
.mobile-pull-95 {
left: -95%;
}
.mobile-grid-33 {
float: left;
width: 33.33333%;
}
.mobile-prefix-33 {
margin-left: 33.33333%;
}
.mobile-suffix-33 {
margin-right: 33.33333%;
}
.mobile-push-33 {
left: 33.33333%;
}
.mobile-pull-33 {
left: -33.33333%;
}
.mobile-grid-66 {
float: left;
width: 66.66667%;
}
.mobile-prefix-66 {
margin-left: 66.66667%;
}
.mobile-suffix-66 {
margin-right: 66.66667%;
}
.mobile-push-66 {
left: 66.66667%;
}
.mobile-pull-66 {
left: -66.66667%;
}
.mobile-grid-100 {
clear: both;
width: 100%;
}
}
@media screen and (min-width: 768px) {
.grid-100:before,
.grid-100:after {
content: ".";
display: block;
overflow: hidden;
visibility: hidden;
font-size: 0;
line-height: 0;
width: 0;
height: 0;
}
.grid-100:after {
clear: both;
}
.push-5, .pull-5, .push-10, .pull-10, .push-15, .pull-15, .push-20, .pull-20, .push-25, .pull-25, .push-30, .pull-30, .push-35, .pull-35, .push-40, .pull-40, .push-45, .pull-45, .push-50, .pull-50, .push-55, .pull-55, .push-60, .pull-60, .push-65, .pull-65, .push-70, .pull-70, .push-75, .pull-75, .push-80, .pull-80, .push-85, .pull-85, .push-90, .pull-90, .push-95, .pull-95, .push-33, .pull-33, .push-66, .pull-66 {
position: relative;
}
.hide-on-desktop {
display: none !important;
}
.grid-5 {
float: left;
width: 5%;
}
.prefix-5 {
margin-left: 5%;
}
.suffix-5 {
margin-right: 5%;
}
.push-5 {
left: 5%;
}
.pull-5 {
left: -5%;
}
.grid-10 {
float: left;
width: 10%;
}
.prefix-10 {
margin-left: 10%;
}
.suffix-10 {
margin-right: 10%;
}
.push-10 {
left: 10%;
}
.pull-10 {
left: -10%;
}
.grid-15 {
float: left;
width: 15%;
}
.prefix-15 {
margin-left: 15%;
}
.suffix-15 {
margin-right: 15%;
}
.push-15 {
left: 15%;
}
.pull-15 {
left: -15%;
}
.grid-20 {
float: left;
width: 20%;
}
.prefix-20 {
margin-left: 20%;
}
.suffix-20 {
margin-right: 20%;
}
.push-20 {
left: 20%;
}
.pull-20 {
left: -20%;
}
.grid-25 {
float: left;
width: 25%;
}
.prefix-25 {
margin-left: 25%;
}
.suffix-25 {
margin-right: 25%;
}
.push-25 {
left: 25%;
}
.pull-25 {
left: -25%;
}
.grid-30 {
float: left;
width: 30%;
}
.prefix-30 {
margin-left: 30%;
}
.suffix-30 {
margin-right: 30%;
}
.push-30 {
left: 30%;
}
.pull-30 {
left: -30%;
}
.grid-35 {
float: left;
width: 35%;
}
.prefix-35 {
margin-left: 35%;
}
.suffix-35 {
margin-right: 35%;
}
.push-35 {
left: 35%;
}
.pull-35 {
left: -35%;
}
.grid-40 {
float: left;
width: 40%;
}
.prefix-40 {
margin-left: 40%;
}
.suffix-40 {
margin-right: 40%;
}
.push-40 {
left: 40%;
}
.pull-40 {
left: -40%;
}
.grid-45 {
float: left;
width: 45%;
}
.prefix-45 {
margin-left: 45%;
}
.suffix-45 {
margin-right: 45%;
}
.push-45 {
left: 45%;
}
.pull-45 {
left: -45%;
}
.grid-50 {
float: left;
width: 50%;
}
.prefix-50 {
margin-left: 50%;
}
.suffix-50 {
margin-right: 50%;
}
.push-50 {
left: 50%;
}
.pull-50 {
left: -50%;
}
.grid-55 {
float: left;
width: 55%;
}
.prefix-55 {
margin-left: 55%;
}
.suffix-55 {
margin-right: 55%;
}
.push-55 {
left: 55%;
}
.pull-55 {
left: -55%;
}
.grid-60 {
float: left;
width: 60%;
}
.prefix-60 {
margin-left: 60%;
}
.suffix-60 {
margin-right: 60%;
}
.push-60 {
left: 60%;
}
.pull-60 {
left: -60%;
}
.grid-65 {
float: left;
width: 65%;
}
.prefix-65 {
margin-left: 65%;
}
.suffix-65 {
margin-right: 65%;
}
.push-65 {
left: 65%;
}
.pull-65 {
left: -65%;
}
.grid-70 {
float: left;
width: 70%;
}
.prefix-70 {
margin-left: 70%;
}
.suffix-70 {
margin-right: 70%;
}
.push-70 {
left: 70%;
}
.pull-70 {
left: -70%;
}
.grid-75 {
float: left;
width: 75%;
}
.prefix-75 {
margin-left: 75%;
}
.suffix-75 {
margin-right: 75%;
}
.push-75 {
left: 75%;
}
.pull-75 {
left: -75%;
}
.grid-80 {
float: left;
width: 80%;
}
.prefix-80 {
margin-left: 80%;
}
.suffix-80 {
margin-right: 80%;
}
.push-80 {
left: 80%;
}
.pull-80 {
left: -80%;
}
.grid-85 {
float: left;
width: 85%;
}
.prefix-85 {
margin-left: 85%;
}
.suffix-85 {
margin-right: 85%;
}
.push-85 {
left: 85%;
}
.pull-85 {
left: -85%;
}
.grid-90 {
float: left;
width: 90%;
}
.prefix-90 {
margin-left: 90%;
}
.suffix-90 {
margin-right: 90%;
}
.push-90 {
left: 90%;
}
.pull-90 {
left: -90%;
}
.grid-95 {
float: left;
width: 95%;
}
.prefix-95 {
margin-left: 95%;
}
.suffix-95 {
margin-right: 95%;
}
.push-95 {
left: 95%;
}
.pull-95 {
left: -95%;
}
.grid-33 {
float: left;
width: 33.33333%;
}
.prefix-33 {
margin-left: 33.33333%;
}
.suffix-33 {
margin-right: 33.33333%;
}
.push-33 {
left: 33.33333%;
}
.pull-33 {
left: -33.33333%;
}
.grid-66 {
float: left;
width: 66.66667%;
}
.prefix-66 {
margin-left: 66.66667%;
}
.suffix-66 {
margin-right: 66.66667%;
}
.push-66 {
left: 66.66667%;
}
.pull-66 {
left: -66.66667%;
}
.grid-100 {
clear: both;
width: 100%;
}
}
================================================
FILE: docs/resources/files/big.csv
================================================
[File too large to display: 47.8 MB]
================================================
FILE: docs/resources/files/malformed.tsv
================================================
site lon lat max min precip snow snowdepth
1V4 -72.02 44.42 13 -5 0.01 -99 -99
BTV -73.15 44.47 14 -9 0.00 0.0 7 52
MVL -72.62 44.54 11 -7 0.00 -99 -99
MPV -72.56 44.20 12 -4 0.00 -99 -99
MSS -74.85 44.93 4 -150.00 -99 -99
PBG -73.47 44.65 15 -12 0.00 -99 -99
RUT -72.95 43.53 18 -2 -99 -99 -99
SLK -74.20 "44.39 7 -12 0.00 -99 -99
VSF -72.50 43.34 20 -1 0.04 -99 -99
================================================
FILE: docs/resources/files/normal.csv
================================================
"CONTENT TYPE","TITLE","ABBR","ISSN","e-ISSN","PUBLICATION RANGE: START","PUBLICATION RANGE: LATEST PUBLISHED","SHORTCUT URL","ARCHIVE URL"
"Journals","ACM Computing Surveys ","ACM Comput. Surv.","0360-0300","1557-7341","Volume 1 Issue 1 (March 1969)","Volume 46 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J204","http://dl.acm.org/citation.cfm?id=J204&picked=prox"
"Journals","ACM Journal of Computer Documentation ","ACM J. Comput. Doc.","1527-6805","1557-9441","Volume 24 Issue 1 (Feb. 1, 2000)","Volume 26 Issue 4 (November 2002)","http://dl.acm.org/citation.cfm?id=J24","http://dl.acm.org/citation.cfm?id=J24&picked=prox"
"Journals","ACM Journal on Emerging Technologies in Computing Systems ","J. Emerg. Technol. Comput. Syst.","1550-4832","1550-4840","Volume 1 Issue 1 (April 2005)","Volume 9 Issue 4 (November 2013) - Special Issue on Bioinformatics","http://dl.acm.org/citation.cfm?id=J967","http://dl.acm.org/citation.cfm?id=J967&picked=prox"
"Journals","Journal of Data and Information Quality ","J. Data and Information Quality","1936-1955","1936-1963","Volume 1 Issue 1 (June 2009)","Volume 4 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J1191","http://dl.acm.org/citation.cfm?id=J1191&picked=prox"
"Journals","Journal of Experimental Algorithmics ","J. Exp. Algorithmics","1084-6654","1084-6654","Volume 1 (1996)","Volume 18 (April 2013)","http://dl.acm.org/citation.cfm?id=J430","http://dl.acm.org/citation.cfm?id=J430&picked=prox"
"Journals","Journal of the ACM ","J. ACM","0004-5411","1557-735X","Volume 1 Issue 1 (Jan. 1954)","Volume 60 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J401","http://dl.acm.org/citation.cfm?id=J401&picked=prox"
"Journals","Journal on Computing and Cultural Heritage ","J. Comput. Cult. Herit.","1556-4673","1556-4711","Volume 1 Issue 1 (June 2008)","Volume 6 Issue 3 (July 2013)","http://dl.acm.org/citation.cfm?id=J1157","http://dl.acm.org/citation.cfm?id=J1157&picked=prox"
"Journals","Journal on Educational Resources in Computing ","J. Educ. Resour. Comput.","1531-4278","1531-4278","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 3 (August 2013) - Special Issue on Alternatives to Lecture in the Computer Science Classroom","http://dl.acm.org/citation.cfm?id=J814","http://dl.acm.org/citation.cfm?id=J814&picked=prox"
"Transactions","ACM Letters on Programming Languages and Systems ","ACM Lett. Program. Lang. Syst.","1057-4514","1557-7384","Volume 1 Issue 1 (March 1992)","Volume 2 Issue 1-4 (March–Dec. 1993)","http://dl.acm.org/citation.cfm?id=J513","http://dl.acm.org/citation.cfm?id=J513&picked=prox"
"Transactions","ACM Transactions on Accessible Computing ","ACM Trans. Access. Comput.","1936-7228","1936-7236","Volume 1 Issue 1 (May 2008)","Volume 5 Issue 2 (October 2013)","http://dl.acm.org/citation.cfm?id=J1156","http://dl.acm.org/citation.cfm?id=J1156&picked=prox"
"Transactions","ACM Transactions on Algorithms ","ACM Trans. Algorithms","1549-6325","1549-6333","Volume 1 Issue 1 (July 2005)","Volume 9 Issue 4 (September 2013)","http://dl.acm.org/citation.cfm?id=J982","http://dl.acm.org/citation.cfm?id=J982&picked=prox"
"Transactions","ACM Transactions on Applied Perception ","ACM Trans. Appl. Percept.","1544-3558","1544-3965","Volume 1 Issue 1 (July 2004)","Volume 10 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J932","http://dl.acm.org/citation.cfm?id=J932&picked=prox"
"Transactions","ACM Transactions on Architecture and Code Optimization ","ACM Trans. Archit. Code Optim.","1544-3566","1544-3973","Volume 1 Issue 1 (March 2004)","Volume 10 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J924","http://dl.acm.org/citation.cfm?id=J924&picked=prox"
"Transactions","ACM Transactions on Asian Language Information Processing ","","1530-0226","1558-3430","Volume 1 Issue 1 (March 2002)","Volume 12 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J820","http://dl.acm.org/citation.cfm?id=J820&picked=prox"
"Transactions","ACM Transactions on Autonomous and Adaptive Systems ","ACM Trans. Auton. Adapt. Syst.","1556-4665","1556-4703","Volume 1 Issue 1 (September 2006)","Volume 8 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1010","http://dl.acm.org/citation.cfm?id=J1010&picked=prox"
"Transactions","ACM Transactions on Computation Theory ","ACM Trans. Comput. Theory","1942-3454","1942-3462","Volume 1 Issue 1 (February 2009)","Volume 5 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1190","http://dl.acm.org/citation.cfm?id=J1190&picked=prox"
"Transactions","ACM Transactions on Computational Logic ","ACM Trans. Comput. Logic","1529-3785","1557-945X","Volume 1 Issue 1 (July 2000)","Volume 14 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J773","http://dl.acm.org/citation.cfm?id=J773&picked=prox"
"Transactions","ACM Transactions on Computer Systems ","ACM Trans. Comput. Syst.","0734-2071","1557-7333","Volume 1 Issue 1 (Feb. 1983)","Volume 31 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J774","http://dl.acm.org/citation.cfm?id=J774&picked=prox"
"Transactions","ACM Transactions on Computer-Human Interaction ","ACM Trans. Comput.-Hum. Interact.","1073-0516","1557-7325","Volume 1 Issue 1 (March 1994)","Volume 20 Issue 5 (November 2013)","http://dl.acm.org/citation.cfm?id=J756","http://dl.acm.org/citation.cfm?id=J756&picked=prox"
"Transactions","ACM Transactions on Computing Education ","Trans. Comput. Educ.","","1946-6226","Volume 1 Issue 1es (March 2001)","Volume 13 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J1193","http://dl.acm.org/citation.cfm?id=J1193&picked=prox"
"Transactions","ACM Transactions on Database Systems ","ACM Trans. Database Syst.","0362-5915","1557-4644","Volume 1 Issue 1 (March 1976)","Volume 38 Issue 4 (November 2013) - Invited papers issue","http://dl.acm.org/citation.cfm?id=J777","http://dl.acm.org/citation.cfm?id=J777&picked=prox"
"Transactions","ACM Transactions on Design Automation of Electronic Systems ","ACM Trans. Des. Autom. Electron. Syst.","1084-4309","1557-7309","Volume 1 Issue 1 (Jan. 1996)","Volume 19 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J776","http://dl.acm.org/citation.cfm?id=J776&picked=prox"
"Transactions","ACM Transactions on Economics and Computation","ACM Trans. Econ. Comput.","2167-8375","2167-8383","Volume 1 Issue 1 (January 2013)","Volume 1 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1359","http://dl.acm.org/citation.cfm?id=J1359&picked=prox"
"Transactions","ACM Transactions on Embedded Computing Systems ","ACM Trans. Embed. Comput. Syst.","1539-9087","1558-3465","Volume 1 Issue 1 (November 2002)","Volume 13 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J840","http://dl.acm.org/citation.cfm?id=J840&picked=prox"
"Transactions","ACM Transactions on Graphics ","ACM Trans. Graph.","0730-0301","1557-7368","Volume 1 Issue 1 (Jan. 1982)","Volume 32 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J778","http://dl.acm.org/citation.cfm?id=J778&picked=prox"
"Transactions","ACM Transactions on Information Systems ","ACM Trans. Inf. Syst.","1046-8188","1558-2868","Volume 1 Issue 1 (Jan. 1983)","Volume 31 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J779","http://dl.acm.org/citation.cfm?id=J779&picked=prox"
"Transactions","ACM Transactions on Information and System Security ","ACM Trans. Inf. Syst. Secur.","1094-9224","1557-7406","Volume 1 Issue 1 (Nov. 1998)","Volume 16 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J789","http://dl.acm.org/citation.cfm?id=J789&picked=prox"
"Transactions","ACM Transactions on Intelligent Systems and Technology ","ACM Trans. Intell. Syst. Technol.","2157-6904","2157-6912","Volume 1 Issue 1 (October 2010)","Volume 5 Issue 1 (December 2013) - Special Section on Intelligent Mobile Knowledge Discovery and Management Systems and Special Issue on Social Web Mining","http://dl.acm.org/citation.cfm?id=J1318","http://dl.acm.org/citation.cfm?id=J1318&picked=prox"
"Transactions","ACM Transactions on Interactive Intelligent Systems ","ACM Trans. Interact. Intell. Syst.","2160-6455","2160-6463","Volume 1 Issue 1 (October 2011)","Volume 3 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1341","http://dl.acm.org/citation.cfm?id=J1341&picked=prox"
"Transactions","ACM Transactions on Internet Technology ","ACM Trans. Internet Technol.","1533-5399","1557-6051","Volume 1 Issue 1 (Aug. 2001)","Volume 13 Issue 2 (December 2013)","http://dl.acm.org/citation.cfm?id=J780","http://dl.acm.org/citation.cfm?id=J780&picked=prox"
"Transactions","ACM Transactions on Knowledge Discovery from Data ","ACM Trans. Knowl. Discov. Data","1556-4681","1556-472X","Volume 1 Issue 1 (March 2007)","Volume 7 Issue 3 (September 2013) - Special Issue on ACM SIGKDD 2012","http://dl.acm.org/citation.cfm?id=J1054","http://dl.acm.org/citation.cfm?id=J1054&picked=prox"
"Transactions","ACM Transactions on Management Information Systems ","ACM Trans. Manage. Inf. Syst.","2158-656X","2158-6578","Volume 1 Issue 1 (December 2010)","Volume 4 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J1320","http://dl.acm.org/citation.cfm?id=J1320&picked=prox"
"Transactions","ACM Transactions on Mathematical Software ","ACM Trans. Math. Softw.","0098-3500","1557-7295","Volume 1 Issue 1 (March 1975)","Volume 40 Issue 1 (September 2013)","http://dl.acm.org/citation.cfm?id=J782","http://dl.acm.org/citation.cfm?id=J782&picked=prox"
"Transactions","ACM Transactions on Modeling and Computer Simulation ","ACM Trans. Model. Comput. Simul.","1049-3301","1558-1195","Volume 1 Issue 1 (Jan. 1991)","Volume 23 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J781","http://dl.acm.org/citation.cfm?id=J781&picked=prox"
"Transactions","ACM Transactions on Multimedia Computing, Communications, and Applications ","ACM Trans. Multimedia Comput. Commun. Appl.","1551-6857","1551-6865","Volume 1 Issue 1 (February 2005)","Volume 10 Issue 1 (December 2013)","http://dl.acm.org/citation.cfm?id=J961","http://dl.acm.org/citation.cfm?id=J961&picked=prox"
"Transactions","ACM Transactions on Programming Languages and Systems ","ACM Trans. Program. Lang. Syst.","0164-0925","1558-4593","Volume 1 Issue 1 (July 1979)","Volume 35 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J783","http://dl.acm.org/citation.cfm?id=J783&picked=prox"
"Transactions","ACM Transactions on Reconfigurable Technology and Systems ","ACM Trans. Reconfigurable Technol. Syst.","1936-7406","1936-7414","Volume 1 Issue 1 (March 2008)","Volume 6 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1151","http://dl.acm.org/citation.cfm?id=J1151&picked=prox"
"Transactions","ACM Transactions on Sensor Networks ","ACM Trans. Sen. Netw.","1550-4859","1550-4867","Volume 1 Issue 1 (August 2005)","Volume 10 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J981","http://dl.acm.org/citation.cfm?id=J981&picked=prox"
"Transactions","ACM Transactions on Software Engineering and Methodology ","ACM Trans. Softw. Eng. Methodol.","1049-331X","1557-7392","Volume 1 Issue 1 (Jan. 1992)","Volume 22 Issue 4 (October 2013) - Testing, debugging, and error handling, formal methods, lifecycle concerns, evolution and maintenance","http://dl.acm.org/citation.cfm?id=J790","http://dl.acm.org/citation.cfm?id=J790&picked=prox"
"Transactions","ACM Transactions on Speech and Language Processing ","ACM Trans. Speech Lang. Process.","1550-4875","1550-4883","Volume 1 (November 2004)","Volume 10 Issue 3 (July 2013) - Special issue on multiword expressions: From theory to practice and use, part 2","http://dl.acm.org/citation.cfm?id=J957","http://dl.acm.org/citation.cfm?id=J957&picked=prox"
"Transactions","ACM Transactions on Storage ","Trans. Storage","1553-3077","1553-3093","Volume 1 Issue 1 (February 2005)","Volume 9 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J960","http://dl.acm.org/citation.cfm?id=J960&picked=prox"
"Transactions","ACM Transactions on the Web ","ACM Trans. Web","1559-1131","1559-114X","Volume 1 Issue 1 (May 2007)","Volume 7 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J1062","http://dl.acm.org/citation.cfm?id=J1062&picked=prox"
"Transactions","IEEE/ACM Transactions on Computational Biology and Bioinformatics ","IEEE/ACM Trans. Comput. Biol. Bioinformatics","1545-5963","","Volume 1 Issue 1 (January 2004)","Volume 10 Issue 3 (May 2013)","http://dl.acm.org/citation.cfm?id=J954","http://dl.acm.org/citation.cfm?id=J954&picked=prox"
"Transactions","IEEE/ACM Transactions on Networking ","IEEE/ACM Trans. Netw.","1063-6692","","Volume 1 Issue 1 (Feb. 1993)","Volume 21 Issue 4 (August 2013)","http://dl.acm.org/citation.cfm?id=J771","http://dl.acm.org/citation.cfm?id=J771&picked=prox"
"Magazines","ACM Inroads","ACM Inroads","2153-2184","2153-2192","Volume 1 Issue 1 (March 2010)","Volume 4 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J1268","http://dl.acm.org/citation.cfm?id=J1268&picked=prox"
"Magazines","Communications of the ACM","Commun. ACM","0001-0782","1557-7317","Volume 1 Issue 1 (Jan. 1958)","Volume 57 Issue 1 (January 2014)","http://dl.acm.org/citation.cfm?id=J79","http://dl.acm.org/citation.cfm?id=J79&picked=prox"
"Magazines","Computers in Entertainment ","Comput. Entertain.","","1544-3574","Volume 1 Issue 1 (October 2003)","Volume 10 Issue 3 (October 2012) - Theoretical and Practical Computer Applications in Entertainment","http://dl.acm.org/citation.cfm?id=J912","http://dl.acm.org/citation.cfm?id=J912&picked=prox"
"Magazines","Queue","Queue","1542-7730","1542-7749","Volume 1 Issue 1 (March 2003)","Volume 11 Issue 12 (December 2013) - Large-Scale Implementations","http://dl.acm.org/citation.cfm?id=J882","http://dl.acm.org/citation.cfm?id=J882&picked=prox"
"Magazines","StandardView","StandardView","1067-9936","1557-7376","Volume 1 Issue 1 (Sept. 1993)","Volume 6 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J741","http://dl.acm.org/citation.cfm?id=J741&picked=prox"
"Magazines","Ubiquity","Ubiquity","","1530-2180","Volume 2000 Issue February (February 1 - February 28, 2000)","Volume 2013 Issue December (December 2013)","http://dl.acm.org/citation.cfm?id=J793","http://dl.acm.org/citation.cfm?id=J793&picked=prox"
"Magazines","XRDS: Crossroads, The ACM Magazine for Students","XRDS","1528-4972","1528-4980","Volume 1 Issue 1 (September 1994)","Volume 20 Issue 2 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J1271","http://dl.acm.org/citation.cfm?id=J1271&picked=prox"
"Magazines","eLearn","eLearn","","1535-394X","Volume 2001 Issue 5 (May 2001)","Volume 2013 Issue 12 (12-01-2013) - December 2013","http://dl.acm.org/citation.cfm?id=J815","http://dl.acm.org/citation.cfm?id=J815&picked=prox"
"Magazines","intelligence","Intelligence","1523-8822","1557-9425","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J372","http://dl.acm.org/citation.cfm?id=J372&picked=prox"
"Magazines","interactions","interactions","1072-5520","1558-3449","Volume 1 Issue 1 (Jan. 1994)","Volume 20 Issue 6 (November + December 2013)","http://dl.acm.org/citation.cfm?id=J373","http://dl.acm.org/citation.cfm?id=J373&picked=prox"
"Magazines","netWorker","netWorker","1091-3556","1558-3473","Volume 1 Issue 1 (March/April 1997)","Volume 13 Issue 4 (Winter 2009) - Health and Biomedical Informatics","http://dl.acm.org/citation.cfm?id=J582","http://dl.acm.org/citation.cfm?id=J582&picked=prox"
"Publications by Affiliated Organizations","ALGOL Bulletin","ALGOL Bull.","0084-6198","","Issue 1 (Mar. 1959)","Issue 52 (Aug. 1988)","http://dl.acm.org/citation.cfm?id=J33","http://dl.acm.org/citation.cfm?id=J33&picked=prox"
"Publications by Affiliated Organizations","Computational Linguistics","Comput. Linguist.","0891-2017","","Volume 6 Issue 1 (January-March 1980)","Volume 39 Issue 2 (June 2013)","http://dl.acm.org/citation.cfm?id=J25","http://dl.acm.org/citation.cfm?id=J25&picked=prox"
"Publications by Affiliated Organizations","Evolutionary Computation","Evol. Comput.","1063-6560","1530-9304","Volume 1 Issue 1 (Spring 1993)","Volume 21 Issue 4 (Winter 2013)","http://dl.acm.org/citation.cfm?id=J277","http://dl.acm.org/citation.cfm?id=J277&picked=prox"
"Publications by Affiliated Organizations","Journal of Computing Sciences in Colleges","J. Comput. Sci. Coll.","1937-4771","1937-4763","Volume 6 Issue 5 (May 1991)","Volume 29 Issue 3 (January 2014)","http://dl.acm.org/citation.cfm?id=J420","http://dl.acm.org/citation.cfm?id=J420&picked=prox"
"Publications by Affiliated Organizations","Journal of Usability Studies","J. Usability Studies","1931-3357","","Volume 5 Issue 4 (August 2010)","Volume 6 Issue 3 (May 2011)","http://dl.acm.org/citation.cfm?id=J1340","http://dl.acm.org/citation.cfm?id=J1340&picked=prox"
"Publications by Affiliated Organizations","Linux Journal","Linux J.","1075-3583","","Volume 1994 Issue 1es (March 1994)","Volume 2013 Issue 235 (November 2013)","http://dl.acm.org/citation.cfm?id=J508","http://dl.acm.org/citation.cfm?id=J508&picked=prox"
"Publications by Affiliated Organizations","Mobile Networks and Applications","Mob. Netw. Appl.","1383-469X","","Volume 1 Issue 1 (Aug. 1996)","Volume 18 Issue 5 (October 2013)","http://dl.acm.org/citation.cfm?id=J547","http://dl.acm.org/citation.cfm?id=J547&picked=prox"
"Publications by Affiliated Organizations","Personal and Ubiquitous Computing","Personal Ubiquitous Comput.","1617-4909","","Volume 4 Issue 4 (August 2000)","Volume 17 Issue 7 (October 2013)","http://dl.acm.org/citation.cfm?id=J822","http://dl.acm.org/citation.cfm?id=J822&picked=prox"
"Publications by Affiliated Organizations","Proceedings of the VLDB Endowment","Proc. VLDB Endow.","2150-8097","","Volume 1 Issue 1 (August 2008)","Volume 6 Issue 14 (September 2013)","http://dl.acm.org/citation.cfm?id=J1174","http://dl.acm.org/citation.cfm?id=J1174&picked=prox"
"Publications by Affiliated Organizations","The Journal of Machine Learning Research","J. Mach. Learn. Res.","1532-4435","1533-7928","Volume 1 (9/1/2001)","Volume 14 Issue 1 (January 2013)","http://dl.acm.org/citation.cfm?id=J832","http://dl.acm.org/citation.cfm?id=J832&picked=prox"
"Publications by Affiliated Organizations","The VLDB Journal — The International Journal on Very Large Data Bases","The VLDB Journal","1066-8888","","Volume 1 Issue 1 (July 1992)","Volume 22 Issue 5 (October 2013)","http://dl.acm.org/citation.cfm?id=J869","http://dl.acm.org/citation.cfm?id=J869&picked=prox"
"Publications by Affiliated Organizations","Wireless Networks","Wirel. Netw.","1022-0038","","Volume 1 Issue 1 (Feb. 1995)","Volume 19 Issue 7 (October 2013)","http://dl.acm.org/citation.cfm?id=J804","http://dl.acm.org/citation.cfm?id=J804&picked=prox"
"SIG Newsletters","3C ON-LINE","3C ON-LINE","1078-2192","","Volume 1 Issue 1 (Oct. 1994)","Volume 4 Issue 4 (Oct., 1997)","http://dl.acm.org/citation.cfm?id=J685","http://dl.acm.org/citation.cfm?id=J685&picked=prox"
"SIG Newsletters","ACM Communications in Computer Algebra","ACM Commun. Comput. Algebra","1932-2240","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J1000","http://dl.acm.org/citation.cfm?id=J1000&picked=prox"
"SIG Newsletters","ACM Lisp Bulletin","Lisp Bull.","","","Volume 4 Issue 9 (September 1969)","Issue 3 (December 1979)","http://dl.acm.org/citation.cfm?id=J1166","http://dl.acm.org/citation.cfm?id=J1166&picked=prox"
"SIG Newsletters","ACM SIGACCESS Accessibility and Computing","SIGACCESS Access. Comput.","1558-2337","1558-1187","Issue 77-78 (Sept. 2003 - Jan. 2004)","Issue 107 (September 2013)","http://dl.acm.org/citation.cfm?id=J956","http://dl.acm.org/citation.cfm?id=J956&picked=prox"
"SIG Newsletters","ACM SIGACT News","SIGACT News","0163-5700","","Issue 1 (April 1969)","Volume 44 Issue 4 (December 2013)","http://dl.acm.org/citation.cfm?id=J697","http://dl.acm.org/citation.cfm?id=J697&picked=prox"
"SIG Newsletters","ACM SIGAPL APL Quote Quad","SIGAPL APL Quote Quad","0163-6006","","Volume 3 Issue 1 (June 1971)","Volume 35 Issue 4 (December 2007)","http://dl.acm.org/citation.cfm?id=J46","http://dl.acm.org/citation.cfm?id=J46&picked=prox"
"SIG Newsletters","ACM SIGAPP Applied Computing Review","SIGAPP Appl. Comput. Rev.","1559-6915","1931-0161","Volume 1 Issue 1 (Winter 1993)","Volume 13 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J693","http://dl.acm.org/citation.cfm?id=J693&picked=prox"
"SIG Newsletters","ACM SIGARCH Computer Architecture News","SIGARCH Comput. Archit. News","0163-5964","","Volume 1 Issue 1 (January 1972)","Volume 41 Issue 3 (June 2013) - ICSA '13","http://dl.acm.org/citation.cfm?id=J89","http://dl.acm.org/citation.cfm?id=J89&picked=prox"
"SIG Newsletters","ACM SIGART Bulletin","SIGART Bull.","0163-5719","","Issue 24 (October 1970)","Volume 12 Issue 4 (Winter 2001)","http://dl.acm.org/citation.cfm?id=J686","http://dl.acm.org/citation.cfm?id=J686&picked=prox"
"SIG Newsletters","ACM SIGAda Ada Letters","Ada Lett.","1094-3641","","Volume I Issue 1 (July-August 1981)","Volume 33 Issue 2 (August 2013)","http://dl.acm.org/citation.cfm?id=J32","http://dl.acm.org/citation.cfm?id=J32&picked=prox"
"SIG Newsletters","ACM SIGBED Review","SIGBED Rev.","","1551-3688","Volume 1 Issue 1 (April 2004)","Volume 10 Issue 3 (October 2013)","http://dl.acm.org/citation.cfm?id=J994","http://dl.acm.org/citation.cfm?id=J994&picked=prox"
"SIG Newsletters","ACM SIGBIO Newsletter","SIGBIO Newsl.","0163-5697","","Volume 1 Issue 2 (October 1976)","Volume 21 Issue 1 (April 2001)","http://dl.acm.org/citation.cfm?id=J698","http://dl.acm.org/citation.cfm?id=J698&picked=prox"
"SIG Newsletters","ACM SIGBioinformatics Record","ACM SIGBioinformatics Rec.","2331-9291","2159-1210","Volume 1 Issue 1 (January 2011)","Volume 3 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1323","http://dl.acm.org/citation.cfm?id=J1323&picked=prox"
"SIG Newsletters","ACM SIGCAPH Computers and the Physically Handicapped","SIGCAPH Comput. Phys. Handicap.","0163-5727","","Issue 5 (Fall 1971)","Issue 76 (June 2003)","http://dl.acm.org/citation.cfm?id=J298","http://dl.acm.org/citation.cfm?id=J298&picked=prox"
"SIG Newsletters","ACM SIGCAS Computers and Society","SIGCAS Comput. Soc.","0095-2737","","Volume 1 Issue 2 (April 1970)","Volume 43 Issue 1 (May 2013) - Selected Papers from The Ninth International Conference on Computer Ethics: Philosophical Enquiry","http://dl.acm.org/citation.cfm?id=J198","http://dl.acm.org/citation.cfm?id=J198&picked=prox"
"SIG Newsletters","ACM SIGCHI Bulletin","SIGCHI Bull.","0736-6906","","Volume 14 Issue 1 (July 1982)","Volume 32 Issue 2 (April 2000)","http://dl.acm.org/citation.cfm?id=J687","http://dl.acm.org/citation.cfm?id=J687&picked=prox"
"SIG Newsletters","ACM SIGCHI Bulletin - a supplement to <i>interactions</i>","SIGCHI Bull.: suppl. <i>interactions</i>","0736-6906","1558-1217","Volume 2000 (July/August 2000)","Volume 2003 (May-June 2003)","http://dl.acm.org/citation.cfm?id=J122","http://dl.acm.org/citation.cfm?id=J122&picked=prox"
"SIG Newsletters","ACM SIGCOMM Computer Communication Review","SIGCOMM Comput. Commun. Rev.","0146-4833","","Volume 1 Issue 2 (March 1970)","Volume 43 Issue 5 (October 2013)","http://dl.acm.org/citation.cfm?id=J101","http://dl.acm.org/citation.cfm?id=J101&picked=prox"
"SIG Newsletters","ACM SIGCPR Computer Personnel","SIGCPR Comput. Pers.","0160-2497","","Volume 2 Issue 1 (July 1964)","Volume 20 Issue 4 (October 1999)","http://dl.acm.org/citation.cfm?id=J188","http://dl.acm.org/citation.cfm?id=J188&picked=prox"
"SIG Newsletters","ACM SIGCSE Bulletin","SIGCSE Bull.","0097-8418","","Volume 1 Issue 1 (February 1969)","Volume 45 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J688","http://dl.acm.org/citation.cfm?id=J688&picked=prox"
"SIG Newsletters","ACM SIGCSIM Installation Management Review","Install Manag. Rev.","0163-5972","","Issue 1 (August 1969)","Volume 6 Issue 4 (December 1977)","http://dl.acm.org/citation.cfm?id=J959","http://dl.acm.org/citation.cfm?id=J959&picked=prox"
"SIG Newsletters","ACM SIGCUE Outlook","SIGCUE Outlook","0163-5735","","Volume 4 Issue 1 (February 1970)","Volume 27 Issue 3 (September 2001)","http://dl.acm.org/citation.cfm?id=J678","http://dl.acm.org/citation.cfm?id=J678&picked=prox"
"SIG Newsletters","ACM SIGDA Newsletter","SIGDA Newsl.","0163-5743","","Volume 1 Issue 1 (January 1971)","Volume 40 Issue 9 (September 2010)","http://dl.acm.org/citation.cfm?id=J700","http://dl.acm.org/citation.cfm?id=J700&picked=prox"
"SIG Newsletters","ACM SIGDOC Asterisk Journal of Computer Documentation","SIGDOC Asterisk J. Comput. Doc.","0731-1001","","Volume 2 Issue 5 (October 1975)","Volume 12 Issue 4 (December 2011)","http://dl.acm.org/citation.cfm?id=J62","http://dl.acm.org/citation.cfm?id=J62&picked=prox"
"SIG Newsletters","ACM SIGEVOlution","SIGEVOlution","","1931-8499","Volume 1 Issue 1 (April 2006)","Volume 6 Issue 1 (July 2012)","http://dl.acm.org/citation.cfm?id=J999","http://dl.acm.org/citation.cfm?id=J999&picked=prox"
"SIG Newsletters","ACM SIGFORTH Newsletter","SIGFORTH Newsl.","1047-4544","","Volume 1 Issue 1 (Spring 1989)","Volume 4 Issue 4 (Dec. 1994)","http://dl.acm.org/citation.cfm?id=J696","http://dl.acm.org/citation.cfm?id=J696&picked=prox"
"SIG Newsletters","ACM SIGGRAPH Computer Graphics","SIGGRAPH Comput. Graph.","0097-8930","","Volume 3 Issue 3 (Fal 1969)","Volume 45 Issue 1 (February 2011)","http://dl.acm.org/citation.cfm?id=J166","http://dl.acm.org/citation.cfm?id=J166&picked=prox"
"SIG Newsletters","ACM SIGGROUP Bulletin","SIGGROUP Bull.","","","Volume 18 Issue 1 (April 1997)","Volume 25 Issue 2 (February 2005) - Special issue on virtual communities","http://dl.acm.org/citation.cfm?id=J702","http://dl.acm.org/citation.cfm?id=J702&picked=prox"
"SIG Newsletters","ACM SIGHIT Record","SIGHIT Rec.","","2158-8813","Volume 1 Issue 1 (March 2011)","Volume 2 Issue 2 (September 2012)","http://dl.acm.org/citation.cfm?id=J1322","http://dl.acm.org/citation.cfm?id=J1322&picked=prox"
"SIG Newsletters","ACM SIGHPC Connect","ACM SIGHPC Connect","","2168-135X","Volume 1 Issue 1 (June 2012)","Volume 2 Issue 1 (October 2013)","http://dl.acm.org/citation.cfm?id=J1356","http://dl.acm.org/citation.cfm?id=J1356&picked=prox"
"SIG Newsletters","ACM SIGICE Bulletin","SIGICE Bull.","0893-2875","","Volume 19 Issue 3 (Feb. 1994)","Volume 23 Issue 2 (Oct. 1997)","http://dl.acm.org/citation.cfm?id=J694","http://dl.acm.org/citation.cfm?id=J694&picked=prox"
"SIG Newsletters","ACM SIGIR Forum","SIGIR Forum","0163-5840","","Volume 6 Issue 2 (Summer 1971)","Volume 47 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J701","http://dl.acm.org/citation.cfm?id=J701&picked=prox"
"SIG Newsletters","ACM SIGITE Newsletter","SIGITE Newsl.","2166-1685","1550-1469","Volume 2 Issue 1 (Spring 2004)","Volume 9 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J977","http://dl.acm.org/citation.cfm?id=J977&picked=prox"
"SIG Newsletters","ACM SIGKDD Explorations Newsletter","SIGKDD Explor. Newsl.","1931-0145","1931-0153","Volume 1 Issue 1 (June 1999)","Volume 14 Issue 2 (December 2012)","http://dl.acm.org/citation.cfm?id=J721","http://dl.acm.org/citation.cfm?id=J721&picked=prox"
"SIG Newsletters","ACM SIGLASH Newsletter","SIGLASH Newsl.","0036-147X","1931-1095","Volume 10 Issue 1-2 (December 1976/March 1977)","Volume 14 Issue 1-2 (March/June 1981)","http://dl.acm.org/citation.cfm?id=J958","http://dl.acm.org/citation.cfm?id=J958&picked=prox"
"SIG Newsletters","ACM SIGMAP Bulletin","SIGMAP Bull.","0163-5786","1931-1184","Issue 5 (June 1969)","Issue 32 (April 1983)","http://dl.acm.org/citation.cfm?id=J952","http://dl.acm.org/citation.cfm?id=J952&picked=prox"
"SIG Newsletters","ACM SIGMETRICS Performance Evaluation Review","SIGMETRICS Perform. Eval. Rev.","0163-5999","","Volume 1 Issue 1 (March 1972)","Volume 41 Issue 2 (September 2013) - Special issue on the 31st international symposium on computer performance, modeling, measurements and evaluation (IFIPWG 7.3 Performance 2013)","http://dl.acm.org/citation.cfm?id=J618","http://dl.acm.org/citation.cfm?id=J618&picked=prox"
"SIG Newsletters","ACM SIGMICRO Newsletter","SIGMICRO Newsl.","1050-916X","","Volume 2 Issue 4 (January 1972)","Volume 23 Issue 1-2 (Dec. 1992)","http://dl.acm.org/citation.cfm?id=J703","http://dl.acm.org/citation.cfm?id=J703&picked=prox"
"SIG Newsletters","ACM SIGMINI Newsletter","SIGMINI Newsl.","0163-576X","","Volume 1 Issue 1 (July 1975)","Volume 4 Issue 4 (August 1978)","http://dl.acm.org/citation.cfm?id=J951","http://dl.acm.org/citation.cfm?id=J951&picked=prox"
"SIG Newsletters","ACM SIGMIS Database","SIGMIS Database","0095-0033","","Volume 1 Issue 2 (Summer 1969)","Volume 44 Issue 4 (November 2013)","http://dl.acm.org/citation.cfm?id=J219","http://dl.acm.org/citation.cfm?id=J219&picked=prox"
"SIG Newsletters","ACM SIGMOBILE Mobile Computing and Communications Review","SIGMOBILE Mob. Comput. Commun. Rev.","1559-1662","1931-1222","Volume 1 Issue 1 (April 1997)","Volume 17 Issue 4 (October 2013)","http://dl.acm.org/citation.cfm?id=J548","http://dl.acm.org/citation.cfm?id=J548&picked=prox"
"SIG Newsletters","ACM SIGMOD Record","SIGMOD Rec.","0163-5808","","Volume 1 Issue 1 (August 1969)","Volume 42 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J689","http://dl.acm.org/citation.cfm?id=J689&picked=prox"
"SIG Newsletters","ACM SIGMultimedia Records","SIGMultimedia Rec.","","1947-4598","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (September 2013)","http://dl.acm.org/citation.cfm?id=J1232","http://dl.acm.org/citation.cfm?id=J1232&picked=prox"
"SIG Newsletters","ACM SIGNUM Newsletter","SIGNUM Newsl.","0163-5778","","Volume 1 Issue 1 (June 1966)","Volume 33 Issue 2 (April 1, 1998)","http://dl.acm.org/citation.cfm?id=J690","http://dl.acm.org/citation.cfm?id=J690&picked=prox"
"SIG Newsletters","ACM SIGOA Newsletter","ACM SIGOA Newsletter","0737-819X","","Volume 1 Issue 1 (March 1980)","Volume 7 Issue 1 (Spring 1986)","http://dl.acm.org/citation.cfm?id=J915","http://dl.acm.org/citation.cfm?id=J915&picked=prox"
"SIG Newsletters","ACM SIGOIS Bulletin","SIGOIS Bull.","0894-0819","","Volume 7 Issue 2-3 (Summer-Fall 1986)","Volume 17 Issue 3 (Dec. 1996)","http://dl.acm.org/citation.cfm?id=J705","http://dl.acm.org/citation.cfm?id=J705&picked=prox"
"SIG Newsletters","ACM SIGOPS Operating Systems Review","SIGOPS Oper. Syst. Rev.","0163-5980","","Volume 3 Issue 1 (February 1969)","Volume 47 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J597","http://dl.acm.org/citation.cfm?id=J597&picked=prox"
"SIG Newsletters","ACM SIGPC Notes","SIGPC Note.","0163-5816","","Volume 1 Issue 2 (Summer 1978)","Volume 5 Issue 1-2 (Fall/Winter 1982/1983)","http://dl.acm.org/citation.cfm?id=J950","http://dl.acm.org/citation.cfm?id=J950&picked=prox"
"SIG Newsletters","ACM SIGPLAN Fortran Forum","SIGPLAN Fortran Forum","1061-7264","1931-1311","Volume 1 Issue 1 (July 1982)","Volume 32 Issue 3 (December 2013)","http://dl.acm.org/citation.cfm?id=J286","http://dl.acm.org/citation.cfm?id=J286&picked=prox"
"SIG Newsletters","ACM SIGPLAN Lisp Pointers","SIGPLAN Lisp Pointers","1045-3563","","Volume 1 Issue 1 (April-May 1987)","Volume VIII Issue 2 (May-Aug., 1995)","http://dl.acm.org/citation.cfm?id=J509","http://dl.acm.org/citation.cfm?id=J509&picked=prox"
"SIG Newsletters","ACM SIGPLAN Notices","SIGPLAN Not.","0362-1340","1558-1160","Volume 1 Issue 8 (August 1966)","Volume 48 Issue 11 (November 2013) - ISMM '13","http://dl.acm.org/citation.cfm?id=J706","http://dl.acm.org/citation.cfm?id=J706&picked=prox"
"SIG Newsletters","ACM SIGPLAN OOPS Messenger","SIGPLAN OOPS Mess.","1055-6400","","Volume 1 Issue 1 (Aug. 1990)","Volume 7 Issue 1 (Jan. 1996) - Special issue: object-oriented real-time systems","http://dl.acm.org/citation.cfm?id=J594","http://dl.acm.org/citation.cfm?id=J594&picked=prox"
"SIG Newsletters","ACM SIGSAC Review","SIGSAC Rev.","0277-920X","","Volume 1 Issue 1 (Winter 1981-1982)","Volume 15 Issue 2 (April 1997)","http://dl.acm.org/citation.cfm?id=J691","http://dl.acm.org/citation.cfm?id=J691&picked=prox"
"SIG Newsletters","ACM SIGSAM Bulletin","SIGSAM Bull.","0163-5824","","Issue 8 (December 1967)","Volume 47 Issue 1/2 (March/June 2013)","http://dl.acm.org/citation.cfm?id=J707","http://dl.acm.org/citation.cfm?id=J707&picked=prox"
"SIG Newsletters","ACM SIGSIM Simulation Digest","SIGSIM Simul. Dig.","0163-6103","","Volume 3 Issue 1 (September 1971)","Volume 28 Issue 1 (July 1998)","http://dl.acm.org/citation.cfm?id=J711","http://dl.acm.org/citation.cfm?id=J711&picked=prox"
"SIG Newsletters","ACM SIGSMALL Newsletter","SIGSMALL Newsl.","0272-720X","","Volume 4 Issue 5 (October 1978)","Volume 10 Issue 4 (October 1984)","http://dl.acm.org/citation.cfm?id=J949","http://dl.acm.org/citation.cfm?id=J949&picked=prox"
"SIG Newsletters","ACM SIGSMALL/PC Notes","SIGSMALL/PC Notes","0893-2875","","Volume 11 Issue 3 (Aug. 1985)","Volume 19 Issue 2 (Nov. 1993)","http://dl.acm.org/citation.cfm?id=J692","http://dl.acm.org/citation.cfm?id=J692&picked=prox"
"SIG Newsletters","ACM SIGSOC Bulletin","SIGSOC Bull.","0163-5794","","Volume 1 Issue 1 (March 1969)","Volume 13 Issue 4 (April 1982)","http://dl.acm.org/citation.cfm?id=J948","http://dl.acm.org/citation.cfm?id=J948&picked=prox"
"SIG Newsletters","ACM SIGSOFT Software Engineering Notes","SIGSOFT Softw. Eng. Notes","0163-5948","","Volume 1 Issue 1 (May 1976)","Volume 38 Issue 6 (November 2013)","http://dl.acm.org/citation.cfm?id=J728","http://dl.acm.org/citation.cfm?id=J728&picked=prox"
"SIG Newsletters","ACM SIGUCCS Newsletter","SIGUCCS Newsl.","0736-6892","","Volume 1 Issue 1 (January 1965)","Volume 28 Issue 4 (Dec. 1998)","http://dl.acm.org/citation.cfm?id=J708","http://dl.acm.org/citation.cfm?id=J708&picked=prox"
"SIG Newsletters","ACM SIGUCCS plugged in","ACM SIGUCCS plugged in","","2168-8516","Volume 1 Issue 1 (Summer 2012)","Volume 2 Issue 1 (Summer 2013)","http://dl.acm.org/citation.cfm?id=J1358","http://dl.acm.org/citation.cfm?id=J1358&picked=prox"
"SIG Newsletters","ACM SIGWEB Newsletter","SIGWEB Newsl.","1931-1745","1931-1435","Volume 1 Issue 1 (March 1992)","Issue Autumn (Autumn 2013)","http://dl.acm.org/citation.cfm?id=J507","http://dl.acm.org/citation.cfm?id=J507&picked=prox"
"SIG Newsletters","ACM SIGecom Exchanges","SIGecom Exch.","","1551-9031","Volume 1 Issue 1 (Summer, 2000)","Volume 12 Issue 1 (June 2013)","http://dl.acm.org/citation.cfm?id=J684","http://dl.acm.org/citation.cfm?id=J684&picked=prox"
"SIG Newsletters","Communication Design Quarterly Review","Commun. Des. Q. Rev","2166-1200","2166-1642","Volume 2 Issue 1 (March 2001)","Volume 2 Issue 1 (November 2013)","http://dl.acm.org/citation.cfm?id=J1351","http://dl.acm.org/citation.cfm?id=J1351&picked=prox"
"SIG Newsletters","SIGSPATIAL Special","SIGSPATIAL Special","","1946-7729","Volume 1 Issue 1 (March 2009)","Volume 5 Issue 3 (November 2013)","http://dl.acm.org/citation.cfm?id=J1196","http://dl.acm.org/citation.cfm?id=J1196&picked=prox"
"Conference Proceedings","3DOR: 3D Object Retrieval","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dor/","http://portal.acm.org/proceedings/3dor/archive/"
"Conference Proceedings","3DVP: 3D Video Processing","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/3dvp/","http://portal.acm.org/proceedings/3dvp/archive/"
"Conference Proceedings","A-MOST: Advances in Model-Based Testing","","","","2005 (May 2005)","2007 (July 2007)","http://portal.acm.org/proceedings/a-most/","http://portal.acm.org/proceedings/a-most/archive/"
"Conference Proceedings","A2CWiC: Amrita ACM-W Celebration on Women in Computing in India","","","","2010 (September 2010)","2010 (September 2010)","http://portal.acm.org/proceedings/a2cwic/","http://portal.acm.org/proceedings/a2cwic/archive/"
"Conference Proceedings","AAA-IDEA: Advanced Architectures and Algorithms for Internet Delivery and Applications","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/aaa-idea/","http://portal.acm.org/proceedings/aaa-idea/archive/"
"Conference Proceedings","AADEBUG: Automated analysis-driven debugging","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/aadebug/","http://portal.acm.org/proceedings/aadebug/archive/"
"Conference Proceedings","AAMAS: Autonomous Agents and Multiagent Systems","","","","2002 (July 2002)","2013 (May 2013)","http://portal.acm.org/proceedings/aamas/","http://portal.acm.org/proceedings/aamas/archive/"
"Conference Proceedings","ACDC: Automated Control for Datacenters and Clouds","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/acdc/","http://portal.acm.org/proceedings/acdc/archive/"
"Conference Proceedings","ACET: Advances in Computer Entertainment Technology","","","","2004 (September 2004)","2011 (November 2011)","http://portal.acm.org/proceedings/ace/","http://portal.acm.org/proceedings/ace/archive/"
"Conference Proceedings","ACISNR: Applications of Computer and Information Sciences to Nature Research","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/acisnr/","http://portal.acm.org/proceedings/acisnr/archive/"
"Conference Proceedings","ACL2: ACL2 Theorem Prover and its Applications","","","","2006 (August 2006)","2009 (May 2009)","http://portal.acm.org/proceedings/acl2/","http://portal.acm.org/proceedings/acl2/archive/"
"Conference Proceedings","ACM DEV: Computing for Development","","","","2010 (December 2010)","2013 (January 2013)","http://portal.acm.org/proceedings/acmdev/","http://portal.acm.org/proceedings/acmdev/archive/"
"Conference Proceedings","ACM POLICY: ACM POLICY","","","","1998 (June 1998)","1998 (June 1998)","http://portal.acm.org/proceedings/acmpolicy/","http://portal.acm.org/proceedings/acmpolicy/archive/"
"Conference Proceedings","ACM SE: Annual Southeast Regional Conference","","","","1967 (June 1967)","2013 (April 2013)","http://portal.acm.org/proceedings/acmse/","http://portal.acm.org/proceedings/acmse/archive/"
"Conference Proceedings","ACM-BCS: ACM-BCS","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/acm-bcs/","http://portal.acm.org/proceedings/acm-bcs/archive/"
"Conference Proceedings","ACM: ACM Annual Conference/Annual Meeting","","","","1952 (May 1952)","1987 (December 1987)","http://portal.acm.org/proceedings/acm/","http://portal.acm.org/proceedings/acm/archive/"
"Conference Proceedings","ACPIS: Aspects, Components, and Patterns for Infrastructure Software","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/acpis/","http://portal.acm.org/proceedings/acpis/archive/"
"Conference Proceedings","ACSAC: Annual Computer Security Applications Conference","","","","2010 (December 2010)","2012 (December 2012)","http://portal.acm.org/proceedings/acsac/","http://portal.acm.org/proceedings/acsac/archive/"
"Conference Proceedings","ACSE: Australasian Conference on Computing Education","","","","1996 (July 1996)","2010 (January 2010)","http://portal.acm.org/proceedings/acse/","http://portal.acm.org/proceedings/acse/archive/"
"Conference Proceedings","ACoM: Assessment of Contemporary Modularization Techniques","","","","2007 (May 2007)","2007 (May 2007)","http://portal.acm.org/proceedings/acom/","http://portal.acm.org/proceedings/acom/archive/"
"Conference Proceedings","ADAMUS: Adaptive and Dependable Mobile Ubiquitous Systems","","","","2009 (July 2009)","2009 (July 2009)","http://portal.acm.org/proceedings/adamus/","http://portal.acm.org/proceedings/adamus/archive/"
"Conference Proceedings","ADKDD: Data Mining and Audience Intelligence for Advertising","","","","2007 (August 2007)","2013 (August 2013)","http://portal.acm.org/proceedings/adkdd/","http://portal.acm.org/proceedings/adkdd/archive/"
"Conference Proceedings","ADPUC: Advanced Data Processing in Ubiquitous Computing ","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/adpuc/","http://portal.acm.org/proceedings/adpuc/archive/"
"Conference Proceedings","AFFINE: Affective-Aware Virtual Agents and Social Robots","","","","2009 (November 2009)","2010 (October 2010)","http://portal.acm.org/proceedings/affine/","http://portal.acm.org/proceedings/affine/archive/"
"Conference Proceedings","AFIPS: AFIPS","","","","1955 (March 1955)","1984 (July 1984)","http://portal.acm.org/proceedings/afips/","http://portal.acm.org/proceedings/afips/archive/"
"Conference Proceedings","AFM: Automated Formal Methods","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/afm/","http://portal.acm.org/proceedings/afm/archive/"
"Conference Proceedings","AFRIGRAPH: Computer Graphics, Virtual Reality, Visualisation and Interaction in Africa","","","","2001 (November 2001)","2010 (June 2010)","http://portal.acm.org/proceedings/afrigraph/","http://portal.acm.org/proceedings/afrigraph/archive/"
"Conference Proceedings","AGENTS: Autonomous Agents","","","","1997 (February 1997)","2001 (May 2001)","http://portal.acm.org/proceedings/agents/","http://portal.acm.org/proceedings/agents/archive/"
"Conference Proceedings","AH: Augmented Human","","","","2010 (April 2010)","2013 (March 2013)","http://portal.acm.org/proceedings/ah/","http://portal.acm.org/proceedings/ah/archive/"
"Conference Proceedings","AIEE-IRE: AIEE-IRE","","","","1951 (December 1951)","1962 (May 1962)","http://portal.acm.org/proceedings/aiee-ire/","http://portal.acm.org/proceedings/aiee-ire/archive/"
"Conference Proceedings","AIEMPro: Automated Information Extraction in Media Production","","","","2010 (October 2010)","2011 (December 2011)","http://portal.acm.org/proceedings/aiempro/","http://portal.acm.org/proceedings/aiempro/archive/"
"Conference Proceedings","AIGC: Artificial Intelligence in Grid Computing","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/aigc/","http://portal.acm.org/proceedings/aigc/archive/"
"Conference Proceedings","AINTEC: Asian Conference on Internet Engineering","","","","2008 (November 2008)","2012 (November 2012)","http://portal.acm.org/proceedings/aintec/","http://portal.acm.org/proceedings/aintec/archive/"
"Conference Proceedings","AIPACa: Applications of Private and Anonymous Communications","","","","2008 (September 2008)","2008 (September 2008)","http://portal.acm.org/proceedings/aipaca/","http://portal.acm.org/proceedings/aipaca/archive/"
"Conference Proceedings","AIRS: Asia Information Retrieval Symposium ","","","","2008 (January 2008)","2009 (October 2009)","http://portal.acm.org/proceedings/airs/","http://portal.acm.org/proceedings/airs/archive/"
"Conference Proceedings","AIRWeb: Adversarial Information Retrieval on the Web","","","","2007 (May 2007)","2009 (April 2009)","http://portal.acm.org/proceedings/airweb/","http://portal.acm.org/proceedings/airweb/archive/"
"Conference Proceedings","AISC/MKM/Calculemus: AISC/MKM/Calculemus Conference on Intelligent Computer Mathematics","","","","2010 (July 2010)","2010 (July 2010)","http://portal.acm.org/proceedings/aisc/mkm/calculemus/","http://portal.acm.org/proceedings/aisc/mkm/calculemus/archive/"
"Conference Proceedings","AISec: Artificial Intelligence and Security","","","","2008 (October 2008)","2013 (November 2013)","http://portal.acm.org/proceedings/aisec/","http://portal.acm.org/proceedings/aisec/archive/"
"Conference Proceedings","ALICE: Alice Symposium","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/alice/","http://portal.acm.org/proceedings/alice/archive/"
"Conference Proceedings","AM: Audio Mostly","","","","2010 (September 2010)","2012 (September 2012)","http://portal.acm.org/proceedings/am/","http://portal.acm.org/proceedings/am/archive/"
"Conference Proceedings","AMC: Ambient Media Computing","","","","2009 (October 2009)","2009 (October 2009)","http://portal.acm.org/proceedings/amc/","http://portal.acm.org/proceedings/amc/archive/"
"Conference Proceedings","AMCMM: Audio and Music Computing Multimedia","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/amcmm/","http://portal.acm.org/proceedings/amcmm/archive/"
"Conference Proceedings","ANCS: Architectures for Networking and Communications Systems","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/ancs/","http://portal.acm.org/proceedings/ancs/archive/"
"Conference Proceedings","AND: Analytics for Noisy Unstructured Text Data","","","","2008 (July 2008)","2010 (October 2010)","http://portal.acm.org/proceedings/and/","http://portal.acm.org/proceedings/and/archive/"
"Conference Proceedings","ANNA: Analysis of Neural Network Applications","","","","1991 (May 1991)","1991 (May 1991)","http://portal.acm.org/proceedings/anna/","http://portal.acm.org/proceedings/anna/archive/"
"Conference Proceedings","ANSS: Annual Simulation Symposium","","","","1973 (June 1973)","2013 (April 2013)","http://portal.acm.org/proceedings/anss/","http://portal.acm.org/proceedings/anss/archive/"
"Conference Proceedings","AOM: Aspect-Oriented Modeling","","","","2007 (March 2007)","2009 (March 2009)","http://portal.acm.org/proceedings/aom/","http://portal.acm.org/proceedings/aom/archive/"
"Conference Proceedings","AOMD: Aspect Oriented Middleware Development","","","","2005 (November 2005)","2005 (November 2005)","http://portal.acm.org/proceedings/aomd/","http://portal.acm.org/proceedings/aomd/archive/"
"Conference Proceedings","AOSD: Aspect-Oriented Software Development","","","","2002 (April 2002)","2013 (March 2013)","http://portal.acm.org/proceedings/aosd/","http://portal.acm.org/proceedings/aosd/archive/"
"Conference Proceedings","APGV: Applied Perception in Graphics and Visualization","","","","2004 (August 2004)","2011 (August 2011)","http://portal.acm.org/proceedings/apgv/","http://portal.acm.org/proceedings/apgv/archive/"
"Conference Proceedings","APL: APL","","","","1969 (January 1969)","2003 (June 2003)","http://portal.acm.org/proceedings/apl/","http://portal.acm.org/proceedings/apl/archive/"
"Conference Proceedings","APLWACA: Analysis and Programming Languages for Web Applications and Cloud Applications","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/aplwaca/","http://portal.acm.org/proceedings/aplwaca/archive/"
"Conference Proceedings","APOS: Scrutinizing Agile Practices","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/apos/","http://portal.acm.org/proceedings/apos/archive/"
"Conference Proceedings","APS: Adaptive, Personalization & the Semantic Web","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/aps/","http://portal.acm.org/proceedings/aps/archive/"
"Conference Proceedings","APSys: Asia-Pacific Workshop on Systems","","","","2010 (August 2010)","2013 (July 2013)","http://portal.acm.org/proceedings/apsys/","http://portal.acm.org/proceedings/apsys/archive/"
"Conference Proceedings","AREA: Analysis and Retrieval of Events","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/area/","http://portal.acm.org/proceedings/area/archive/"
"Conference Proceedings","ARM: Adaptive and Reflective MIddleware","","","","2004 (October 2004)","2013 (December 2013)","http://portal.acm.org/proceedings/arm/","http://portal.acm.org/proceedings/arm/archive/"
"Conference Proceedings","ARTEMIS: Analysis and Retrieval of Tracked Events and Motion in Imagery Streams","","","","2010 (October 2010)","2013 (October 2013)","http://portal.acm.org/proceedings/artemis/","http://portal.acm.org/proceedings/artemis/archive/"
"Conference Proceedings","ASE: Automated Software Engineering","","","","1997 (November 1997)","2012 (September 2012)","http://portal.acm.org/proceedings/ase/","http://portal.acm.org/proceedings/ase/archive/"
"Conference Proceedings","ASIA CCS: Information, Computer and Communications Security","","","","2006 (March 2006)","2013 (May 2013)","http://portal.acm.org/proceedings/asiaccs/","http://portal.acm.org/proceedings/asiaccs/archive/"
"Conference Proceedings","ASIA-PEPM: Partial Evaluation and Semantics-Based Program Manipulation","","","","2002 (September 2002)","2002 (September 2002)","http://portal.acm.org/proceedings/asia-pepm/","http://portal.acm.org/proceedings/asia-pepm/archive/"
"Conference Proceedings","ASID: Architectural and System Support for Improving Software Dependability","","","","2006 (October 2006)","2006 (October 2006)","http://portal.acm.org/proceedings/asid/","http://portal.acm.org/proceedings/asid/archive/"
"Conference Proceedings","ASPDAC: Asia and South Pacific Design Automation Conference","","","","1995 (August 1995)","2011 (January 2011)","http://portal.acm.org/proceedings/aspdac/","http://portal.acm.org/proceedings/aspdac/archive/"
"Conference Proceedings","ASPLOS: Architectural Support for Programming Languages and Operating Systems","","","","1982 (March 1982)","2013 (March 2013)","http://portal.acm.org/proceedings/asplos/","http://portal.acm.org/proceedings/asplos/archive/"
"Conference Proceedings","AST: Automation of Software Test","","","","2006 (May 2006)","2011 (May 2011)","http://portal.acm.org/proceedings/ast/","http://portal.acm.org/proceedings/ast/archive/"
"Conference Proceedings","AUIC: User Interface","","","","2001 (January 2001)","2010 (January 2010)","http://portal.acm.org/proceedings/auic/","http://portal.acm.org/proceedings/auic/archive/"
"Conference Proceedings","AUPC: Agent-Oriented Software Engineering Challenges for Ubiquitous and Pervasive Computing","","","","2008 (July 2008)","2009 (July 2009)","http://portal.acm.org/proceedings/aupc/","http://portal.acm.org/proceedings/aupc/archive/"
"Conference Proceedings","AVI: Advanced Visual Interfaces","","","","1994 (June 1994)","2012 (May 2012)","http://portal.acm.org/proceedings/avi/","http://portal.acm.org/proceedings/avi/archive/"
"Conference Proceedings","AVSTP2P: Advanced video streaming techniques for peer-to-peer networks and social networking","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/avstp2p/","http://portal.acm.org/proceedings/avstp2p/archive/"
"Conference Proceedings","AcessNets: Access Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/acessnets/","http://portal.acm.org/proceedings/acessnets/archive/"
"Conference Proceedings","Ambi-Sys: Ambient Media and Systems","","","","2008 (February 2008)","2008 (February 2008)","http://portal.acm.org/proceedings/ambi-sys/","http://portal.acm.org/proceedings/ambi-sys/archive/"
"Conference Proceedings","Assets: Computers and Accessibility","","","","1994 (October 1994)","2013 (October 2013)","http://portal.acm.org/proceedings/assets/","http://portal.acm.org/proceedings/assets/archive/"
"Conference Proceedings","AusGrid: Grid Computing and e-Research","","","","2008 (January 2008)","2009 (January 2009)","http://portal.acm.org/proceedings/ausgrid/","http://portal.acm.org/proceedings/ausgrid/archive/"
"Conference Proceedings","AutomotiveUI: Automotive User Interfaces and Interactive Vehicular Applications","","","","2009 (September 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/automotiveui/","http://portal.acm.org/proceedings/automotiveui/archive/"
"Conference Proceedings","Autonomics: Autonomic Computing and Communication Systems","","","","2007 (October 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/autonomics/","http://portal.acm.org/proceedings/autonomics/archive/"
"Conference Proceedings","BADS: Bio-Inspired Algorithms for Distributed Systems","","","","2009 (June 2009)","2011 (June 2011)","http://portal.acm.org/proceedings/bads/","http://portal.acm.org/proceedings/bads/archive/"
"Conference Proceedings","BCB: Bioinformatics and Computational Biology","","","","2010 (August 2010)","2007 (September 2013)","http://portal.acm.org/proceedings/bcb/","http://portal.acm.org/proceedings/bcb/archive/"
"Conference Proceedings","BCS-HCI: British HCI Group Annual Conference on People and Computers","","","","2007 (September 2007)","2009 (September 2009)","http://portal.acm.org/proceedings/bcs-hci/","http://portal.acm.org/proceedings/bcs-hci/archive/"
"Conference Proceedings","BELIV: Beyond Time and Errors: Novel evaluation Methods for Information Visualization","","","","2006 (May 2006)","2012 (October 2012)","http://portal.acm.org/proceedings/beliv/","http://portal.acm.org/proceedings/beliv/archive/"
"Conference Proceedings","BIOKDD: Bioinformatics","","","","2005 (August 2005)","2013 (August 2013)","http://portal.acm.org/proceedings/biokdd/","http://portal.acm.org/proceedings/biokdd/archive/"
"Conference Proceedings","BIONETICS: Bio Inspired Models of Network, Information and Computing Systems","","","","2006 (December 2006)","2006 (December 2006)","http://portal.acm.org/proceedings/bionetics/","http://portal.acm.org/proceedings/bionetics/archive/"
"Conference Proceedings","BM-FA: Behaviour Modelling","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/bm-fa/","http://portal.acm.org/proceedings/bm-fa/archive/"
"Conference Proceedings","BM-MDA: Behaviour Modelling in Model-Driven Architecture","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/bm-mda/","http://portal.acm.org/proceedings/bm-mda/archive/"
"Conference Proceedings","BPAOSD: Best Practices in Applying Aspect-Oriented Software Development","","","","2007 (March 2007)","2007 (March 2007)","http://portal.acm.org/proceedings/bpaosd/","http://portal.acm.org/proceedings/bpaosd/archive/"
"Conference Proceedings","BQGT: Behavioral and Quantitative Game Theory","","","","2010 (May 2010)","2010 (May 2010)","http://portal.acm.org/proceedings/bqgt/","http://portal.acm.org/proceedings/bqgt/archive/"
"Conference Proceedings","BWAN: Broadband Wireless Access for Ubiquitous Networking","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/bwan/","http://portal.acm.org/proceedings/bwan/archive/"
"Conference Proceedings","Baltic Sea: Baltic Sea Conference on Computing Education Research","","","","2006 (February 2006)","2006 (February 2006)","http://portal.acm.org/proceedings/balticsea/","http://portal.acm.org/proceedings/balticsea/archive/"
"Conference Proceedings","BiPi: Business Impact of Process Improvements","","","","2008 (May 2008)","2008 (May 2008)","http://portal.acm.org/proceedings/bipi/","http://portal.acm.org/proceedings/bipi/archive/"
"Conference Proceedings","BooksOnline: Research Advances in Large Digital Book Repositories","","","","2008 (October 2008)","2012 (October 2012)","http://portal.acm.org/proceedings/booksonline/","http://portal.acm.org/proceedings/booksonline/archive/"
"Conference Proceedings","BuildSys: Embedded Sensing Systems for Energy-Efficiency in Buildings","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/buildsys/","http://portal.acm.org/proceedings/buildsys/archive/"
"Conference Proceedings","C&C: Creativity and Cognition","","","","1999 (October 1999)","2013 (June 2013)","http://portal.acm.org/proceedings/c&c/","http://portal.acm.org/proceedings/c&c/archive/"
"Conference Proceedings","C&T: Communities and Technologies","","","","2009 (June 2009)","2013 (June 2013)","http://portal.acm.org/proceedings/c&t/","http://portal.acm.org/proceedings/c&t/archive/"
"Conference Proceedings","C3P: Hypercube Concurrent Computers and Applications","","","","1988 (January 1988)","1988 (January 1989)","http://portal.acm.org/proceedings/c3p/","http://portal.acm.org/proceedings/c3p/archive/"
"Conference Proceedings","C3S2E: Canadian Conference on Computer Science and Software Engineering","","","","2008 (May 2008)","2013 (July 2013)","http://portal.acm.org/proceedings/cse/","http://portal.acm.org/proceedings/cse/archive/"
"Conference Proceedings","CAI: Context in Advanced Interfaces","","","","2006 (May 2006)","2006 (May 2006)","http://portal.acm.org/proceedings/cai/","http://portal.acm.org/proceedings/cai/archive/"
"Conference Proceedings","CAMA: Contextualized Attention Metadata","","","","2006 (November 2006)","2006 (November 2006)","http://portal.acm.org/proceedings/cama/","http://portal.acm.org/proceedings/cama/archive/"
"Conference Proceedings","CAMRa: Context-aware Movie Recommendation","","","","2010 (September 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/camra/","http://portal.acm.org/proceedings/camra/archive/"
"Conference Proceedings","CAMS: Context-Aware Middleware and Services","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/cams/","http://portal.acm.org/proceedings/cams/archive/"
"Conference Proceedings","CARPE: Continous Archival and Retrieval of Personal Experiences","","","","2004 (October 2004)","2006 (October 2006)","http://portal.acm.org/proceedings/carpe/","http://portal.acm.org/proceedings/carpe/archive/"
"Conference Proceedings","CARS: Critical Automotive Applications","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/cars/","http://portal.acm.org/proceedings/cars/archive/"
"Conference Proceedings","CASEMANS: Context-Awareness for Self-Managing Systems","","","","2008 (May 2008)","2011 (September 2011)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
"Conference Proceedings","CASES: Compilers, Architectures and Synthesis for Embedded Systems","","","","2000 (November 2000)","2013 (September 2013)","http://portal.acm.org/proceedings/cases/","http://portal.acm.org/proceedings/cases/archive/"
"Conference Proceedings","CASTA: Context-Aware Software Technology and Application","","","","2009 (August 2009)","2009 (August 2009)","http://portal.acm.org/proceedings/casta/","http://portal.acm.org/proceedings/casta/archive/"
"Conference Proceedings","CAW: Computer Architecture for Non-Numeric Processing","","","","1977 (January 1977)","1980 (March 1980)","http://portal.acm.org/proceedings/caw/","http://portal.acm.org/proceedings/caw/archive/"
"Conference Proceedings","CBHPC: Component-Based High Performance Computing","","","","2008 (October 2008)","2009 (November 2009)","http://portal.acm.org/proceedings/cbhpc/","http://portal.acm.org/proceedings/cbhpc/archive/"
"Conference Proceedings","CC: Critical Computing","","","","2005 (August 2005)","2005 (August 2005)","http://portal.acm.org/proceedings/cc/","http://portal.acm.org/proceedings/cc/archive/"
"Conference Proceedings","CCS: Computer and Communications Security","","","","1993 (December 1993)","2013 (November 2013)","http://portal.acm.org/proceedings/ccs/","http://portal.acm.org/proceedings/ccs/archive/"
"Conference Proceedings","CCSC: Consortium for Computing Sciences in Colleges","","","","1991 (May 1991)","2001 (April 2001)","http://portal.acm.org/proceedings/ccsc/","http://portal.acm.org/proceedings/ccsc/archive/"
"Conference Proceedings","CCSW: Cloud Computing Security Workshop","","","","2009 (November 2009)","2013 (November 2013)","http://portal.acm.org/proceedings/ccsw/","http://portal.acm.org/proceedings/ccsw/archive/"
"Conference Proceedings","CCU: Contemporary Computing in Ukraine","","","","2000 (February 2000)","2000 (February 2000)","http://portal.acm.org/proceedings/ccu/","http://portal.acm.org/proceedings/ccu/archive/"
"Conference Proceedings","CEA: Cooking and Eating Activities","","","","2009 (October 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/cea/","http://portal.acm.org/proceedings/cea/archive/"
"Conference Proceedings","CF: Computing Frontiers","","","","2004 (April 2004)","2013 (May 2013)","http://portal.acm.org/proceedings/cf/","http://portal.acm.org/proceedings/cf/archive/"
"Conference Proceedings","CFI: Future Internet Technologies","","","","2009 (June 2009)","2012 (September 2012)","http://portal.acm.org/proceedings/cfi/","http://portal.acm.org/proceedings/cfi/archive/"
"Conference Proceedings","CFP: Computers, Freedom and Privacy","","","","1992 (April 1992)","2002 (April 2002)","http://portal.acm.org/proceedings/cfp/","http://portal.acm.org/proceedings/cfp/archive/"
"Conference Proceedings","CGI: Computer Graphics International","","","","1996 (June 1996)","2009 (May 2009)","http://portal.acm.org/proceedings/cgi/","http://portal.acm.org/proceedings/cgi/archive/"
"Conference Proceedings","CGO: Code Generation and Optimization","","","","2003 (March 2003)","2013 (February 2013)","http://portal.acm.org/proceedings/cgo/","http://portal.acm.org/proceedings/cgo/archive/"
"Conference Proceedings","CHANTS: Challenged Networks","","","","2006 (September 2006)","2013 (September 2013)","http://portal.acm.org/proceedings/chants/","http://portal.acm.org/proceedings/chants/archive/"
"Conference Proceedings","CHASE: Cooperative and Human Aspects on Software Engineering","","","","2008 (May 2008)","2011 (May 2011)","http://portal.acm.org/proceedings/chase/","http://portal.acm.org/proceedings/chase/archive/"
"Conference Proceedings","CHI EA: Conference on Human Factors in Computing Systems-Extended Abstracts","","","","1997 (March 1997)","2013 (April 2013)","http://portal.acm.org/proceedings/chiea/","http://portal.acm.org/proceedings/chiea/archive/"
"Conference Proceedings","CHI: Conference on Human Factors in Computing Systems","","","","1981 (May 1981)","2013 (April 2013)","http://portal.acm.org/proceedings/chi/","http://portal.acm.org/proceedings/chi/archive/"
"Conference Proceedings","CHINA HPC: High Performance Computing","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/chinahpc/","http://portal.acm.org/proceedings/chinahpc/archive/"
"Conference Proceedings","CHINZ: ACM SIGCHI New Zealand Chapter's International Conference on Human-Computer Interaction","","","","2001 (July 2001)","2012 (July 2012)","http://portal.acm.org/proceedings/chinz/","http://portal.acm.org/proceedings/chinz/archive/"
"Conference Proceedings","CHiMiT: Computer Human Interaction for the Management of Information Technology","","","","2007 (March 2007)","2011 (December 2011)","http://portal.acm.org/proceedings/chimit/","http://portal.acm.org/proceedings/chimit/archive/"
"Conference Proceedings","CIAA: Implementation and Application of Automata","","","","2003 (July 2002)","2003 (July 2002)","http://portal.acm.org/proceedings/ciaa/","http://portal.acm.org/proceedings/ciaa/archive/"
"Conference Proceedings","CIAO: Context, Information and Ontologies","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/ciao/","http://portal.acm.org/proceedings/ciao/archive/"
"Conference Proceedings","CIKM: Conference on Information and Knowledge Management","","","","1993 (December 1993)","2013 (October 2013)","http://portal.acm.org/proceedings/cikm/","http://portal.acm.org/proceedings/cikm/archive/"
"Conference Proceedings","CIMS: CyberInfrastructure: Information Management in eScience","","","","2007 (November 2007)","2007 (November 2007)","http://portal.acm.org/proceedings/cims/","http://portal.acm.org/proceedings/cims/archive/"
"Conference Proceedings","CIVR: Conference on Image and Video Retrieval","","","","2007 (July 2007)","2010 (July 2010)","http://portal.acm.org/proceedings/civr/","http://portal.acm.org/proceedings/civr/archive/"
"Conference Proceedings","CLADE: Challenges of Large Applications in Distributed Environments","","","","2003 (June 2003)","2009 (June 2009)","http://portal.acm.org/proceedings/clade/","http://portal.acm.org/proceedings/clade/archive/"
"Conference Proceedings","CLIHC: Latin American Conference on Human-Computer Interaction","","","","2003 (August 2003)","2005 (October 2005)","http://portal.acm.org/proceedings/clihc/","http://portal.acm.org/proceedings/clihc/archive/"
"Conference Proceedings","CLOUD: Software Engineering Challenges of Cloud Computing","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/cloud/","http://portal.acm.org/proceedings/cloud/archive/"
"Conference Proceedings","CMM: Connected Multimedia","","","","2010 (October 2010)","2010 (October 2010)","http://portal.acm.org/proceedings/cmm/","http://portal.acm.org/proceedings/cmm/archive/"
"Conference Proceedings","CMSB: Computational Methods in Systems Biology","","","","2010 (September 2010)","2011 (September 2011)","http://portal.acm.org/proceedings/cmsb/","http://portal.acm.org/proceedings/cmsb/archive/"
"Conference Proceedings","CNIKM: Complex Networks Meet Information & Knowledge Management","","","","2009 (November 2009)","2009 (November 2009)","http://portal.acm.org/proceedings/cnikm/","http://portal.acm.org/proceedings/cnikm/archive/"
"Conference Proceedings","CNS: Communications and Networking Simulation","","","","2008 (April 2008)","2013 (April 2013)","http://portal.acm.org/proceedings/cns/","http://portal.acm.org/proceedings/cns/archive/"
"Conference Proceedings","COCS: Conference on Organizational Computing Systems","","","","1984 (January 1984)","1995 (August 1995)","http://portal.acm.org/proceedings/cocs/","http://portal.acm.org/proceedings/cocs/archive/"
"Conference Proceedings","CODES: Hardware Software Codesign","","","","1994 (September 1994)","2012 (October 2012)","http://portal.acm.org/proceedings/codes/","http://portal.acm.org/proceedings/codes/archive/"
"Conference Proceedings","COLT: Computational Learning Theory","","","","1988 (December 1988)","1999 (July 1999)","http://portal.acm.org/proceedings/colt/","http://portal.acm.org/proceedings/colt/archive/"
"Conference Proceedings","COM.Geo: Computing for Geospatial Research & Application","","","","2010 (June 2010)","2012 (July 2012)","http://portal.acm.org/proceedings/com.geo/","http://portal.acm.org/proceedings/com.geo/archive/"
"Conference Proceedings","COMM: Communications Architectures and Protocols","","","","2000 (November 2000)","2000 (November 2000)","http://portal.acm.org/proceedings/comm/","http://portal.acm.org/proceedings/comm/archive/"
"Conference Proceedings","COMPUTE: COMPUTE","","","","2008 (January 2008)","2013 (August 2013)","http://portal.acm.org/proceedings/compute/","http://portal.acm.org/proceedings/compute/archive/"
"Conference Proceedings","COMSWARE: Communication System Software and Middleware","","","","2009 (June 2009)","2011 (July 2011)","http://portal.acm.org/proceedings/comsware/","http://portal.acm.org/proceedings/comsware/archive/"
"Conference Proceedings","COP: Context-Oriented Programming","","","","2009 (July 2009)","2013 (July 2013)","http://portal.acm.org/proceedings/cop/","http://portal.acm.org/proceedings/cop/archive/"
"Conference Proceedings by Affiliated Organizations","CPR: Computers and People Research","","","","1962 (June 1962)","2013 (May 2013)","http://portal.acm.org/proceedings/sigcpr/","http://portal.acm.org/proceedings/sigcpr/archive/"
"Conference Proceedings","CQL: Computers and the Quality of Life","","","","1990 (August 1990)","1996 (February 1996)","http://portal.acm.org/proceedings/cql/","http://portal.acm.org/proceedings/cql/archive/"
"Conference Proceedings","CSAW: Computer Security Architectures","","","","2007 (November 2007)","2008 (October 2008)","http://portal.acm.org/proceedings/csaw/","http://portal.acm.org/proceedings/csaw/archive/"
"Conference Proceedings","CSC: Conference on Computer Science","","","","1973 (February 1973)","1996 (February 1996)","http://portal.acm.org/proceedings/csc/","http://portal.acm.org/proceedings/csc/archive/"
"Conference Proceedings","CSCW: Computer Supported Cooperative Work","","","","1986 (December 1986)","2013 (February 2013)","http://portal.acm.org/proceedings/cscw/","http://portal.acm.org/proceedings/cscw/archive/"
"Conference Proceedings","CSI-KDD: CyberSecurity and Intelligence Informatics","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/csi-kdd/","http://portal.acm.org/proceedings/csi-kdd/archive/"
"Conference Proceedings","CSIIRW: Cyber Security and Information Intelligence Research","","","","2008 (May 2008)","2013 (January 2013)","http://portal.acm.org/proceedings/csiirw/","http://portal.acm.org/proceedings/csiirw/archive/"
"Conference Proceedings","CSSSIA: Context Enabled Source and Service Selection, Integration and Adaption","","","","2008 (April 2008)","2008 (April 2008)","http://portal.acm.org/proceedings/csssia/","http://portal.acm.org/proceedings/csssia/archive/"
"Conference Proceedings","CSTST: Soft Computing as Transdisciplinary Science and Technology","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/cstst/","http://portal.acm.org/proceedings/cstst/archive/"
"Conference Proceedings","CUFP: Commercial Users of Functional Programming","","","","2007 (October 2007)","2010 (October 2010)","http://portal.acm.org/proceedings/cufp/","http://portal.acm.org/proceedings/cufp/archive/"
"Conference Proceedings","CUU: Conference on Universal Usability","","","","2000 (November 2000)","2003 (November 2003)","http://portal.acm.org/proceedings/cuu/","http://portal.acm.org/proceedings/cuu/archive/"
"Conference Proceedings","CVDB: Computer Vision Meets Databases","","","","2004 (June 2004)","2005 (June 2005)","http://portal.acm.org/proceedings/cvdb/","http://portal.acm.org/proceedings/cvdb/archive/"
"Conference Proceedings","CVE: Collaborative Virtual Environments","","","","2000 (September 2000)","2002 (September 2002)","http://portal.acm.org/proceedings/cve/","http://portal.acm.org/proceedings/cve/archive/"
"Conference Proceedings","CVSM: Comparison and Versioning of Software Models","","","","2008 (May 2008)","2009 (May 2009)","http://portal.acm.org/proceedings/cvsm/","http://portal.acm.org/proceedings/cvsm/archive/"
"Conference Proceedings","CWIT: Women and ICT","","","","2005 (June 2005)","2005 (June 2005)","http://portal.acm.org/proceedings/cwit/","http://portal.acm.org/proceedings/cwit/archive/"
"Conference Proceedings","CWNETS: Cognitive Wireless Networks","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/cwnets/","http://portal.acm.org/proceedings/cwnets/archive/"
"Conference Proceedings","Casemans: Context-Awareness for Self-Managing Systems","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/casemans/","http://portal.acm.org/proceedings/casemans/archive/"
"Conference Proceedings","CloudDB: Cloud Data Management","","","","2009 (November 2009)","2013 (October 2013)","http://portal.acm.org/proceedings/clouddb/","http://portal.acm.org/proceedings/clouddb/archive/"
"Conference Proceedings","CoNEXT: Co-NEXT","","","","2005 (October 2005)","2013 (December 2013)","http://portal.acm.org/proceedings/conext/","http://portal.acm.org/proceedings/conext/archive/"
"Conference Proceedings","CoRoNet: Cognitive Radio Networks","","","","2009 (September 2009)","2011 (September 2011)","http://portal.acm.org/proceedings/coronet/","http://portal.acm.org/proceedings/coronet/archive/"
"Conference Proceedings","CommunicabilityMS: Communicability Design and Evaluation in Cultural and Ecological Multimedia System","","","","2008 (October 2008)","2008 (October 2008)","http://portal.acm.org/proceedings/communicabilityms/","http://portal.acm.org/proceedings/communicabilityms/archive/"
"Conference Proceedings","CompBio: Computational biology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/compbio/","http://portal.acm.org/proceedings/compbio/archive/"
"Conference Proceedings","CompFrame: Component and Framework Technology in High-Performance and Scientific Computing","","","","2007 (October 2007)","2007 (October 2007)","http://portal.acm.org/proceedings/compframe/","http://portal.acm.org/proceedings/compframe/archive/"
"Conference Proceedings","CompSysTech: Computer Systems and Technologies","","","","2000 (June 2000)","2013 (June 2013)","http://portal.acm.org/proceedings/compsystech/","http://portal.acm.org/proceedings/compsystech/archive/"
"Conference Proceedings","Companion: Middleware 08 Conference Companion","","","","2008 (December 2008)","2008 (December 2008)","http://portal.acm.org/proceedings/companion/","http://portal.acm.org/proceedings/companion/archive/"
"Conference Proceedings","Creating: Creating Out of the Machine","","","","2008 (June 2008)","2008 (June 2008)","http://portal.acm.org/proceedings/creating/","http://portal.acm.org/proceedings/creating/archive/"
"Conference Proceedings","DAC: Design Automation Conference","","","","1964 (January 1964)","2013 (May 2013)","http://portal.acm.org/proceedings/dac/","http://portal.acm.org/proceedings/dac/archive/"
"Conference Proceedings","DADC: Data-aware Distributed Computing","","","","2008 (June 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/dadc/","http://portal.acm.org/proceedings/dadc/archive/"
"Conference Proceedings","DAMP: Declarative Aspects of Multicore Programming","","","","2007 (January 2007)","2012 (January 2012)","http://portal.acm.org/proceedings/damp/","http://portal.acm.org/proceedings/damp/archive/"
"Conference Proceedings","DARE: Designing Augmented Reality Environments","","","","2000 (April 2000)","2013 (November 2013)","http://portal.acm.org/proceedings/dare/","http://portal.acm.org/proceedings/dare/archive/"
"Conference Proceedings","DAS: Document Analysis Systems","","","","2010 (June 2010)","2010 (June 2010)","http://portal.acm.org/proceedings/das/","http://portal.acm.org/proceedings/das/archive/"
"Conference Proceedings","DATACOMM: Data Communications and Data Networks","","","","1973 (January 1973)","1973 (January 1973)","http://portal.acm.org/proceedings/datacomm/","http://portal.acm.org/proceedings/datacomm/archive/"
"Conference Proceedings","DATE: Design, Automation and Test in Europe","","","","1998 (February 1998)","2013 (March 2013)","http://portal.acm.org/proceedings/date/","http://portal.acm.org/proceedings/date/archive/"
"Conference Proceedings","DBTest: Testing Database Systems","","","","2008 (June 2008)","2013 (June 2013)","http://portal.acm.org/proceedings/dbtest/","http://portal.acm.org/proceedings/dbtest/archive/"
"Conference Proceedings","DCOSS: Distributed Computing in Sensor Systems","","","","2007 (June 2007)","2010 (June 2010)","http://portal.acm.org/proceedings/dcoss/","http://portal.acm.org/proceedings/dcoss/archive/"
"Conference Proceedings","DD4LCCI: Data Dissemination for Large Scale Complex Critical Infrastructures","","","","2010 (April 2010)","2010 (April 2010)","http://portal.acm.org/proceedings/dd4lcci/","http://portal.acm.org/proceedings/dd4lcci/archive/"
"Conference Proceedings","DDDM: Domain Driven Data Mining","","","","2007 (August 2007)","2007 (August 2007)","http://portal.acm.org/proceedings/dddm/","http://portal.acm.org/proceedings/dddm/archive/"
"Conference Proceedings","DEAS: Design and Evolution of Autonomic Application Software","","","","2005 (May 2005)","2005 (May 2005)","http://portal.acm.org/proceedings/deas/","http://portal.acm.org/proceedings/deas/archive/"
"Conference Proceedings","DEBS: Distributed Event-Based Systems","","","","2003 (June 2003)","2013 (June 2013)","http://portal.acm.org/proceedings/debs/","http://portal.acm.org/proceedings/debs/archive/"
"Conference Proceedings","DEECS: Data Enginering issues in E-commerce and Services","","","","2007 (June 2007)","2007 (June 2007)","http://portal.acm.org/proceedings/deecs/","http://portal.acm.org/proceedings/deecs/archive/"
"Conference Proceedings","DEFECTS: Defects in Large Software Systems","","","","2008 (July 2008)","2009 (June 2009)","http://portal.acm.org/proceedings/defects/","http://portal.acm.org/proceedings/defects/archive/"
"Conference Proceedings","DESIRE: Creativity and Innovation in Design","","","","2010 (August 2010)","2011 (October 2011)","http://portal.acm.org/proceedings/desire/","http://portal.acm.org/proceedings/desire/archive/"
"Conference Proceedings","DESRIST: Design Science Research in Information Systems and Technology","","","","2009 (May 2009)","2009 (May 2009)","http://portal.acm.org/proceedings/desrist/","http://portal.acm.org/proceedings/desrist/archive/"
"Conference Proceedings","DIALM: DIALM","","","","1999 (August 1999)","2010 (September 2010)","http://portal.acm.org/proceedings/dialm/","http://portal.acm.org/proceedings/dialm/archive/"
"Conference Proceedings","DIM: Digital Identity Management","","","","2005 (November 2005)","2013 (November 2013)","http://portal.acm.org/proceedings/dim/","http://portal.acm.org/proceedings/dim/archive/"
"Conference Proceedings","DIMEA: Digital Interactive Media in Entertainment and Arts","","","","2007 (September 2007)","2008 (September 2008)","http://portal.acm.org/proceedings/dimea/","http://portal.acm.org/proceedings/dimea/archive/"
"Conference Proceedings","DIN: Dynamic Interconnection of Networks","","","","2005 (September 2005)","2005 (September 2005)","http://portal.acm.org/proceedings/din/","http://portal.acm.org/proceedings/din/archive/"
"Conference Proceedings","DIS: Designing Interactive Systems","","","","1995 (August 1995)","2012 (June 2012)","http://portal.acm.org/proceedings/dis/","http://portal.acm.org/proceedings/dis/archive/"
"Conference Proceedings","DIWANS: Dependability Issues in Wireless and Ad-Hoc Networks and Sensor Networks","","","","2006 (September 2006)","2006 (September 2006)","http://portal.acm.org/proceedings/diwans/","http://portal.acm.org/proceedings/diwans/archive/"
"Conference Proceedings","DL: Digital Libraries","","","","1996 (April 1996)","2000 (June 2000)","http://portal.acm.org/proceedings/dl/","http://portal.acm.org/proceedings/dl/archive/"
"Conference Proceedings","DLS: Dynamic Languages","","","","2005 (October 2005)","2013 (October 2013)","http://portal.acm.org/proceedings/dls/","http://portal.acm.org/proceedings/dls/archive/"
"Conference Proceedings","DMG: Data Mining for Geoinformatics","","","","2010 (November 2010)","2010 (November 2010)","http://portal.acm.org/proceedings/dmg/","http://portal.acm.org/proceedings/dmg/archive/"
"Conference Proceedings","DMKD: Research Issues in Data Mining and Knowledge Discovery","","","","2003 (June 2003)","2004 (June 2004)","http://portal.acm.org/proceedings/dmkd/","http://portal.acm.org/proceedings/dmkd/archive/"
"Conference Proceedings","DMMT: Data Mining using Matrices and Tensors","","","","2001 (July 2001)","2009 (June 2009)","http://portal.acm.org/proceedings/dmmt/","http://portal.acm.org/proceedings/dmmt/archive/"
"Conference Proceedings","DMSN: Data Management for Sensor Networks","","","","2004 (August 2004)","2010 (September 2010)","http://portal.acm.org/proceedings/dmsn/","http://portal.acm.org/proceedings/dmsn/archive/"
"Conference Proceedings","DMSSP: Data Mining Standards, Services and Platforms","","","","2006 (August 2006)","2006 (August 2006)","http://portal.acm.org/proceedings/dmssp/","http://portal.acm.org/proceedings/dmssp/archive/"
"Conference Proceedings","DO: Distributed Objects","","","","2009 (June 2009)","2009 (June 2009)","http://portal.acm.org/proceedings/do/","http://portal.acm.org/proceedings/do/archive/"
"Conference Proceedings","DOCPROCS: Document Processing Systems","","","","1988 (January 2000)","1988 (January 2000)","http://portal.acm.org/proceedings/docprocs/","http://portal.acm.org/proceedings/docprocs/archive/"
"Conference Proceedings","DOLAP: Data Warehousing and OLAP","","","","1998 (November 1998)","2013 (October 2013)","http://portal.acm.org/proceedings/dolap/","http://portal.acm.org/proceedings/dolap/archive/"
"Conference Proceedings","DOSTA: Domain Specific Approaches to Software Test Automation","","","","2007 (September 2007)","2007 (September 2007)","http://portal.acm.org/proceedings/dosta/","http://portal.acm.org/proceedings/dosta/archive/"
"Conference Proceedings","DPDS: Databases in Parallel and Distributed Systems","","","","1990 (July 1990)","1988 (January 2000)","http://portal.acm.org/proceedin
gitextract_8bywzl85/
├── .eslintrc.js
├── .github/
│ └── workflows/
│ └── node.js.yml
├── .gitignore
├── .npmignore
├── CHANGELOG.md
├── Gruntfile.js
├── LICENSE
├── README.md
├── bower.json
├── docs/
│ ├── CNAME
│ ├── Caddyfile
│ ├── demo.html
│ ├── docs.html
│ ├── faq.html
│ ├── index.html
│ └── resources/
│ ├── css/
│ │ ├── common.css
│ │ ├── demo.css
│ │ ├── home.css
│ │ ├── tomorrow.highlight.css
│ │ └── unsemantic.css
│ ├── files/
│ │ ├── big.csv
│ │ ├── malformed.tsv
│ │ └── normal.csv
│ └── js/
│ ├── common.js
│ ├── demo.js
│ ├── home.js
│ ├── lovers.js
│ └── papaparse.js
├── package.json
├── papaparse.js
├── player/
│ ├── player.css
│ ├── player.html
│ └── player.js
└── tests/
├── .eslintrc.js
├── long-sample.csv
├── node-tests.js
├── sample-header.csv
├── sample.csv
├── test-cases.js
├── test.js
├── tests.html
├── utf-8-bom-sample.csv
└── verylong-sample.csv
SYMBOL INDEX (68 symbols across 8 files)
FILE: docs/resources/js/common.js
function randomInt (line 2) | function randomInt(min, max)
FILE: docs/resources/js/demo.js
function printStats (line 172) | function printStats(msg)
function buildConfig (line 187) | function buildConfig()
function stepFn (line 205) | function stepFn(results, parser)
function completeFn (line 220) | function completeFn(results)
function errorFn (line 242) | function errorFn(err, file)
function enableButton (line 249) | function enableButton()
function now (line 254) | function now()
FILE: docs/resources/js/home.js
function t (line 7) | function t(t){var e=this;this.$element=t;this.element=t[0];this.didResiz...
function t (line 7) | function t(t,e,r){var i,o;if(r.offset==="bottom-in-view"){r.offset=funct...
FILE: docs/resources/js/papaparse.js
function getWorkerBlob (line 49) | function getWorkerBlob() {
function parseNextFile (line 118) | function parseNextFile()
function error (line 167) | function error(name, file, elem, reason)
function fileComplete (line 173) | function fileComplete()
function CsvToJson (line 190) | function CsvToJson(_input, _config)
function JsonToCsv (line 257) | function JsonToCsv(_input, _config)
function ChunkStreamer (line 471) | function ChunkStreamer(config)
function NetworkStreamer (line 600) | function NetworkStreamer(config)
function FileStreamer (line 717) | function FileStreamer(config)
function StringStreamer (line 784) | function StringStreamer(config)
function ReadableStreamStreamer (line 809) | function ReadableStreamStreamer(config)
function DuplexStreamStreamer (line 903) | function DuplexStreamStreamer(_config) {
function ParserHandle (line 1005) | function ParserHandle(_config)
function escapeRegExp (line 1371) | function escapeRegExp(string)
function Parser (line 1377) | function Parser(config)
function newWorker (line 1784) | function newWorker()
function mainThreadReceivedMessage (line 1798) | function mainThreadReceivedMessage(e)
function completeWorker (line 1844) | function completeWorker(workerId, results) {
function notImplemented (line 1852) | function notImplemented() {
function workerThreadReceivedMessage (line 1857) | function workerThreadReceivedMessage(e)
function copy (line 1885) | function copy(obj)
function bindFunction (line 1895) | function bindFunction(f, self)
function isFunction (line 1900) | function isFunction(func)
FILE: papaparse.js
function getWorkerBlob (line 49) | function getWorkerBlob() {
function parseNextFile (line 119) | function parseNextFile()
function error (line 168) | function error(name, file, elem, reason)
function fileComplete (line 174) | function fileComplete()
function stripBom (line 189) | function stripBom(string) {
function CsvToJson (line 196) | function CsvToJson(_input, _config)
function JsonToCsv (line 264) | function JsonToCsv(_input, _config)
function ChunkStreamer (line 488) | function ChunkStreamer(config)
function NetworkStreamer (line 617) | function NetworkStreamer(config)
function FileStreamer (line 734) | function FileStreamer(config)
function StringStreamer (line 801) | function StringStreamer(config)
function ReadableStreamStreamer (line 832) | function ReadableStreamStreamer(config)
function DuplexStreamStreamer (line 926) | function DuplexStreamStreamer(_config) {
function ParserHandle (line 1028) | function ParserHandle(_config)
function escapeRegExp (line 1409) | function escapeRegExp(string)
function Parser (line 1415) | function Parser(config)
function newWorker (line 1822) | function newWorker()
function mainThreadReceivedMessage (line 1836) | function mainThreadReceivedMessage(e)
function completeWorker (line 1882) | function completeWorker(workerId, results) {
function notImplemented (line 1890) | function notImplemented() {
function workerThreadReceivedMessage (line 1895) | function workerThreadReceivedMessage(e)
function copy (line 1923) | function copy(obj)
function bindFunction (line 1933) | function bindFunction(f, self)
function isFunction (line 1937) | function isFunction(func)
FILE: player/player.js
function buildConfig (line 92) | function buildConfig()
function stepFn (line 127) | function stepFn(results, parserHandle)
function chunkFn (line 145) | function chunkFn(results, streamer, file)
function errorFn (line 165) | function errorFn(error, file)
function completeFn (line 170) | function completeFn()
FILE: tests/node-tests.js
function assertLongSampleParsedCorrectly (line 10) | function assertLongSampleParsedCorrectly(parsedCsv) {
FILE: tests/test-cases.js
function generateTest (line 648) | function generateTest(test) {
function generateTest (line 1661) | function generateTest(test) {
function generateTest (line 1789) | function generateTest(test) {
function generateTest (line 2118) | function generateTest(test) {
function generateTest (line 2818) | function generateTest(test) {
Condensed preview — 43 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (754K chars).
[
{
"path": ".eslintrc.js",
"chars": 7017,
"preview": "module.exports = {\n\t\"parserOptions\": {\n\t\t\"ecmaVersion\": 6\n\t},\n\t\"env\": {\n\t\t\"es6\": true,\n\t\t\"browser\": true,\n\t\t\"worker\": tr"
},
{
"path": ".github/workflows/node.js.yml",
"chars": 831,
"preview": "# This workflow will do a clean install of node dependencies, build the source code and run tests across different versi"
},
{
"path": ".gitignore",
"chars": 72,
"preview": "_gitignore/\nbower_components/\nnode_modules/\npackage-lock.json\nyarn.lock\n"
},
{
"path": ".npmignore",
"chars": 50,
"preview": "_gitignore/\nbower_components/\nnode_modules/\ndocs/\n"
},
{
"path": "CHANGELOG.md",
"chars": 1509,
"preview": "# Changelog\n\n## 5.5.3\n\n### Bug Fixes\n\n- Avoid infinite loop with duplicate header counting (#1095)\n\n## 5.5.2\n\n### Bug Fi"
},
{
"path": "Gruntfile.js",
"chars": 462,
"preview": "module.exports = function(grunt) {\n\tgrunt.initConfig({\n\t\tuglify: {\n\t\t\toptions: {\n\t\t\t\tcompress: {\n\t\t\t\t\tglobal_defs: {\n\t\t\t"
},
{
"path": "LICENSE",
"chars": 1079,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2015 Matthew Holt\n\nPermission is hereby granted, free of charge, to any person obta"
},
{
"path": "README.md",
"chars": 3683,
"preview": "Parse CSV with JavaScript\n========================================\n\nPapa Parse is the fastest in-browser CSV (or delimit"
},
{
"path": "bower.json",
"chars": 653,
"preview": "{\n\t\"name\": \"papaparse\",\n\t\"main\": \"papaparse.js\",\n\t\"homepage\": \"http://papaparse.com\",\n\t\"authors\": [\n\t\t\"Matthew Holt\"\n\t],"
},
{
"path": "docs/CNAME",
"chars": 17,
"preview": "www.papaparse.com"
},
{
"path": "docs/Caddyfile",
"chars": 19,
"preview": "localhost\next .html"
},
{
"path": "docs/demo.html",
"chars": 8042,
"preview": "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>Demo - Papa Parse</title>\n\t\t<meta charset=\"utf-8\">\n\t\t<meta name=\"viewport\" conte"
},
{
"path": "docs/docs.html",
"chars": 32603,
"preview": "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>Documentation - Papa Parse</title>\n\t\t<meta charset=\"utf-8\">\n\t\t<meta name=\"viewpo"
},
{
"path": "docs/faq.html",
"chars": 15628,
"preview": "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>FAQ - Papa Parse</title>\n\t\t<meta charset=\"utf-8\">\n\t\t<meta name=\"viewport\" conten"
},
{
"path": "docs/index.html",
"chars": 18369,
"preview": "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>Papa Parse - Powerful CSV Parser for JavaScript</title>\n\t\t<meta charset=\"utf-8\">"
},
{
"path": "docs/resources/css/common.css",
"chars": 7025,
"preview": "/* Eric Meyer's Reset CSS v2.0 */\nhtml,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acro"
},
{
"path": "docs/resources/css/demo.css",
"chars": 2012,
"preview": ".tabs,\n.tab {\n\tborder-color: #B4E3FF;\n\tborder-style: solid;\n}\n\n.tabs {\n\tborder-bottom-width: 1px;\n\tpadding: 0 5%;\n\tmargi"
},
{
"path": "docs/resources/css/home.css",
"chars": 3352,
"preview": "#top {\n\tpadding: 6% 0 8%;\n\tcolor: #1D80AB;\n\tbackground: #FFF;\n\tposition: relative;\n\tz-index: 0;\n\n\t/*\n\t\tFor better perfor"
},
{
"path": "docs/resources/css/tomorrow.highlight.css",
"chars": 1475,
"preview": "/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */\n\n/* Tomorrow Comment */\n.hljs-comment {\n color:"
},
{
"path": "docs/resources/css/unsemantic.css",
"chars": 12902,
"preview": "/* ============================================ */\n/* This file has a mobile-to-desktop breakpoint */\n/* ==============="
},
{
"path": "docs/resources/files/malformed.tsv",
"chars": 367,
"preview": "site\tlon\tlat\tmax\tmin\tprecip\tsnow\tsnowdepth\n1V4\t-72.02\t44.42\t13\t-5\t0.01\t-99\t-99\nBTV\t-73.15\t44.47\t14\t-9\t0.00\t0.0\t7\t52\nMVL\t"
},
{
"path": "docs/resources/files/normal.csv",
"chars": 254743,
"preview": "\"CONTENT TYPE\",\"TITLE\",\"ABBR\",\"ISSN\",\"e-ISSN\",\"PUBLICATION RANGE: START\",\"PUBLICATION RANGE: LATEST PUBLISHED\",\"SHORTCUT"
},
{
"path": "docs/resources/js/common.js",
"chars": 585,
"preview": "// Returns a random number between min and max (inclusive)\nfunction randomInt(min, max)\n{\n\treturn Math.floor(Math.random"
},
{
"path": "docs/resources/js/demo.js",
"chars": 5346,
"preview": "var inputType = \"string\";\nvar stepped = 0, rowCount = 0, errorCount = 0, firstError;\nvar start, end;\nvar firstRun = true"
},
{
"path": "docs/resources/js/home.js",
"chars": 10307,
"preview": "/*!\njQuery Waypoints - v2.0.5\nCopyright (c) 2011-2014 Caleb Troughton\nLicensed under the MIT license.\nhttps://github.com"
},
{
"path": "docs/resources/js/lovers.js",
"chars": 5600,
"preview": "/**\n\tINSTRUCTIONS\n\n\tIf you use Papa Parse, add your site/project/company to the list\n\tbelow. Here is a description of th"
},
{
"path": "docs/resources/js/papaparse.js",
"chars": 50646,
"preview": "/* @license\nPapa Parse\nv5.0.0\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n\n(function(root, factory)\n{\n\t/* globals"
},
{
"path": "package.json",
"chars": 1417,
"preview": "{\n\t\"name\": \"papaparse\",\n\t\"version\": \"5.5.3\",\n\t\"description\": \"Fast and powerful CSV parser for the browser that supports"
},
{
"path": "papaparse.js",
"chars": 52429,
"preview": "/* @license\nPapa Parse\nv5.5.3\nhttps://github.com/mholt/PapaParse\nLicense: MIT\n*/\n\n(function(root, factory)\n{\n\t/* globals"
},
{
"path": "player/player.css",
"chars": 12326,
"preview": "body {\n\tfont-family: 'Source Sans Pro', sans-serif;\n}\n\nh1 {\n\ttext-align: center;\n}\n\ntextarea,\nbutton {\n\tfont-size: 14px;"
},
{
"path": "player/player.html",
"chars": 2967,
"preview": "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<title>Papa Parse Player</title>\n\t\t<meta charset=\"utf-8\">\n\t\t<link rel=\"stylesheet\" href"
},
{
"path": "player/player.js",
"chars": 4050,
"preview": "var stepped = 0, chunks = 0, rows = 0;\nvar start, end;\nvar parser;\nvar pauseChecked = false;\nvar printStepChecked = fals"
},
{
"path": "tests/.eslintrc.js",
"chars": 144,
"preview": "module.exports = {\n\t\"extends\": [\"../.eslintrc.js\"],\n\t\"parserOptions\": {\n\t\t\"ecmaVersion\": 8\n\t},\n\t\"env\": {\n\t\t\"mocha\": true"
},
{
"path": "tests/long-sample.csv",
"chars": 1209,
"preview": "Grant,Dyer,Donec.elementum@orciluctuset.example,2013-11-23T02:30:31-08:00,2014-05-31T01:06:56-07:00,Magna Ut Associates,"
},
{
"path": "tests/node-tests.js",
"chars": 8274,
"preview": "\"use strict\";\n\nvar Papa = require(\"../papaparse.js\");\n\nvar fs = require('fs');\nvar assert = require('assert');\nvar longS"
},
{
"path": "tests/sample-header.csv",
"chars": 52,
"preview": "title,name\ntest title 01,test name 01\n,test name 02\n"
},
{
"path": "tests/sample.csv",
"chars": 11,
"preview": "A,B,C\nX,Y,Z"
},
{
"path": "tests/test-cases.js",
"chars": 76887,
"preview": "var chai;\nvar Papa;\nif (typeof module !== 'undefined' && module.exports) {\n\tchai = require('chai');\n\tPapa = require('../"
},
{
"path": "tests/test.js",
"chars": 697,
"preview": "var connect = require('connect');\nvar serveStatic = require('serve-static');\nvar open = require('open');\nvar path = requ"
},
{
"path": "tests/tests.html",
"chars": 510,
"preview": "<html>\n\t<head>\n\t\t<title>Papa Parse Tests</title>\n\t\t<meta charset=\"utf-8\">\n\t\t<script src=\"../node_modules/mocha/mocha.js\""
},
{
"path": "tests/utf-8-bom-sample.csv",
"chars": 13,
"preview": "A,B,C\nX,Y,Z\n"
},
{
"path": "tests/verylong-sample.csv",
"chars": 70940,
"preview": "placeholder,meaning of life,TLD\nLorem ipsum dolor sit,42,ABC\nEtiam a dolor vitae est vestibulum,84,DEF\n\"Lorem ipsum dolo"
}
]
// ... and 1 more files (download for full content)
About this extraction
This page contains the full source code of the mholt/PapaParse GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 43 files (48.5 MB), approximately 199.5k tokens, and a symbol index with 68 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.