1
1
mirror of https://github.com/aelve/guide.git synced 2024-11-22 03:12:58 +03:00
A workspace for research teams
Go to file
2018-10-06 23:32:45 +08:00
favicon Fix pragma style 2017-07-23 02:54:35 +03:00
front Merge branch 'vue' of https://github.com/aelve/guide into vue 2018-10-03 00:07:36 +03:00
guidejs guidejs buildable on Windows 2018-09-04 23:18:38 +02:00
scripts Add npm install to buildjs.sh, describe changing in README 2017-03-18 15:39:51 -05:00
src Add custom monad for servant handlers 2018-10-06 23:32:45 +08:00
static Update footer (#217) 2018-09-22 23:05:32 +03:00
templates Migrate to GHC 8.4 2018-09-02 00:03:48 +02:00
tests Update footer (#217) 2018-09-22 23:05:32 +03:00
.ghci Add a .ghci file 2016-07-30 01:11:56 +03:00
.gitignore header v 0.0.1 added 2018-09-13 12:51:20 +05:00
.gitlab-ci.yml Force GHC to install on every build if necessary. 2017-08-17 13:28:47 -05:00
.hlint.yaml Add a HLint settings file 2017-08-17 22:39:31 +03:00
.stylish-haskell.yaml Apply stylish-haskell and format imports section (#222) 2018-10-03 17:56:13 +08:00
.travis.yml [travis] Break into two phases 2018-09-02 19:45:34 +02:00
b Add --nix option to run build script 2017-06-29 20:17:36 +02:00
CHANGELOG.md Create the project 2016-02-02 12:36:07 +03:00
guide.cabal Add custom monad for servant handlers 2018-10-06 23:32:45 +08:00
INSTALL.md Mention that NPM has to be installed 2018-09-23 23:57:44 +02:00
LICENSE Create the project 2016-02-02 12:36:07 +03:00
official.sh Add a script for downloading the database 2017-06-09 13:57:05 +02:00
README.md Update the readme 2018-09-24 00:03:28 +02:00
Setup.hs Add no-js option for building 2017-08-19 18:13:24 +03:00
shell.nix Add custom shell.nix file 2017-10-09 09:30:41 +02:00
stack.yaml Add custom monad for servant handlers 2018-10-06 23:32:45 +08:00

Aelve Guide

Build status BSD3 license

The beta version is running at guide.aelve.com. The most complete section yet is the one about lenses.

Installation instructions and the explanation of config variables (in config.json) are here: INSTALL.md. Don't be afraid to install it locally it's very easy! You don't need to set up any databases or anything like that, and you can get a full copy of the data from the site by simply cloning it from Github.

Contributing

If you want to contribute but don't know where to start, grep the source for [very-easy] and [easy], or look at these issues:

  • “your first pull request” really easy things, with detailed “how to fix it” instructions
  • “your second pull request” less easy things, which assume that you already know where stuff happens in the code
  • “not-fleshed-out idea” discussion issues (“should we have users? what better ways are there to present pros and cons?”) which you can help with even if you don't know Haskell
  • “design” issues about design (which I'm not good at, and so help is wanted)

Testing

You need chromedriver and selenium-server-standalone installed (those are the package names on Arch Linux). Then you can do

$ java -jar /usr/share/selenium-server/selenium-server-standalone.jar
$ stack test

Overview of the code

Folder structure

  • lib actual code (as a library)
  • src just a dumb Main.hs file to compile an executable
  • tests tests
  • static icons, CSS, Markdown pages, HTML pages, and some JS libraries
  • templates HTML templates for pages and elements of pages
  • scripts some scripts used by automatic testing
  • favicon code used to generate a favicon
  • guidejs client side JavaScript
  • front the new frontend, written in Vue.js

Frontend

To lint Vue.js components, you need to do:

npm install --global eslint eslint-plugin-vue@next
cd static/components
eslint .

Maybe there's a better way than npm install --global, I don't know. I'm not a Node.js guy.

Notes

When you see something like

-- See Note [acid-state]

it means that there's an extensive comment somewhere else in the code, which you can find by grepping for Note [acid-state]. This convention was stolen from GHC. If you know some plugin for Emacs that would help with jumping to comments (even if those comments would have to be formatted differently), let me know.