Ejemplo n.º 1
0
def dict2links(d):
	rs = []
	for k in sorted(d.keys()):
		if k.isupper() or k in ('name', 'authored', 'roles'):
			continue
		v = d[k]
		if k == 'g':
			rs.append(\
				(makeimg('ico-g', 'Google'),\
				'<a href="https://www.google.com/search?q={}">{}</a>'.format(escape(v), v)))
		elif k.endswith('.wp'):
			lang = k.split('.')[0]
			# Using ISO 639-1 language names
			ico = makeimg('ico-wp', 'Wikipedia') + makeimg('ico-'+lang, ISONames[lang])
			lang = k.split('.')[0]
			r = '<a href="https://{}.wikipedia.org/wiki/{}">{}</a>'.format(\
				lang, \
				escape(v).replace('%20', '_'), \
				v)
			rs.append((ico, r))
		elif k == 'wd':
			rs.append(\
				(makeimg('ico-wd', 'Wikidata'),\
				'<a href="https://www.wikidata.org/wiki/{0}">{0}</a>'.format(v)))
		elif k == 'dblp':
			# http://dblp.uni-trier.de/pers/hd/m/Major:Elaine
			if not isinstance(v, str):
				print('Strange DBLP: “{}”'.format(v))
			rs.append(\
				(makeimg('ico-dblp', 'DBLP'),\
				'<a href="http://dblp.uni-trier.de/pers/hd/{}/{}">DBLP: {}</a>'.format(\
				v[0].lower(),
				escape(v).replace('-', '='),
				v)))
		elif k == 'www':
			if not v.startswith('http'):
				w = v
				v = 'http://'+v
			else:
				w = v.replace('http://', '').replace('https://', '')
			rs.append(('', '<a href="{0}">{1}</a>'.format(v, w)))
		elif k == 'sex':
			ico = ''
			rs.append(('', 'Gender: ' + v))
		elif k == 'roles':
			for role in v:
				ico = makeimg(role[0].lower(), role[0], 30)
				# if os.path.exists(outputdir + '/stuff/' + role[0].lower() + '.png'):
				# else:
				# 	ico = ''
				if os.path.exists(outputdir + '/' + role[0] + '-' + role[1] + '.html'):
					r = '<a href="../{0}-{1}.html">{0}-{1}</a>'.format(role[0], role[1])
				else:
					r = '{0}-{1}'.format(role[0], role[1])
				rs.append((ico, r + ' ' + role[2]))
		else:
			rs.append(('', '{}: {}'.format(k, v)))
	# print(rs)
	return '\n'.join(['<h3>{} {}</h3>'.format(r[0], r[1]) for r in rs])
Ejemplo n.º 2
0
def kv2link(k, v):
    if k == 'g':
        ico = makeimg('g', 'Google')
        r = '<a href="https://www.google.com/search?q={}">{}</a>'.format(
            escape(v), v)
    elif k.endswith('.wp'):
        lang = k.split('.')[0]
        # Using ISO 639-1 language names
        ico = makeimg('wp', 'Wikipedia') + makeimg(lang, ISONames[lang])
        lang = k.split('.')[0]
        r = '<a href="https://{}.wikipedia.org/wiki/{}">{}</a>'.format(\
         lang, \
         escape(v).replace('%20', '_'), \
         v)
    elif k.endswith('.wb'):
        lang = k.split('.')[0]
        # Using ISO 639-1 language names
        ico = makeimg('wb', 'Wikibooks') + makeimg(lang, ISONames[lang])
        lang = k.split('.')[0]
        r = '<a href="https://{}.wikibooks.org/wiki/{}">{}</a>'.format(\
         lang, \
         escape(v).replace('%20', '_'), \
         v)
    elif k == 'wd':
        ico = makeimg('wd', 'Wikidata')
        r = '<a href="https://www.wikidata.org/wiki/{0}">{0}</a>'.format(v)
    elif k == 'hwiki':
        ico = makeimg('h', 'Haskell Wiki')
        r = '<a href="https://wiki.haskell.org/{}">{}</a>'.format(escape(v), v)
    elif k == 'so':
        ico = makeimg('so', 'Stack Overflow')
        r = '<a href="http://stackoverflow.com/questions/tagged?tagnames={0}">{0}</a>'.format(
            v)
    elif k == 'www':
        ico = ''  #makeimg('www', 'Homepage')
        if not v.startswith('http'):
            y = v
            v = 'http://' + v
        else:
            y = v.replace('http://', '').replace('https://', '')
        r = '<a href="{0}">{1}</a>'.format(v, y)
    elif k == 'aka':
        ico = ''
        r = '<br/>'.join(['a.k.a.: “{}”'.format(z) for z in listify(v)])
    else:
        ico = ''
        r = '?{}?{}?'.format(k, v)
    return ico + ' ' + r + '<br/>'
