The following code snippets showcase
how you can return content based on a
client query via a search query.


layout/theme.liquid

Propagates alternative layouts.

{%- liquid
 
    #
    #   Layout : 𝗧ð—ĩð—ē𝗚ð—ē
    #
 
    ############################################################################
 
    capture layout
        render 'Layout'
    endcapture
 
    ############################################################################
 
    unless layout == blank
        echo layout
        break
    endunless
 
-%}
 
 
<html>
    ... 
</html>

snippets/Layout.liquid

Renders alternative layouts.

{%- liquid
 
    #
    #   Snippet : 𝗟ð—Ū𝘆𝗞𝘂𝘁
    #
 
    #
    #   ð—Ģð—Ūð—ŋð—Ū𝗚ð—ē𝘁ð—ēð—ŋ𝘀
    #   @ request
    #
 
    ############################################################################
 
    assign type = request.page_type
 
    ############################################################################
 
    if type == 'search'
        render 'Endpoints'
        break
    endif
 
-%}

snippets/Endpoints.liquid

Checks whether the search query starts with a given marker.

{%- liquid
 
    #
    #   Snippet : 𝗘ð—ŧð—ąð—―ð—žð—ķð—ŧ𝘁𝘀
    #
 
    #
    #   ð—Ģð—Ūð—ŋð—Ū𝗚ð—ē𝘁ð—ēð—ŋ𝘀
    #   @ search
    #
 
    ############################################################################
 
    assign query = search.terms
 
    assign initial = query | truncate : 1 , ''
 
    ############################################################################
 
    unless initial == 'ðŸą'
        break
    endunless
 
    ############################################################################
 
    assign query = query | remove_first : initial
 
    ############################################################################
 
    render 'Endpoint-Cats' with query
 
-%}

snippets/Endpoint-Cats.liquid

Returns JSON with as many ðŸąs as the query specified.

{%- liquid
 
    #
    #   Snippet : 𝗘ð—ŧð—ąð—―ð—žð—ķð—ŧ𝘁 - 𝗖ð—Ū𝘁𝘀
    #
 
    #
    #   ð—Ģð—Ūð—ŋð—Ū𝗚ð—ē𝘁ð—ēð—ŋ𝘀
    #   $ Endpoint-Cats : String
    #
 
    ############################################################################
 
    assign query = Endpoint-Cats
 
    ############################################################################
 
    capture cats
 
        for i in (1..query)
            echo 'ðŸą'
        endfor
 
    endcapture
 
-%}
 
{
    "cats" : {{ cats | json }}
}

Output

When you navigate to /search?q=ðŸą20

Text Cats

When you open to /search.json?q=ðŸą20

JSON Cats