convent2type.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. (() => {
  2. const table = document.querySelectorAll('.x-table')
  3. const result = new Map()
  4. table.forEach((v, k1) => {
  5. let content = ''
  6. const tbody = v.querySelector('tbody')
  7. const tr = tbody.querySelectorAll('tr')
  8. // 父级title
  9. const grand = v.closest('pre')
  10. const title = grand.previousElementSibling.innerHTML
  11. tr.forEach((v, k2) => {
  12. let curLevel = v.getAttribute('data-level')
  13. const td = v.querySelectorAll('td')
  14. if (td.length === 3) {
  15. let field = td[0].querySelector('div>span').innerText
  16. field = field || ''
  17. let typ = td[1].innerText
  18. typ = typ || ''
  19. typ = toNumber(typ)
  20. let des = td[2].innerText
  21. des = des || ''
  22. let space = ''
  23. // if (des.length > 30) {
  24. // des = des.substr(0, 30)
  25. // des += '...'
  26. // }
  27. des = des.replace(/[\r\n]/g, ' ')
  28. curLevel = Number(curLevel)
  29. if (curLevel > 0) {
  30. for (let i = 0; i < curLevel; i++) {
  31. space += '\t'
  32. }
  33. }
  34. content += `${space}${field}?: ${typ} // ${des} \n`
  35. }
  36. })
  37. // if (curLevel )
  38. console.log(content)
  39. result.set(title, content)
  40. })
  41. // console.log(result);
  42. })()
  43. function toNumber (type) {
  44. let result = type
  45. switch (type) {
  46. case 'float':
  47. result = 'number'
  48. break
  49. default:
  50. break
  51. }
  52. return result
  53. }