mq is a command-line tool that processes Markdown using a syntax similar to jq. It's written in Rust, allowing you to easily slice, filter, map, and transform structured data.
# Hello world
select(or(.[], .code, .h)) | upcase() | add(" Hello World")
# Exclude code
select(not(.code))
# Extract js code
.code("js")
# Extract table
.[1][]
# Extract list
.[1]
# Extract MDX
select(is_mdx())
# Custom function
def snake_to_camel(x):
let words = split(x, "_")
| foreach (word, words):
let first_char = upcase(first(word))
| let rest_str = downcase(slice(word, 1, len(word)))
| add(first_char, rest_str);
| join("");
| snake_to_camel()