@@ -2,12 +2,9 @@ module Docs
22 class Coffeescript
33 class EntriesFilter < Docs ::EntriesFilter
44 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' ] ,
118 [ 'if...then...else' , 'conditionals' , 'Statements' ] ,
129 [ 'unless' , 'conditionals' , 'Statements' ] ,
1310 [ '... splats' , 'splats' , 'Language' ] ,
@@ -19,56 +16,58 @@ class EntriesFilter < Docs::EntriesFilter
1916 [ 'until' , 'loops' , 'Statements' ] ,
2017 [ 'loop' , 'loops' , 'Statements' ] ,
2118 [ 'do' , 'loops' , 'Statements' ] ,
22- [ 'Array slicing and splicing' , 'slices' , 'Language' ] ,
2319 [ 'Ranges' , 'slices' , 'Language' ] ,
24- [ 'Expressions' , 'expressions' , 'Language' ] ,
2520 [ '?' , 'existential-operator' , 'Operators' ] ,
2621 [ '?=' , 'existential-operator' , 'Operators' ] ,
2722 [ '?.' , 'existential-operator' , 'Operators' ] ,
2823 [ 'class' , 'classes' , 'Statements' ] ,
29- [ 'extends' , 'classes' , 'Operators ' ] ,
24+ [ 'extends' , 'classes' , 'Statements ' ] ,
3025 [ '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' ] ,
3527 [ '=>' , 'fat-arrow' , 'Statements' ] ,
36- [ 'yield' , 'fat-arrow' , 'Statements' ] ,
37- [ 'for...from' , 'fat-arrow' , 'Statements' ] ,
38- [ 'Embedded JavaScript' , 'embedded' , 'Language' ] ,
28+ [ 'yield' , 'generators' , 'Statements' ] ,
3929 [ 'switch...when...else' , 'switch' , 'Statements' ] ,
40- [ 'try...catch...finally' , 'try-catch' , 'Statements' ] ,
41- [ 'Chained comparisons' , 'comparisons' , 'Language' ] ,
30+ [ 'try...catch...finally' , 'try' , 'Statements' ] ,
4231 [ '#{} interpolation' , 'strings' , 'Language' ] ,
4332 [ 'Block strings' , 'strings' , 'Language' ] ,
4433 [ '"""' , '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' ] ,
4936 [ '///' , 'regexes' , 'Language' ] ,
50- [ 'Modules' , 'modules' , 'Language' ] ,
5137 [ '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' ]
5639 ]
5740
5841 def additional_entries
59- entries = ENTRIES . dup
42+ entries = [ ]
6043
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
6958 end
7059 end
7160
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+
7271 entries
7372 end
7473
0 commit comments