1
0

dom.rb 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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. /IndexedDB_API/Using_JavaScript_Generators_in_Firefox
  25. /NamedNodeMap
  26. /Node.baseURIObject
  27. /Node.nodePrincipal
  28. /Notation
  29. /PowerManager
  30. /PushManager
  31. /ProcessingInstruction
  32. /TCPServerSocket
  33. /TCPSocket
  34. /TypeInfo
  35. /Using_the_Browser_API
  36. /Web_Video_Text_Tracks_Format
  37. /WifiManager
  38. /window.controllers
  39. /window.crypto
  40. /window.getAttention
  41. /window.messageManager
  42. /window.navigator.addIdleObserver
  43. /window.navigator.getDeviceStorage
  44. /window.navigator.getDeviceStorages
  45. /window.navigator.removeIdleObserver
  46. /window.navigator.requestWakeLock
  47. /window.updateCommands
  48. /window.pkcs11)
  49. options[:skip_patterns] = [
  50. /NS/,
  51. /XPC/,
  52. /moz/i,
  53. /gecko/i,
  54. /webkit/i,
  55. /gamepad/i,
  56. /UserData/,
  57. /\A\/Camera/,
  58. /\A\/Data_Store_API/,
  59. /\A\/DataStore/,
  60. /\A\/DeviceStorage/,
  61. /\A\/DocumentTouch/,
  62. /\A\/document\.xml/,
  63. /\A\/XMLDocument/,
  64. /\A\/DOMCursor/,
  65. /\A\/DOMRequest/,
  66. /\A\/element\.on/,
  67. /\A\/Entity/,
  68. /\A\/navigator\.id/i,
  69. /\A\/Settings/,
  70. /\A\/Telephony/,
  71. /Bluetooth/,
  72. /\A\/Window\.\w+bar/i,
  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. /Performance.now
  98. /Document_Object_Model)
  99. options[:fix_urls] = ->(url) do
  100. return if url.include?('_') || url.include?('?')
  101. url.sub! 'https://developer.mozilla.org/en-US/docs/DOM/', "#{Dom.base_url}/"
  102. url.sub! 'https://developer.mozilla.org/en/DOM/', "#{Dom.base_url}/"
  103. url.sub! "#{Dom.base_url}/Document\.", "#{Dom.base_url}/document."
  104. url.sub! "#{Dom.base_url}/Element", "#{Dom.base_url}/element"
  105. url.sub! "#{Dom.base_url}/History", "#{Dom.base_url}/history"
  106. url.sub! "#{Dom.base_url}/Navigator", "#{Dom.base_url}/navigator"
  107. url.sub! "#{Dom.base_url}/notification", "#{Dom.base_url}/Notification"
  108. url.sub! "#{Dom.base_url}/range", "#{Dom.base_url}/Range"
  109. url.sub! "#{Dom.base_url}/Window", "#{Dom.base_url}/window"
  110. url.sub! "#{Dom.base_url}/window.navigator", "#{Dom.base_url}/navigator"
  111. url.sub! "#{Dom.base_url}/Selection/", "#{Dom.base_url}/Selection."
  112. url.sub! "#{Dom.base_url}/windowTimers", "#{Dom.base_url}/window"
  113. url.sub! "#{Dom.base_url}/windowEventHandlers", "#{Dom.base_url}/window"
  114. url.sub! %r{\/windowLocalStorage(\.localStorage)?}i, "/window.localStorage"
  115. url.sub! %r{\/windowSessionStorage(\.sessionStorage)?}i, "/window.sessionStorage"
  116. url.sub! "#{Dom.base_url}/Screen.", "#{Dom.base_url}/window.screen"
  117. url
  118. end
  119. end
  120. end