SHARE
TWEET

futhark2

a guest Jun 17th, 2015 63 Never
  1. <!DOCTYPE html>
  2.  
  3. <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5.     <meta charset="utf-8" />
  6.     <title>ᚠᚢᚦᚨᚱᚲ</title>
  7.         <style>
  8.                 #text {
  9.                         display: block;
  10.                         width: 100%;
  11.                         height: 100%;
  12.                         border: none;
  13.                         font-size: 18pt;
  14.                 }
  15.                
  16.                 #cheat {
  17.                         border: 1px dashed darkred;
  18.                         position: relative;
  19.                         border-radius: 2em;
  20.                         padding: 2em;
  21.                         width:30em;
  22.                         margin-top: -30em;
  23.                         margin-left: auto;
  24.                         margin-right: auto;
  25.                         display: none;
  26.                         background-color: white;
  27.                 }
  28.                
  29.                 #show {
  30.                         border: 1px solid darkblue;
  31.                         background-color: lightgray;
  32.                         border-radius: 5px;
  33.                         text-align: center;
  34.                         margin-left: auto;
  35.                         margin-right: auto;
  36.                         width: 5em;
  37.                         cursor: default;
  38.                 }
  39.                
  40.                 #show:active {
  41.                         background-color: darkgray;
  42.                 }
  43.                
  44.                 table {
  45.                         margin-left:auto;
  46.                         margin-right:auto;
  47.                         border-spacing: 1em;
  48.                 }
  49.                
  50.                 table em {
  51.                         color: darkred;
  52.                         font-weight: bold;
  53.                         font-style: normal;
  54.                 }
  55.                
  56.                 #x {
  57.                         display: block;
  58.                         float: right;
  59.                         cursor: default;
  60.                 }
  61.                
  62.         </style>
  63. </head>
  64. <body>
  65.         <textarea id="text" rows="20" placeholder="Type your ᚠᚢᚦᚨᚱᚲ here..."></textarea><br/>
  66.         <div id='show' onclick="reveal()">show cheatsheet</div>
  67.     <div id="cheat">
  68.                 <span id='x' onclick="document.getElementById('cheat').style.display = 'none'; document.getElementById('text').focus();">[&times;]</span>
  69.                 <table>
  70.                         <thead>
  71.                                 <th>Keystroke</th>
  72.                                 <th>Rune</th>
  73.                                 <th>Pronunciation</th>
  74.                         </thead>
  75.                         <tr>
  76.                                 <td>a</td>
  77.                                 <td></td>
  78.                                 <td><em>aw</em>ning, c<em>a</em>ll, or l<em>aw</em></td>
  79.                         </tr>
  80.                        
  81.                         <tr>
  82.                                 <td>b</td>
  83.                                 <td></td>
  84.                                 <td><em>b</em>irch</td>
  85.                         </tr>
  86.                        
  87.                         <tr>
  88.                                 <td>c, k, q</td>
  89.                                 <td></td>
  90.                                 <td><em>k</em>i<em>ck</em> or <em>c</em>ane</td>
  91.                         </tr>
  92.                        
  93.                         <tr>
  94.                                 <td>d</td>
  95.                                 <td></td>
  96.                                 <td><em>d</em>og or voiced th as in <em>th</em>e</td>
  97.                         </tr>
  98.                        
  99.                         <tr>
  100.                                 <td>e</td>
  101.                                 <td></td>
  102.                                 <td>d<em>ay</em> or n<em>eigh</em>bor</td>
  103.                         </tr>
  104.                        
  105.                         <tr>
  106.                                 <td>f</td>
  107.                                 <td></td>
  108.                                 <td><em>f</em>ire</td>
  109.                         </tr>
  110.                        
  111.                         <tr>
  112.                                 <td>g</td>
  113.                                 <td></td>
  114.                                 <td><em>g</em>ift or <em>y</em>es</td>
  115.                         </tr>
  116.                        
  117.                         <tr>
  118.                                 <td>h</td>
  119.                                 <td></td>
  120.                                 <td><em>h</em>ail</td>
  121.                         </tr>
  122.                        
  123.                         <tr>
  124.                                 <td>H</td>
  125.                                 <td></td>
  126.                                 <td><em>h</em>ail</td>
  127.                         </tr>
  128.                        
  129.                         <tr>
  130.                                 <td>i</td>
  131.                                 <td></td>
  132.                                 <td>sl<em>ee</em>p</td>
  133.                         </tr>
  134.                        
  135.                         <tr>
  136.                                 <td>I</td>
  137.                                 <td></td>
  138.                                 <td>pr<em>i</em>de or p<em>i</em>ck</td>
  139.                         </tr>
  140.                        
  141.                         <tr>
  142.                                 <td>j</td>
  143.                                 <td></td>
  144.                                 <td><em>j</em>aw or <em>y</em>ear</td>
  145.                         </tr>
  146.                        
  147.                         <tr>
  148.                                 <td>l</td>
  149.                                 <td></td>
  150.                                 <td><em>l</em>ife</td>
  151.                         </tr>
  152.                        
  153.                         <tr>
  154.                                 <td>m</td>
  155.                                 <td></td>
  156.                                 <td><em>m</em>an</td>
  157.                         </tr>
  158.                        
  159.                         <tr>
  160.                                 <td>n</td>
  161.                                 <td></td>
  162.                                 <td><em>n</em>eed</td>
  163.                         </tr>
  164.                        
  165.                         <tr>
  166.                                 <td>N</td>
  167.                                 <td></td>
  168.                                 <td>si<em>ng</em></td>
  169.                         </tr>
  170.                        
  171.                         <tr>
  172.                                 <td>o</td>
  173.                                 <td></td>
  174.                                 <td><em>oa</em>th</td>
  175.                         </tr>
  176.                        
  177.                         <tr>
  178.                                 <td>p</td>
  179.                                 <td></td>
  180.                                 <td><em>p</em>oem</td>
  181.                         </tr>
  182.                        
  183.                         <tr>
  184.                                 <td>r</td>
  185.                                 <td></td>
  186.                                 <td><em>r</em>ide</td>
  187.                         </tr>
  188.                        
  189.                         <tr>
  190.                                 <td>s</td>
  191.                                 <td></td>
  192.                                 <td><em>s</em>un</td>
  193.                         </tr>
  194.                        
  195.                         <tr>
  196.                                 <td>S</td>
  197.                                 <td></td>
  198.                                 <td><em>s</em>un</td>
  199.                         </tr>
  200.                        
  201.                         <tr>
  202.                                 <td>t</td>
  203.                                 <td></td>
  204.                                 <td>unvoiced th as in <em>th</em>orn</td>
  205.                         </tr>
  206.                        
  207.                         <tr>
  208.                                 <td>T</td>
  209.                                 <td></td>
  210.                                 <td><em>t</em>ime</td>
  211.                         </tr>
  212.                        
  213.                         <tr>
  214.                                 <td>u</td>
  215.                                 <td></td>
  216.                                 <td>b<em>oo</em>ze or b<em>oo</em>k</td>
  217.                         </tr>
  218.                        
  219.                         <tr>
  220.                                 <td>w</td>
  221.                                 <td></td>
  222.                                 <td><em>w</em>arm</td>
  223.                         </tr>
  224.                        
  225.                         <tr>
  226.                                 <td>z</td>
  227.                                 <td></td>
  228.                                 <td>snee<em>z</em>e or snee<em>r</em></td>
  229.                         </tr>                  
  230.                 </table>
  231.         </div>
  232.         <script>
  233.                
  234.                 //set up cheatsheet show/hide behavior
  235.                 var reveal = function() {
  236.                         document.getElementById('cheat').style.display = 'block';
  237.                         document.getElementById('cheat').focus();
  238.                 }
  239.                
  240.                 window.addEventListener("keydown",function(e) {
  241.                         document.getElementById('cheat').style.display = 'none';
  242.                         document.getElementById('text').focus()
  243.                         });
  244.                
  245.                 //create keymap
  246.                 var futhark = {
  247.                     a: 'ᚨ',
  248.                     b: 'ᛒ',
  249.                     c: 'ᚲ',
  250.                     d: 'ᛞ',
  251.                     e: 'ᛖ',
  252.                     f: 'ᚠ',
  253.                     g: 'ᚷ',
  254.                     h: 'ᚺ',
  255.                     i: 'ᛁ',
  256.                     j: 'ᛃ',
  257.                     k: 'ᚲ',
  258.                     l: 'ᛚ',
  259.                     m: 'ᛗ',
  260.                     n: 'ᚾ',
  261.                     o: 'ᛟ',
  262.                     p: 'ᛈ',
  263.                     q: 'ᚲ',
  264.                     r: 'ᚱ',
  265.                     s: 'ᛊ',
  266.                     t: 'ᚦ',
  267.                     u: 'ᚢ',
  268.                     v: 'v',
  269.                     w: 'ᚹ',
  270.                     x: 'x',
  271.                     y: 'ᛇ',
  272.                     z: 'ᛉ',
  273.                     A: 'A',
  274.                     B: 'B',
  275.                     C: 'C',
  276.                     D: 'D',
  277.                     E: 'E',
  278.                     F: 'F',
  279.                     G: 'G',
  280.                     H: 'ᚻ',
  281.                     I: 'ᛇ',
  282.                     J: 'J',
  283.                     K: 'K',
  284.                     L: 'L',
  285.                     M: 'M',
  286.                     N: 'ᛝ',
  287.                     O: 'O',
  288.                     P: 'P',
  289.                     Q: 'Q',
  290.                     R: 'R',
  291.                     S: 'ᛋ',
  292.                     T: 'ᛏ',
  293.                     U: 'U',
  294.                     V: 'V',
  295.                     W: 'W',
  296.                     X: 'X',
  297.                     Y: 'Y',
  298.                     Z: 'Z'
  299.                 }
  300.                
  301.                 //futhark transliterator
  302.                 var transliterate = function() {
  303.                         var str = document.getElementById('text').value.split('');
  304.                         for(var i = 0; i<str.length; i++) {
  305.                                 str[i] = str[i].match(/^[a-zA-Z]+$/)? futhark[str[i]] : str[i];
  306.                         }
  307.                         document.getElementById('text').value = str.join('');  
  308.                 }
  309.                
  310.                 //add event listener to transliterate keystrokes from text area
  311.                 document.getElementById('text').addEventListener('input',function() {transliterate();});
  312.         </script>
  313. </body>
  314. </html>
RAW Paste Data
Top