laravel.rb 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. module Docs
  2. class Laravel < UrlScraper
  3. self.name = 'Laravel'
  4. self.slug = 'laravel'
  5. self.type = 'laravel'
  6. self.base_url = 'https://laravel.com'
  7. self.links = {
  8. home: 'https://laravel.com/',
  9. code: 'https://github.com/laravel/laravel'
  10. }
  11. html_filters.push 'laravel/entries', 'laravel/clean_html'
  12. options[:container] = ->(filter) {
  13. filter.subpath.start_with?('/api') ? '#content' : '.docs-wrapper'
  14. }
  15. options[:skip_patterns] = [
  16. %r{\A/api/\d\.\d/\.html},
  17. %r{\A/api/\d\.\d/panel\.html},
  18. %r{\A/api/\d\.\d/namespaces\.html},
  19. %r{\A/api/\d\.\d/interfaces\.html},
  20. %r{\A/api/\d\.\d/traits\.html},
  21. %r{\A/api/\d\.\d/doc-index\.html},
  22. %r{\A/api/\d\.\d/Illuminate\.html},
  23. %r{\A/api/\d\.\d/search\.html} ]
  24. options[:attribution] = <<-HTML
  25. &copy; Taylor Otwell<br>
  26. Licensed under the MIT License.<br>
  27. Laravel is a trademark of Taylor Otwell.
  28. HTML
  29. version '5.4' do
  30. self.release = '5.4.9'
  31. self.root_path = '/api/5.4/index.html'
  32. self.initial_paths = %w(/docs/5.4/installation /api/5.4/classes.html)
  33. options[:only_patterns] = [%r{\A/api/5\.4/}, %r{\A/docs/5\.4/}]
  34. options[:fix_urls] = ->(url) do
  35. url.sub! %r{#{Regexp.escape(Laravel.base_url)}/docs\/(?!\d)}, "#{Laravel.base_url}/docs/5.4/"
  36. url
  37. end
  38. end
  39. version '5.3' do
  40. self.release = '5.3.30'
  41. self.root_path = '/api/5.3/index.html'
  42. self.initial_paths = %w(/docs/5.3/installation /api/5.3/classes.html)
  43. options[:only_patterns] = [%r{\A/api/5\.3/}, %r{\A/docs/5\.3/}]
  44. options[:fix_urls] = ->(url) do
  45. url.sub! %r{#{Regexp.escape(Laravel.base_url)}/docs\/(?!\d)}, "#{Laravel.base_url}/docs/5.3/"
  46. url
  47. end
  48. end
  49. version '5.2' do
  50. self.release = '5.2.31'
  51. self.root_path = '/api/5.2/index.html'
  52. self.initial_paths = %w(/docs/5.2/installation /api/5.2/classes.html)
  53. options[:only_patterns] = [%r{\A/api/5\.2/}, %r{\A/docs/5\.2/}]
  54. options[:fix_urls] = ->(url) do
  55. url.sub! %r{#{Regexp.escape(Laravel.base_url)}/docs\/(?!\d)}, "#{Laravel.base_url}/docs/5.2/"
  56. url
  57. end
  58. end
  59. version '5.1' do
  60. self.release = '5.1.33'
  61. self.root_path = '/api/5.1/index.html'
  62. self.initial_paths = %w(/docs/5.1/installation /api/5.1/classes.html)
  63. options[:only_patterns] = [%r{\A/api/5\.1/}, %r{\A/docs/5\.1/}]
  64. options[:fix_urls] = ->(url) do
  65. url.sub! %r{#{Regexp.escape(Laravel.base_url)}/docs\/(?!\d)}, "#{Laravel.base_url}/docs/5.1/"
  66. url
  67. end
  68. end
  69. end
  70. end