From 99e98405eae1a6155c31bb611ed5f8b377175955 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ole=20Volds=C3=A6ter?= <ole.voldsater@uib.no>
Date: Wed, 9 Oct 2019 11:29:04 +0200
Subject: [PATCH] tolker elementene

---
 src/components/DefElement.vue |  42 ++++-
 src/utils/entities.js         | 307 ++++++++++++++++++++++++++++++++++
 src/utils/languages.js        | 114 +++++++++++++
 3 files changed, 462 insertions(+), 1 deletion(-)
 create mode 100644 src/utils/entities.js
 create mode 100644 src/utils/languages.js

diff --git a/src/components/DefElement.vue b/src/components/DefElement.vue
index d6bd09d8..93edcdeb 100644
--- a/src/components/DefElement.vue
+++ b/src/components/DefElement.vue
@@ -1,16 +1,56 @@
 <template>
   <li>
     <div :class="element.type">
-      {{ element.content }}
+      <span v-for="item in assemble_text" :class="item.type" v-html="item.html"></span>
     </div>
   </li>
 </template>
 
 <script>
+import entities from '../utils/entities.js'
+import languages from '../utils/languages.js'
+
 export default {
   name: 'DefElement',
   props: {
     element: Object
+  },
+  computed: {
+    unparsed: function(){
+      return this.element.items.map(
+        function(item){
+          if      (item.type == 'usage') return {type: item.type, html: item.text}
+          else if (item.type == 'article_ref') return {type: item.type, html: `<a href="${item.article_id}">${item.lemmas.join(',')}</a>`}
+          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}
+        }
+      )
+    },
+    assemble_text: function(){
+      var old_parts = this.element.content.split(/(\$)/)
+      var text_items = this.unparsed.slice(0).reverse()
+      var new_parts = []
+      old_parts.forEach(function(item){
+        if(item == '$') {
+          new_parts.push(text_items.pop())
+        } else if (item.length) {
+          new_parts.push({type: 'plain', html: item})
+        }
+      })
+      console.log(new_parts)
+      return new_parts
+    }
   }
 }
 </script>
