Remove ruby-sass requirement (fixes #123)

Change-Id: I933c34d384f22a65e1b737e1e7dc13a20703e171
diff --git a/Changes b/Changes
index 544fe7c..b5a4db7 100755
--- a/Changes
+++ b/Changes
@@ -1,7 +1,8 @@
-0.42 2021-03-02
+0.42 2021-03-08
         - Added GitHub based CI for perl.
         - Added further methods for communicating JSON Files
           with the server to the APIs (lerepp).
+        - Remove ruby-sass requirement (fixes #123).
 
 0.41 2021-03-01
         - Introduce CORS headers to the proxy.
diff --git a/Dockerfile b/Dockerfile
index 2eff6b4..44003e2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,8 +3,7 @@
 
 # This follows the "multi-stage build" pattern
 
-RUN npm install -g sass && \
-    npm install grunt && \
+RUN npm install grunt && \
     npm install -g grunt-cli
 
 # Copy repository respecting .dockerignore
diff --git a/Gruntfile.js b/Gruntfile.js
index e726844..dd59ac3 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -14,6 +14,8 @@
  * TODO: Implement a LaTeX generator for a pdf of the dokumentation 
  */
 
+const sass = require('sass');
+
 module.exports = function(grunt) {
   var config;
   var includeFile = 'default';
@@ -75,7 +77,9 @@
     sass: {
       dist: {
         options: {
-          style: 'compressed'
+          implementation: sass,
+          style: 'compressed',
+          sourceMap: true
         },
         files: {
           'public/css/kalamar-<%= pkg.version %>.css' : 'dev/scss/kalamar.scss',
@@ -164,7 +168,7 @@
 
   grunt.loadNpmTasks('grunt-contrib-imagemin');
   grunt.loadNpmTasks('grunt-contrib-watch');
-  grunt.loadNpmTasks('grunt-contrib-sass');
+  grunt.loadNpmTasks('grunt-sass');
   grunt.loadNpmTasks('grunt-contrib-copy');
   grunt.loadNpmTasks('grunt-terser');
   grunt.loadNpmTasks('grunt-contrib-requirejs');
diff --git a/README.md b/README.md
index 599de5f..6389080 100644
--- a/README.md
+++ b/README.md
@@ -41,20 +41,17 @@
 
 To generate the static asset files (scripts, styles, images ...),
 you need NodeJS >= 6.0.0.
-For processing Sass, you will need Ruby with
-the `sass` gem in addition.
 This will probably need administration
 rights, depending on your installation path.
 These tools may also be available with a package manager.
 
-You can check, if all tools are available using
+You can check your version using
 
 ```shell
 $ npm -v
-$ sass -v
 ```
 
-Afterwards you can install grunt and run grunt to create the assets.
+Afterwards you can install the dependencies and run `grunt` to create the assets.
 
 ```shell
 $ cd Kalamar
@@ -63,7 +60,7 @@
 $ grunt
 ```
 
-Whenever the assets change, just rerun `grunt`.
+Whenever the assets change, just rerun `npm install` and `grunt`.
 
 ### Start Server
 
@@ -112,6 +109,19 @@
 (see [Kustvakt](https://github.com/KorAP/Kustvakt) for further information)
 or by using the environment variable `KALAMAR_API`.
 
+## Updates
+
+To update Kalamar, just run
+
+```shell
+$ git pull origin master
+$ cpanm --installdeps .
+$ npm install
+$ grunt
+```
+
+And both the server and client dependencies should be up to date.
+
 ## Configuration
 
 The basic configuration file is `kalamar.conf`. To define derivations,
@@ -275,7 +285,7 @@
 $ cpanm -f Mojolicious::Plugin::MailException
 ```
 
-# Problem running scripts on Windows with Powershell
+### Problem running scripts on Windows with Powershell
 
 In case you are having issues with running scripts under Windows,
 you can set the execution policy with
diff --git a/package.json b/package.json
index 5f0efc4..6eab73c 100755
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "Kalamar",
   "description": "Mojolicious-based Frontend for KorAP",
   "license": "BSD-2-Clause",
-  "version": "0.41.3",
+  "version": "0.41.4",
   "pluginVersion": "0.2.2",
   "engines": {
     "node": ">=6.0.0"
@@ -14,17 +14,20 @@
   "devDependencies": {
     "grunt": "^1.0.4",
     "grunt-contrib-copy": "^1.0.0",
-    "grunt-contrib-imagemin": "^3.1.0",
     "grunt-contrib-requirejs": "^1.0.0",
-    "grunt-contrib-sass": "^1.0.0",
-    "grunt-terser": "^1.0.0",
     "grunt-contrib-watch": "^1.1.0",
+    "grunt-sass": "^3.1.0",
     "grunt-shell": "^3.0.1",
+    "grunt-terser": "^1.0.0",
     "imagemin": "^7.0.1",
     "optipng-bin": "^6.0.0",
+    "sass": "^1.32.8",
     "vinyl-fs": "^3.0.3"
   },
   "optionalDependencies": {
     "fsevents": "*"
+  },
+  "dependencies": {
+    "grunt-contrib-imagemin": "^4.0.0"
   }
 }