Skip to content

Commit c49736b

Browse files
committed
Update Vue.js documentation (2.6.12 and 3.0.5)
1 parent b724e81 commit c49736b

4 files changed

Lines changed: 80 additions & 5 deletions

File tree

assets/stylesheets/pages/_vue.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,9 @@
22
@extend %simple;
33

44
p.tip { @extend %note; }
5+
.custom-block {
6+
@extend %note;
7+
&.tip { @extend %note-green; }
8+
&.info { @extend %note-blue; }
9+
}
510
}

lib/docs/filters/vue/clean_html.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,17 @@ module Docs
22
class Vue
33
class CleanHtmlFilter < Filter
44
def call
5-
@doc = at_css('.content')
5+
@doc = at_css(version == '3' ? 'main' : '.content')
66

77
at_css('h1').content = 'Vue.js' if root_page?
88
doc.child.before('<h1>Vue.js API</h1>') if slug == 'api/' || slug == 'api/index'
99

1010
css('.demo', '.guide-links', '.footer', '#ad').remove
11+
css('.header-anchor', '.page-edit', '.page-nav').remove
12+
13+
css('.custom-block-title').each do |node|
14+
node.name = 'strong'
15+
end
1116

1217
# Remove code highlighting
1318
css('figure').each do |node|
@@ -16,13 +21,15 @@ def call
1621
node['data-language'] = node['class'][/highlight (\w+)/, 1]
1722
end
1823

24+
css('.line-numbers-wrapper').remove
1925
css('pre').each do |node|
2026
node.content = node.content.strip
2127
node['data-language'] = 'javascript'
2228
end
2329

2430
css('iframe').each do |node|
2531
node['sandbox'] = 'allow-forms allow-scripts allow-same-origin'
32+
node.remove if node['src'][/player.vimeo.com/] # https://v3.vuejs.org/guide/migration/introduction.html#overview
2633
end
2734

2835
css('details').each do |node|

lib/docs/filters/vue/entries_v3.rb

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
module Docs
2+
class Vue
3+
class EntriesV3Filter < Docs::EntriesFilter
4+
def get_name
5+
if slug == 'api/' || slug == 'api/index'
6+
'API'
7+
elsif slug == 'style-guide/'
8+
'Style Guide'
9+
else
10+
name = at_css('h1').content
11+
name.sub! %r{#\s*}, ''
12+
index = css('.sidebar-link').to_a.index(at_css('.sidebar-link.active'))
13+
name.prepend "#{index + 1}. " if index
14+
name
15+
end
16+
end
17+
18+
def get_type
19+
if slug.start_with?('guide/migration')
20+
'Migration'
21+
elsif slug.start_with?('guide')
22+
subtype = at_css('.sidebar-heading.open, .sidebar-link.active')
23+
subtype ? "Guide: #{subtype.content}": 'Guide'
24+
elsif slug == 'style-guide/'
25+
'Style Guide'
26+
else
27+
'API'
28+
end
29+
end
30+
31+
def additional_entries
32+
return [] if slug.start_with?('guide')
33+
type = nil
34+
35+
css('h2, h3').each_with_object [] do |node, entries|
36+
if node.name == 'h2'
37+
type = node.content.strip
38+
type.sub! %r{#\s*}, ''
39+
next if slug == 'style-guide/'
40+
title = at_css('h1').content.strip
41+
title.sub! %r{#\s*}, ''
42+
entries << [type, node['id'], "API: #{title}"]
43+
elsif slug == 'style-guide/'
44+
name = node.content.strip
45+
name.sub! %r{#\s*}, ''
46+
name.sub! %r{\(.*\)}, '()'
47+
name.sub! /(essential|strongly recommended|recommended|use with caution)\Z/, ''
48+
curent_type = "Style Guide: #{type.sub(/Rules: /, ': ')}"
49+
entries << [name, node['id'], curent_type]
50+
end
51+
end
52+
end
53+
end
54+
end
55+
end

lib/docs/scrapers/vue.rb

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ class Vue < UrlScraper
88
code: 'https://github.com/vuejs/vue'
99
}
1010

11-
html_filters.push 'vue/entries', 'vue/clean_html'
12-
1311
options[:only_patterns] = [/guide\//, /api\//]
1412
options[:skip] = %w(guide/team.html)
1513
options[:replace_paths] = { 'guide/' => 'guide/index.html' }
@@ -19,22 +17,32 @@ class Vue < UrlScraper
1917
Licensed under the MIT License.
2018
HTML
2119

20+
version '3' do
21+
self.release = '3.0.5'
22+
self.base_url = 'https://v3.vuejs.org/'
23+
self.root_path = 'guide/introduction.html'
24+
self.initial_paths = %w(api/)
25+
html_filters.push 'vue/entries_v3', 'vue/clean_html'
26+
end
27+
2228
version '2' do
23-
self.release = '2.6.10'
29+
self.release = '2.6.12'
2430
self.base_url = 'https://vuejs.org/v2/'
2531
self.root_path = 'guide/index.html'
2632
self.initial_paths = %w(api/)
33+
html_filters.push 'vue/entries', 'vue/clean_html'
2734
end
2835

2936
version '1' do
3037
self.release = '1.0.28'
3138
self.base_url = 'https://v1.vuejs.org'
3239
self.root_path = '/guide/index.html'
3340
self.initial_paths = %w(/api/index.html)
41+
html_filters.push 'vue/entries', 'vue/clean_html'
3442
end
3543

3644
def get_latest_version(opts)
37-
get_latest_github_release('vuejs', 'vue-next', opts)
45+
get_npm_version('vue', opts, 'next')
3846
end
3947
end
4048
end

0 commit comments

Comments
 (0)