TLDR: add a parseMarkdown
parameter to the update
API.
I was able to pull rich text from a “Canvas” type column in a table, including a link, from the Coda API when using valueFormat=rich
in the query.
curl "https://coda.io/apis/v1/docs/<docID>/tables/<tableID>/rows/<rowID>?valueFormat=rich" \
-H 'Authorization: Bearer <authID>'
However, when I try to update the same column in the same row, I cannot get the same text that came out of the API to be accepted into the API. Here’s what I tried…
curl -X "PUT" "https://coda.io/apis/v1/docs/<docID>/tables/<tableID>/rows/<rowID>" \
-H 'Authorization: Bearer <authID>' \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"row": {
"cells": [
{
"value": "Hi Bob. This is [Bob](https://eric.clst.org).",
"column": "<columnID>"
}
]
}
}'
It seems like a basic principle of API design should be that you can put in what you get out. Otherwise, even simple “backup” scripts cannot work. Note, it made not difference if I used the disableParsing
parameter for the query.
It would be really helpful if Coda fixed this. Perhaps something like a parseMarkdown
parameter could be added to the update
API so that we could opt into a behavior that includes Markdown parsing, just as we can now opt into the 'disableParsing` behavior.
This post was originally a response to a community ask, but I wanted to make a specific suggestion, so I moved it here.