Ejemplo n.º 3
0
def kv2link(k, v):
	if k == 'g':
		ico = makeimg('g', 'Google')
		r = '<a href="https://www.google.com/search?q={}">{}</a>'.format(escape(v), v)
	elif k.endswith('.wp'):
		lang = k.split('.')[0]
		# Using ISO 639-1 language names
		ico = makeimg('wp', 'Wikipedia') + makeimg(lang, ISONames[lang])
		lang = k.split('.')[0]
		r = '<a href="https://{}.wikipedia.org/wiki/{}">{}</a>'.format(\
			lang, \
			escape(v).replace('%20', '_'), \
			v)
	elif k.endswith('.wb'):
		lang = k.split('.')[0]
		# Using ISO 639-1 language names
		ico = makeimg('wb', 'Wikibooks') + makeimg(lang, ISONames[lang])
		lang = k.split('.')[0]
		r = '<a href="https://{}.wikibooks.org/wiki/{}">{}</a>'.format(\
			lang, \
			escape(v).replace('%20', '_'), \
			v)
	elif k == 'wd':
		ico = makeimg('wd', 'Wikidata')
		r = '<a href="https://www.wikidata.org/wiki/{0}">{0}</a>'.format(v)
	elif k == 'hwiki':
		ico = makeimg('h', 'Haskell Wiki')
		r = '<a href="https://wiki.haskell.org/{}">{}</a>'.format(escape(v), v)
	elif k == 'so':
		ico = makeimg('so', 'Stack Overflow')
		r = '<a href="http://stackoverflow.com/questions/tagged?tagnames={0}">{0}</a>'.format(v)
	elif k == 'www':
		ico = ''#makeimg('www', 'Homepage')
		if not v.startswith('http'):
			y = v
			v = 'http://'+v
		else:
			y = v.replace('http://', '').replace('https://', '')
		r = '<a href="{0}">{1}</a>'.format(v, y)
	elif k == 'aka':
		ico = ''
		r = '<br/>'.join(['a.k.a.: “{}”'.format(z) for z in listify(v)])
	else:
		ico = ''
		r = '?{}?{}?'.format(k, v)
	return ico + ' ' + r + '<br/>'
Ejemplo n.º 4
0
			siblings.update([s for s in x.getBareStems() if s != k and ifApproved(s)])
		box = '<code>Used together with:</code><hr/>' + \
			'\n<br/>'.join(['<span class="tag"><a href="{0}.html">{0}</a></span> ({1})'.format(\
				*sn) for sn in siblings.most_common(5)])
		f.write(wordHTML.format(\
			stem=k,
			inthebox=box,
			listname='{} papers'.format(len(lst)),
			dl='<dl class="toc">' + '\n'.join(lst).replace('href="', 'href="../') + '</dl>'))
		f.close()
	print('Word pages:', C.yellow('{}'.format(len(stems))), C.blue('generated'))
	# stem index
	f = open(outputdir+'/words.html', 'w', encoding='utf-8')
	keyz = [k for k in stems.keys() if len(stems[k]) > 100 and ifApproved(k)]
	keyz.sort(key=lambda t: -len(t), reverse=True)
	lst = ['<li><a href="word/{}.html">{}</a>$ ({})</li>'.format(\
		escape(t), t, len(stems[t])) for t in keyz]
	ul = '<ul class="tri">' + '\n'.join(lst) + '</ul>'
	CX = sum([len(stems[t]) for t in stems.keys()])
	f.write(wordlistHTML.format(\
		title='All known stems',
		listname='{} stems known and {} shown from {} notable words'.format(len(stems), len(keyz), CX),
		ul=ul))
	f.close()
	print('Stem index:', C.blue('created'))
	print('{}\nDone with {} venues, {} papers, {} tags.'.format(\
		C.purple('='*42),
		C.red(len(sleigh.venues)),
		C.red(sleigh.numOfPapers()),
		C.red(sleigh.numOfTags())))
