{"id":17003861,"url":"https://github.com/cldwalker/tag-tree","last_synced_at":"2025-03-22T16:30:46.692Z","repository":{"id":441145,"uuid":"63215","full_name":"cldwalker/tag-tree","owner":"cldwalker","description":"Explores the wicked combo of machine tag queries + their results as trees.","archived":false,"fork":false,"pushed_at":"2023-01-18T23:06:24.000Z","size":353,"stargazers_count":28,"open_issues_count":4,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-11T06:46:52.605Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/cldwalker.png","metadata":{"files":{"readme":"README.rdoc","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":"2008-10-15T06:21:45.000Z","updated_at":"2023-07-31T20:31:09.000Z","dependencies_parsed_at":"2023-02-10T18:46:32.492Z","dependency_job_id":null,"html_url":"https://github.com/cldwalker/tag-tree","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/cldwalker%2Ftag-tree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cldwalker%2Ftag-tree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cldwalker%2Ftag-tree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cldwalker%2Ftag-tree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cldwalker","download_url":"https://codeload.github.com/cldwalker/tag-tree/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244231588,"owners_count":20419969,"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-14T04:32:58.639Z","updated_at":"2025-03-22T16:30:46.369Z","avatar_url":"https://github.com/cldwalker.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"== Description\n\nThis is a machine-tag, console bookmark manager. Machine tags are\nimplemented using my {has_machine_tags plugin}[http://github.com/cldwalker/has_machine_tags]. To\nuse this app you need to know {what machine tags\nare}[http://tagaholic.me/2009/03/26/what-are-machine-tags.html].  This app generates\nmachine tag trees from {wildcard machine\ntags}[http://tagaholic.me/has_machine_tags/doc/classes/HasMachineTags/TagMethods.html].  To learn\nmore about machine tag trees,\n{read}[http://tagaholic.me/2009/04/14/i-am-machine-tag-and-so-can-you.html] {these\nposts}[http://tagaholic.me/2009/04/26/machine-tagging-with-delicious.html].\n\n== Setup\n  1. Install postgres. On a mac, `brew install postgresql`.\n  2. Install bundler: `gem install bundler`\n  3. Install all gems: `bundle install`\n  4. Copy config/database.yml.example to config/database.yml and setup your db as needed.\n  5. Run migrations: `rake db:migrate`\n\n== Usage\n\nNote: The ascii tables are what you actually see in your console, compliments of\n{the hirb gem}[http://tagaholic.me/hirb/].\n\n  $ ripl rack\n\n  # list commands that are available in console\n  \u003e\u003e commands '-q=l tag_tree'\n  +--------------------------+----------------+-------+-----------------------+-----------------------------------------------------------+\n  | full_name                | lib            | alias | usage                 | description                                               |\n  +--------------------------+----------------+-------+-----------------------+-----------------------------------------------------------+\n  | machine_tag_reload       | tag_tree_core  | mtr   |                       | reload machine tag config                                 |\n  | console_find             | tag_tree_core  | uf    |                       | find urls by wildcard or ids                              |\n  | search_machine_tag_names | tag_tree_core  | mtrn  |                       | find tags within machine tag fields with regex string     |\n  | tag_tree                 | tag_tree_core  | tt    | [mtag][--view=VIEW]   | Displays different tag trees given a wildcard machine tag |\n  | quick_create             | tag_tree_core  | uc    |                       | quickly create a url                                      |\n  | rename_tag               | tag_tree_core  |       | [old_name] [new_name] |                                                           |\n  | clip_url                 | tag_tree_core  | ucp   | [*args]               |                                                           |\n  | tag_find_name_by_regexp  | tag_tree_core  | trn   |                       | find tags with regex string                               |\n  | open_url                 | tag_tree_core  | o     | [*args]               | open url object id                                        |\n  | url_find_by_regexp       | tag_tree_core  | urn   |                       | search urls with regex string                             |\n  | super_tagged_with        | tag_tree_core  | ut    |                       | find urls with wildcard machine tag                       |\n  | values                   | tag_tree_core  | vs    |                       |                                                           |\n  | namespaces               | tag_tree_core  | nsps  |                       |                                                           |\n  | query_tree               | tag_tree_core  | qt    | [mtag][--view=VIEW]   |                                                           |\n  | predicates               | tag_tree_core  | ps    |                       |                                                           |\n  | machine_tags             | tag_tree_core  | mt    |                       |                                                           |\n  | namespace_tree           | tag_tree_core  | nt    | [mtag][--view=VIEW]   |                                                           |\n  | setup_tag_tree           | tag_tree_setup |       |                       |                                                           |\n  +--------------------------+----------------+-------+-----------------------+-----------------------------------------------------------+\n  18 rows in set\n\n  # Let's create a bookmark/url with machine tags\n  \u003e\u003e Url.create :name=\u003e\"http://guides.rubyonrails.org/creating_plugins.html\", :tag_list =\u003e\"article:tags=rails\"\n  +------+------------------------------------------------------+-------------------------+-------------------------------+\n  | id   | name                                                 | description             | quick_mode_tag_list           |\n  +------+------------------------------------------------------+-------------------------+-------------------------------+\n  | 1126 | http://weblog.jamisbuck.org/2008/11/17/vim-follow-up | decent vim/rails advice | article:tutorial;rails;td=vim |\n  +------+------------------------------------------------------+-------------------------+-------------------------------+\n  1 row in set\n\n  # We can retrieve urls with wildcard machine tags. To retrieve our last bookmark \n  \u003e\u003e Url.tagged_with 'article:tags='\n  +------+------------------------------------------------------+-------------------------+-------------------------------+\n  | id   | name                                                 | description             | quick_mode_tag_list           |\n  +------+------------------------------------------------------+-------------------------+-------------------------------+\n  | 1126 | http://weblog.jamisbuck.org/2008/11/17/vim-follow-up | decent vim/rails advice | article:tutorial;rails;td=vim |\n  +------+------------------------------------------------------+-------------------------+-------------------------------+\n  1 row in set\n\n  # Let's generate a tag tree from a wildcard machine tag.\n  # This is a tree of my bookmarks under the namespace gem, with values grouped by their count:\n  \u003e\u003e tag_tree 'gem: -v g'\n  gem \n    app \n        1: textmate, vim\n    plang\n        1: js\n    std \n        1: yaml\n    tags\n        9: console\n        4: code_check, ghpages\n        3: visualize, template, api, benchmark\n        2: dt_struct, couchdb, http, introspect\n        1: sandbox, tag, article, rails, db, nomonkey, math, security, pattern, gem, sinatra\n    type\n        22: core\n        17: test\n        10: new, doc\n        9: git\n        7: task\n        4: irb, monkey, misc, mix\n        3: opt, debug, aop\n        2: lang\n        1: science\n    id  \n        1: jekyll\n    td  \n        7: tds\n        1: gist, test\n    site\n        4: ghub, gg\n        1: del, freebase\n\n== Heroku\n\nUse heroku to use this console on other computers:\n\n    # From main computer\n    $ heroku create myapp\n    $ git push heroku master\n\n    # Push your local data to heroku\n    $ heroku db:push\n\n    # From another computer, start the console\n    $ heroku run ripl rack\n\n    # When back at main computer, get your latest bookmarks\n    $ heroku db:pull\n\n== Inputting Machine Tags\n\nThis app facilitates inputting machine tags by assuming default predicates when none are given. For\nexample, instead of inputting site:tags=rails you can just input site:rails (since tags is the\ndefault predicate). You can also chain together multiple machine tags from the same namespace using\n';' i.e. app:rails;plang=ruby is the same as app:tags=rails,app:plang=ruby. Both of these features\nare from the configurable {has_machine_tags's\nquick_mode}[http://tagaholic.me/has_machine_tags/doc/classes/HasMachineTags/TagList.html].\n\nYou can setup more clever predicate defaults by copying config/machine_tags.yml.example to\nconfig/machine_tags.yml and setting it up as follows:\n\n* :global_predicates:  Contains an array of predicates you want to use globally. All values using a\n  global predicate are assumed to have that global predicate as a default. For example, if lang is a\n  global predicate in the machine tag site:lang=en, en is assumed to have lang as a default\n  predicate in all new inputs.\n\n* :dynamic_predicates: Same as global_predicates but restricted to a namespace.\n\n== Delicious Sync\n\nIf you want to sync these bookmarks with delicious, there's a delicious library that depends on the\nwww-delicious gem.\n\n== Todo\n\n* Tests!\n* Web interface as needed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcldwalker%2Ftag-tree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcldwalker%2Ftag-tree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcldwalker%2Ftag-tree/lists"}