{"id":28184438,"url":"https://github.com/byteface/typenav","last_synced_at":"2025-07-17T16:38:52.051Z","repository":{"id":142609104,"uuid":"50103014","full_name":"byteface/typenav","owner":"byteface","description":"navigate websites with your keyboard","archived":false,"fork":false,"pushed_at":"2016-01-22T07:43:35.000Z","size":271,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-12T04:52:28.855Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/byteface.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-21T11:27:06.000Z","updated_at":"2016-01-21T11:35:58.000Z","dependencies_parsed_at":"2023-04-18T17:20:09.581Z","dependency_job_id":null,"html_url":"https://github.com/byteface/typenav","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteface%2Ftypenav","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteface%2Ftypenav/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteface%2Ftypenav/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/byteface%2Ftypenav/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/byteface","download_url":"https://codeload.github.com/byteface/typenav/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254470931,"owners_count":22076588,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-16T05:15:24.706Z","updated_at":"2025-05-16T05:15:25.275Z","avatar_url":"https://github.com/byteface.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# typenav\n### Navigate websites with the keyboard\n\ntypenav enables the keyboard for quick site navigation and can be setup without much effort. It's useful to quickly jump around a website with strokes of the keyboard.\n\nIt's very easy to add typenav to your site and enable keyboard navigation for your users. \n\nAlso there's a chrome-plugin *almost ready*, allowing you to navigate lots of websites faster and even add configurations for your own favourite sites.\n\n\n## setup...\nexample json configuration...\n\n```\n{\n\t\"nav\":[\n\t\t{\n\t\t\t\"keys\":[\"c\"],\n\t\t\t\"url\":\"/contact\"\n\t\t},\n\t\t{\n\t\t\t\"keys\":[\"h\"],\n\t\t\t\"url\":\"/home\"\n\t\t}\n\t]\n}\n```\n\nWith this example typing 'c' or 'h' would launch the url\n\n\n## longer keys\nyou can now also have longer keys. if you type part of a key it will trigger...\n\n```\n{\n\t\"nav\":[\n\t\t{\n\t\t\t\"keys\":[\"cats\"],\n\t\t\t\"url\":\"/cats\",\n\t\t\t\"target\":\"parent\"\n\t\t},\n\t\t{\n\t\t\t\"keys\":[\"cobras\"],\n\t\t\t\"url\":\"/cobras\",\n\t\t\t\"target\":\"parent\"\n\t\t},\n\t\t{\n\t\t\t\"keys\":[\"facebook\"],\n\t\t\t\"url\":\"http://www.facebook.com/mypage\",\n\t\t\t\"target\":\"blank\"\n\t\t}\n\t]\n}\n```\n\nso typing 'ca' at least would take you to the cats page, typing 'co' to the cobras page and 'fa' would send the user to your facebook page.\n\n\n## init\nby default typenav loads a config.json from same directory as the html page...\n```\nTYPENAV.init();\n```\n\nhowever you can specify the path...\n```\nTYPENAV.init( '/path/to/my/config.json' );\n```\n\nbut even more awesome is you can pass a chunk of json allowing you to build dynamic typenavs on the fly...\n```\ntypenav_json={\"nav\":[{\"keys\":[\"a\"],\"url\":\"#abracadabra\"}]}\n\nTYPENAV.init( typenav_json );\n```\n\n\n\n## NOTES\n\n\t• If a form field on the page is selected, typenav is disabled as to not block users from using textboxes etc\n\t• Binding to hash urls allows you to expand functionality by triggering anchors or js functions\n\n\n## EXAMPLES\ncheck out examples/quick for quick setup\ntypenav in action at http://en.r8lst.com/ - press any key on the keyboard to jump to top level nav items\nTODO - dynamic nav example.\n\n\n## CHROME PLUGIN\nThe chrome plugin loads config files depending on the site you're on. These config files are on github and can be found in the gh-pages branch in the websites folder. So anyone can add a config.json for sites used a lot.\n\nplugin is in /archive at mo whilst i sort it out.\n\n\n## LICENCE\nGPL","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyteface%2Ftypenav","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbyteface%2Ftypenav","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbyteface%2Ftypenav/lists"}