diff --git a/src/components/DefElement.vue b/src/components/DefElement.vue index 37a445c210a640b12a5541a407a4833d966aab13..03d2e23210a406cb96e86f430a0bcb57af455659 100644 --- a/src/components/DefElement.vue +++ b/src/components/DefElement.vue @@ -1,12 +1,14 @@ <template> <li :class="body.type_"><!-- - --><span v-for="(item, index) in assemble_text" + --><span :is="item.tag || 'span'" v-for="(item, index) in assemble_text" :class="item.type" :key="index"><!-- -->{{item.html}}<!-- --><router-link v-if="item.type == 'article_ref'" :to="item.ref" @click.native="article_link_click(item)"><!-- --><span class="homograph" :key="index">{{item.lemmas[0].hgno ? String.fromCharCode(0x215f + item.lemmas[0].hgno) + ' ' : ''}}</span>{{item.lemmas[0].lemma}} {{item.definition_order ? ` (${item.definition_order})` : ''}}<!-- --></router-link><!-- + --><sup v-if="item.type == 'subscript'">{{item.text}}</sup><!-- + --><sup v-if="item.type == 'superscript'">{{item.text}}</sup><!-- --></span></li> </template> @@ -34,6 +36,8 @@ export default { definition_order: item.definition_order } else if (item.type_ == 'pronunciation') return {type: item.type_, html: item.string} + else if (item.type_ == 'superscript') return {type: item.type_, html: item.text, tag: 'sup'} + else if (item.type_ == 'subscript') return {type: item.type_, html: item.text, 'tag': 'sub'} else if (item.id) return {type: item.type_, html: entities[item.id] || languages[item.id] || item.id} else return {type: item.type_ || 'plain', html: item} }