Ejemplo n.º 5
0
def dict2links(d):
    rs = []
    for k in sorted(d.keys()):
        if k.isupper() or k in ('name', 'authored', 'roles'):
            continue
        v = d[k]
        if k == 'g':
            rs.append(\
             (makeimg('ico-g', 'Google'),\
             '<a href="https://www.google.com/search?q={}">{}</a>'.format(escape(v), v)))
        elif k.endswith('.wp'):
            lang = k.split('.')[0]
            # Using ISO 639-1 language names
            ico = makeimg('ico-wp', 'Wikipedia') + makeimg(
                'ico-' + lang, ISONames[lang])
            lang = k.split('.')[0]
            r = '<a href="https://{}.wikipedia.org/wiki/{}">{}</a>'.format(\
             lang, \
             escape(v).replace('%20', '_'), \
             v)
            rs.append((ico, r))
        elif k == 'wd':
            rs.append(\
             (makeimg('ico-wd', 'Wikidata'),\
             '<a href="https://www.wikidata.org/wiki/{0}">{0}</a>'.format(v)))
        elif k == 'dblp':
            # http://dblp.uni-trier.de/pers/hd/m/Major:Elaine
            if not isinstance(v, str):
                print('Strange DBLP: “{}”'.format(v))
            rs.append(\
             (makeimg('ico-dblp', 'DBLP'),\
             '<a href="http://dblp.uni-trier.de/pers/hd/{}/{}">DBLP: {}</a>'.format(\
             v[0].lower(),
             escape(v).replace('-', '='),
             v)))
        elif k == 'www':
            if not v.startswith('http'):
                w = v
                v = 'http://' + v
            else:
                w = v.replace('http://', '').replace('https://', '')
            rs.append(('', '<a href="{0}">{1}</a>'.format(v, w)))
        elif k == 'sex':
            ico = ''
            rs.append(('', 'Gender: ' + v))
        elif k == 'roles':
            for role in v:
                ico = makeimg(role[0].lower(), role[0], 30)
                # if os.path.exists(outputdir + '/stuff/' + role[0].lower() + '.png'):
                # else:
                # 	ico = ''
                if os.path.exists(outputdir + '/' + role[0] + '-' + role[1] +
                                  '.html'):
                    r = '<a href="../{0}-{1}.html">{0}-{1}</a>'.format(
                        role[0], role[1])
                else:
                    r = '{0}-{1}'.format(role[0], role[1])
                rs.append((ico, r + ' ' + role[2]))
        else:
            rs.append(('', '{}: {}'.format(k, v)))
    # print(rs)
    return '\n'.join(['<h3>{} {}</h3>'.format(r[0], r[1]) for r in rs])
Ejemplo n.º 6
0
         }
         stemkeys = sorted(stems.keys(),
                           key=lambda Z: pad(stems[Z]) + pad(len(Z)) + Z,
                           reverse=True)
         adds = '<hr/><code>Talks about:</code><hr/>' \
           + ' \n'.join(['<span class="tag"><a href="../word/{0}.html">{0}</a></span> ({1})'.format(S, stems[S]) \
            for S in stemkeys[:10]])
         boxlinks += adds
         # combine boxlinks
         if boxlinks:
             boxlinks = '<div class="tbox">' + boxlinks + '</div>'
     f.write(personHTML.format(\
      title=k,
      gender=gender,
      boxlinks=boxlinks,
      eperson=escape(k),
      person=persondef['name'],
      # boxlinks=links
      namedlists=dls))
     f.close()
 print('Person pages:', C.yellow('{}'.format(len(ps))), C.blue('generated'))
 # person index
 # keyz = [k for k in ps.keys() if len(ts[k]) > 2]
 # keyz = sorted(keyz, key=lambda t:len(ts[t]), reverse=True)
 keyz = ps  #sorted(ps.keys())
 letters = [chr(x) for x in range(ord('a'), ord('z') + 1)]
 indices = {x: [] for x in letters}
 for t in keyz:
     ws = t.split('_')
     i = -1
     if ws[i] == 'Jr':
