This repo contains the University of Alberta Language Technology Lab's (ALTLab) instance of Korp, a tool for searching and visualizing natural language corpus data. Korp is developed by Språkbanken at the University of Gothenburg, Sweden.
View the frontend documentation for Korp here.
- Install yarn
- Korp must be developed with
yarn
rather thannpm
.
- Building Korp
- install all dependencies:
yarn
- build a dev version:
yarn build
- build a dist version: set
NODE_ENV=production
, thenyarn build
- Running Korp
- run dev server:
yarn start:dev
oryarn dev
- run dist server:
yarn start:dist
oryarn start
- Running tests
- run tests:
yarn test
oryarn test:karma
oryarn test:e2e
- (tests currently depend on Språkbanken's setup; they will not pass locally)
- Deployment
dev
: commits todev
are automatically deployed tokorp.altlab.dev
(see deploy-dev.yml)main
: commits tomain
are automatically deployed tokorp.altlab.app
(see deploy-prod.yml)
Korp uses window.settings
to share needed configuration to config.js
and modes/common.js
.
config.js
and modes/common.js
are included in webpack's dependency graph. Therefore it works to use require
for anything needed, but only things that are in the configured location for settings.
mode
-files are only loaded at runtime an any dependencies must be required in modes/common.js
and then exported as a module as shown in the sample file app/modes/common.js
.
Korp uses webpack to build Korp and webpack-dev-server to run a local server. To include new code or resources, require them where needed:
nd = require(`new-dependency`)
nd.aFunction()
or
imgPath = require(`img/image.png`)
myTemplate = `<img src='${imgPath}'>`
Most dependencies are only specified in app/index.js
and where needed added to the window
object.
About the current loaders in in webpack.config.js
:
pug
andhtml
files: allsrc
-attributes in<img>
tags and allhref
s in<link>
tags will be loaded by webpack and replaced in the markup. Uses file loader so that requiring apug
orhtml
file will give the path to the file back.js
files are added to the bundle.- All images and fonts are added to the bundle using file loader and gives back a file path.
css
andscss
are added to the bundle.url
s will be loaded and replaced by webpack.
In addition to this, some specific files will simply be copied as is, for example Korp mode-files.