Host your bookmarks or maintain a link blog.
- post from a command-line, a bookmarklet, or directly from your murlsh
- fetches url titles and generates thumbnails from page
- jGrowls embedded versions of Imageshack, Imgur, Vimeo and YouTube urls
- converts Twitter status urls to their full text and adds user thumbnail
- generates Atom and RSS feeds
- generates podcast RSS feed and m3u file for all audio urls
- generates json and jsonp feeds for client-side inclusion in other sites
- search, all output formats can be filtered by search criteria
- uses HTML5 audio for mp3 and ogg urls
- looks good on iPhone
- PubSubHubbub notification
- plugin interface
- rack interface
- Gravatar support
- generates import scripts from delicious api exports
- optionally store thumbnails in S3
- experimental support for posting by email via POP
See http://urls.matthewm.boedicker.org/ for example.
DESTINATION_DIRECTORY is the web directory to install the murlsh site to.
gem install murlsh murlsh DESTINATION_DIRECTORY cd DESTINATION_DIRECTORY rake config[root_url,<site root url>] change anything else you want in config.yaml rake init
S3 is used for thumbnail storage because Heroku cannot write local files.
gem install heroku heroku keys:add gem install murlsh mkdir murlsh_deploy <or any other name> cd murlsh_deploy murlsh . git init heroku create --stack cedar <choose a name> rake app:gemfile bundle install rake heroku:config rake config[s3_bucket,<your S3 bucket name>] rake config[s3_id,<your S3 id>] rake config[s3_secret,<your S3 secret>] change anything else you want in config.yaml rake user:add git add . git commit git push heroku master heroku addons:add shared-database heroku run rake db:migrate
Create a fork on Github and clone it.
rake config[root_url,http://localhost:9292/] rake db:migrate rake user:add rackup
Browse to http://localhost:9292/
This will produce a bookmarklet link customized with your murlsh’s URL and your password. Create a link in your bookmarks toolbar with the output; the resulting bookmarklet will let you post to your murlsh from whatever page you’re currently viewing.
If you select text on the page before hitting the bookmarklet, your selection will be used as the title; otherwise, the page’s title will be used.
will produce a customized shell script that will take command-line arguments for URL, etc, and post to your murlsh using curl.
- http://your_root/podcast.rss (urls with audio/mpeg content type)
- http://your_root/m3u.m3u (urls with audio content types)
- http://your_root/json.json?callback=x (jsonp)
Thumbnail images are generated from added urls using plumnailer. They are scaled down to ‘thumbnail_max_side’ in config.yaml and stored locally.
Thumbnails can also be manually specified by passing their url as the ‘thumbnail’ parameter when adding a url. They are also scaled and stored locally.
The plugin add_pre_40_thumbnail_shortcuts.rb can be used to specify short names for frequently used thumbnail urls that can be passed in instead.
Classes in the plugins directory can be used to change behavior at certain points. Each class that extends Murlsh::Plugin and sets an instance variable called @hook will be called for that hook. Each plugin has a run() method that accepts arguments and returns something. These methods will be called in the order of their class names sorted lexically. Some hooks pass the output of their run() method to the next plugin for that hook so that the data can be passed through a chain of methods that each do something to it.
A lot of the standard behavior is implemented as plugins. See the plugins directory for examples.
|add_pre||called before a new url is saved||url, config hash||undefined|
|add_post||called after a new url is saved||url, config hash||undefined|
|avatar||called to get an avatar url from an email md5 sum||avatar url, url, config hash||avatar url|
|store_asset||store an asset somewhere where it can be loaded by url||name, data, config hash||asset url if successfully stored|
|url_display_add||called to display additional information after urls||markup builder, url, config hash||undefined|
|url_display_pre||called to modify a url on-the-fly before display, does not change database||url, rack request, config hash||undefined|
Murlsh can notify PubSubHubbub hubs when a new url is added by adding them to config.yaml. The pubsubhubbub_hubs key is a list of hashes in the following format:
pubsubhubbub_hubs: - publish_url: http://pubsubhubbub.appspot.com/publish subscribe_url: http://pubsubhubbub.appspot.com/
publish_url is where the notifications get sent subscribe_url is what gets put in the feed as link rel=“hub”
This will make updates to your feed show up in Google Reader instantly.
Questions and comments: email@example.com