mirror of https://github.com/freeCodeCamp/devdocs
Add Vue Router reference (#881)
Add Vue Router reference Co-authored-by: Jasper van Merle <jaspervmerle@gmail.com>pull/1055/head
commit
58973bf29a
@ -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
|
@ -0,0 +1,71 @@
|
|||||||
|
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|
|
||||||
|
entry_name = node.content.strip
|
||||||
|
|
||||||
|
# Get the previous h2 title
|
||||||
|
title = node
|
||||||
|
title = title.previous_element until title.name == 'h2'
|
||||||
|
title = title.content.strip
|
||||||
|
title.remove! '# '
|
||||||
|
|
||||||
|
entry_name.remove! '# '
|
||||||
|
|
||||||
|
case title
|
||||||
|
when 'Router Construction Options'
|
||||||
|
entry_name = "RouterOptions.#{entry_name}"
|
||||||
|
when '<router-view> Props'
|
||||||
|
entry_name = "<router-view> `#{entry_name}` prop"
|
||||||
|
when '<router-link> Props'
|
||||||
|
entry_name = "<router-link> `#{entry_name}` prop"
|
||||||
|
when 'Router Instance Methods'
|
||||||
|
entry_name = "#{entry_name}()"
|
||||||
|
end
|
||||||
|
|
||||||
|
entry_name = entry_name.split(' API ')[0] if entry_name.start_with?('v-slot')
|
||||||
|
|
||||||
|
unless title == "Component Injections" || node['id'] == 'route-object-properties'
|
||||||
|
entries << [entry_name, node['id'], 'API Reference']
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
css('#route-object-properties + ul > li > p:first-child > strong').each do |node|
|
||||||
|
entry_name = node.content.strip
|
||||||
|
id = "route-object-#{entry_name.remove('$route.')}"
|
||||||
|
|
||||||
|
node['id'] = id
|
||||||
|
entries << [entry_name, node['id'], 'API Reference']
|
||||||
|
end
|
||||||
|
|
||||||
|
entries
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,29 @@
|
|||||||
|
module Docs
|
||||||
|
class VueRouter < UrlScraper
|
||||||
|
self.name = 'Vue Router'
|
||||||
|
self.slug = 'vue_router'
|
||||||
|
self.type = 'simple'
|
||||||
|
self.release = '3.1.2'
|
||||||
|
self.base_url = 'https://router.vuejs.org/'
|
||||||
|
self.links = {
|
||||||
|
home: 'https://router.vuejs.org',
|
||||||
|
code: 'https://github.com/vuejs/vue-router'
|
||||||
|
}
|
||||||
|
|
||||||
|
html_filters.push 'vue_router/entries', 'vue_router/clean_html'
|
||||||
|
|
||||||
|
options[:skip_patterns] = [
|
||||||
|
# Other languages
|
||||||
|
/^(zh|ja|ru|kr|fr)\//,
|
||||||
|
]
|
||||||
|
|
||||||
|
options[:attribution] = <<-HTML
|
||||||
|
© 2013–present Evan You<br>
|
||||||
|
Licensed under the MIT License.
|
||||||
|
HTML
|
||||||
|
|
||||||
|
def get_latest_version(opts)
|
||||||
|
get_latest_github_release('vuejs', 'vue-router', opts)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
After Width: | Height: | Size: 534 B |
After Width: | Height: | Size: 1.2 KiB |
@ -0,0 +1 @@
|
|||||||
|
https://github.com/vuejs/vuejs.org/blob/master/assets/logo.ai
|
Loading…
Reference in new issue