Skip to content
Snippets Groups Projects
Definition.vue 961 B
Newer Older
<template>
  <li class="definition" :id="'def' + body.id">
    <ul>
      <li :is="element_wrapper.template" :body="element_wrapper.element" v-for="element_wrapper in template_name_added">{{element_wrapper.element}}</li>
    </ul>
  </li>
</template>

<script>
import DefElement from './DefElement.vue'
import Example from './Example.vue'

var Definition = {
  name: 'Definition',
  props: {
    body: Object
  },
  components: {
    DefElement,
    Definition,
    Example
  },
  computed: {
    template_name_added: function(){
      return this.body.elements.map(
        function(element){
          return {
              'template': {
                'explanation': 'DefElement',
                'definition': 'Definition',
                'example': 'Example'
              }[element.type] || 'li',
              'element': element
          }
      })
    }
  }
}

export default Definition
</script>
<style>
li.quote {
  font-style: italic;
}
</style>