{"id":21206611,"url":"https://github.com/oncomouse/taroko-gorge-tracery","last_synced_at":"2026-02-15T03:33:14.684Z","repository":{"id":149628480,"uuid":"55555688","full_name":"oncomouse/taroko-gorge-tracery","owner":"oncomouse","description":"Taroko Gorge Re-implemented in Tracery","archived":false,"fork":false,"pushed_at":"2016-04-06T13:11:18.000Z","size":22,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-08T21:57:00.337Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oncomouse.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-05T21:45:24.000Z","updated_at":"2021-01-17T17:22:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"5d9d99ea-814c-45f3-bb4b-9653e8390e65","html_url":"https://github.com/oncomouse/taroko-gorge-tracery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oncomouse/taroko-gorge-tracery","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Ftaroko-gorge-tracery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Ftaroko-gorge-tracery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Ftaroko-gorge-tracery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Ftaroko-gorge-tracery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oncomouse","download_url":"https://codeload.github.com/oncomouse/taroko-gorge-tracery/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oncomouse%2Ftaroko-gorge-tracery/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29466929,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T01:01:38.065Z","status":"online","status_checked_at":"2026-02-15T02:00:07.449Z","response_time":118,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2024-11-20T20:56:13.576Z","updated_at":"2026-02-15T03:33:14.666Z","avatar_url":"https://github.com/oncomouse.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# taroko-gorge-tracery\n\nThis is a port of [Taroko Gorge](http://nickm.com/taroko_gorge/original.html), Nick Montfort's iconic algorithmic poem, into [Tracery](https://github.com/galaxykate/tracery).\n\n[See it in action](http://oncomouse.github.io/taroko-gorge-tracery/).\n\n## Why Tracery?\n\nI wanted a simpler structure so that students in my class, with little programming experience, could learn how to do variations on Montford's poem.\n\nBy using an expanding grammar, Tracery is much easier to understand and reprogram. Essentially, it turns this:\n\n```javascript\nvar above='brow,mist,shape,layer,the crag,stone,forest,height'.split(',');\nvar below='flow,basin,shape,vein,rippling,stone,cove,rock'.split(',');\nvar trans='command,pace,roam,trail,frame,sweep,exercise,range'.split(',');\nvar imper='track,shade,translate,stamp,progress through,direct,run,enter';\nimper=imper.split(',');\nvar intrans='linger,dwell,rest,relax,hold,dream,hum'.split(',');\nvar s='s,'.split(',');\nvar texture='rough,fine'.split(',');\n```\n\nInto this:\n\n```javascript\n{\n\t\"above\": [\"brow\", \"mist\", \"shape\", \"layer\", \"the crag\", \"stone\", \"forest\", \"height\"],\n\t\"below\": [\"flow\", \"basin\", \"shape\", \"vein\", \"rippling\", \"stone\", \"cove\", \"rock\"],\n\t\"trans\": [\"command\", \"pace\", \"roam\", \"trail\", \"frame\", \"sweep\", \"exercise\", \"range\"],\n\t\"imper\": [\"track\", \"shade\", \"translate\", \"stamp\", \"progress through\", \"direct\", \"run\", \"enter\"],\n\t\"intrans\": [\"linger\", \"dwell\", \"rest\", \"relax\", \"hold\", \"dream\", \"hum\"],\n\t\"adjs\": [\"encompassing\", \"rough\", \"fine\", \"sinuous\", \"straight\", \"objective\", \"arched\", \"cool\", \"clear\", \"dim\", \"driven\"],\n\t\"cave\": [\"#imper# #adjs# #adjs#\", \"#imper# #adjs# #adjs# #adjs#\", \"#imper# #adjs# #adjs# #adjs# #adjs#\"],\n\t\"site\": [\"#above.s# #intrans#\", \"#below.s# #intrans#\"],\n\t\"path_below\": [\"#below.s#\", \"#below#\"],\n\t\"path\": [\"#above.s# #trans# the #path_below#\", \"#above# #trans.s# the #path_below#\"],\n\t\"paths\": [\"#path# / #site# / #site# / #path#\", \"#path# / #site# / #site# / #site# / #path#\", \"#path# / #site# / #site# / #site# / #site# / #path#\"],\n\t\"origin\": [\"#paths# /  / \\u00a0\\u00a0 #cave#  \\u2014 /  \"]\n}\n```\n\n## To Use To Make Your Own\n\nYou can either edit the `./javascript/app.js` file and set `var tracery_grammar;` equal to a tracery grammar or you can edit the `data/grammar.json` file to include your grammar (the Tracery port uses Zepto, required by Tracery, to load external grammars via AJAX).\n\nFrom there, just upload all the files to a webserver and you're done.\n\nYou can also use jQuery in place of Zepto, if that works for your project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foncomouse%2Ftaroko-gorge-tracery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foncomouse%2Ftaroko-gorge-tracery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foncomouse%2Ftaroko-gorge-tracery/lists"}