dom.rb 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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. /CallEvent
  11. /CanvasPixelArray
  12. /ChromeWorker
  13. /document.createProcessingInstruction
  14. /document.documentURIObject
  15. /document.loadOverlay
  16. /document.tooltipNode
  17. /DOMErrorHandler
  18. /DOMLocator
  19. /DOMObject
  20. /DOMStringList
  21. /Event/Comparison_of_Event_Targets
  22. /FMRadio
  23. /IDBDatabaseException
  24. /NamedNodeMap
  25. /Node.baseURIObject
  26. /Node.nodePrincipal
  27. /Notation
  28. /PowerManager
  29. /PushManager
  30. /ProcessingInstruction
  31. /TCPServerSocket
  32. /TCPSocket
  33. /TypeInfo
  34. /Web_Video_Text_Tracks_Format
  35. /WifiManager
  36. /window.controllers
  37. /window.crypto
  38. /window.getAttention
  39. /window.messageManager
  40. /window.navigator.addIdleObserver
  41. /window.navigator.getDeviceStorage
  42. /window.navigator.getDeviceStorages
  43. /window.navigator.removeIdleObserver
  44. /window.navigator.requestWakeLock
  45. /window.updateCommands
  46. /window.pkcs11
  47. /XMLHttpRequest/Using_XMLHttpRequest)
  48. options[:skip_patterns] = [
  49. /NS/,
  50. /XPC/,
  51. /moz/i,
  52. /gecko/i,
  53. /webkit/i,
  54. /gamepad/i,
  55. /UserData/,
  56. /\A\/Camera/,
  57. /\A\/DeviceStorage/,
  58. /\A\/document\.xml/,
  59. /\A\/XMLDocument/,
  60. /\A\/DOMCursor/,
  61. /\A\/DOMRequest/,
  62. /\A\/element\.on/,
  63. /\A\/Entity/,
  64. /\A\/navigator\.id/i,
  65. /\A\/Settings/,
  66. /\A\/Telephony/,
  67. /\A\/Bluetooth/,
  68. /\A\/Window\.\w+bar/i,
  69. /\A\/CSS_Object_Model\//,
  70. /\A\/Web_Audio_API\//,
  71. /\A\/IndexedDB_API\//,
  72. /\A\/MediaRecorder_API\//,
  73. /\A\/Apps/,
  74. /\A\/Contact/,
  75. /\A\/L10n/,
  76. /\A\/Permission/]
  77. # Broken / Empty
  78. options[:skip].concat %w(
  79. /Attr.isId
  80. /document.nodePrincipal
  81. /Event/UIEvent
  82. /Extensions
  83. /StyleSheetList
  84. /SVGPoint
  85. /Window.dispatchEvent
  86. /Window.restore
  87. /Window.routeEvent
  88. /Window.QueryInterface)
  89. # Duplicates
  90. options[:skip].concat %w(
  91. /Reference
  92. /Index
  93. /form.elements
  94. /select.type
  95. /table.rows
  96. /XMLHttpRequest/FormData)
  97. options[:fix_urls] = ->(url) do
  98. return if url.include?('_') || url.include?('?')
  99. url.sub! 'https://developer.mozilla.org/en-US/docs/DOM/', "#{Dom.base_url}/"
  100. url.sub! 'https://developer.mozilla.org/en/DOM/', "#{Dom.base_url}/"
  101. url.sub! "#{Dom.base_url}/Document\.", "#{Dom.base_url}/document."
  102. url.sub! "#{Dom.base_url}/Element", "#{Dom.base_url}/element"
  103. url.sub! "#{Dom.base_url}/History", "#{Dom.base_url}/history"
  104. url.sub! "#{Dom.base_url}/Navigator", "#{Dom.base_url}/navigator"
  105. url.sub! "#{Dom.base_url}/notification", "#{Dom.base_url}/Notification"
  106. url.sub! "#{Dom.base_url}/range", "#{Dom.base_url}/Range"
  107. url.sub! "#{Dom.base_url}/Window", "#{Dom.base_url}/window"
  108. url.sub! "#{Dom.base_url}/window.navigator", "#{Dom.base_url}/navigator"
  109. url.sub! "#{Dom.base_url}/Selection/", "#{Dom.base_url}/Selection."
  110. url.sub! "#{Dom.base_url}/windowTimers", "#{Dom.base_url}/window"
  111. url.sub! "#{Dom.base_url}/windowEventHandlers", "#{Dom.base_url}/window"
  112. url.sub! "#{Dom.base_url}/Screen.", "#{Dom.base_url}/window.screen"
  113. url
  114. end
  115. end
  116. end