dom.rb 3.0 KB

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