Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/g0v/hacktabl

Comparison table generator, using Ethercalc and Google Doc as the content backend.
https://github.com/g0v/hacktabl

Last synced: about 2 months ago
JSON representation

Comparison table generator, using Ethercalc and Google Doc as the content backend.

Awesome Lists containing this project

README

        

hacktabl.org
================

[![Build Status](https://travis-ci.org/g0v/hacktabl.svg?branch=dev)](https://travis-ci.org/g0v/hacktabl)

A site to publish cooperative comparison table in Google Doc, using [Ethercalc](http://ethercalc.org) to host the table configuration.

Demo
----

### Basic usage

Example: [Doraemon compare table](http://hacktabl.org/doratable) or [FEPZ compare table](http://hacktabl.org/fepz).

* Multiple perspectives (Rows)
* Multiple positions (Columns)
* Showing references for each argument.
* Tooltips over words that needs further explanation.
* Use public Google Doc as the data source so that everyone can edit.
* Label with `[some-label-text]` at the beginning of each argument.

### Table view

Example: [FEPZ compare table for agriculture](http://hacktabl.org/fepz-agriculture)

* Succinct summaries for each table cell so that the table gives a bigger picture for the issue.
* Clicking the table row toggles further arguments for that specific pespective.

Setup a New Hacktabl
--------------------

To publish a comparison table on hacktabl.org, you need:

1. **A Google doc** that has a table in its content, and is shared with "anyone with link". Note that you may have to *allow anyone to comment* in order to make use of the google doc comments.
2. **An public webpage** that explains the table to new visitors. The page will show up in a modal dialog when an user first visits your table. A published google doc or print URL of Hackpad is sufficient.
3. Come up with a **table ID**, which makes up the URL of your table.

Visit `http://ethercalc.org/`, you will see an empty spreadsheet.
You may copy-paste the following configuration (does not include table header!) to the spreadsheet:

Config | Value | Comments
---- | ---- | ----
TITLE | | (Title of the table)
DOC_ID | | (The URL fragment between `https://docs.google.com/document/d/` and `/edit` of the google doc that contains a table)
INFO_URL | | (URL to a introduction webpage)

Fill the 2nd column with the information of your table, then you are good to go. Visit `http://hacktabl.org/` for your new, collaborative comparison table!

Configuration Reference
-----------------
To see the settings of an existing table, say `http://hacktabl.org/`, just visit `http://ethercalc.org/`. To create a new hacktabl, simply create a new spreadsheet with a desired table ID in EtherCalc.

### Required Settings
* `TITLE`: The title that shows in the title bar and at the top of a table.
* `DOC_ID`: The ID of the Google Document that contains a table.
* `INFO_URL`: An url to a web page that provides further information for the readers. It will show up in a popup dialog when the user enters a hacktabl for the first time.

### Optional Settings

* `TYPE`: Whether or not to represent each cell with a short summary so that the entire table looks more succinct. Can be either empty or `TABLE`. For a running example, please refer to [FEPZ comparison table for education](http://hacktabl.org/fepz-edu) and [its settings on EtherCalc](http://ethercalc.org/fepz-edu).
* `LABEL_SUMMARY`: Use popular labels as summary for each cell. The value can be an integer `n`, which tells hacktabl to take top `n` labels from the cell and make up a summary for the cell. Currently only used for `TYPE=TABLE` tables. Example: [Political promises in 2016 Presidential election in Taiwan](http://hacktabl.org/president2016-table).
* `HIGHLIGHT`: Whether or not to enable bold, italic and underlines. Can be either empty or `TRUE`. For a running example, please refer to [Copyright 2014](http://hacktabl.org/copyright2014) and [its settings on EtherCalc](http://ethercalc.org/copyright2014).
* `EMPHASIZE_NO_REF`: Whether or not to emphasize the arguments with no references. Can be either empty or `TRUE`. For a running example, please refer to [Taipei Mayoral Election](http://hacktabl.org/taipei-mayoral-election-2014) and [its settings on EtherCalc](http://ethercalc.org/taipei-mayoral-election-2014).
Also, for each key-value pairs defined in the EtherCalc, a `` element will be inserted into . Properties like `og:image` can be set with this technique.

Development
-----------

After cloning the repository, please do the following in the repository folder:

```
npm install
```

Bower components are included in repository so there's no need to do `bower install`.

To start development server, please do:

```
npm start
```

And open up `http://localhost:5000` to see the working website.

When developing parsers, please run unit test using:

```
npm run test:watch
```

Deploy to Github Pages
----------------------

Open up `Makefile` and make necessary changes to variable `GIT` and `DEPLOY_BRANCH`, then execute `make deploy`.