+
+<!-- Add "scoped" attribute to limit CSS to this component only -->
+<style scoped>
+span.usage {
+  font-style: italic;
+}
+
+span.language {
+  font-weight: bold;
+}
+</style>
diff --git a/src/utils/entities.js b/src/utils/entities.js
new file mode 100644
index 00000000..15b4a2c4
--- /dev/null
+++ b/src/utils/entities.js
@@ -0,0 +1,307 @@
+var entities = {
+  'adj': 'adjektiv',
+'adjsk': 'adjektivisk',
+'adv': 'adverb',
+'akk': 'akkusativ',
+'am': 'amerikansk',
+'am-eng': 'amerikansk-engelsk',
+'am_e': 'amerikanske',
+'ags': 'angelsaksisk',
+'arab': 'arabisk',
+'arkais': 'arkaiserende',
+'art': 'artikkel',
+'art_en': 'artikkelen',
+'astron': 'astronomi',
+'avl': 'avledning',
+'besl': 'beslektet',
+'b': 'bestemt',
+'bf': 'bestemt form',
+'bet': 'betydning',
+'bet_er': 'betydninger',
+'bibl': 'bibelspråk',
+'bil': 'bildelig',
+'bio': 'biologi',
+'bl_a': 'blant annet',
+'bm': 'bokmål',
+'bot': 'botanikk',
+'d_e': 'd e',
+'d_s': 'd s',
+'da': 'dansk',
+'da_e': 'danske',
+'dat': 'dativ',
+'dim': 'diminutiv',
+'dim-suff': 'diminutivssuffiks',
+'dvs': 'dvs.',
+'eKr': 'e.Kr.',
+'eg': 'egentlig',
+'egl': 'egentlig',
+'el_l': 'el l',
+'e': 'eldre',
+'eldre': 'eldre',
+'el': 'eller',
+'e_l': 'eller lignende',
+'eng': 'engelsk',
+'eng_e': 'engelske',
+'ent': 'entall',
+'ev': 'eventuelt',
+'fKr': 'f.Kr.',
+'fag': 'fagspråk',
+'fellesgerm': 'fellesgermansk',
+'f': 'femininum',
+'filos': 'filosofi',
+'flat': 'flat',
+'fl': 'flertall',
+'fls': 'flertalls',
+'f_eks': 'for eksempel',
+'forb': 'forbindelse',
+'forb_r': 'forbindelser',
+'foreld': 'foreldet',
+'forh': 'forhold',
+'fork_a': 'forkorta',
+'fork': 'forkorting',
+'fork_ing': 'forkorting',
+'forst': 'forsterkende',
+'fr': 'fransk',
+'fr-lat': 'fransk-latin',
+'fr_e': 'franske',
+'fris': 'frisisk',
+'faer': 'færøysk',
+'g': 'g',
+'gram': 'g',
+'gl': 'gammel',
+'gda': 'gammeldansk',
+'geng': 'gammelengelsk',
+'gfr': 'gammelfransk',
+'gfris': 'gammelfrisisk',
+'ggerm': 'gammelgermansk',
+'ghty': 'gammelhøytysk',
+'git': 'gammelitaliensk',
+'glat': 'gammellatin',
+'glty': 'gammellavtysk',
+'gnederl': 'gammelnederlandsk',
+'gno': 'gammelnorsk',
+'gruss': 'gammelrussisk',
+'gsaks': 'gammelsaksisk',
+'gslav': 'gammelslavisk',
+'gsv': 'gammelsvensk',
+'glt': 'gammelt',
+'gty': 'gammeltysk',
+'gen': 'genitiv',
+'germ': 'germansk',
+'gj': 'gjennom',
+'got': 'gotisk',
+'gramm': 'grammatikk',
+'gr': 'gresk',
+'gr-lat': 'gresk-latin',
+'gr_e': 'greske',
+'hebr': 'hebraisk',
+'hty': 'høytysk',
+'i_anat': 'i anatomi',
+'i_astron': 'i astronomi',
+'i_bibl': 'i bibelspråk',
+'i_biokjm': 'i biokjemi',
+'i_biol': 'i biologi',
+'i_bot': 'i botanikk',
+'i_dial': 'i dialekt',
+'dial': 'i dialekter',
+'i_fag': 'i fagspråk',
+'i_filos': 'i filosofi',
+'i_forb_m': 'i forbindelse med',
+'i_forb': 'i forbindelsen',
+'fys': 'i fysikk',
+'i_fys': 'i fysikk',
+'i_fysiol': 'i fysiologi',
+'i_geol': 'i geologi',
+'i_gram': 'i grammatikk',
+'i_gramm': 'i grammatikk',
+'i_gr_myt': 'i gresk mytologi',
+'i_idr': 'i idrett',
+'i_jus': 'i jus',
+'i_kjem': 'i kjemi',
+'i_mat': 'i matematikk',
+'i_med': 'i medisin',
+'i_mil': 'i militærspråk',
+'i_mus': 'i musikk',
+'i_myt': 'i mytologi',
+'i_norr_myt': 'i norrøn mytologi',
+'overf': 'i overført betydning',
+'i_pol': 'i politikk',
+'pol': 'i politikk',
+'i_psyk': 'i psykologi',
+'i_rel': 'i religiøst språk',
+'i_spraakv': 'i språkvitenskap',
+'i_tekn_s': 'i teknisk språk',
+'i_teol': 'i teologi',
+'i_typ': 'i typografi',
+'i_zool': 'i zoologi',
+'i_oekol': 'i økologi',
+'idr': 'idrett',
+'imp': 'imperativ',
+'ieur': 'indoeuropeisk',
+'inf': 'infinitiv',
+'innv': 'innvirkning',
+'inv': 'innvirkning',
+'interj': 'interjeksjon',
+'intr': 'intransitivt',
+'iron': 'ironisk',
+'isl': 'islandsk',
+'it': 'italiensk',
+'it_e': 'italienske',
+'jf': 'jamfør',
+'jpn': 'japansk',
+'jur': 'jus',
+'jy': 'jysk',
+'kat': 'katolsk',
+'kat_e': 'katolske',
+'kelt': 'keltisk',
+'kg': 'kilogram',
+'kjem': 'kjemisk',
+'kl': 'kl.',
+'kol': 'kollektivt',
+'koll': 'kollektivt',
+'komp': 'komparativ',
+'konj': 'konjunksjon',
+'lat': 'latin',
+'lty': 'lavtysk',
+'litt': 'litterært språk',
+'m': 'm',
+'m_a': 'm a',
+'m_m': 'm m',
+'m_oms_t': 'm oms t',
+'mask': 'maskulinum',
+'mat': 'matematikk',
+'med': 'medisin',
+'meds': 'medisinsk',
+'mno': 'mellomnorsk',
+'mlat': 'middelalderlatin',
+'mda': 'middeldansk',
+'meng': 'middelengelsk',
+'mhty': 'middelhøytysk',
+'msv': 'middelsvensk',
+'mty': 'middeltysk',
+'mil': 'militærstell',
+'mots': 'motsatt',
+'mus': 'musikk',
+'myt': 'mytologi',
+'malf': 'målføre',
+'ncaron': 'ncaron',
+'nederl': 'nederlandsk',
+'neds': 'nedsettende',
+'nom': 'nominativ',
+'nordam': 'nordamerikansk',
+'nord': 'nordisk',
+'norr_n': 'norrøn',
+'norr_e': 'norrøne',
+'norr': 'norrønt',
+'no': 'norsk',
+'no-da': 'norsk-dansk',
+'no_e': 'norske',
+'nr': 'nummer',
+'nyd': 'nydanning',
+'nda': 'nydansk',
+'ngr': 'nygresk',
+'nygr': 'nygresk',
+'nisl': 'nyislandsk',
+'nyl': 'nylaging',
+'nlat': 'nylatin',
+'nyno': 'nynorsk',
+'n': 'nøytrum',
+'obj-': 'objekts',
+'off': 'offentlig',
+'o_ae': 'og andre',
+'o_a': 'og annet',
+'o_l': 'og lignende',
+'o_norr_forh': 'om norrøne forhold',
+'opph': 'opphav',
+'opphl': 'opphavlig',
+'osv': 'osv.',
+'p_g_a': 'p g a',
+'pt': 'partisipp',
+'pass': 'passiv',
+'pf': 'perfektum',
+'pf_pt': 'perfektum partisipp',
+'pers': 'person',
+'poet_s': 'poetisk språk',
+'port': 'portugisisk',
+'pref': 'prefiks',
+'prep': 'preposisjon',
+'pr': 'presens',
+'pres': 'presens',
+'pr_pt': 'presens partisipp',
+'pret': 'preteritum',
+'pron': 'pronomen',
+'pga': 'på grunn av',
+'refl': 'refleksivt',
+'rel': 'religiøse',
+'rom': 'romansk',
+'russ': 'russisk',
+'russ_e': 'russiske',
+'s_d': 's d',
+'saks': 'saksisk',
+'sam': 'samisk',
+'sm': 'samme',
+'sm_o': 'samme opphav',
+'sm_o_s': 'samme opphav som',
+'smbl': 'sammenblanding',
+'smh': 'sammenheng',
+'sms': 'sammensetning',
+'sms_er': 'sammensetninger',
+'scaron': 'scaron',
+'sengr': 'sengresk',
+'senlat': 'senlatin',
+'seinlat': 'senlatin',
+'shet': 'shetlandsk',
+'sj': 'sjelden',
+'skjemt': 'skjemtende',
+'slav': 'slavisk',
+'sm_st': 'sm st',
+'s_adj': 'som adjektiv',
+'s_adv': 'som adverb',
+'s_subst': 'som substantiv',
+'sp': 'spansk',
+'sp-am': 'spansk-amerikansk',
+'spraakv': 'språkvitenskap',
+'spoekt': 'spøkefullt',
+'subj': 'subjekt',
+'subst': 'substantiv',
+'subst_t': 'substantivert',
+'subst_isk': 'substantivisk',
+'suff': 'suffiks',
+'superl': 'superlativ',
+'svar._t': 'svar. t',
+'sv': 'svensk',
+'sv_e': 'svenske',
+'saerl': 'særlig',
+'soeram': 'søramerikansk',
+'soerfr': 'sørfransk',
+'tidl': 'tidligere',
+'t_forskj_fra': 'til forskjell fra',
+'t_forsk_f': 'til forskjell fra',
+'tr': 'transitivt',
+'trol': 'trolig',
+'tsjekk': 'tsjekkisk',
+'tyd': 'tyding',
+'tyrk': 'tyrkisk',
+'ty': 'tysk',
+'ty_e': 'tyske',
+'ub': 'ubestemt',
+'ubf': 'ubestemt form',
+'uboey': 'ubøyelig',
+'upers': 'upersonlig',
+'uspes': 'uspesifisert',
+'utenl': 'utenlandske',
+'utt': 'uttale',
+'utr': 'uttrykk',
+'uttr': 'uttrykk',
+'uttr_et': 'uttrykket',
+'uttr_t': 'uttrykket',
+'vha': 'ved hjelp av',
+'vsa': 'ved siden av',
+'v': 'verb',
+'verb': 'verb',
+'vbs': 'verbalsubstantiv',
+'y_st': 'y st',
+'zool': 'zoologi'
+}
+
+export default entities
diff --git a/src/utils/languages.js b/src/utils/languages.js
new file mode 100644
index 00000000..b26a7c53
--- /dev/null
+++ b/src/utils/languages.js
@@ -0,0 +1,114 @@
+var languages = {
+  'am.-eng.': 'amerikansk',
+'arab.': 'arabisk',
+'da.': 'dansk',
+'eng.': 'engelsk',
+'fr.': 'fransk',
+'fris.': 'frisisk',
+'fær.': 'færøysk',
+'g.da.': 'gammeldansk',
+'g.eng.': 'gammelengelsk',
+'germ.': 'germansk',
+'g.fr.': 'gammelfransk',
+'g.h.ty.': 'gammelhøytysk',
+'g.lat.': 'gammellatin',
+'g.l.ty.': 'gammellavtysk',
+'g.no.': 'gammelnorsk',
+'got.': 'gotisk',
+'gr.': 'gresk',
+'g.russ.': 'gammelrussisk',
+'g.sv.': 'gammelsvensk',
+'g.ty.': 'gammeltysk',
+'hebr.': 'hebraisk',
+'h.ty.': 'høytysk',
+'i.eur.': 'indoeuropeisk',
+'isl.': 'islandsk',
+'it.': 'italiensk',
+'jy.': 'jysk',
+'kelt.': 'keltisk',
+'lat.': 'latin',
+'l.ty.': 'lavtysk',
+'m.eng.': 'middelengelsk',
+'m.h.ty.': 'middelhøytysk',
+'m.lat.': 'middelalderlatin',
+'m.no.': 'mellomnorsk',
+'m.ty.': 'middeltysk',
+'nyda.': 'nydansk',
+'nederl.': 'nederlandsk',
+'finsk': 'finsk',
+'no.': 'norsk',
+'no.-da.': 'norsk-dansk',
+'nord.': 'nordisk',
+'bm.': 'bokmål',
+'nordam.': 'nordamerikansk',
+'norr.': 'norrønt',
+'nyno.': 'nynorsk',
+'port.': 'portugisisk',
+'rom.': 'romansk',
+'russ.': 'russisk',
+'saks.': 'saksisk',
+'sam.': 'samisk',
+'senlat.': 'senlatin',
+'shet.': 'shetlandsk',
+'slav.': 'slavisk',
+'sp.': 'spansk',
+'sv.': 'svensk',
+'sør-am.': 'søramerikansk',
+'tsjekk.': 'tsjekkisk',
+'ty.': 'tysk',
+'algonkin': 'algonkin',
+'tyrkisk': 'tyrkisk',
+'malayisk': 'malayisk',
+'sørkinesisk': 'sørkinesisk',
+'marathi': 'marathi',
+'hindi': 'hindi',
+'sanskrit': 'sanskrit',
+'polsk': 'polsk',
+'persisk': 'persisk',
+'ungarsk': 'ungarsk',
+'semittisk': 'semittisk',
+'egyptisk': 'egyptisk',
+'bretonsk': 'bretonsk',
+'singalesisk': 'singalesisk',
+'g.fris.': 'gammelfrisisk',
+'provençalsk': 'provençalsk',
+'japansk': 'japansk',
+'aleutisk': 'aleutisk',
+'malayalam': 'malayalam',
+'turkotatarisk': 'turkotatarisk',
+'nepali': 'nepali',
+'jakutisk': 'jakutisk',
+'hawaiisk': 'hawaiisk',
+'g.slav.': 'gammelslavisk',
+'tamil': 'tamil',
+'senegalesisk': 'senegalesisk',
+'urdu': 'urdu',
+'gælisk': 'gælisk',
+'indianerspråk': 'indianerspråk',
+'quechua': 'quechua',
+'bengali': 'bengali',
+'karibisk språk': 'karibisk språk',
+'australsk språk': 'australsk språk',
+'tupi-språket': 'tupi-språket',
+'bantuspråk': 'bantuspråk',
+'indisk språk': 'indisk språk',
+'afrikansk språk': 'afrikansk språk',
+'romani': 'romani',
+'romanes': 'romanes',
+'ags.': 'angelsaksisk',
+'m.sv.': 'mellomsvensk',
+'aram.': 'arameisk',
+'nylat.': 'nylatin',
+'navnet': 'navnet',
+'varemerke': 'varemerke',
+'guarani': 'guarani',
+'khoikhoi': 'khoikhoi',
+'kinesisk': 'kinesisk',
+'eskimoisk': 'eskimoisk-aleutiske språk, inkludert grønlandsk',
+'am.-sp-': 'amerikansk-spansk',
+'afrikaans': 'afrikaans',
+'gullah': 'gullah',
+'wolof': 'wolof'
+}
+
+export default languages
-- 
GitLab