diff --git a/.babelrc b/.babelrc
deleted file mode 100644
index 86c445f..0000000
--- a/.babelrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "presets": ["es2015", "react"]
-}
diff --git a/.gitignore b/.gitignore
index d28fd52..d7e8c53 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
-npm-debug.log
+*.log
+.DS_Store
+.next
node_modules
public
-.DS_Store
-
diff --git a/components/Footer.jsx b/components/Footer.jsx
new file mode 100644
index 0000000..908e640
--- /dev/null
+++ b/components/Footer.jsx
@@ -0,0 +1,44 @@
+export function Footer() {
+ return (
+
+ );
+}
diff --git a/gulpfile.babel.js b/gulpfile.babel.js
deleted file mode 100644
index 1d41d15..0000000
--- a/gulpfile.babel.js
+++ /dev/null
@@ -1,193 +0,0 @@
-import browserify from 'browserify';
-import browserSync from 'browser-sync';
-import duration from 'gulp-duration';
-import es from 'event-stream';
-import exorcist from 'exorcist';
-import gulp from 'gulp';
-import gutil from 'gulp-util';
-import inject from 'gulp-inject';
-import jade from 'gulp-jade';
-import less from 'gulp-less';
-import notifier from 'node-notifier';
-import path from 'path';
-import prefix from 'gulp-autoprefixer';
-import rev from 'gulp-rev';
-import source from 'vinyl-source-stream';
-import sourcemaps from 'gulp-sourcemaps';
-import streamify from 'gulp-streamify';
-import stylus from 'gulp-stylus';
-import transform from 'vinyl-transform';
-import uglify from 'gulp-uglify';
-import watch from 'gulp-watch';
-import watchify from 'watchify';
-
-/*eslint "no-process-env":0 */
-const production = process.env.NODE_ENV === 'production';
-
-const config = {
- source: './src',
- destination: './public',
- scripts: {
- source: './src/js/main.js',
- destination: './public/js/',
- extensions: ['.jsx'],
- filename: 'bundle.js'
- },
- templates: {
- source: './src/*.jade',
- watch: './src/*.jade',
- destination: './public/',
- revision: './public/**/*.html'
- },
- styles: {
- source: './src/styles/style.styl',
- watch: './src/styles/**/*.styl',
- icons: './src/styles/icons.less',
- destination: './public/css/'
- },
- assets: {
- source: ['./src/assets/**/*.*', './node_modules/font-awesome/fonts*/*.*'],
- watch: './src/assets/**/*.*',
- destination: './public/'
- },
- inject: {
- resources: ['./public/**/*.css', './public/**/*.js']
- }
-};
-
-const browserifyConfig = {
- entries: [config.scripts.source],
- extensions: config.scripts.extensions,
- debug: !production,
- cache: {},
- packageCache: {}
-};
-
-function handleError(err) {
- gutil.log(err.message);
- gutil.beep();
- notifier.notify({
- title: 'Compile Error',
- message: err.message
- });
- return this.emit('end');
-}
-
-gulp.task('scripts', () => {
- let pipeline = browserify(browserifyConfig)
- .bundle()
- .on('error', handleError)
- .pipe(source(config.scripts.filename));
-
- if(production) {
- pipeline = pipeline
- .pipe(streamify(uglify()))
- .pipe(streamify(rev()));
- } else {
- pipeline = pipeline.pipe(transform(() => {
- return exorcist(path.join(config.scripts.destination, config.scripts.filename) + '.map');
- }));
- }
-
- return pipeline.pipe(gulp.dest(config.scripts.destination));
-});
-
-gulp.task('templates', ['styles', 'scripts'], () => {
- const resources = gulp.src(config.inject.resources, {read: false});
-
- const pipeline = gulp.src(config.templates.source)
- .pipe(jade({
- pretty: !production
- }))
- .on('error', handleError)
- .pipe(inject(resources, {ignorePath: 'public', removeTags: true}))
- .pipe(gulp.dest(config.templates.destination));
-
- if(production) {
- return pipeline;
- }
-
- return pipeline.pipe(browserSync.reload({
- stream: true
- }));
-});
-
-gulp.task('styles', () => {
- let pipeline = gulp.src(config.styles.source);
-
- if(!production) {
- pipeline = pipeline.pipe(sourcemaps.init());
- }
-
- const icons = gulp.src(config.styles.icons)
- .pipe(less());
-
- pipeline = es.merge(icons, pipeline.pipe(stylus({
- 'include css': true,
- paths: ['node_modules', path.join(__dirname, config.source)],
- compress: production
- })))
- .on('error', handleError)
- .pipe(prefix('last 2 versions', 'Chrome 34', 'Firefox 28', 'iOS 7'));
-
- if(production) {
- pipeline = pipeline.pipe(rev());
- } else {
- pipeline = pipeline.pipe(sourcemaps.write('.'));
- }
-
- pipeline = pipeline.pipe(gulp.dest(config.styles.destination));
-
- if(production) {
- return pipeline;
- }
-
- return pipeline.pipe(browserSync.stream({
- match: '**/*.css'
- }));
-});
-
-gulp.task('assets', () => {
- return gulp.src(config.assets.source)
- .pipe(gulp.dest(config.assets.destination));
-});
-
-gulp.task('server', () => {
- return browserSync({
- open: false,
- port: 9001,
- notify: false,
- ghostMode: false,
- server: {
- baseDir: config.destination
- }
- });
-});
-
-gulp.task('watch', () => {
-
- ['templates', 'styles', 'assets'].forEach((watched) => {
- watch(config[watched].watch, () => {
- gulp.start(watched);
- });
- });
-
- const bundle = watchify(browserify(browserifyConfig));
-
- bundle.on('update', () => {
- const build = bundle.bundle()
- .on('error', handleError)
- .pipe(source(config.scripts.filename));
-
- build
- .pipe(transform(() => {
- return exorcist(config.scripts.destination + config.scripts.filename + '.map');
- }))
- .pipe(gulp.dest(config.scripts.destination))
- .pipe(duration('Rebundling browserify bundle'))
- .pipe(browserSync.reload({stream: true}));
- }).emit('update');
-});
-
-gulp.task('build', ['styles', 'assets', 'scripts', 'templates']);
-gulp.task('default', ['styles', 'assets', 'templates', 'watch', 'server']);
diff --git a/src/js/api.js b/legacy-js/api.js
similarity index 100%
rename from src/js/api.js
rename to legacy-js/api.js
diff --git a/src/js/components/email.js b/legacy-js/components/email.js
similarity index 100%
rename from src/js/components/email.js
rename to legacy-js/components/email.js
diff --git a/src/js/components/fader.js b/legacy-js/components/fader.js
similarity index 100%
rename from src/js/components/fader.js
rename to legacy-js/components/fader.js
diff --git a/src/js/components/feed.js b/legacy-js/components/feed.js
similarity index 100%
rename from src/js/components/feed.js
rename to legacy-js/components/feed.js
diff --git a/src/js/components/inviteForm.js b/legacy-js/components/inviteForm.js
similarity index 100%
rename from src/js/components/inviteForm.js
rename to legacy-js/components/inviteForm.js
diff --git a/src/js/components/loader.js b/legacy-js/components/loader.js
similarity index 100%
rename from src/js/components/loader.js
rename to legacy-js/components/loader.js
diff --git a/src/js/components/members.js b/legacy-js/components/members.js
similarity index 100%
rename from src/js/components/members.js
rename to legacy-js/components/members.js
diff --git a/src/js/components/membershipForm.js b/legacy-js/components/membershipForm.js
similarity index 100%
rename from src/js/components/membershipForm.js
rename to legacy-js/components/membershipForm.js
diff --git a/src/js/components/membershipInfoForm.js b/legacy-js/components/membershipInfoForm.js
similarity index 100%
rename from src/js/components/membershipInfoForm.js
rename to legacy-js/components/membershipInfoForm.js
diff --git a/src/config.js b/legacy-js/config.js
similarity index 100%
rename from src/config.js
rename to legacy-js/config.js
diff --git a/src/js/ga.js b/legacy-js/ga.js
similarity index 100%
rename from src/js/ga.js
rename to legacy-js/ga.js
diff --git a/src/js/main.js b/legacy-js/main.js
similarity index 100%
rename from src/js/main.js
rename to legacy-js/main.js
diff --git a/src/js/util.js b/legacy-js/util.js
similarity index 100%
rename from src/js/util.js
rename to legacy-js/util.js
diff --git a/next.config.js b/next.config.js
new file mode 100644
index 0000000..ca2a437
--- /dev/null
+++ b/next.config.js
@@ -0,0 +1,2 @@
+const withStylus = require('@zeit/next-stylus');
+module.exports = withStylus({});
diff --git a/package.json b/package.json
index 3f0ec66..f31284c 100644
--- a/package.json
+++ b/package.json
@@ -10,70 +10,26 @@
"build": "rm -rf public && gulp build",
"dev": "SERVER=http://localhost:9000/ ENV=development npm start",
"prod": "ENV=production npm start",
- "lint": "eslint src",
- "test": "mocha src/**/__tests__/*.js --compilers js:babel-core/register --require test/test-helper"
+ "lint": "eslint src"
},
- "keywords": [
- "gulp",
- "template"
- ],
"dependencies": {
+ "@zeit/next-css": "^1.0.1",
+ "@zeit/next-stylus": "^1.0.1",
"axios": "^0.4.2",
"classnames": "^2.2.1",
"font-awesome": "^4.4.0",
- "http-server": "^0.11.1",
"lodash": "^3.9.1",
+ "next": "^9.0.6",
"parse-github-event": "^0.2.0",
"prop-types": "^15.5.10",
- "react": "^0.14.3",
- "react-dom": "^0.14.3",
+ "react": "^16.9.0",
+ "react-dom": "^16.9.0",
"react-stripe-checkout": "^2.4.0",
+ "stylus": "^0.54.7",
"timeago": "^0.2.0",
"twitter-text": "^1.11.0"
},
"devDependencies": {
- "babel": "^6.1.18",
- "babel-core": "^6.2.1",
- "babel-eslint": "^4.1.3",
- "babel-preset-es2015": "^6.1.18",
- "babel-preset-react": "^6.1.18",
- "babelify": "^7.2.0",
- "browser-sync": "^2.9.4",
- "browserify": "^10.2.1",
- "chai": "^3.0.0",
- "envify": "^3.4.0",
- "eslint": "^1.5.1",
- "eslint-config-airbnb": "0.0.9",
- "eslint-plugin-react": "^3.4.2",
- "event-stream": "4.0.1",
- "exorcist": "^0.4.0",
- "gulp": "3.9.0",
- "gulp-autoprefixer": "1.0.1",
- "gulp-duration": "0.0.0",
- "gulp-inject": "^3.0.0",
- "gulp-jade": "^1.1.0",
- "gulp-less": "^3.0.5",
- "gulp-replace": "^0.5.3",
- "gulp-rev": "^4.0.0",
- "gulp-sourcemaps": "^1.3.0",
- "gulp-streamify": "0.0.5",
- "gulp-stylus": "^2.6.0",
- "gulp-uglify": "~1.0.1",
- "gulp-util": "~3.0.1",
- "gulp-watch": "^4.3.4",
- "jsdom": "^5.6.0",
- "mocha": "^2.2.5",
- "node-notifier": "^4.2.1",
- "rimraf": "^2.3.4",
- "surge": "^0.20.1",
- "vinyl-source-stream": "~1.0.0",
- "vinyl-transform": "^1.0.0",
- "watchify": "^3.2.1"
- },
- "browserify": {
- "transform": [
- "babelify",
- "envify"
- ]
+ "prettier": "^1.18.2"
}
}
diff --git a/pages/_document.jsx b/pages/_document.jsx
new file mode 100644
index 0000000..d334cee
--- /dev/null
+++ b/pages/_document.jsx
@@ -0,0 +1,63 @@
+import Document, { Html, Head, Main, NextScript } from "next/document";
+import { Footer } from "../components/Footer";
+
+class MyDocument extends Document {
+ static async getInitialProps(ctx) {
+ const initialProps = await Document.getInitialProps(ctx);
+ return { ...initialProps };
+ }
+
+ render() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default MyDocument;
diff --git a/pages/index.jsx b/pages/index.jsx
new file mode 100644
index 0000000..dcc5305
--- /dev/null
+++ b/pages/index.jsx
@@ -0,0 +1,176 @@
+import "../styles/style.styl";
+import Head from "next/head";
+
+const Hero = () => (
+
+
+
+
+
+
+
+
+ Yhteisö kaikille ohjelmoinnista ja ohjelmistoalasta kiinnostuneille
+ harrastajille ja ammattilaisille.
+
+
+
+
+);
+
+const IndexContent = () => (
+ <>
+
+
+
+
+ Tule mukaan{" "}
+
+ Slack
+
+ -yhteisöömme
+
+
+
+ Ennen liittymistä yhteisöömme varmista, että olet lukenut yhteisön{" "}
+
+ käyttäytymissäännöt
+
+ .
+
+
+
+
+
+
+
+
Yhteisö ohjelmoinnista kiinnostuneille
+
+ Koodiklinikka on Suomen suurin ohjelmistoalan yhteisö, joka
+ kokoaa työntekijät, harrastajat ja vasta-alkajat yhteen.{"\n"}
+ Tarkoituksenamme on yhdistää ja kasvattaa suomalaista
+ ohjelmointiyhteisöä, sekä tarjota apua ja uusia kontakteja
+ ohjelmoinnista innostuneille nuorille.
+
+
+ Mukaan liittyminen on ilmaista ja helppoa. Jätä
+ sähköpostiosoitteesi ylläolevaan kenttään ja lähetämme sinulle
+ kutsun Slack-yhteisöömme.
+
+
+
+
+
+
+
+
+
+
+
+
Avoin lähdekoodi
+
+ Suosimme avointa lähdekoodia ja kaikki käyttämämme koodi on
+ vapaasti saatavilla ja hyödynnettävissä{" "}
+
+ Github-organisaatiomme sivulta
+
+ . Organisaation jäseneksi otamme kaikki Slack-yhteisömme
+ jäsenet. Koodiklinikan projekteihin voi osallistua kuka tahansa
+ ja muutosideat ovat aina lämpimästi tervetulleita.
+
+
+
+
+
+
+
Potilaiden projekteja
+
+
+
+
RE:DOM
+
+ Tiny (2 KB) turboboosted JavaScript library for creating user
+ interfaces. Develop web apps with 100 % JavaScript and web
+ standards.
+
+
+
+
+
+
+
Code::Stats
+
+ Code::Stats is a free stats tracking service for programmers
+
+
+
+
+
+
+
Reactabular
+
A framework for building the React table you need
+
+
+
+
+
+
Avain.app
+
Secure one-time password manager (PWA + Web Crypto)
+
+
+
+
+
+
+ >
+);
+
+const Index = () => (
+
+
+ Koodiklinikka
+
+
+
+
+);
+
+export default Index;
diff --git a/src/index.jade b/src/index.jade
deleted file mode 100644
index 5346f36..0000000
--- a/src/index.jade
+++ /dev/null
@@ -1,98 +0,0 @@
-extends templates/head
-
-block title
- | Koodiklinikka
-
-block header_content
- video(autoplay, loop, poster='images/poster.jpg', class='header__video-bg')
- source(src='videos/jumbo.mp4', type='video/mp4')
- .header__container
- .header__nav
- a(href='/')
- img(src="images/logo-new.svg", alt="Etusivu")
- .header__headline
- h1.header__title Yhteisö kaikille ohjelmoinnista ja ohjelmistoalasta kiinnostuneille harrastajille ja ammattilaisille.
-
-block content
- .content.with-feed
- section
- .row
- h3 Tule mukaan Slack -yhteisöömme
- #invite-form.form
- p.code-of-conduct Ennen liittymistä yhteisöömme varmista, että olet lukenut yhteisön käyttäytymissäännöt .
- section
- .row
- .bread
- .column.column1-2
- h3 Yhteisö ohjelmoinnista kiinnostuneille
- p.
- Koodiklinikka on Suomen suurin ohjelmistoalan yhteisö, joka kokoaa työntekijät, harrastajat ja vasta-alkajat yhteen.
- Tarkoituksenamme on yhdistää ja kasvattaa suomalaista ohjelmointiyhteisöä, sekä tarjota apua ja uusia kontakteja ohjelmoinnista innostuneille nuorille.
- p.
- Mukaan liittyminen on ilmaista ja helppoa. Jätä sähköpostiosoitteesi ylläolevaan kenttään ja lähetämme sinulle kutsun Slack-yhteisöömme.
- .column.column1-2
- a(href='images/slack.png', target='_blank')
- img(src='images/slack.png')
-
-
- .row
- .bread
- .column.column2-5
- img(src='images/octocat.png')
-
- .column.column3-5
- h3 Avoin lähdekoodi
- p
- |Suosimme avointa lähdekoodia ja kaikki käyttämämme koodi on vapaasti saatavilla ja hyödynnettävissä Github-organisaatiomme sivulta .
- |Organisaation jäseneksi otamme kaikki Slack-yhteisömme jäsenet. Koodiklinikan projekteihin voi osallistua kuka tahansa ja muutosideat ovat aina lämpimästi tervetulleita.
-
- #members
-
- .row
- h2 Potilaiden projekteja
- .bread
- .column.column2-5
- a(href='https://redom.js.org', target='_blank')
- img(src='images/redom.svg')
-
- .column.column3-5
- h4 RE:DOM
-
- p.
- Tiny (2 KB) turboboosted JavaScript library for creating user interfaces.
- Develop web apps with 100 % JavaScript and web standards.
-
- .bread
- .column.column2-5
- a(href='https://codestats.net/', target='_blank')
- img.project-image__codestats(src='images/codestats.png')
-
- .column.column3-5
- h4 Code::Stats
-
- p.
- Code::Stats is a free stats tracking service for programmers
-
- .bread
- .column.column2-5
- a(href='https://reactabular.js.org/', target='_blank')
- img.project-image__codestats(src='images/reactabular.png')
-
- .column.column3-5
- h4 Reactabular
-
- p.
- A framework for building the React table you need
-
- .bread
- .column.column2-5
- a(href='https://avain.app', target='_blank')
- img(src='images/avain.svg' style='width: 7rem')
-
- .column.column3-5
- h4 Avain.app
-
- p.
- Secure one-time password manager (PWA + Web Crypto)
-
- #feed
diff --git a/src/templates/head.jade b/src/templates/head.jade
deleted file mode 100644
index d284d06..0000000
--- a/src/templates/head.jade
+++ /dev/null
@@ -1,70 +0,0 @@
-doctype html
-html
- head
- title
- block title
- // inject:css
- // endinject
- meta(name='description', content='Koodiklinikka on suomalainen yhteisö ohjelmistoalan harrastajille ja ammattilaisille.')
- meta(name='keywords', content='ohjelmointi,frontend,open source,devaus,suomi,javascript,clojure,go,java,node.js,io.js,angular.js,web')
- meta(charset='utf-8')
- meta(name='viewport', content='width=device-width, initial-scale=1')
- meta(name='apple-mobile-web-app-capable', content='yes')
-
- script.
- if(location.hostname === 'koodiklinikka.fi' && location.protocol !== 'https:') {
- location.protocol = 'https';
- }
- link(rel='apple-touch-icon', sizes='180x180', href='icons/apple-touch-icon.png')
- link(rel='icon', type='image/png', sizes='32x32', href='icons/favicon-32x32.png')
- link(rel='icon', type='image/png', sizes='16x16', href='icons/favicon-16x16.png')
- link(rel='manifest', href='icons/site.webmanifest')
- meta(property='og:image', content='images/logo.png')
- script(src='https://js.stripe.com/v3/')
- script(src='//use.typekit.net/scb5xny.js')
- script.
- try{Typekit.load();}catch(e){};
-
- body
- .site
- .container
- .header
- block header_content
-
- block content
-
- footer
- .sponsors
- .sponsors__label Yhteistyössä
- a(href='http://futurice.com/', target='_blank')
- img.sponsor.sponsor__futurice(src='images/futurice.svg')
- a(href='http://www.metosin.fi/', target='_blank')
- img.sponsor.sponsor__metosin(src='images/metosin.svg')
- a(href='https://www.solita.fi/', target='_blank')
- img.sponsor(src='images/solita.svg')
- a(href='http://wakeone.co/', target='_blank')
- img.sponsor.sponsor__wakeone(src='images/wakeone.svg')
- a(href='https://www.nordea.com/', target='_blank')
- img.sponsor.sponsor__nordea(src='images/nordea.png')
-
- .contacts
- div
- a(href='https://koodiklinikka.slack.com')
- i.fa.fa-slack
-
- a(href='https://github.com/koodiklinikka/koodiklinikka.fi')
- i.fa.fa-github
-
- a(href='https://twitter.com/koodiklinikka')
- i.fa.fa-twitter
-
- a(href='https://www.linkedin.com/groups/12025476')
- i.fa.fa-linkedin
-
- a(href='https://www.facebook.com/koodiklinikka')
- i.fa.fa-facebook
- div#email.email
-
- #fader
- // inject:js
- // endinject
diff --git a/src/assets/icons/android-chrome-192x192.png b/static/icons/android-chrome-192x192.png
similarity index 100%
rename from src/assets/icons/android-chrome-192x192.png
rename to static/icons/android-chrome-192x192.png
diff --git a/src/assets/icons/android-chrome-512x512.png b/static/icons/android-chrome-512x512.png
similarity index 100%
rename from src/assets/icons/android-chrome-512x512.png
rename to static/icons/android-chrome-512x512.png
diff --git a/src/assets/icons/apple-touch-icon.png b/static/icons/apple-touch-icon.png
similarity index 100%
rename from src/assets/icons/apple-touch-icon.png
rename to static/icons/apple-touch-icon.png
diff --git a/src/assets/icons/favicon-16x16.png b/static/icons/favicon-16x16.png
similarity index 100%
rename from src/assets/icons/favicon-16x16.png
rename to static/icons/favicon-16x16.png
diff --git a/src/assets/icons/favicon-32x32.png b/static/icons/favicon-32x32.png
similarity index 100%
rename from src/assets/icons/favicon-32x32.png
rename to static/icons/favicon-32x32.png
diff --git a/src/assets/icons/favicon.ico b/static/icons/favicon.ico
similarity index 100%
rename from src/assets/icons/favicon.ico
rename to static/icons/favicon.ico
diff --git a/src/assets/icons/site.webmanifest b/static/icons/site.webmanifest
similarity index 100%
rename from src/assets/icons/site.webmanifest
rename to static/icons/site.webmanifest
diff --git a/src/assets/images/avain.svg b/static/images/avain.svg
similarity index 100%
rename from src/assets/images/avain.svg
rename to static/images/avain.svg
diff --git a/src/assets/images/codestats.png b/static/images/codestats.png
similarity index 100%
rename from src/assets/images/codestats.png
rename to static/images/codestats.png
diff --git a/src/assets/images/futurice.svg b/static/images/futurice.svg
similarity index 100%
rename from src/assets/images/futurice.svg
rename to static/images/futurice.svg
diff --git a/src/assets/images/hp3_bw.jpg b/static/images/hp3_bw.jpg
similarity index 100%
rename from src/assets/images/hp3_bw.jpg
rename to static/images/hp3_bw.jpg
diff --git a/src/assets/images/jumbo.jpg b/static/images/jumbo.jpg
similarity index 100%
rename from src/assets/images/jumbo.jpg
rename to static/images/jumbo.jpg
diff --git a/src/assets/images/logo-js.png b/static/images/logo-js.png
similarity index 100%
rename from src/assets/images/logo-js.png
rename to static/images/logo-js.png
diff --git a/src/assets/images/logo-new.svg b/static/images/logo-new.svg
similarity index 100%
rename from src/assets/images/logo-new.svg
rename to static/images/logo-new.svg
diff --git a/src/assets/images/logo.png b/static/images/logo.png
similarity index 100%
rename from src/assets/images/logo.png
rename to static/images/logo.png
diff --git a/src/assets/images/metosin.svg b/static/images/metosin.svg
similarity index 100%
rename from src/assets/images/metosin.svg
rename to static/images/metosin.svg
diff --git a/src/assets/images/nordea.png b/static/images/nordea.png
similarity index 100%
rename from src/assets/images/nordea.png
rename to static/images/nordea.png
diff --git a/src/assets/images/octocat.png b/static/images/octocat.png
similarity index 100%
rename from src/assets/images/octocat.png
rename to static/images/octocat.png
diff --git a/src/assets/images/poster.jpg b/static/images/poster.jpg
similarity index 100%
rename from src/assets/images/poster.jpg
rename to static/images/poster.jpg
diff --git a/src/assets/images/reactabular.png b/static/images/reactabular.png
similarity index 100%
rename from src/assets/images/reactabular.png
rename to static/images/reactabular.png
diff --git a/src/assets/images/redom.svg b/static/images/redom.svg
similarity index 100%
rename from src/assets/images/redom.svg
rename to static/images/redom.svg
diff --git a/src/assets/images/slack.png b/static/images/slack.png
similarity index 100%
rename from src/assets/images/slack.png
rename to static/images/slack.png
diff --git a/src/assets/images/solita.svg b/static/images/solita.svg
similarity index 100%
rename from src/assets/images/solita.svg
rename to static/images/solita.svg
diff --git a/src/assets/images/wakeone.svg b/static/images/wakeone.svg
similarity index 100%
rename from src/assets/images/wakeone.svg
rename to static/images/wakeone.svg
diff --git a/src/assets/videos/jumbo.mp4 b/static/videos/jumbo.mp4
similarity index 100%
rename from src/assets/videos/jumbo.mp4
rename to static/videos/jumbo.mp4
diff --git a/src/styles/_button.styl b/styles/_button.styl
similarity index 100%
rename from src/styles/_button.styl
rename to styles/_button.styl
diff --git a/src/styles/_header.styl b/styles/_header.styl
similarity index 98%
rename from src/styles/_header.styl
rename to styles/_header.styl
index 7ed6c4b..c067ab2 100644
--- a/src/styles/_header.styl
+++ b/styles/_header.styl
@@ -1,7 +1,7 @@
headerHeight = 400px
.header
- background url('../images/jumbo.jpg')
+ background url('/static/images/jumbo.jpg')
background-position bottom center
background-size cover
height headerHeight
@@ -42,7 +42,7 @@ headerHeight = 400px
@media screen and (max-width: 810px)
margin-left auto
margin-right auto
-
+
img
width: 100%;
diff --git a/src/styles/_input.styl b/styles/_input.styl
similarity index 100%
rename from src/styles/_input.styl
rename to styles/_input.styl
diff --git a/src/styles/_loader.styl b/styles/_loader.styl
similarity index 100%
rename from src/styles/_loader.styl
rename to styles/_loader.styl
diff --git a/src/styles/icons.less b/styles/icons.less
similarity index 63%
rename from src/styles/icons.less
rename to styles/icons.less
index 6cf87e8..b0ddcc4 100644
--- a/src/styles/icons.less
+++ b/styles/icons.less
@@ -1,6 +1,6 @@
-@import '../../node_modules/font-awesome/less/variables.less';
-@import '../../node_modules/font-awesome/less/path.less';
-@import '../../node_modules/font-awesome/less/core.less';
+@import '../node_modules/font-awesome/less/variables.less';
+@import '../node_modules/font-awesome/less/path.less';
+@import '../node_modules/font-awesome/less/core.less';
.@{fa-css-prefix}-github:before { content: @fa-var-github; }
.@{fa-css-prefix}-slack:before { content: @fa-var-slack; }
diff --git a/src/styles/style.styl b/styles/style.styl
similarity index 99%
rename from src/styles/style.styl
rename to styles/style.styl
index 8be0a80..97724e7 100644
--- a/src/styles/style.styl
+++ b/styles/style.styl
@@ -351,7 +351,7 @@ footer
display block
.bread-img
- background url('../images/hp3_bw.jpg')
+ background url('/static/images/hp3_bw.jpg')
background-size cover
border-radius 160px
opacity 0.85
diff --git a/test/test-helper.js b/test/test-helper.js
deleted file mode 100644
index a14c8f6..0000000
--- a/test/test-helper.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-
-import {jsdom} from 'jsdom';
-
-const document = global.document = jsdom('');
-const window = global.window = document.defaultView;
-global.navigator = window.navigator = {};