dom.rb 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. module Docs
  2. class Dom < Mdn
  3. self.name = 'DOM'
  4. self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/API'
  5. html_filters.push 'dom/clean_html', 'dom/entries', 'title'
  6. options[:root_title] = 'DOM'
  7. # Don't want
  8. options[:skip] = %w(
  9. /App
  10. /Apps
  11. /CallEvent
  12. /CanvasPixelArray
  13. /ChromeWorker
  14. /ContactManager
  15. /document.createProcessingInstruction
  16. /document.documentURIObject
  17. /document.loadOverlay
  18. /document.tooltipNode
  19. /DOMErrorHandler
  20. /DOMLocator
  21. /DOMObject
  22. /DOMStringList
  23. /Event/Comparison_of_Event_Targets
  24. /FMRadio
  25. /IDBDatabaseException
  26. /NamedNodeMap
  27. /Node.baseURIObject
  28. /Node.nodePrincipal
  29. /Notation
  30. /PowerManager
  31. /PushManager
  32. /ProcessingInstruction
  33. /select.type
  34. /TCPServerSocket
  35. /TCPSocket
  36. /WifiManager
  37. /window.controllers
  38. /window.crypto
  39. /window.getAttention
  40. /window.messageManager
  41. /window.navigator.addIdleObserver
  42. /window.navigator.getDeviceStorage
  43. /window.navigator.getDeviceStorages
  44. /window.navigator.removeIdleObserver
  45. /window.navigator.requestWakeLock
  46. /window.updateCommands
  47. /window.pkcs11
  48. /XMLDocument
  49. /XMLHttpRequest/Using_XMLHttpRequest)
  50. options[:skip_patterns] = [
  51. /NS/,
  52. /XPC/,
  53. /moz/i,
  54. /gecko/i,
  55. /webkit/i,
  56. /\A\/Camera/,
  57. /\A\/DeviceStorage/,
  58. /\A\/document\.xml/,
  59. /\A\/DOMCursor/,
  60. /\A\/DOMRequest/,
  61. /\A\/element\.on/,
  62. /\A\/Entity/,
  63. /\A\/HTMLIFrameElement\./,
  64. /\A\/navigator\.id/i,
  65. /\A\/Settings/,
  66. /\A\/Telephony/,
  67. /\A\/Bluetooth/,
  68. /UserData/,
  69. /\A\/Window\.\w+bar/i]
  70. # Broken / Empty
  71. options[:skip].concat %w(
  72. /Attr.isId
  73. /document.nodePrincipal
  74. /Event/UIEvent
  75. /Extensions
  76. /StyleSheetList
  77. /SVGPoint
  78. /Window.dispatchEvent
  79. /Window.restore
  80. /Window.routeEvent
  81. /Window.QueryInterface)
  82. # Duplicates
  83. options[:skip].concat %w(/Reference)
  84. options[:fix_urls] = ->(url) do
  85. return if url.include?('_') || url.include?('?')
  86. url.sub! 'https://developer.mozilla.org/en-US/docs/DOM/', "#{Dom.base_url}/"
  87. url.sub! 'https://developer.mozilla.org/en/DOM/', "#{Dom.base_url}/"
  88. url.sub! "#{Dom.base_url}/Document\.", "#{Dom.base_url}/document."
  89. url.sub! "#{Dom.base_url}/Element", "#{Dom.base_url}/element"
  90. url.sub! "#{Dom.base_url}/History", "#{Dom.base_url}/history"
  91. url.sub! "#{Dom.base_url}/Navigator", "#{Dom.base_url}/navigator"
  92. url.sub! "#{Dom.base_url}/notification", "#{Dom.base_url}/Notification"
  93. url.sub! "#{Dom.base_url}/range", "#{Dom.base_url}/Range"
  94. url.sub! "#{Dom.base_url}/Window", "#{Dom.base_url}/window"
  95. url
  96. end
  97. end
  98. end