{"id":16895012,"url":"https://github.com/theduke/meteor-spiderable","last_synced_at":"2026-05-11T04:55:03.407Z","repository":{"id":32524762,"uuid":"36106097","full_name":"theduke/meteor-spiderable","owner":"theduke","description":"Fork of Meteor spiderable to support Docker.","archived":false,"fork":false,"pushed_at":"2015-05-23T04:14:27.000Z","size":120,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-25T10:42:29.067Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theduke.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}},"created_at":"2015-05-23T03:53:05.000Z","updated_at":"2015-05-23T04:06:06.000Z","dependencies_parsed_at":"2022-09-04T01:01:02.074Z","dependency_job_id":null,"html_url":"https://github.com/theduke/meteor-spiderable","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/theduke%2Fmeteor-spiderable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theduke%2Fmeteor-spiderable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theduke%2Fmeteor-spiderable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theduke%2Fmeteor-spiderable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theduke","download_url":"https://codeload.github.com/theduke/meteor-spiderable/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244591485,"owners_count":20477710,"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":"2024-10-13T17:20:52.845Z","updated_at":"2026-05-11T04:54:58.385Z","avatar_url":"https://github.com/theduke.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# spiderable\n\n## Why this fork was needed\n\nThis is a fork of the regular spiderable package of https://github.com/meteor/meteor.\nThis fork does not use the /dev/stdin workaround for handling the PhantomJS result,\nand therefore works well on Docker containers, where /dev/stdin can be an issue.\n\nThe changes to the original package are minimal (only 3 lines are different).\n\nInspired by https://github.com/ongoworks/spiderable.\n\n## Package info\n\n\n`spiderable` is part of [Webapp](https://www.meteor.com/webapp). It's one possible way to allow web search engines to index a Meteor application. It uses the [AJAX Crawling specification](https://developers.google.com/webmasters/ajax-crawling/) published by Google to serve HTML to compatible spiders (Google, Bing, Yandex, and more).\n\nWhen a spider requests an HTML snapshot of a page the Meteor server runs the client half of the application inside [phantomjs](http://phantomjs.org/), a headless browser, and returns the full HTML generated by the client code.\n\nIn order to have links between multiple pages on a site visible to spiders, apps must use real links (eg `\u003ca href=\"/about\"\u003e`) rather than simply re-rendering portions of the page when an element is clicked. Apps should render their content based on the URL of the page and can use [HTML5 pushState](https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history) to alter the URL on the client without triggering a page reload. See the [Todos example](http://meteor.com/examples/todos) for a demonstration.\n\nWhen running your page, `spiderable` will wait for all publications to be ready. Make sure that all of your [`publish functions`](#meteor_publish) either return a cursor (or an array of cursors), or eventually call [`this.ready()`](#publish_ready). Otherwise, the `phantomjs` executions will fail.\n\n## Notes\n\nIf you deploy your application with `meteor bundle`, you must install `phantomjs` ([http://phantomjs.org](http://phantomjs.org/)) somewhere in your `$PATH`. If you use `meteor deploy` this is already taken care of.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheduke%2Fmeteor-spiderable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheduke%2Fmeteor-spiderable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheduke%2Fmeteor-spiderable/lists"}