This file describes the schemata used for notmuch's structured output
-format (currently JSON).
+format (currently JSON and S-Expressions).
[]'s indicate lists. List items can be marked with a '?', meaning
they are optional; or a '*', meaning there can be zero or more of that
alternates (e.g., int|string means something can be an int or a
string).
+For S-Expression output, lists are printed delimited by () instead of
+[]. Objects are printed as p-lists, i.e. lists where the keys and values
+are interleaved. Keys are printed as keywords (symbols preceded by a
+colon), e.g. (:id "123" :time 54321 :from "foobar"). Null is printed as
+nil, true as t and false as nil.
+
Common non-terminals
--------------------
[thread_node*] # children of message
]
-# A message (format_part_json)
+# A message (format_part_sprinter)
message = {
- # (format_message_json)
+ # (format_message_sprinter)
id: messageid,
match: bool,
filename: string,
body?: [part] # omitted if --body=false
}
-# A MIME part (format_part_json)
+# A MIME part (format_part_sprinter)
part = {
id: int|string, # part id (currently DFS part number)
content?: string
}
-# The headers of a message or part (format_headers_json with reply = FALSE)
+# The headers of a message or part (format_headers_sprinter with reply = FALSE)
headers = {
Subject: string,
From: string,
To?: string,
Cc?: string,
Bcc?: string,
+ Reply-To?: string,
Date: string
}
-# Encryption status (format_part_json)
+# Encryption status (format_part_sprinter)
encstatus = [{status: "good"|"bad"}]
-# Signature status (format_part_sigstatus_json)
+# Signature status (format_part_sigstatus_sprinter)
sigstatus = [signature*]
signature = {
# The headers of the constructed reply
reply-headers: reply_headers,
- # As in the show format (format_part_json)
+ # As in the show format (format_part_sprinter)
original: message
}
-# Reply headers (format_headers_json with reply = TRUE)
+# Reply headers (format_headers_sprinter with reply = TRUE)
reply_headers = {
Subject: string,
From: string,