Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
import json
import urllib.parse
# Load lemmas
with open("bm_lemma.json") as inn:
bm_list = json.load(inn)
with open("nn_lemma.json") as inn:
nn_list = json.load(inn)
# Merge bm and nn
words = {}
for row in bm_list:
words[row[0]] = words.get(row[0], set())
words[row[0]].add(("bm", row[1]))
for row in nn_list:
words[row[0]] = words.get(row[0], set())
words[row[0]].add(("nn", row[1]))
url_counter = 0
write_start = lambda out: out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:xhtml=\"http://www.w3.org/1999/xhtml\">\n")
filenum = 0
out = open(f"src/sitemap/xml/sitemap_{filenum}.xml", "w")
write_start(out)
seen_articles = set()
for word, articles in words.items():
if url_counter > 20000:
out.write("</urlset>\n")
url_counter = 0
out.close()
filenum += 1
out = open(f"src/sitemap/xml/sitemap_{filenum}.xml", "w")
write_start(out)
for article in articles:
if article[1] not in seen_articles:
out.write("\t<url>\n")
out.write(f"\t\t<loc>https://ordbokene.no/{article[0]}/{article[1]}</loc>\n")
out.write(f"\t\t<xhtml:link rel=\"alternative\" href=\"https://ordbokene.no/{article[0]}/{article[1]}/{urllib.parse.quote(word)}\"/>\n")
out.write("\t</url>\n")
url_counter += 1
seen_articles.add(article[1])
# Omit articles
if len(articles) > 1:
out.write("\t<url>\n")
out.write(f"\t\t<loc>https://ordbokene.no//bm,nn/{urllib.parse.quote(word)}</loc>\n")
out.write("\t</url>\n")
url_counter += 1
out.write("</urlset>\n")
out.close()
with open("src/sitemap/xml/sitemap_index.xml", "w") as outfile:
outfile.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n")
outfile.write("<sitemap><loc>https://ordbokene.no/sitemap.xml</loc></sitemap>\n")
for num in range(filenum+1):
outfile.write(f"<sitemap><loc>https://ordbokene.no/sitemap_{num}.xml</loc></sitemap>\n")
outfile.write("</sitemapindex>")
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://ordbokene.no</loc>
<xhtml:link rel="alternative" href="https://ordbokene.no/bm,nn"/>
</url>
<url>
<loc>https://ordbokene.no/bm</loc>
</url>
<url>
<loc>https://ordbokene.no/nn</loc>
</url>
<url>
<loc>https://ordbokene.no/om</loc>
</url>
</urlset>
\ No newline at end of file
var entities = {
'bob': {
'bm': {
},
'nob': {
'nn': {
}
}
......
var mapping = {
"bob": {
"NOUN": "substantiv",
"VERB": "verb",
"ADJ": "adjektiv",
"ADP": "preposisjon",
"PFX": "prefiks",
"ADV": "adverb",
"DET": "determinativ",
"PROPN": "egennavn",
"ABBR": "forkortelse",
"INTJ": "interjeksjon",
"SYM": "symbol",
"PRON": "pronomen",
"CCONJ": "konjunksjon",
"SCONJ": "subjunksjon",
"INFM": "infinitivsmerke",
"COMPPFX": "i sammensetting",
"Masc": "hankjønn",
"Fem": "hunkjønn",
"Neuter": "intetkjønn",
"Uninfl": "ubøyelig"
},
"nob": {
"NOUN": "substantiv",
"VERB": "verb",
"ADJ": "adjektiv",
"ADP": "preposisjon",
"PFX": "prefiks",
"ADV": "adverb",
"DET": "determinativ",
"PROPN": "eigennamn",
"ABBR": "forkorting",
"INTJ": "interjeksjon",
"SYM": "symbol",
"PRON": "pronomen",
"CCONJ": "konjunksjon",
"SCONJ": "subjunksjon",
"INFM": "infinitivsmerke",
"COMPPFX": "i samansetjing",
"Masc": "hankjønn",
"Fem": "hokjønn",
"Neuter": "inkjekjønn",
"Uninfl": "ubøyeleg"
}
}
var group_list = function(grps, dictionary) {
var grp_collection = new Set()
var noun_grp_collection = new Set()
grps.forEach(function(lemma){
lemma.paradigm_info.forEach(function(grp){
if (grp.tags){
if(grp.tags[0] == 'NOUN') {
noun_grp_collection.add(grp.tags[1])
}else{
grp_collection.add(mapping[dictionary][grp.tags[0]])
}
}
})
})
if (noun_grp_collection.size) {
let noun_grp_text = 'substantiv '
if (noun_grp_collection.size == 3) {
noun_grp_text += mapping[dictionary]['Masc'] + ', ' + mapping[dictionary]['Fem'] + ' eller ' + mapping[dictionary]['Neuter']
} else {
noun_grp_text += Array.from(noun_grp_collection).map(code => mapping[dictionary][code]).sort().join(' eller ')
}
grp_collection.add(noun_grp_text)
}
return Array.from(grp_collection).join(' - ')
}
var fraction = function(numerator, denominator) {
var superscript = {
'0': '',
......@@ -188,4 +115,12 @@ var fraction = function(numerator, denominator) {
}
export default { group_list, fraction }
const roman_hgno = function(lemma) {
let hgint = parseInt(lemma.hgno)
if (hgint > 0) {
return ["I","II","III","IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI"][hgint-1]
}
return ""
}
export default { fraction, roman_hgno }
module.exports = {
runtimeCompiler: true,
transpileDependencies: [
'vuetify'
]
],
devServer: {
https: false
},
pluginOptions: {
i18n: {
fallbackLocale: 'eng',
localeDir: 'locales',
enableInSFC: true,
includeLocales: false,
enableBridge: true
}
}
}