dom.rb 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. self.fix_redirections = true
  6. html_filters.push 'dom/clean_html', 'dom/entries', 'title'
  7. options[:root_title] = 'DOM'
  8. options[:skip] = %w(
  9. /Reference
  10. /Index
  11. /Document_Object_Model
  12. /document/createProcessingInstruction
  13. /document/documentURIObject
  14. /document/loadOverlay
  15. /document/tooltipNode
  16. /DOMErrorHandler
  17. /DOMLocator
  18. /DOMObject
  19. /DOMStringList
  20. /Event/Comparison_of_Event_Targets
  21. /IDBDatabaseException
  22. /IndexedDB_API/Using_JavaScript_Generators_in_Firefox
  23. /Notation
  24. /ProcessingInstruction
  25. /TypeInfo
  26. /window/getAttention
  27. /window/messageManager
  28. /window/updateCommands
  29. /window/pkcs11)
  30. options[:skip_patterns] = [
  31. /NS/,
  32. /XPC/,
  33. /moz/i,
  34. /gecko/i,
  35. /webkit/i,
  36. /gamepad/i,
  37. /UserData/,
  38. /Bluetooth/,
  39. /FMRadio/i,
  40. /XDomainRequest/i,
  41. /\A\/Camera/,
  42. /\A\/Data_Store_API/,
  43. /\A\/DataStore/,
  44. /\A\/DeviceStorage/,
  45. /\A\/DocumentTouch/,
  46. /\A\/document\/xml/,
  47. /\A\/XMLDocument/,
  48. /\A\/DOMCursor/,
  49. /\A\/DOMRequest/,
  50. /\A\/InstallTrigger/,
  51. /\A\/Entity/,
  52. /\A\/Settings/,
  53. /telephony/i,
  54. /\A\/NFC_API/,
  55. /\A\/Window\/\w+bar/i,
  56. /\A\/Apps/,
  57. /\A\/Contact/,
  58. /\A\/L10n/,
  59. /\A\/Permission/]
  60. options[:fix_urls] = ->(url) do
  61. return if url.include?('_') || url.include?('?')
  62. url.sub! 'https://developer.mozilla.org/en-US/docs/DOM/', "#{Dom.base_url}/"
  63. url.sub! 'https://developer.mozilla.org/en/DOM/', "#{Dom.base_url}/"
  64. url.sub! "#{Dom.base_url}/Console", "#{Dom.base_url}/console"
  65. url.sub! "#{Dom.base_url}/Document\/", "#{Dom.base_url}/document\/"
  66. url.sub! "#{Dom.base_url}/Element", "#{Dom.base_url}/element"
  67. url.sub! "#{Dom.base_url}/History", "#{Dom.base_url}/history"
  68. url.sub! "#{Dom.base_url}/Location", "#{Dom.base_url}/location"
  69. url.sub! "#{Dom.base_url}/Navigator", "#{Dom.base_url}/navigator"
  70. url.sub! "#{Dom.base_url}/Screen", "#{Dom.base_url}/screen"
  71. url.sub! "#{Dom.base_url}/Window\/", "#{Dom.base_url}/window\/"
  72. url.sub! "#{Dom.base_url}/notification", "#{Dom.base_url}/Notification"
  73. url.sub! "#{Dom.base_url}/range", "#{Dom.base_url}/Range"
  74. url.sub! "#{Dom.base_url}/event", "#{Dom.base_url}/Event"
  75. url
  76. end
  77. end
  78. end