Please allow Markdown parsing in the update API

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.

5 Likes

Needing this as well!