Ejemplo n.º 7
0
	print('{}: {} venues, {} papers\n{}'.format(\
		C.purple('BibSLEIGH'),
		C.red(len(sleigh.venues)),
		C.red(sleigh.numOfPapers()),
		C.purple('='*42)))
	bundles = {}
	for b in glob.glob(ienputdir + '/bundles/*.json'):
		purename = b.split('/')[-1][:-5]
		bun = json.load(open(b, 'r'))
		prevcx = pcx
		uberlist = '<h2>{1} papers</h2>{0}'.format(processSortedRel(bun['contents']), pcx-prevcx)
		f = open(outputdir + '/bundle/' + purename + '.html', 'w')
		f.write(bunHTML.format(\
			title=purename+' bundle',
			bundle=bun['name'],
			ebundle=escape(purename),
			dl=uberlist.replace('href="', 'href="../').replace('../mailto', 'mailto')))
		f.close()
		bundles[purename] = pcx-prevcx
	print('Bundle pages:', C.yellow('{}'.format(len(bundles))), C.blue('generated'))
	# now for the index
	f = open(outputdir+'/bundle/index.html', 'w')
	lst = ['<li><a href="{}.html">{}</a> ({})</li>'.format(\
		escape(b),
		b,
		bundles[b]) for b in sorted(bundles.keys())]
	ul = '<ul class="tri">' + '\n'.join(lst) + '</ul>'
	f.write(bunListHTML.format(\
		title='All specified bundles',
		listname='{} bundles known with {} papers'.format(len(bundles), sum(bundles.values())),
		ul='<ul class="tri">' + '\n'.join(lst) + '</ul>'))
Ejemplo n.º 8
0
			for pk in persondef['authored']:
				allstems += bykey[pk].getBareStems()
			stems = {stem:allstems.count(stem) for stem in allstems if not ifIgnored(stem)}
			stemkeys = sorted(stems.keys(), key=lambda Z: pad(stems[Z])+pad(len(Z))+Z, reverse=True)
			adds = '<hr/><code>Talks about:</code><hr/>' \
				 + ' \n'.join(['<span class="tag"><a href="../word/{0}.html">{0}</a></span> ({1})'.format(S, stems[S]) \
				 	for S in stemkeys[:10]])
			boxlinks += adds
			# combine boxlinks
			if boxlinks:
				boxlinks = '<div class="tbox">' + boxlinks + '</div>'
		f.write(personHTML.format(\
			title=k,
			gender=gender,
			boxlinks=boxlinks,
			eperson=escape(k),
			person=persondef['name'],
			# boxlinks=links
			namedlists=dls))
		f.close()
	print('Person pages:', C.yellow('{}'.format(len(ps))), C.blue('generated'))
	# person index
	# keyz = [k for k in ps.keys() if len(ts[k]) > 2]
	# keyz = sorted(keyz, key=lambda t:len(ts[t]), reverse=True)
	keyz = ps#sorted(ps.keys())
	letters = [chr(x) for x in range(ord('a'), ord('z')+1)]
	indices = {x:[] for x in letters}
	for t in keyz:
		ws = t.split('_')
		i = -1
		if ws[i] == 'Jr':
