@@ -2,12 +2,9 @@ module Docs
2
2
class Coffeescript
3
3
class EntriesFilter < Docs ::EntriesFilter
4
4
ENTRIES = [
5
- [ 'coffee command' , 'usage' , 'Miscellaneous' ] ,
6
- [ 'Literate mode' , 'literate' , 'Miscellaneous' ] ,
7
- [ 'Functions' , 'literals' , 'Language' ] ,
8
- [ '->' , 'literals' , 'Statements' ] ,
9
- [ 'Objects and arrays' , 'objects_and_arrays' , 'Language' ] ,
10
- [ 'Lexical scoping' , 'lexical-scope' , 'Language' ] ,
5
+ [ 'coffee command' , 'cli' , 'Miscellaneous' ] ,
6
+ [ '->' , 'functions' , 'Statements' ] ,
7
+ [ 'await' , 'async-functions' , 'Statements' ] ,
11
8
[ 'if...then...else' , 'conditionals' , 'Statements' ] ,
12
9
[ 'unless' , 'conditionals' , 'Statements' ] ,
13
10
[ '... splats' , 'splats' , 'Language' ] ,
@@ -19,56 +16,58 @@ class EntriesFilter < Docs::EntriesFilter
19
16
[ 'until' , 'loops' , 'Statements' ] ,
20
17
[ 'loop' , 'loops' , 'Statements' ] ,
21
18
[ 'do' , 'loops' , 'Statements' ] ,
22
- [ 'Array slicing and splicing' , 'slices' , 'Language' ] ,
23
19
[ 'Ranges' , 'slices' , 'Language' ] ,
24
- [ 'Expressions' , 'expressions' , 'Language' ] ,
25
20
[ '?' , 'existential-operator' , 'Operators' ] ,
26
21
[ '?=' , 'existential-operator' , 'Operators' ] ,
27
22
[ '?.' , 'existential-operator' , 'Operators' ] ,
28
23
[ 'class' , 'classes' , 'Statements' ] ,
29
- [ 'extends' , 'classes' , 'Operators ' ] ,
24
+ [ 'extends' , 'classes' , 'Statements ' ] ,
30
25
[ 'super' , 'classes' , 'Statements' ] ,
31
- [ '::' , 'classes' , 'Operators' ] ,
32
- [ 'Destructuring assignment' , 'destructuring' , 'Language' ] ,
33
- [ 'Bound Functions' , 'fat-arrow' , 'Language' ] ,
34
- [ 'Generator Functions' , 'fat-arrow' , 'Language' ] ,
26
+ [ '::' , 'prototypal-inheritance' , 'Operators' ] ,
35
27
[ '=>' , 'fat-arrow' , 'Statements' ] ,
36
- [ 'yield' , 'fat-arrow' , 'Statements' ] ,
37
- [ 'for...from' , 'fat-arrow' , 'Statements' ] ,
38
- [ 'Embedded JavaScript' , 'embedded' , 'Language' ] ,
28
+ [ 'yield' , 'generators' , 'Statements' ] ,
39
29
[ 'switch...when...else' , 'switch' , 'Statements' ] ,
40
- [ 'try...catch...finally' , 'try-catch' , 'Statements' ] ,
41
- [ 'Chained comparisons' , 'comparisons' , 'Language' ] ,
30
+ [ 'try...catch...finally' , 'try' , 'Statements' ] ,
42
31
[ '#{} interpolation' , 'strings' , 'Language' ] ,
43
32
[ 'Block strings' , 'strings' , 'Language' ] ,
44
33
[ '"""' , 'strings' , 'Language' ] ,
45
- [ 'Block comments' , 'strings' , 'Language' ] ,
46
- [ '###' , 'strings' , 'Language' ] ,
47
- [ 'Tagged Template Literals' , 'tagged-template-literals' , 'Language' ] ,
48
- [ 'Block regexes' , 'regexes' , 'Language' ] ,
34
+ [ '###' , 'comments' , 'Language' ] ,
35
+ [ '###::' , 'type-annotations' , 'Language' ] ,
49
36
[ '///' , 'regexes' , 'Language' ] ,
50
- [ 'Modules' , 'modules' , 'Language' ] ,
51
37
[ 'import' , 'modules' , 'Language' ] ,
52
- [ 'export' , 'modules' , 'Language' ] ,
53
- [ 'cake command' , 'cake' , 'Miscellaneous' ] ,
54
- [ 'Cakefile' , 'cake' , 'Miscellaneous' ] ,
55
- [ 'Source maps' , 'source-maps' , 'Miscellaneous' ]
38
+ [ 'export' , 'modules' , 'Language' ]
56
39
]
57
40
58
41
def additional_entries
59
- entries = ENTRIES . dup
42
+ entries = [ ]
60
43
61
- # Operators
62
- at_css ( '#operators ~ table' ) . css ( 'td:first-child > code' ) . each do |node |
63
- node . content . split ( ', ' ) . each do |name |
64
- next if %w( true false yes no on off this ) . include? ( name )
65
- name . sub! %r{\A a (.+) b\z } , '\1'
66
- id = name_to_id ( name )
67
- node [ 'id' ] = id
68
- entries << [ name , id , 'Operators' ]
44
+ ENTRIES . each do |entry |
45
+ raise "entry not found: #{ entry . inspect } " unless at_css ( "[id='#{ entry [ 1 ] } ']" )
46
+ entries << entry
47
+ end
48
+
49
+ css ( '.navbar > nav > .nav-link' ) . each do |node |
50
+ name = node . content . strip
51
+ next if name . in? ( %w( Overview Changelog ) ) || !node [ 'href' ] . start_with? ( '#' )
52
+ entries << [ name , node [ 'href' ] . remove ( '#' ) , 'Miscellaneous' ]
53
+
54
+ if name == 'Language Reference'
55
+ node . next_element . css ( '.nav-link' ) . each do |n |
56
+ entries << [ n . content , n [ 'href' ] . remove ( '#' ) , name ]
57
+ end
69
58
end
70
59
end
71
60
61
+ at_css ( '#operators table' ) . css ( 'td:first-child > code' ) . each do |node |
62
+ name = node . content . strip
63
+ next if %w( true false yes no on off this ) . include? ( name )
64
+ name . sub! %r{\A a (.+) b\z } , '\1'
65
+ name = 'for...from' if name == 'for a from b'
66
+ id = name_to_id ( name )
67
+ node [ 'id' ] = id
68
+ entries << [ name , id , 'Operators' ]
69
+ end
70
+
72
71
entries
73
72
end
74
73
0 commit comments