diff --git a/demo/assets/dbp-toolkit-demo.topic.metadata.json.ejs b/demo/assets/dbp-toolkit-demo.topic.metadata.json.ejs
index c0bc259626a783f2deb203dbb3be478fde144f72..40ff1bb109e0d97677199a9721c43116d41d81a0 100644
--- a/demo/assets/dbp-toolkit-demo.topic.metadata.json.ejs
+++ b/demo/assets/dbp-toolkit-demo.topic.metadata.json.ejs
@@ -13,7 +13,7 @@
   },
   "routing_name": "toolkit-demo",
   "activities": [
-    {"path": "file-handling.metadata.json"},
+    {"path": "person-select.metadata.json"},
     {"path": "knowledge-base-web-page-element-view.metadata.json"},
     {"path": "common.metadata.json"}
   ],
diff --git a/demo/assets/file-handling.metadata.json b/demo/assets/person-select.metadata.json
similarity index 74%
rename from demo/assets/file-handling.metadata.json
rename to demo/assets/person-select.metadata.json
index a63f1d51ae3e6b8005e30940440c284eb840b0c9..4321c5bb2ae0492bcd5963013b6b8c4f9a65d012 100644
--- a/demo/assets/file-handling.metadata.json
+++ b/demo/assets/person-select.metadata.json
@@ -1,6 +1,6 @@
 {
-  "element": "dbp-person-select-demo",
-  "module_src": "dbp-person-select-demo.js",
+  "element": "dbp-person-select-demo-activity",
+  "module_src": "dbp-person-select-demo-activity.js",
   "routing_name": "person-select",
   "name": {
     "de": "Personensuche",
diff --git a/demo/package.json b/demo/package.json
index 16983cd342a97fd3212db58f2d1ee86105c65b46..1817867a8b5e98e1bb813a056eeb47b14425266e 100644
--- a/demo/package.json
+++ b/demo/package.json
@@ -40,6 +40,7 @@
     "rollup-plugin-delete": "^2.0.0",
     "rollup-plugin-emit-ejs": "^3.1.0",
     "rollup-plugin-license": "^2.1.0",
+    "rollup-plugin-md": "^0.0.7",
     "rollup-plugin-serve": "^1.0.1",
     "rollup-plugin-terser": "^6.1.0",
     "selfsigned": "^1.10.7"
@@ -52,6 +53,7 @@
     "dbp-file-handling": "^1.0.0",
     "dbp-language-select": "^1.0.0",
     "dbp-notification": "^1.0.0",
+    "dbp-person-select": "^1.0.0",
     "dbp-person-profile": "^1.0.0",
     "fabric": "^3.6.3",
     "file-saver": "^2.0.2",
@@ -63,7 +65,8 @@
     "source-sans-pro": "^2.45.0",
     "tabulator-tables": "^4.7.0",
     "universal-router": "^9.0.1",
-    "webdav": "^3.3.0"
+    "webdav": "^3.3.0",
+    "highlight.js": "^10.1.2"
   },
   "scripts": {
     "build-dev": "rollup -c --environment BUILD:development",
diff --git a/demo/rollup.config.js b/demo/rollup.config.js
index 6577dbfe3d41ce784a02c247a19d13f3240e996c..0887edd96927ed7008001bb0887fe36fdc02d3bc 100644
--- a/demo/rollup.config.js
+++ b/demo/rollup.config.js
@@ -13,6 +13,7 @@ import urlPlugin from "@rollup/plugin-url";
 import consts from 'rollup-plugin-consts';
 import license from 'rollup-plugin-license';
 import del from 'rollup-plugin-delete';
+import md from 'rollup-plugin-md';
 import emitEJS from 'rollup-plugin-emit-ejs'
 import babel from '@rollup/plugin-babel'
 import selfsigned from 'selfsigned';
@@ -123,12 +124,7 @@ function getBuildInfo() {
 }
 
 export default {
-    input: (build != 'test') ? [
-      'src/' + pkg.name + '.js',
-      '../packages/person-select/src/dbp-person-select-demo.js',
-      '../packages/knowledge-base-web-page-element-view/src/dbp-knowledge-base-web-page-element-view-demo.js',
-      '../packages/common/dbp-common-demo.js',
-    ] : glob.sync('test/**/*.js'),
+    input: (build != 'test') ? glob.sync('src/*.js') : glob.sync('test/**/*.js'),
     output: {
       dir: 'dist',
       entryFileNames: '[name].js',
@@ -222,11 +218,20 @@ Dependencies:
             include: 'node_modules/**',
         }),
         json(),
+        md({
+            include: ["../../**/*.md"],
+            marked: {
+                highlight: function(code) {
+                    return require('highlight.js').highlightAuto(code).value;
+                }
+            }
+        }),
         urlPlugin({
           limit: 0,
           include: [
             "node_modules/suggestions/**/*.css",
             "node_modules/select2/**/*.css",
+            "node_modules/highlight.js/**/*.css",
           ],
           emitFiles: true,
           fileName: 'shared/[name].[hash][extname]'
diff --git a/demo/src/dbp-person-select-demo-activity.js b/demo/src/dbp-person-select-demo-activity.js
new file mode 100644
index 0000000000000000000000000000000000000000..4534e1d7f59e91683a719dadb33bf17214d90a4f
--- /dev/null
+++ b/demo/src/dbp-person-select-demo-activity.js
@@ -0,0 +1,51 @@
+import {css, html, LitElement} from 'lit-element';
+import {ScopedElementsMixin} from '@open-wc/scoped-elements';
+import * as PersonSelectDemo from 'dbp-person-select/src/dbp-person-select-demo';
+import * as commonUtils from 'dbp-common/utils';
+import * as commonStyles from 'dbp-common/styles';
+import {unsafeHTML} from 'lit-html/directives/unsafe-html.js';
+import readme from 'dbp-person-select/README.md';
+import highlightCSSPath from 'highlight.js/styles/default.css';
+
+class DbpPersonSelectDemoActivity extends ScopedElementsMixin(LitElement) {
+    static get scopedElements() {
+        return {
+          'dbp-person-select-demo': PersonSelectDemo,
+        };
+    }
+
+    static get properties() {
+        return {
+        };
+    }
+
+    connectedCallback() {
+        super.connectedCallback();
+
+        this.updateComplete.then(()=>{
+        });
+    }
+
+    static get styles() {
+        // language=css
+        return [
+            commonStyles.getThemeCSS(),
+            commonStyles.getGeneralCSS(),
+            css`
+            h1.title {margin-bottom: 1em;}
+            div.container {margin-bottom: 1.5em;}
+            `
+        ];
+    }
+
+    render() {
+        return html`
+            xxx
+            <dbp-person-select-demo lang="en"></dbp-person-select-demo>
+            yyy
+            ${unsafeHTML(readme)}
+        `;
+    }
+}
+
+commonUtils.defineCustomElement('dbp-person-select-demo-activity', DbpPersonSelectDemoActivity);
diff --git a/demo/yarn.lock b/demo/yarn.lock
index 86667ae25c8d453677e3595404ba357fdc9fbcf1..6fb4a1fb7023cf54db21046acaa56b28ca4cec31 100644
--- a/demo/yarn.lock
+++ b/demo/yarn.lock
@@ -1123,6 +1123,13 @@ acorn-import-meta@^1.0.0:
   resolved "https://registry.yarnpkg.com/acorn-import-meta/-/acorn-import-meta-1.1.0.tgz#c384423462ee7d4721d4de83231021a36cb09def"
   integrity sha512-pshgiVR5mhpjFVdizKTN+kAGRqjJFUOEB3TvpQ6kiAutb1lvHrIVVcGoe5xzMpJkVNifCeymMG7/tsDkWn8CdQ==
 
+acorn-jsx@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
+  integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=
+  dependencies:
+    acorn "^3.0.4"
+
 acorn-jsx@^5.2.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe"
@@ -1138,6 +1145,13 @@ acorn-numeric-separator@^0.3.0:
   resolved "https://registry.yarnpkg.com/acorn-numeric-separator/-/acorn-numeric-separator-0.3.3.tgz#1002e3c3e68540449131370b81078b3fc36a4b18"
   integrity sha512-xMbqqXR9EnxuGN1N6CbU+sm/sKS+VSttTnU6aRf9klvZF/P5E5BMtR3xZfSFWbVIkd4uXGKfgZJZwZ73zpExXQ==
 
+acorn-object-spread@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/acorn-object-spread/-/acorn-object-spread-1.0.0.tgz#48ead0f4a8eb16995a17a0db9ffc6acaada4ba68"
+  integrity sha1-SOrQ9KjrFplaF6Dbn/xqyq2kumg=
+  dependencies:
+    acorn "^3.1.0"
+
 acorn-private-class-elements@^0.2.6:
   version "0.2.6"
   resolved "https://registry.yarnpkg.com/acorn-private-class-elements/-/acorn-private-class-elements-0.2.6.tgz#625155cbf4d42ce1f8063db8c9b88adfdd8db2c5"
@@ -1177,6 +1191,11 @@ acorn-walk@^6.0.0, acorn-walk@^6.0.1:
   resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
   integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==
 
+acorn@^3.0.4, acorn@^3.1.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
+  integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
+
 acorn@^6.0.0, acorn@^6.0.1:
   version "6.4.1"
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
@@ -1518,6 +1537,19 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.8.5:
     escalade "^3.0.2"
     node-releases "^1.1.60"
 
+buble@^0.12.0:
+  version "0.12.5"
+  resolved "https://registry.yarnpkg.com/buble/-/buble-0.12.5.tgz#c66ffe92f9f4a3c65d3256079b711e2bd0bc5013"
+  integrity sha1-xm/+kvn0o8ZdMlYHm3EeK9C8UBM=
+  dependencies:
+    acorn "^3.1.0"
+    acorn-jsx "^3.0.1"
+    acorn-object-spread "^1.0.0"
+    chalk "^1.1.3"
+    magic-string "^0.14.0"
+    minimist "^1.2.0"
+    os-homedir "^1.0.1"
+
 buffer-crc32@~0.2.3:
   version "0.2.13"
   resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
@@ -2710,6 +2742,11 @@ estraverse@^5.1.0:
   resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
   integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
 
+estree-walker@^0.2.1:
+  version "0.2.1"
+  resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e"
+  integrity sha1-va/oCVOD2EFNXcLs9MkXO225QS4=
+
 estree-walker@^0.6.1:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
@@ -3189,6 +3226,11 @@ hex-color-regex@^1.1.0:
   resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
   integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
 
+highlight.js@^10.1.2:
+  version "10.1.2"
+  resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.1.2.tgz#c20db951ba1c22c055010648dfffd7b2a968e00c"
+  integrity sha512-Q39v/Mn5mfBlMff9r+zzA+gWxRsCRKwEMvYTiisLr/XUiFI/4puWt0Ojdko3R3JCNWGdOWaA5g/Yxqa23kC5AA==
+
 hot-patcher@^0.5.0:
   version "0.5.0"
   resolved "https://registry.yarnpkg.com/hot-patcher/-/hot-patcher-0.5.0.tgz#9d401424585aaf3a91646b816ceff40eb6a916b9"
@@ -4095,6 +4137,13 @@ magic-string@0.25.7, magic-string@^0.25.2, magic-string@^0.25.5:
   dependencies:
     sourcemap-codec "^1.4.4"
 
+magic-string@^0.14.0:
+  version "0.14.0"
+  resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.14.0.tgz#57224aef1701caeed273b17a39a956e72b172462"
+  integrity sha1-VyJK7xcByu7Sc7F6OalW5ysXJGI=
+  dependencies:
+    vlq "^0.2.1"
+
 make-dir@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
@@ -4102,6 +4151,11 @@ make-dir@^3.0.0:
   dependencies:
     semver "^6.0.0"
 
+marked@^0.3.6:
+  version "0.3.19"
+  resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790"
+  integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==
+
 material-design-icons-svg@^3.0.0:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/material-design-icons-svg/-/material-design-icons-svg-3.1.1.tgz#4ad222041ec3bb999b168320e23210c9b3771a7e"
@@ -4162,7 +4216,7 @@ mimic-response@^2.0.0:
   resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
   integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
 
-minimatch@3.0.4, minimatch@^3.0.4:
+minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
   integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
@@ -4485,7 +4539,7 @@ ordered-read-streams@^1.0.0:
   dependencies:
     readable-stream "^2.0.1"
 
-os-homedir@^1.0.0:
+os-homedir@^1.0.0, os-homedir@^1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
   integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
@@ -5431,6 +5485,14 @@ rimraf@^3.0.0, rimraf@^3.0.2:
   dependencies:
     glob "^7.1.3"
 
+rollup-plugin-buble@^0.12.1:
+  version "0.12.1"
+  resolved "https://registry.yarnpkg.com/rollup-plugin-buble/-/rollup-plugin-buble-0.12.1.tgz#0d183d7aac730b4a1dcae2f83be87b439f5eb408"
+  integrity sha1-DRg9eqxzC0odyuL4O+h7Q59etAg=
+  dependencies:
+    buble "^0.12.0"
+    rollup-pluginutils "^1.5.0"
+
 rollup-plugin-consts@^1.0.1, rollup-plugin-consts@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/rollup-plugin-consts/-/rollup-plugin-consts-1.0.2.tgz#b02906ee288929e92119d55ab4d423551675aeda"
@@ -5479,6 +5541,16 @@ rollup-plugin-license@^2.1.0:
     spdx-expression-validate "2.0.0"
     spdx-satisfies "5.0.0"
 
+rollup-plugin-md@^0.0.7:
+  version "0.0.7"
+  resolved "https://registry.yarnpkg.com/rollup-plugin-md/-/rollup-plugin-md-0.0.7.tgz#2cf01418a8b4906e74d4bcaf7a44f749c26b6cdb"
+  integrity sha1-LPAUGKi0kG501LyvekT3ScJrbNs=
+  dependencies:
+    marked "^0.3.6"
+    rollup "^0.34.7"
+    rollup-plugin-buble "^0.12.1"
+    rollup-pluginutils "^1.5.1"
+
 rollup-plugin-postcss@^3.1.2:
   version "3.1.5"
   resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.5.tgz#4bcc19a7f95ab8fb17fb0ca59080fe3887421db2"
@@ -5517,6 +5589,14 @@ rollup-plugin-terser@^6.1.0:
     serialize-javascript "^3.0.0"
     terser "^4.7.0"
 
+rollup-pluginutils@^1.5.0, rollup-pluginutils@^1.5.1:
+  version "1.5.2"
+  resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408"
+  integrity sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=
+  dependencies:
+    estree-walker "^0.2.1"
+    minimatch "^3.0.2"
+
 rollup-pluginutils@^2.8.2:
   version "2.8.2"
   resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
@@ -5524,6 +5604,13 @@ rollup-pluginutils@^2.8.2:
   dependencies:
     estree-walker "^0.6.1"
 
+rollup@^0.34.7:
+  version "0.34.13"
+  resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.34.13.tgz#a211cdde31f96cb39e7cb4e35becb15ddc3efa19"
+  integrity sha1-ohHN3jH5bLOefLTjW+yxXdw++hk=
+  dependencies:
+    source-map-support "^0.4.0"
+
 rollup@^2.18.0, rollup@^2.18.1, rollup@^2.19.0:
   version "2.23.1"
   resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.23.1.tgz#d458d28386dc7660c2e8a4978bea6f9494046c20"
@@ -5750,6 +5837,13 @@ sortobject@^1.1.1:
   dependencies:
     editions "^2.2.0"
 
+source-map-support@^0.4.0:
+  version "0.4.18"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
+  integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==
+  dependencies:
+    source-map "^0.5.6"
+
 source-map-support@~0.5.12:
   version "0.5.19"
   resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
@@ -6442,6 +6536,11 @@ vinyl@^2.0.0, vinyl@^2.2.0:
     remove-trailing-separator "^1.0.1"
     replace-ext "^1.0.0"
 
+vlq@^0.2.1:
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26"
+  integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==
+
 void-elements@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"