Store data in question
Tables could be left in plain text, with some encoding to remove CR and LF characters and other symbols.
EncodeForQuestion[expr_List] :=
CopyToClipboard[
StringJoin["<data payload=\"",
URLEncode[ExportString[expr, "CSV"]], "\"/>"]]
Arbitrary data can be expressed as plain text with InputForm
and ToString
or compressed (Compress
) into plain text and wrapped into "<>" markers
InputFormForQuestion[expr_] :=
CopyToClipboard[
StringJoin["<data payload=\"",
URLEncode[ToString[InputForm[expr]]], "\"/>"]]
CompressForQuestion[expr_] := CopyToClipboard[
StringJoin[
"<data payload=\""
, Compress[expr]
, "\"/>"]
]
and pasted at the end of the question.

This has the advantage that the display of the question is not affected, the format is obvious and can be retrieved by hand if necessary, going to edit the question to then copy&paste the data. Hopefully in the future the browser add-on could provide a link to the data to download.
Programmatically retrieve the data
The plain text markdown version of the question body can be retrieved by using the Stack Exchange API without evaluating, for inspection.
GetQuestionPlain[SEQuestionId_Integer] := Import[
URLBuild[
{"https://api.stackexchange.com", "2.2", "posts", ToString[SEQuestionId]}
, {"site" -> "mathematica", "filter" -> "!SWK9z)LGKmEEgF5)yL"}]
, "RawJSON"][["items", 1, "body_markdown"]]
The data stored in the question can be downloaded and parsed using
GetDataFromQuestion[SEQuestionId_Integer] :=
StringCases[GetQuestionPlain[SEQuestionId],
"<data payload="" ~~ payload___ ~~ ""/>" :> payload]
Where GetDataFromQuestion
takes as argument the question ID available in the URL.
Example:

Uncompress/@GetDataFromQuestion[144472]

Notice that this allows multiple sets of data.
To do
- Work out storage limits.
- Use labels to identify multiple payloads
Feel free to edit this answer.
SEEncodeExpression
/SEDecodeImage
). $\endgroup$Import[url1][url2]
that is, executing code fromurl1
. $\endgroup$