Как в обычном JavaScript правильно получить доступ к нужному дочернему элементу?
const table = document.getElementsByTagName("table")
в переменной table будет HTMLCollection, а не один элемент.

tabledata = table.childNodes[0] //  ошибка, у коллекции нет свойства childNodes
исправить не сложно:
const tables = document.getElementsByTagName("table")
const tabledata = tables[0].childNodes[0] 
теперь в tabledata первый узел из первой таблицы. Непонятно только зачем называть пустой текстовый узел словом tabledata.

const columnsdata = tabledata.getElementsByTagName("col"); // ошибка, у пустого текстового узла нет дочерних элементов

Так можно и дальше продолжать. Вы лучше почитайте внимательнее что возвращают методы, которые вы используете. И присмотритесь в querySelector и querySelectorAll
Половину кода можно выбросить заменив на 
const table = document.querySelector('table') // первая попавшаяся таблица
const cols = table.querySelectorAll('col') // NodeList c колонками
cols.forEach(col => console.log)

браузер не хочет выполнять выполнять операции с сhildren и childNodesчто значит "не хочет"?  На самом деле он не может выполнять те команды, которые вы ему понаписали, и сообщает об ошибке. Которую вы даже не стали приводить в вопросе :)
Ошибка номер 1
Вы надеетесь что элемент markdown-data точно есть в коде и не делаете ни каких проверок нашли вы что то или нет
Ошибка номер 2
Какой тип возвращает getElementsByClassName
https://developer.mozilla.org/ru/docs/Web/API/Docu...

Просто почитайте теорию по методам которые используете, половина вопросов отпадет.

А еще ест метод debug, на крайняк console.log неужели лениво было самому продебажить свой код ?