Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.07.2017, 00:01
Новичок на форуме
Отправить личное сообщение для vicci Посмотреть профиль Найти все сообщения от vicci
 
Регистрация: 18.07.2017
Сообщений: 2

Конвертация таблицы html в markdown с помощью bookmarklet
Есть букмарклет который при выделении таблицы на странице конвертирует html код в markdown.
Код скрипта:
javascript:(function()%7Bvar rows%3Ddocument.querySelectorAll("tr")%3Bvar columnCount%3Drows%5B0%5D.querySelectorAll("td").length%3Bvar headers%3D%5B%5D.map.call(rows%5B0%5D.querySelectorAll("td"),function(e)%7Breturn e.textContent.replace(/%5Cn/gi,"")%3B%7D).join("%7C")%3Bvar seps%3Dnew Array(columnCount).join("---%7C")%2B"---"%3Bvar rowsStr%3D""%3Bfor(var i%3D1%3Bi<rows.length%3Bi%2B%2B)%7BrowsStr%2B%3D%5B%5D.map.call(rows%5Bi%5D.querySelectorAll("td"),function(e)%7Breturn e.textContent.replace(/%5Cn/gi,"")%3B%7D).join("%7C")%2B"%5Cn"%3B%7Dvar finalStr%3Dheaders%2B"%5Cn"%2Bseps%2B"%5Cn"%2BrowsStr%2B"%5Cn"%3Bvar elem%3Ddocument.createElement("PRE")%3Belem.textContent%3DfinalStr%3Bdocument.body.appendChild(elem)%3B%7D)()%3B


В итоге получается следующий пример:

Имя|Ключевое слово|URL
---|---|---
перевода En > Ru|tr|ссылка
перевода Ru > En|rt|ссылка
почты в Gmail|gmail|ссылка
новостей в Google Reader|reader|ссылка
в аккаунте Evernote|evernote|ссылка


Но мне нужно чтобы получалось так:
|Имя|Ключевое слово|URL|
|перевода En > Ru|tr|ссылка|
|перевода Ru > En|rt|ссылка|
|почты в Gmail|gmail|ссылка|
|новостей в Google Reader|reader|ссылка|
|в аккаунте Evernote|evernote|ссылка|


То есть добавляется знак "|" в начале и в конце каждой строки, а "---|---|---" вообще исключается.
Может кто-нибудь подсказать как переделать букмарклет?

Последний раз редактировалось vicci, 19.07.2017 в 00:08.
Ответить с цитированием
  #2 (permalink)  
Старый 19.07.2017, 05:54
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,661

Сообщение от vicci
Есть букмарклет который при выделении таблицы
По коду он не работает с выделениями, наверное ты перепутал букмарклеты.
Ответить с цитированием
  #3 (permalink)  
Старый 19.07.2017, 13:27
Новичок на форуме
Отправить личное сообщение для vicci Посмотреть профиль Найти все сообщения от vicci
 
Регистрация: 18.07.2017
Сообщений: 2

Проверил. Вы правы, с выделением он не работает. Он конвертирует все таблицы которые имеются на странице, и выводит в формате markdown в конце страницы.
Но это не первоочередная задача.Хотелось бы чтобы выполнялась задача которую я указал ранее:

"То есть добавляется знак "|" в начале и в конце каждой строки, а "---|---|---" вообще исключается."

Но если кто-может помочь усовершенствовать бурмарклет, добавив и функцию выделения, буду благодарен.
Ответить с цитированием
  #4 (permalink)  
Старый 19.07.2017, 19:51
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,661

vicci,
Добавил функцию определения таблицы методом выделения, объем и конец выделения не важны, главное начало выделения, начало и конец выделения могут совпадать, т.е. достаточно просто кликнуть в любом месте таблицы (проверено в Firefox, Chrome).
javascript:(function(a){getSelection().anchorNode.parentElement.closest('table').querySelectorAll('tr').forEach(function(b){b.querySelectorAll('th,td').forEach(function(b){a+='|'+b.textContent.replace(/\n/g,'')}),a+='|\n'}),document.body.insertAdjacentHTML('beforeend','<pre>'+a+'</pre>')})('');
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как с помощью PHP сохранить какие-либо изменения в HTML документе? FirstFrost Общие вопросы Javascript 1 15.07.2010 17:12
Как с помощью JavaScript сохранить какие-либо изменения в HTML документе? FirstFrost Общие вопросы Javascript 1 15.07.2010 16:23
Конвертация txt таблицы в html gaiver Общие вопросы Javascript 95 09.03.2009 22:19
Как получить ширину таблицы в пикселях, если в HTML она указана в процентах JackM Общие вопросы Javascript 2 13.02.2009 10:15
Как с помощью JS "на-лету" менять часть HTML кода greendoc Общие вопросы Javascript 2 18.03.2008 20:43