{"id":15288496,"url":"https://github.com/envygeeks/liquid-tag-parser","last_synced_at":"2025-10-25T15:10:06.421Z","repository":{"id":56881380,"uuid":"50769807","full_name":"envygeeks/liquid-tag-parser","owner":"envygeeks","description":"Give super powers to your tag parsing in Liquid.","archived":false,"fork":false,"pushed_at":"2020-03-27T15:05:06.000Z","size":128,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-17T05:57:00.818Z","etag":null,"topics":["array","boolean","hash","jekyll","liquid","liquid-tag-parser","parsing","tag-parsing","tags"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/envygeeks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-31T10:49:47.000Z","updated_at":"2024-05-31T16:20:31.000Z","dependencies_parsed_at":"2022-08-20T22:31:20.736Z","dependency_job_id":null,"html_url":"https://github.com/envygeeks/liquid-tag-parser","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/envygeeks/liquid-tag-parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envygeeks%2Fliquid-tag-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envygeeks%2Fliquid-tag-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envygeeks%2Fliquid-tag-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envygeeks%2Fliquid-tag-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/envygeeks","download_url":"https://codeload.github.com/envygeeks/liquid-tag-parser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/envygeeks%2Fliquid-tag-parser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280808834,"owners_count":26394894,"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","status":"online","status_checked_at":"2025-10-24T02:00:06.418Z","response_time":73,"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":["array","boolean","hash","jekyll","liquid","liquid-tag-parser","parsing","tag-parsing","tags"],"created_at":"2024-09-30T15:49:47.391Z","updated_at":"2025-10-25T15:10:06.402Z","avatar_url":"https://github.com/envygeeks.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/envygeeks/liquid-tag-parser.svg?branch=master)](https://travis-ci.com/envygeeks/liquid-tag-parser)\n\n# Liquid Tag Parser\n\nLiquid Tag parser provides a robust interface to parsing your tag syntax in a way that makes sense, it uses `Shellwords`, along with escapes to allow users to do extremely robust arguments, giving you back a hash, that you get to play with.  It also has the concept of `argv1`, deep hashes, and even defaults if you give them to us.\n\n## Installation\n\n```ruby\ngem \"liquid-tag-parser\", \"~\u003e 1.9\"\n```\n\n## Usage\n\nTypically you would take the raw argument data you get from Liquid and ship that to us, we will parse it, and return to you the data, as a class.  You can access hash keys with `#args` or you can access it with `#[]` on the class.\n\n```ruby\nrequire \"liquid/tag/parser\"\nclass MyTag \u003c Liquid::Tag\n  def initialize(tag, args, tokens)\n    @raw_args = args\n    @tag = tag.to_sym\n    @args = Liquid::Tag::Parser.new(\n      args\n    )\n\n\n    @tokens = tokens\n    super\n  end\n\n  def render(_ctx_)\n    return \"it worked\" if @args[:myArg]\n    \"it didn't work\"\n  end\nend\n```\n\n```liquid\n{% mytag myArg = true %}\n```\n\n### With `argv1`\n\n```ruby\nLiquid::Tag::Parser.new(\"a b=1 c=2 !false d:e:f='3 4' @true\").args\n# =\u003e {\n#   argv1: \"a\",\n#   false: false,\n#   true: true,\n#   b: \"1\",\n#   c: \"2\",\n#   d: {\n#     e: {\n#       f: \"3 4\"\n#     }\n#   }\n# }\n```\n\n#### Escaping `argv1`\n\n```ruby\nLiquid::Tag::Parser.new(\"'a=1'\").args\n# =\u003e {\n#   argv1: \"a=1\"\n# }\n```\n\n### Without argv1\n\n```ruby\nLiquid::Tag::Parser.new(\"a=1 b=2 !false c:d:e=3:4:5 @true\").args\n# =\u003e {\n#   false: false,\n#   true: true,\n#   a: \"1\",\n#   b: \"2\",\n#   c: {\n#     d: {\n#       e: \"3:4:5\"\n#     }\n#   }\n# }\n```\n\n### With Array's\n\n```ruby\nLiquid::Tag::Parser.new(\"a=1 a=2 a=3\").args\n# =\u003e {\n#   a: [\n#     1, 2, 3\n#   ]\n# }\n```\n\n### Escaping\n\n```ruby\nLiquid::Tag::Parser.new(\"a=1=2\").args\n# =\u003e {\n#   \"a=1\": 2\n# }\n```\n\n```ruby\nLiquid::Tag::Parser.new(\"a='1=2'\").args\n# =\u003e {\n#   \"a\": \"1=2\"\n# }\n```\n\n### Booleans\n#### True\n\n```ruby\nLiquid::Tag::Parser.new(\"@true\").args\n# =\u003e {\n#   true: true\n# }\n```\n\n```ruby\nLiquid::Tag::Parser.new(\"@key1:key2\").args\n# =\u003e {\n#   key1: {\n#     key2: true\n#   }\n# }\n```\n\n#### False\n\n```ruby\nLiquid::Tag::Parser.new(\"!false\").args\n# =\u003e {\n#   false: false\n# }\n```\n\n```ruby\nLiquid::Tag::Parser.new(\"!key1:key2\").args\n# =\u003e {\n#   key1: {\n#     key2: false\n#   }\n# }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenvygeeks%2Fliquid-tag-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenvygeeks%2Fliquid-tag-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenvygeeks%2Fliquid-tag-parser/lists"}