diff --git a/lib/linguist/languages.yml b/lib/linguist/languages.yml index 95b94f20..fa0594f0 100644 --- a/lib/linguist/languages.yml +++ b/lib/linguist/languages.yml @@ -868,6 +868,12 @@ JSONLD: lexer: JavaScript primary_extension: .jsonld +JSONiq: + type: programming + ace_mode: jsoniq + lexer: XQuery + primary_extension: .jq + Jade: group: HTML type: markup diff --git a/samples/JSONiq/detail.jq b/samples/JSONiq/detail.jq new file mode 100644 index 00000000..9ae43f8b --- /dev/null +++ b/samples/JSONiq/detail.jq @@ -0,0 +1,9 @@ +(: Query for returning one database entry :) + +import module namespace req = "http://www.28msec.com/modules/http-request"; +import module namespace catalog = "http://guide.com/catalog"; + +variable $id := (req:param-values("id"), "London")[1]; +variable $part := (req:param-values("part"), "main")[1]; + +catalog:get-data-by-key($id, $part) diff --git a/samples/JSONiq/query.jq b/samples/JSONiq/query.jq new file mode 100644 index 00000000..d1abbaba --- /dev/null +++ b/samples/JSONiq/query.jq @@ -0,0 +1,17 @@ +(: Query for searching the database for keywords :) + +import module namespace index = "http://guide.com/index"; +import module namespace catalog = "http://guide.com/catalog"; + +import module namespace req = "http://www.28msec.com/modules/http-request"; + +variable $phrase := (req:param-values("q"), "London")[1]; +variable $limit := integer((req:param-values("limit"), 5)[1]); + +[ +for $result at $idx in index:index-search($phrase) +where $idx le $limit +let $data := catalog:get-data-by-id($result.s, $result.p) +return + {| { score : $result.r } , $data |} +]