diff --git a/packages/knowledge-base-web-page-element-view/.eslintignore b/packages/knowledge-base-web-page-element-view/.eslintignore
new file mode 100644
index 0000000000000000000000000000000000000000..7b596da7b5a30a2b742e9bc9bc8002606940e18a
--- /dev/null
+++ b/packages/knowledge-base-web-page-element-view/.eslintignore
@@ -0,0 +1,3 @@
+/vendor/**
+/dist/**
+/*.js
\ No newline at end of file
diff --git a/packages/knowledge-base-web-page-element-view/.eslintrc.json b/packages/knowledge-base-web-page-element-view/.eslintrc.json
new file mode 100644
index 0000000000000000000000000000000000000000..1ccd30a3fee0b4867a0172e746714eb0083fb07d
--- /dev/null
+++ b/packages/knowledge-base-web-page-element-view/.eslintrc.json
@@ -0,0 +1,25 @@
+{
+    "env": {
+        "browser": true,
+        "es6": true,
+        "mocha": true
+    },
+    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
+    "globals": {
+        "Atomics": "readonly",
+        "SharedArrayBuffer": "readonly"
+    },
+    "parser": "babel-eslint",
+    "parserOptions": {
+        "ecmaVersion": 2018,
+        "sourceType": "module"
+    },
+    "rules": {
+        "no-unused-vars": ["error", { "args": "none" }],
+        "semi": [2, "always"],
+        "jsdoc/require-jsdoc": 0,
+        "jsdoc/require-param-description": 0,
+        "jsdoc/require-returns": 0,
+        "jsdoc/require-param-type": 0
+    }
+}
\ No newline at end of file
diff --git a/packages/knowledge-base-web-page-element-view/package.json b/packages/knowledge-base-web-page-element-view/package.json
index 2a14f806d4a684e7c17ef12c50a3465aec874917..58a755480cffcadb6fbf74babea7e357c8dda84f 100644
--- a/packages/knowledge-base-web-page-element-view/package.json
+++ b/packages/knowledge-base-web-page-element-view/package.json
@@ -30,7 +30,9 @@
     "rollup-plugin-delete": "^2.0.0",
     "rollup-plugin-postcss": "^3.1.2",
     "rollup-plugin-serve": "^1.0.1",
-    "rollup-plugin-terser": "^7.0.2"
+    "rollup-plugin-terser": "^7.0.2",
+    "eslint": "^7.3.1",
+    "eslint-plugin-jsdoc": "^30.6.4"
   },
   "dependencies": {
     "@dbp-toolkit/auth": "^0.1.0",
@@ -52,6 +54,7 @@
     "watch": "npm run watch-local",
     "watch-local": "rollup -c --watch",
     "watch-dev": "rollup -c --watch --environment BUILD:development",
-    "test": "npm run build-test && karma start --singleRun"
+    "test": "npm run build-test && karma start --singleRun",
+    "lint": "eslint ."
   }
 }
diff --git a/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js b/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js
index a8bc5df0bcc2104b8a60e462a2ee52bbfcfead9b..a82c51a0605452c314e32c6d2b2be34226001846 100644
--- a/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js
+++ b/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js
@@ -125,7 +125,7 @@ export class KnowledgeBaseWebPageElementView extends ScopedElementsMixin(LitElem
             switch(propName) {
                 case "lang":
                 case "value":
-                case "entry-point-url":
+                case "entry-point-url": {
                     this.html = '';
                     const img = this._('#A2');
                     if (img !== null) {
@@ -136,6 +136,7 @@ export class KnowledgeBaseWebPageElementView extends ScopedElementsMixin(LitElem
                         div.style.display = 'none';
                     }
                     break;
+                }
                 case "text":
                     this.class = this.text !== '' ? 'has-text' : '';
                     break;