Ejemplo n.º 9
0
		if 'g' not in tagdef.keys():
			links.append(kv2link('g', tagdef['namefull'] if 'namefull' in tagdef.keys() else key))
		links.extend([kv2link(jk, tagdef[jk]) for jk in tagdef.keys()\
				if not jk.isupper() \
				and not jk.startswith('match') \
				and not jk.startswith('name') \
				and jk != 'relieves'])
		title = tagdef['namefull'] if 'namefull' in tagdef.keys() else tagdef['name']
		subt = ('<br/><em>'+tagdef['namelong']+'</em>') if 'namelong' in tagdef.keys() else ''
		links = '<strong>{}</strong>{}<hr/>'.format(title, subt) + '\n'.join(sorted(links))
		dl = '<dl class="toc">' + '\n'.join(lst) + '</dl>'
		# hack to get from tags to papers
		dl = dl.replace('href="', 'href="../')
		f.write(tagHTML.format(\
			title=key+' tag',
			etag=escape(key),
			tag=key,
			above='',
			boxlinks=links,
			listname='{} papers'.format(len(lst)),
			dl=dl))
		f.close()
	print('Tag pages:', C.yellow('{}'.format(len(ts))), C.blue('generated'))
	# tag index
	f = open(outputdir+'/tag/index.html', 'w')
	keyz = [q for q in ts.keys() if len(ts[q]) > 2]
	keyz.sort(key=lambda t: len(ts[t]), reverse=True)
	lst = ['<li>#<a href="{}.html">{}</a> ({})</li>'.format(escape(t), t, len(ts[t])) for t in keyz]
	ul = '<ul class="tri mul">' + '\n'.join(lst) + '</ul>'
	CX = sum([len(ts[t]) for t in ts.keys()])
	f.write(taglistHTML.format(\
Ejemplo n.º 10
0
			siblings.update([s for s in x.getBareStems() if s != k and ifApproved(s)])
		box = '<code>Used together with:</code><hr/>' + \
			'\n<br/>'.join(['<span class="tag"><a href="{0}.html">{0}</a></span> ({1})'.format(\
				*sn) for sn in siblings.most_common(5)])
		f.write(wordHTML.format(\
			stem=k,
			inthebox=box,
			listname='{} papers'.format(len(lst)),
			dl='<dl class="toc">' + '\n'.join(lst).replace('href="', 'href="../') + '</dl>'))
		f.close()
	print('Word pages:', C.yellow('{}'.format(len(stems))), C.blue('generated'))
	# stem index
	f = open(outputdir+'/words.html', 'w')
	keyz = [k for k in stems.keys() if len(stems[k]) > 100 and ifApproved(k)]
	keyz.sort(key=lambda t: -len(t), reverse=True)
	lst = ['<li><a href="word/{}.html">{}</a>$ ({})</li>'.format(\
		escape(t), t, len(stems[t])) for t in keyz]
	ul = '<ul class="tri">' + '\n'.join(lst) + '</ul>'
	CX = sum([len(stems[t]) for t in stems.keys()])
	f.write(wordlistHTML.format(\
		title='All known stems',
		listname='{} stems known and {} shown from {} notable words'.format(len(stems), len(keyz), CX),
		ul=ul))
	f.close()
	print('Stem index:', C.blue('created'))
	print('{}\nDone with {} venues, {} papers, {} tags.'.format(\
		C.purple('='*42),
		C.red(len(sleigh.venues)),
		C.red(sleigh.numOfPapers()),
		C.red(sleigh.numOfTags())))
Ejemplo n.º 11
0
       if not jk.isupper() \
       and not jk.startswith('match') \
       and not jk.startswith('name') \
       and jk != 'relieves'])
     title = tagdef['namefull'] if 'namefull' in tagdef.keys(
     ) else tagdef['name']
     subt = ('<br/><em>' + tagdef['namelong'] +
             '</em>') if 'namelong' in tagdef.keys() else ''
     links = '<strong>{}</strong>{}<hr/>'.format(title, subt) + '\n'.join(
         sorted(links))
     dl = '<dl class="toc">' + '\n'.join(lst) + '</dl>'
     # hack to get from tags to papers
     dl = dl.replace('href="', 'href="../')
     f.write(tagHTML.format(\
      title=key+' tag',
      etag=escape(key),
      tag=key,
      above='',
      boxlinks=links,
      listname='{} papers'.format(len(lst)),
      dl=dl))
     f.close()
 print('Tag pages:', C.yellow('{}'.format(len(ts))), C.blue('generated'))
 # tag index
 f = open(outputdir + '/tag/index.html', 'w', encoding='utf-8')
 keyz = [q for q in ts.keys() if len(ts[q]) > 2]
 keyz.sort(key=lambda t: len(ts[t]), reverse=True)
 lst = [
     '<li>#<a href="{}.html">{}</a> ({})</li>'.format(
         escape(t), t, len(ts[t])) for t in keyz
 ]