Merge remote-tracking branch 'upstream/master' into DepauMD

This commit is contained in:
Davide Depau 2019-04-11 22:26:27 +02:00
commit 7240364d30
15 changed files with 456 additions and 331 deletions

View File

@ -1,7 +1,7 @@
CodiMD
===
[![#CodiMD on matrix.org][matrix.org-image]][matrix.org-url]
[![CodiMD on Gitter][gitter-image]][gitter-url]
[![build status][travis-image]][travis-url]
[![version][github-version-badge]][github-release-page]
[![POEditor][poeditor-image]][poeditor-url]
@ -24,8 +24,6 @@ Thanks for using! :smile:
- [Instructions](#instructions)
- [Heroku Deployment](#heroku-deployment)
- [Kubernetes](#kubernetes)
- [CodiMD by docker container](#codimd-by-docker-container)
- [Cloudron](#cloudron)
- [Upgrade](#upgrade)
- [Native setup](#native-setup)
- [Configuration](#configuration)
@ -42,12 +40,10 @@ Thanks for using! :smile:
# HackMD CE became CodiMD
CodiMD was recently renamed from its former name was HackMD. CodiMD is the free software version of HackMD. It was the original Version of HackMD. The HackMD team initiated CodiMD and provided a solid code base. Due to the need of paying bills, A fork was created and called HackMD EE, which is a SaaS (Software as a Service) product available at [hackmd.io](https://hackmd.io).
CodiMD was recently renamed from its former name was HackMD. CodiMD is the free software version of HackMD. HackMD EE, which is a SaaS (Software as a Service) product available at [hackmd.io](https://hackmd.io).
We decided to change the name to break the confusion between HackMD and CodiMD, formally known as HackMD CE, as it never was an open core project.
Just to more confusion: We are still friends with HackMD :heart:
*For the whole renaming story, see the [related issue](https://github.com/hackmdio/hackmd/issues/720)*
# Browsers Requirement
@ -83,7 +79,7 @@ Just to more confusion: We are still friends with HackMD :heart:
7. Run `node_modules/.bin/sequelize db:migrate`, this step will migrate your db to the latest schema
8. Run the server as you like (node, forever, pm2)
To stay up to date with your installation it's recommended to join our [Matrix channel][matrix.org-url] or subscribe to the [release feed][github-release-feed].
To stay up to date with your installation it's recommended to subscribe the [release feed][github-release-feed].
## Heroku Deployment
@ -99,33 +95,18 @@ To install use `helm install stable/hackmd`.
For all further details, please check out the offical CodiMD [K8s helm chart](https://github.com/kubernetes/charts/tree/master/stable/hackmd).
## CodiMD by docker container
[![Try in PWD](https://cdn.rawgit.com/play-with-docker/stacks/cff22438/assets/images/button.png)](http://play-with-docker.com?stack=https://github.com/hackmdio/codimd-container/raw/master/docker-compose.yml&stack_name=codimd)
**Debian-based version:**
[![latest](https://images.microbadger.com/badges/version/hackmdio/hackmd:latest.svg)](https://microbadger.com/images/hackmdio/hackmd "Get your own version badge on microbadger.com") [![](https://images.microbadger.com/badges/image/hackmdio/hackmd:latest.svg)](https://microbadger.com/images/hackmdio/hackmd "Get your own image badge on microbadger.com")
**Alpine-based version:**
[![alpine](https://images.microbadger.com/badges/version/hackmdio/hackmd:alpine.svg)](https://microbadger.com/images/hackmdio/hackmd:alpine "Get your own version badge on microbadger.com") [![](https://images.microbadger.com/badges/image/hackmdio/hackmd:alpine.svg)](https://microbadger.com/images/hackmdio/hackmd:alpine "Get your own image badge on microbadger.com")
The easiest way to setup CodiMD using docker are using the following three commands:
```console
git clone https://github.com/hackmdio/codimd-container.git
cd codimd-container
git clone https://github.com/hackmdio/docker-hackmd.git
cd docker-hackmd
docker-compose up
```
Read more about it in the [container repository…](https://github.com/hackmdio/codimd-container)
## Cloudron
Install CodiMD on [Cloudron](https://cloudron.io):
[![Install](https://cloudron.io/img/button.svg)](https://cloudron.io/button.html?app=io.hackmd.cloudronapp)
Read more about it in the [container repository…](https://github.com/hackmdio/docker-hackmd)
# Upgrade
@ -142,7 +123,7 @@ If you are upgrading CodiMD from an older version, follow these steps:
6. Run `node_modules/.bin/sequelize db:migrate`, this step will migrate your db to the latest schema
7. Start your whole new server!
To stay up to date with your installation it's recommended to join our [Matrix channel][matrix.org-url] or subscribe to the [release feed][github-release-feed].
To stay up to date with your installation it's recommended to subscribe the [release feed][github-release-feed].
* **migrate-to-1.1.0**
@ -371,12 +352,12 @@ See more at [http://operational-transformation.github.io/](http://operational-tr
**License under AGPL.**
[matrix.org-image]: https://img.shields.io/badge/Matrix.org-%23CodiMD@matrix.org-green.svg
[matrix.org-url]: https://riot.im/app/#/room/#codimd:matrix.org
[gitter-image]: https://img.shields.io/badge/gitter-hackmdio/codimd-blue.svg
[gitter-url]: https://gitter.im/hackmdio/hackmd
[travis-image]: https://travis-ci.org/hackmdio/codimd.svg?branch=master
[travis-url]: https://travis-ci.org/hackmdio/codimd
[github-version-badge]: https://img.shields.io/github/release/hackmdio/codimd.svg
[github-release-page]: https://github.com/hackmdio/codimd/releases
[github-release-feed]: https://github.com/hackmdio/codimd/releases.atom
[poeditor-image]: https://img.shields.io/badge/POEditor-translate-blue.svg
[poeditor-url]: https://poeditor.com/join/project/1OpGjF2Jir
[poeditor-url]: https://poeditor.com/join/project/q0nuPWyztp

2
app.js
View File

@ -113,7 +113,7 @@ if (config.csp.enable) {
}
i18n.configure({
locales: ['en', 'zh-CN', 'zh-TW', 'fr', 'de', 'ja', 'es', 'ca', 'el', 'pt', 'it', 'tr', 'ru', 'nl', 'hr', 'pl', 'uk', 'hi', 'sv', 'eo', 'da', 'ko', 'id'],
locales: ['en', 'zh-CN', 'zh-TW', 'fr', 'de', 'ja', 'es', 'ca', 'el', 'pt', 'it', 'tr', 'ru', 'nl', 'hr', 'pl', 'uk', 'hi', 'sv', 'eo', 'da', 'ko', 'id', 'sr'],
cookie: 'locale',
directory: path.join(__dirname, '/locales'),
updateFiles: config.updateI18nFiles

View File

@ -1,7 +1,7 @@
'use strict'
// external modules
var Sequelize = require('sequelize')
var scrypt = require('@mlink/scrypt')
var scrypt = require('scrypt')
// core
var logger = require('../logger')

View File

@ -15,7 +15,7 @@
"or": "ou",
"Sign Out": "Se déconnecter",
"Explore all features": "Explorer toutes les fonctionnalités",
"Select tags...": "Selectionner les tags...",
"Select tags...": "Sélectionner les tags...",
"Search keyword...": "Chercher un mot-clef...",
"Sort by title": "Trier par titre",
"Title": "Titre",
@ -29,7 +29,7 @@
"Import from browser": "Importer depuis le navigateur",
"Releases": "Versions",
"Are you sure?": "Ëtes-vous sûr ?",
"Do you really want to delete this note?": "Voulez-vous vraiment supprimer cette note?",
"Do you really want to delete this note?": "Voulez-vous vraiment supprimer cette note ?",
"All users will lose their connection.": "Tous les utilisateurs perdront leur connexion.",
"Cancel": "Annuler",
"Yes, do it!": "Oui, je suis sûr !",
@ -62,7 +62,7 @@
"Refresh": "Recharger",
"Contacts": "Contacts",
"Report an issue": "Signaler un problème",
"Meet us on %s": "Rencontrez-nous sur %s",
"Meet us on %s": "Rencontrez-nous sur %s",
"Send us email": "Envoyez-nous un mail",
"Documents": "Documents",
"Features": "Fonctionnalités",
@ -88,14 +88,14 @@
"This is a alert area.": "Ceci est un texte d'alerte.",
"Revert": "Revenir en arrière",
"Import from clipboard": "Importer depuis le presse-papier",
"Paste your markdown or webpage here...": "Coller votre markdown ou votre page web ici...",
"Paste your markdown or webpage here...": "Collez votre markdown ou votre page web ici...",
"Clear": "Vider",
"This note is locked": "Cette note est verrouillée",
"Sorry, only owner can edit this note.": "Désolé, seulement le propriétaire peut éditer cette note.",
"Sorry, only owner can edit this note.": "Désolé, seul le propriétaire peut éditer cette note.",
"OK": "OK",
"Reach the limit": "Atteindre la limite",
"Sorry, you've reached the max length this note can be.": "Désolé, vous avez atteint la longueur maximale que cette note peut avoir.",
"Please reduce the content or divide it to more notes, thank you!": "Merci de réduire le contenu ou de le diviser en plusieurs notes!",
"Please reduce the content or divide it to more notes, thank you!": "Merci de réduire le contenu ou de le diviser en plusieurs notes !",
"Import from Gist": "Importer depuis Gist",
"Paste your gist url here...": "Coller l'URL de votre Gist ici...",
"Import from Snippet": "Importer depuis Snippet",
@ -104,14 +104,16 @@
"OR": "OU",
"Export to Snippet": "Exporter vers Snippet",
"Select Visibility Level": "Sélectionner le niveau de visibilité",
"Night Theme": "Theme Nuit",
"Night Theme": "Thème Nuit",
"Follow us on %s and %s.": "Suivez-nous sur %s, et %s.",
"Privacy": "Confidentialité",
"Terms of Use": "Conditions d'utilisation",
"Do you really want to delete your user account?": "Voulez-vous vraiment supprimer votre compte utilisateur",
"Do you really want to delete your user account?": "Voulez-vous vraiment supprimer votre compte utilisateur ?",
"This will delete your account, all notes that are owned by you and remove all references to your account from other notes.": "Cela supprimera votre compte, toutes les notes dont vous êtes propriétaire et supprimera toute référence à votre compte dans les autres notes.",
"Delete user": "Supprimer l'utilisteur",
"Export user data": "Exportez les données utilisateur",
"Delete user": "Supprimer l'utilisateur",
"Export user data": "Exporter les données utilisateur",
"Help us translating on %s": "Aidez nous à traduire sur %s",
"Source Code": "Code source"
}
"Source Code": "Code source",
"Register": "S'enregistrer",
"Powered by %s": "Propulsé par %s"
}

View File

@ -111,5 +111,9 @@
"Do you really want to delete your user account?": "Apakah anda yakin ingin menghapus akun anda?",
"This will delete your account, all notes that are owned by you and remove all references to your account from other notes.": "Ini akan menghapus akun anda, semua catatan yang dimiliki oleh anda akan dihapus dan menghapus semua referensi ke akun anda dari catatan lain.",
"Delete user": "Hapus pengguna",
"Export user data": "Ekspor data pengguna"
"Export user data": "Ekspor data pengguna",
"Help us translating on %s": "Bantu kami menerjemahkan di %s",
"Source Code": "Sumber Kode",
"Register": "Daftar",
"Powered by %s": "Ditenagai oleh %s"
}

View File

@ -113,5 +113,7 @@
"Delete user": "Elimina utente",
"Export user data": "Esporta dati utente",
"Help us translating on %s": "Aiutaci nella traduzione su %s",
"Source Code": "Codice Sorgente"
"Source Code": "Codice Sorgente",
"Register": "Registrati",
"Powered by %s": "Alimentato da %s"
}

View File

@ -113,5 +113,7 @@
"Delete user": "ユーザーの削除",
"Export user data": "ユーザーデータをエクスポート",
"Help us translating on %s": "%s の翻訳にご協力ください",
"Source Code": "ソースコード"
"Source Code": "ソースコード",
"Register": "登録",
"Powered by %s": "Powered by %s"
}

View File

@ -6,8 +6,8 @@
"History": "Geschiedenis",
"New guest note": "Nieuwe gastnotitie",
"Collaborate with URL": "Samenwerken met URL",
"Support charts and MathJax": "Ondersteun grafieken en MathJax",
"Support slide mode": "Ondersteun presentatiemodus",
"Support charts and MathJax": "Ondersteunt grafieken en MathJax",
"Support slide mode": "Ondersteunt presentatiemodus",
"Sign In": "Inloggen",
"Below is the history from browser": "Hier onder staat de browser geschiedenis",
"Welcome!": "Welkom!",
@ -113,5 +113,7 @@
"Delete user": "Gebruiker verwijderen",
"Export user data": "Gebruikersdata exporteren",
"Help us translating on %s": "Help ons vertalen op %s",
"Source Code": "Broncode"
"Source Code": "Broncode",
"Register": "Registreren",
"Powered by %s": "Powered by %s"
}

117
locales/sr.json Normal file
View File

@ -0,0 +1,117 @@
{
"Collaborative markdown notes": "Дељене белешке у Markdown формату",
"Realtime collaborative markdown notes on all platforms.": "Заједнички рад на markdown тексту у реалном времену, на свим платформама",
"Best way to write and share your knowledge in markdown.": "Савршен начин за писање и дељење знања у markdown формату",
"Intro": "Увод",
"History": "Историја",
"New guest note": "Нова белешка госта",
"Collaborate with URL": "Сарадња уз помоћ URL-а",
"Support charts and MathJax": "Подршка за графиконе и MathJax",
"Support slide mode": "Подршка за слајдове и презентације",
"Sign In": "Пријави се",
"Below is the history from browser": "Ниже је историјат преузет из прегледача",
"Welcome!": "Добродошли!",
"New note": "Нова белешка",
"or": "или",
"Sign Out": "Одјави се",
"Explore all features": "Истражи све могућности",
"Select tags...": "Одабери тагове...",
"Search keyword...": "Претрага по кључној речи...",
"Sort by title": "Редослед по наслову",
"Title": "Наслов",
"Sort by time": "Редослед по времену",
"Time": "време",
"Export history": "Извези историјат",
"Import history": "Увези историјат",
"Clear history": "Очисти историју",
"Refresh history": "Освежи историју",
"No history": "Нема историје",
"Import from browser": "Увези из прегледача",
"Releases": "Издања",
"Are you sure?": "Јесте ли сигурни?",
"Do you really want to delete this note?": "Да ли заиста желите да обришете ову белешку?",
"All users will lose their connection.": "Сви корисници ће изгубити везу у реалном времену.",
"Cancel": "Одустани",
"Yes, do it!": "Да, уради!",
"Choose method": "Изаберите начин",
"Sign in via %s": "Пријавите се помоћу %s",
"New": "Ново",
"Publish": "Објави",
"Extra": "Додатно",
"Revision": "Ревизија",
"Slide Mode": "Презентациони мод",
"Export": "Извоз",
"Import": "Увоз",
"Clipboard": "Клипборд",
"Download": "Преузимање",
"Raw HTML": "Сирови HTML",
"Edit": "Измени",
"View": "Прегледај",
"Both": "Обоје",
"Help": "Помоћ",
"Upload Image": "Пошаљи слику",
"Menu": "Мени",
"This page need refresh": "Ову страну је неопходно освежити",
"You have an incompatible client version.": "Ова верзија клијента није компатибилна.",
"Refresh to update.": "Освежите за приказ измена.",
"New version available!": "Доступна је нова верзија!",
"See releases notes here": "Овде погледајте напомене о издањима",
"Refresh to enjoy new features.": "Освежите како бисте уживали у новим функцијама.",
"Your user state has changed.": "Ваше корисничко стање се променило.",
"Refresh to load new user state.": "Освежите за учитавање новог корисничког стања.",
"Refresh": "Освежи",
"Contacts": "Контакти",
"Report an issue": "Пријава проблема",
"Meet us on %s": "Пронађите нас на %s",
"Send us email": "Пошаљите нам имејл",
"Documents": "Документи",
"Features": "Могућности",
"YAML Metadata": "YAML Метаподаци",
"Slide Example": "Пример слајда",
"Cheatsheet": "Трикови и форе",
"Example": "Пример",
"Syntax": "Синтакса",
"Header": "Заглавље",
"Unordered List": "Неуређени списак",
"Ordered List": "Уређени списак",
"Todo List": "Списак обавеза",
"Blockquote": "Пасус са наводима",
"Bold font": "Масна слова",
"Italics font": "Закривљена слова",
"Strikethrough": "Прецртано",
"Inserted text": "Уметнут текст",
"Marked text": "Означени текст",
"Link": "Линк",
"Image": "Слика",
"Code": "Код",
"Externals": "Спољни",
"This is a alert area.": "Ово је пасус за упозорења.",
"Revert": "Врати",
"Import from clipboard": "Увези из клипборда",
"Paste your markdown or webpage here...": "Залепи свој markdown или веб страну овде...",
"Clear": "Очисти",
"This note is locked": "Ова белешка је закључана",
"Sorry, only owner can edit this note.": "Жао нам је, ову белешку може мењати само њен власник.",
"OK": "OK",
"Reach the limit": "Досегни лимит",
"Sorry, you've reached the max length this note can be.": "Нажалост, досегли сте максималну дужину ове белешке.",
"Please reduce the content or divide it to more notes, thank you!": "Молимо Вас да смањите количину текста или да га поделите на више белешки, хвала!",
"Import from Gist": "Увези из Github Gist-а",
"Paste your gist url here...": "Залепите Gist URL адресу овде...",
"Import from Snippet": "Увези из \"исечака\"",
"Select From Available Projects": "Изабери из доступних пројеката",
"Select From Available Snippets": "Изабери из доступних исечака",
"OR": "ИЛИ",
"Export to Snippet": "Извези у \"исечак\"",
"Select Visibility Level": "Изаберите ниво читкости",
"Night Theme": "Ноћна тема",
"Follow us on %s and %s.": "Пратите нас на %s и %s.",
"Privacy": "Приватност",
"Terms of Use": "Услови коришћења",
"Do you really want to delete your user account?": "Да ли заиста желите да трајно обришете свој налог?",
"This will delete your account, all notes that are owned by you and remove all references to your account from other notes.": "Ова операција ће избрисати ваш налог, све ваше белешке, а уклониће и све везе ка вашем налогу из других белешки.",
"Delete user": "Брисање корисника",
"Export user data": "Извоз свих корисничких података",
"Help us translating on %s": "Помозите нам да преведемо на %s",
"Source Code": "Изворни код"
}

View File

@ -113,5 +113,7 @@
"Delete user": "刪除使用者",
"Export user data": "匯出使用者資料",
"Help us translating on %s": "來 %s 幫我們翻譯",
"Source Code": "原始碼"
"Source Code": "原始碼",
"Powered by %s": "Powered by %s",
"Register": "註冊"
}

View File

@ -1,6 +1,6 @@
{
"name": "CodiMD",
"version": "1.3.0",
"version": "1.3.1",
"description": "Realtime collaborative markdown notes on all platforms.",
"main": "app.js",
"license": "AGPL-3.0",
@ -16,6 +16,7 @@
"doctoc": "doctoc --title='# Table of Contents' README.md"
},
"dependencies": {
"@hackmd/js-sequence-diagrams": "^0.0.1-alpha.2",
"@passport-next/passport-openid": "^1.0.0",
"Idle.Js": "git+https://github.com/shawnmclean/Idle.js",
"archiver": "^2.1.1",
@ -56,7 +57,6 @@
"jquery-mousewheel": "^3.1.13",
"jquery-ui": "^1.12.1",
"js-cookie": "^2.1.3",
"js-sequence-diagrams": "^1000000.0.6",
"js-url": "^2.3.0",
"js-yaml": "^3.7.0",
"jsdom-nogyp": "^0.8.3",
@ -109,7 +109,7 @@
"readline-sync": "^1.4.7",
"request": "^2.88.0",
"reveal.js": "~3.7.0",
"@mlink/scrypt": "^6.1.2",
"scrypt": "^6.0.3",
"select2": "^3.5.2-browserify",
"sequelize": "^3.28.0",
"sequelize-cli": "^2.5.1",

View File

@ -1,6 +1,31 @@
Release Notes
===
<i class="fa fa-tag"></i> 1.3.1 <i class="fa fa-clock-o"></i> 2019-03-23 00:00
---
### Enhancements
* Add some missing translations
* Add Serbian language
### Fixes
* Fix broken redirect for empty `serverURL`
* Fix wrong variable type for HSTS maxAge
* Fix GitLab snippets showing up without being configured
* Fix Google's API after disabling Google+
* Fix broken PDF export
### Contributors
* atachibana (translator)
* [Aurélien JANVIER](https://github.com/ajanvier) (translator)
* [Daan Sprenkels](https://github.com/dsprenkels) (translator)
* Farizrizaldy (translator)
* [Luclu7](https://github.com/Luclu7)
* Sylke Vicious (translator)
* [toshi0123](https://github.com/toshi0123) & okochi-toshiki
* [Turakar](https://github.com/Turakar)
* [Vladan](https://github.com/cvladan) (translator)
<i class="fa fa-tag"></i> 1.3.0 <i class="fa fa-clock-o"></i> 2019-03-03 00:00
---

View File

@ -148,6 +148,7 @@
<option value="da">dansk</option>
<option value="ko">한국어</option>
<option value="id">Bahasa Indonesia</option>
<option value="sr">српски</option>
</select>
<p>
<%- __('Powered by %s', '<a href="https://codimd.org">CodiMD</a>') %> | <a href="<%- serverURL %>/s/release-notes" target="_blank" rel="noopener"><%= __('Releases') %></a>| <a href="<%- sourceURL %>" target="_blank" rel="noopener"><%= __('Source Code') %></a><% if(privacyStatement) { %> | <a href="<%- serverURL %>/s/privacy" target="_blank" rel="noopener"><%= __('Privacy') %></a><% } %><% if(termsOfUse) { %> | <a href="<%- serverURL %>/s/terms-of-use" target="_blank" rel="noopener"><%= __('Terms of Use') %></a><% } %>

View File

@ -211,7 +211,7 @@ module.exports = {
'script-loader!codemirrorInlineAttachment',
'script-loader!ot',
'flowchart.js',
'js-sequence-diagrams',
'script-loader!js-sequence-diagrams',
'expose-loader?RevealMarkdown!reveal-markdown',
path.join(__dirname, 'public/js/index.js')
],
@ -262,7 +262,7 @@ module.exports = {
'script-loader!codemirrorInlineAttachment',
'script-loader!ot',
'flowchart.js',
'js-sequence-diagrams',
'script-loader!js-sequence-diagrams',
'expose-loader?Viz!viz.js',
'script-loader!abcjs',
'expose-loader?io!socket.io-client',
@ -272,7 +272,7 @@ module.exports = {
pretty: [
'babel-polyfill',
'flowchart.js',
'js-sequence-diagrams',
'script-loader!js-sequence-diagrams',
'expose-loader?RevealMarkdown!reveal-markdown',
path.join(__dirname, 'public/js/pretty.js')
],
@ -297,7 +297,7 @@ module.exports = {
'expose-loader?emojify!emojify.js',
'script-loader!gist-embed',
'flowchart.js',
'js-sequence-diagrams',
'script-loader!js-sequence-diagrams',
'expose-loader?Viz!viz.js',
'script-loader!abcjs',
'expose-loader?RevealMarkdown!reveal-markdown',
@ -307,7 +307,7 @@ module.exports = {
'babel-polyfill',
'bootstrap-tooltip',
'flowchart.js',
'js-sequence-diagrams',
'script-loader!js-sequence-diagrams',
'expose-loader?RevealMarkdown!reveal-markdown',
path.join(__dirname, 'public/js/slide.js')
],
@ -335,7 +335,7 @@ module.exports = {
'expose-loader?emojify!emojify.js',
'script-loader!gist-embed',
'flowchart.js',
'js-sequence-diagrams',
'script-loader!js-sequence-diagrams',
'expose-loader?Viz!viz.js',
'script-loader!abcjs',
'headjs',
@ -369,7 +369,8 @@ module.exports = {
'headjs': path.join(__dirname, 'node_modules/reveal.js/lib/js/head.min.js'),
'reveal-markdown': path.join(__dirname, 'public/js/reveal-markdown.js'),
abcjs: path.join(__dirname, 'public/vendor/abcjs_basic_3.1.1-min.js'),
raphael: path.join(__dirname, 'node_modules/raphael/raphael.no-deps.js')
raphael: path.join(__dirname, 'node_modules/raphael/raphael.min.js'),
'js-sequence-diagrams': path.join(__dirname, 'node_modules/@hackmd/js-sequence-diagrams/build/main.js')
}
},
@ -418,12 +419,6 @@ module.exports = {
},
'less-loader'
]
}, {
test: require.resolve('js-sequence-diagrams'),
use: [{
loader: 'imports-loader',
options: { _: 'lodash', Raphael: 'raphael', eve: 'eve' }
}]
}, {
test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
use: [{ loader: 'file-loader' }]

522
yarn.lock

File diff suppressed because it is too large Load Diff