mirror of
https://github.com/freeCodeCamp/devdocs
synced 2024-11-16 19:48:10 +01:00
Add Vue Router reference
This commit is contained in:
parent
6ecd9d8cc2
commit
2d6c1be335
7 changed files with 121 additions and 0 deletions
|
@ -680,6 +680,11 @@ credits = [
|
|||
'2013-2018 Evan You, Vue.js contributors',
|
||||
'MIT',
|
||||
'https://raw.githubusercontent.com/vuejs/vue/master/LICENSE'
|
||||
], [
|
||||
'Vue Router',
|
||||
'2013-2018 Evan You, Vue.js contributors',
|
||||
'MIT',
|
||||
'https://github.com/vuejs/vue-router/blob/dev/LICENSE'
|
||||
], [
|
||||
'Vulkan',
|
||||
'2014-2017 Khronos Group Inc.<br>Vulkan and the Vulkan logo are registered trademarks of the Khronos Group Inc.',
|
||||
|
|
14
lib/docs/filters/vue_router/clean_html.rb
Normal file
14
lib/docs/filters/vue_router/clean_html.rb
Normal file
|
@ -0,0 +1,14 @@
|
|||
module Docs
|
||||
class VueRouter
|
||||
class CleanHtmlFilter < Filter
|
||||
def call
|
||||
@doc = at_css('.content')
|
||||
|
||||
# Remove unneeded elements
|
||||
css('.bit-sponsor, .header-anchor').remove
|
||||
|
||||
doc
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
73
lib/docs/filters/vue_router/entries.rb
Normal file
73
lib/docs/filters/vue_router/entries.rb
Normal file
|
@ -0,0 +1,73 @@
|
|||
module Docs
|
||||
class VueRouter
|
||||
class EntriesFilter < Docs::EntriesFilter
|
||||
def get_name
|
||||
name = at_css('h1').content
|
||||
|
||||
name.remove! '# '
|
||||
|
||||
name
|
||||
end
|
||||
|
||||
def get_type
|
||||
return 'Other Guides' if subpath.start_with?('guide/advanced')
|
||||
return 'Basic Guides' if subpath.start_with?('guide') || subpath.start_with?('installation')
|
||||
|
||||
'API Reference'
|
||||
end
|
||||
|
||||
def include_default_entry?
|
||||
name != 'API Reference'
|
||||
end
|
||||
|
||||
def additional_entries
|
||||
return [] unless subpath.start_with?('api')
|
||||
|
||||
entries = [
|
||||
['<router-link>', 'router-link', 'API Reference'],
|
||||
['<router-view>', 'router-view', 'API Reference'],
|
||||
['$route', 'the-route-object', 'API Reference'],
|
||||
['Component Injections', 'component-injections', 'API Reference']
|
||||
]
|
||||
|
||||
css('h3').each do |node|
|
||||
entryName = node.content.strip
|
||||
|
||||
# Get the previous h2 title
|
||||
title = node
|
||||
title = title.previous_element until title.name == 'h2'
|
||||
title = title.content.strip
|
||||
title.remove! '# '
|
||||
|
||||
entryName.remove! '# '
|
||||
|
||||
unless entryName.start_with?('router.')
|
||||
if title == "Router Construction Options"
|
||||
entryName = "RouterOptions.#{entryName}"
|
||||
elsif title == "<router-view> Props"
|
||||
entryName = "<router-view> `#{entryName}` prop"
|
||||
elsif title == "<router-link> Props"
|
||||
entryName = "<router-link> `#{entryName}` prop"
|
||||
else
|
||||
entryName = "> #{entryName} (in: #{title})"
|
||||
end
|
||||
end
|
||||
|
||||
unless title == "Component Injections" || node['id'] == 'applying-active-class-to-outer-element' || node['id'] == 'route-object-properties'
|
||||
entries << [entryName, node['id'], 'API Reference']
|
||||
end
|
||||
end
|
||||
|
||||
css('#route-object-properties + ul > li > p:first-child > strong').each do |node|
|
||||
entryName = node.content.strip
|
||||
id = "route-object-#{entryName.remove('$route.')}"
|
||||
|
||||
node['id'] = id
|
||||
entries << [entryName, node['id'], 'API Reference']
|
||||
end
|
||||
|
||||
entries
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
27
lib/docs/scrapers/vue_router.rb
Normal file
27
lib/docs/scrapers/vue_router.rb
Normal file
|
@ -0,0 +1,27 @@
|
|||
module Docs
|
||||
class VueRouter < UrlScraper
|
||||
self.slug = 'vue_router'
|
||||
self.name = 'Vue Router'
|
||||
self.type = 'simple'
|
||||
|
||||
self.links = {
|
||||
home: 'https://router.vuejs.org',
|
||||
code: 'https://github.com/vuejs/vue-router'
|
||||
}
|
||||
|
||||
html_filters.push 'vue_router/entries', 'vue_router/clean_html'
|
||||
|
||||
self.release = '3.0.1'
|
||||
self.base_url = 'https://router.vuejs.org/'
|
||||
|
||||
options[:skip_patterns] = [
|
||||
# Other languages
|
||||
/^(zh|ja|ru|kr)\//,
|
||||
]
|
||||
|
||||
options[:attribution] = <<-HTML
|
||||
© 2013–2018 Evan You, Vue.js contributors<br>
|
||||
Licensed under the MIT License.
|
||||
HTML
|
||||
end
|
||||
end
|
BIN
public/icons/docs/vue_router/16.png
Normal file
BIN
public/icons/docs/vue_router/16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
public/icons/docs/vue_router/16@2x.png
Normal file
BIN
public/icons/docs/vue_router/16@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2 KiB |
2
public/icons/docs/vue_router/SOURCE
Normal file
2
public/icons/docs/vue_router/SOURCE
Normal file
|
@ -0,0 +1,2 @@
|
|||
http://vuejs.org/
|
||||
(Edited from the original logo to distinguish Vue Router from Vue)
|
Loading…
Reference in a new issue