render config/sensors/effectors description from catalog as markdown
diff --git a/ui-modules/catalog/app/views/bundle/type/type.state.js b/ui-modules/catalog/app/views/bundle/type/type.state.js
index 4ac4275..99052e6 100644
--- a/ui-modules/catalog/app/views/bundle/type/type.state.js
+++ b/ui-modules/catalog/app/views/bundle/type/type.state.js
@@ -138,6 +138,7 @@
     });
     
     $scope.tables = {};
+    $scope.markdown = mdHelper.analyze;
     ['config', 'sensors', 'effectors'].forEach((t) => $scope.tables[t] = { columns: [] });
     
     function addColumn(cols, base) {
@@ -172,6 +173,7 @@
             field: 'description',
             width: 150,
             colspan: 6,
+            template: '<md-field raw-data="::item[column.field]"></md-field>',
             tdClass: 'column-for-description',
         } );
         
diff --git a/ui-modules/utils/md-helper/index.js b/ui-modules/utils/md-helper/index.js
index d9327d2..d462c3b 100644
--- a/ui-modules/utils/md-helper/index.js
+++ b/ui-modules/utils/md-helper/index.js
@@ -23,12 +23,38 @@
 
 angular.module(MODULE_NAME, [])
     .factory("mdHelper", mdHelperProvider)
+    .directive('mdField', [ mdFieldDirective])
     .directive('mdFirstLine', [ mdFirstLineDirective])
     .directive('mdIfOneline', [ mdIfOnelineDirective])
     .directive('mdIfMultiline', [mdIfMultilineDirective]);
 
 export default MODULE_NAME;
 
+// displays markdown, as one-line or multi-line depending on the data
+export function mdFieldDirective() {
+    return {
+        restrict: 'E',
+        scope: {
+            data: '<',
+            rawData: '<',
+        },
+        template: `
+            <div>
+                <md-if-oneline data="data"></md-if-oneline>
+                <md-if-multiline data="data"></md-if-multiline>
+            </div>
+        `,
+        controller: ['$scope', function ($scope) {
+            if ($scope.rawData && !$scope.data) {
+                $scope.data = analyze($scope.rawData);
+            }
+        }],
+    };
+
+    function link(scope, element, attrs) {
+    }
+}
+
 // prints out one line of data -- in future could use markdown formatting, but currently does not
 export function mdFirstLineDirective() {
     return {