You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
3.4 KiB
118 lines
3.4 KiB
4 months ago
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"## name-viewer.ipynb\n",
|
||
|
"\n",
|
||
|
"### Usage\n",
|
||
|
"\n",
|
||
|
"1. Install `jupyter`, `plotly`, `fonttools` dependencies with pip\n",
|
||
|
"2. Modify the `FONT_PATH` setting in the Python source block below by clicking next to it and typing a new path in your web browser window\n",
|
||
|
"3. Execute the block of Python source by selecting the code block below and clicking the \"Run\" button above\n",
|
||
|
"4. Repeat from step 2 with modified font paths to view tables in other fonts\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"import plotly as py\n",
|
||
|
"import plotly.graph_objs as go\n",
|
||
|
"\n",
|
||
|
"from fontTools.ttLib import TTFont\n",
|
||
|
"\n",
|
||
|
"py.offline.init_notebook_mode(connected=True)\n",
|
||
|
"\n",
|
||
|
"# EDIT HERE ------------------------------------------------------\n",
|
||
|
"#\n",
|
||
|
"# Path to font file\n",
|
||
|
"FONT_PATH = \"path/to/font.ttf\"\n",
|
||
|
"#\n",
|
||
|
"# Table height\n",
|
||
|
"# - adjust for the length of output from the font file\n",
|
||
|
"HEIGHT = 700\n",
|
||
|
"#\n",
|
||
|
"# END EDIT -------------------------------------------------------\n",
|
||
|
"\n",
|
||
|
"record_list = []\n",
|
||
|
"nameID_list = []\n",
|
||
|
"ppelangID_list = []\n",
|
||
|
"value_list = []\n",
|
||
|
"\n",
|
||
|
"tt = TTFont(FONT_PATH)\n",
|
||
|
"namerecord_list = tt[\"name\"].names\n",
|
||
|
"\n",
|
||
|
"for record in namerecord_list:\n",
|
||
|
" nameID_list.append(record.nameID)\n",
|
||
|
" ppelangID_list.append(\"{} {} {}\".format(record.platformID, \n",
|
||
|
" record.platEncID, \n",
|
||
|
" record.langID))\n",
|
||
|
" value_list.append(\"{}\".format(record.string.decode('utf-8').strip()))\n",
|
||
|
" \n",
|
||
|
"\n",
|
||
|
"record_list.append(nameID_list)\n",
|
||
|
"record_list.append(ppelangID_list)\n",
|
||
|
"record_list.append(value_list)\n",
|
||
|
"\n",
|
||
|
"\n",
|
||
|
"trace0 = go.Table(\n",
|
||
|
" columnorder = [1,2,3],\n",
|
||
|
" columnwidth = [80,80,400],\n",
|
||
|
" header = dict(\n",
|
||
|
" values = [['<b>nameID</b>'],\n",
|
||
|
" ['<b>p-pE-lang</b>'],\n",
|
||
|
" ['<b>Value</b>']\n",
|
||
|
" ],\n",
|
||
|
" line = dict(color = '#506784'),\n",
|
||
|
" fill = dict(color = '#FFDE00'),\n",
|
||
|
" align = ['center','center', 'center'],\n",
|
||
|
" font = dict(color = 'black', size = 16),\n",
|
||
|
" ),\n",
|
||
|
" cells = dict(\n",
|
||
|
" values = record_list,\n",
|
||
|
" line = dict(color = '#506784'),\n",
|
||
|
" fill = dict(color = ['#000000', 'white']),\n",
|
||
|
" align = ['center', 'center', 'left'],\n",
|
||
|
" font = dict(color = ['#F8F8F5', '#000000', '#000000'], size = 14),\n",
|
||
|
" height = 30,\n",
|
||
|
" ))\n",
|
||
|
"\n",
|
||
|
"data1 = [trace0]\n",
|
||
|
"\n",
|
||
|
"layout1 = go.Layout(\n",
|
||
|
" autosize=True,\n",
|
||
|
" height=HEIGHT,\n",
|
||
|
")\n",
|
||
|
"\n",
|
||
|
"fig1 = dict(data=data1, layout=layout1)\n",
|
||
|
"py.offline.iplot(fig1)"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"metadata": {
|
||
|
"kernelspec": {
|
||
|
"display_name": "Python 3",
|
||
|
"language": "python",
|
||
|
"name": "python3"
|
||
|
},
|
||
|
"language_info": {
|
||
|
"codemirror_mode": {
|
||
|
"name": "ipython",
|
||
|
"version": 3
|
||
|
},
|
||
|
"file_extension": ".py",
|
||
|
"mimetype": "text/x-python",
|
||
|
"name": "python",
|
||
|
"nbconvert_exporter": "python",
|
||
|
"pygments_lexer": "ipython3",
|
||
|
"version": "3.7.2"
|
||
|
}
|
||
|
},
|
||
|
"nbformat": 4,
|
||
|
"nbformat_minor": 2
|
||
|
}
|