yard-sketchup 1.1.4 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +15 -15
  3. data/lib/yard-sketchup.rb +36 -36
  4. data/lib/yard-sketchup/patches/c_base_handler.rb +52 -52
  5. data/lib/yard-sketchup/stubs/autoload.rb +134 -134
  6. data/lib/yard-sketchup/templates/changelog/fulldoc/text/setup.rb +44 -44
  7. data/lib/yard-sketchup/templates/coverage/fulldoc/text/setup.rb +41 -41
  8. data/lib/yard-sketchup/templates/default/fulldoc/html/css/rubyapi.css +10 -10
  9. data/lib/yard-sketchup/templates/default/fulldoc/html/css/sketchup.css +120 -120
  10. data/lib/yard-sketchup/templates/default/fulldoc/html/full_list_object_types.erb +1 -1
  11. data/lib/yard-sketchup/templates/default/fulldoc/html/js/sketchup.js +37 -37
  12. data/lib/yard-sketchup/templates/default/fulldoc/html/setup.rb +66 -66
  13. data/lib/yard-sketchup/templates/default/layout/html/embed_meta.erb +78 -78
  14. data/lib/yard-sketchup/templates/default/layout/html/footer.erb +4 -4
  15. data/lib/yard-sketchup/templates/default/layout/html/headers.erb +15 -15
  16. data/lib/yard-sketchup/templates/default/layout/html/layout.erb +55 -55
  17. data/lib/yard-sketchup/templates/default/layout/html/navbar.erb +36 -36
  18. data/lib/yard-sketchup/templates/default/layout/html/setup.rb +19 -19
  19. data/lib/yard-sketchup/templates/default/method_details/html/method_signature.erb +25 -25
  20. data/lib/yard-sketchup/templates/default/method_details/setup.rb +11 -11
  21. data/lib/yard-sketchup/templates/default/module/html/box_info.erb +37 -37
  22. data/lib/yard-sketchup/templates/default/module/html/constant_summary.erb +17 -17
  23. data/lib/yard-sketchup/templates/default/module/html/method_summary.erb +18 -18
  24. data/lib/yard-sketchup/templates/stubs/fulldoc/text/setup.rb +361 -357
  25. data/lib/yard-sketchup/templates/versions/fulldoc/text/setup.rb +25 -25
  26. data/lib/yard-sketchup/version.rb +3 -3
  27. data/yard-sketchup.gemspec +25 -25
  28. metadata +2 -2
@@ -1,66 +1,66 @@
1
- # Helpers:
2
-
3
- # Copy verbatim an asset file to the target output. By default it uses the
4
- # same relative path as the source for the target path.
5
- def copy(source, target = nil)
6
- path = self.class.find_file(source)
7
- # puts "copy(#{source}, #{target})"
8
- # puts "> path: #{path}"
9
- raise ArgumentError, "no file for '#{source}' in #{self.class.path}" unless path
10
- target ||= source
11
- asset(target, File.binread(path))
12
- end
13
-
14
- # Template overrides:
15
-
16
- def javascripts_full_list
17
- %w(js/jquery.js js/full_list.js js/sketchup.js)
18
- end
19
-
20
- def generate_assets
21
- super
22
- copy('favicon.ico')
23
- copy('images/SU_Developer-RedWhite.png')
24
- copy('images/trimble-logo-white.png')
25
- end
26
-
27
- # Custom search list grouping the classes in the API into similar groups.
28
- # TODO(thomthom): This file is just a stub.
29
-
30
- def generate_object_types_list
31
- #@items = options.objects if options.objects
32
- @items = [
33
- "App Level Classes",
34
- "Entity Classes",
35
- "Collection Classes",
36
- "Geom Classes",
37
- "UI Classes",
38
- "Observer Classes",
39
- "Core Ruby Classes"
40
- ]
41
- @list_title = "Object Index"
42
- @list_type = "object_types"
43
-
44
- # optional: the specified stylesheet class
45
- # when not specified it will default to the value of @list_type
46
- @list_class = "class"
47
-
48
- # Generate the full list html file with named feature_list.html
49
- # @note this file must be match the name of the type
50
- asset(url_for_list(@list_type), erb(:full_list))
51
- end
52
-
53
-
54
- # See `class_list` in fulldoc/html.
55
- def reference_list
56
- even_odd = "odd"
57
- out = ""
58
- @items.each { |item|
59
- out << "<li class='#{even_odd}'>"
60
- out << "<a class='toggle'></a>"
61
- out << item
62
- out << "</li>"
63
- even_odd = (even_odd == 'even' ? 'odd' : 'even')
64
- }
65
- out
66
- end
1
+ # Helpers:
2
+
3
+ # Copy verbatim an asset file to the target output. By default it uses the
4
+ # same relative path as the source for the target path.
5
+ def copy(source, target = nil)
6
+ path = self.class.find_file(source)
7
+ # puts "copy(#{source}, #{target})"
8
+ # puts "> path: #{path}"
9
+ raise ArgumentError, "no file for '#{source}' in #{self.class.path}" unless path
10
+ target ||= source
11
+ asset(target, File.binread(path))
12
+ end
13
+
14
+ # Template overrides:
15
+
16
+ def javascripts_full_list
17
+ %w(js/jquery.js js/full_list.js js/sketchup.js)
18
+ end
19
+
20
+ def generate_assets
21
+ super
22
+ copy('favicon.ico')
23
+ copy('images/SU_Developer-RedWhite.png')
24
+ copy('images/trimble-logo-white.png')
25
+ end
26
+
27
+ # Custom search list grouping the classes in the API into similar groups.
28
+ # TODO(thomthom): This file is just a stub.
29
+
30
+ def generate_object_types_list
31
+ #@items = options.objects if options.objects
32
+ @items = [
33
+ "App Level Classes",
34
+ "Entity Classes",
35
+ "Collection Classes",
36
+ "Geom Classes",
37
+ "UI Classes",
38
+ "Observer Classes",
39
+ "Core Ruby Classes"
40
+ ]
41
+ @list_title = "Object Index"
42
+ @list_type = "object_types"
43
+
44
+ # optional: the specified stylesheet class
45
+ # when not specified it will default to the value of @list_type
46
+ @list_class = "class"
47
+
48
+ # Generate the full list html file with named feature_list.html
49
+ # @note this file must be match the name of the type
50
+ asset(url_for_list(@list_type), erb(:full_list))
51
+ end
52
+
53
+
54
+ # See `class_list` in fulldoc/html.
55
+ def reference_list
56
+ even_odd = "odd"
57
+ out = ""
58
+ @items.each { |item|
59
+ out << "<li class='#{even_odd}'>"
60
+ out << "<a class='toggle'></a>"
61
+ out << item
62
+ out << "</li>"
63
+ even_odd = (even_odd == 'even' ? 'odd' : 'even')
64
+ }
65
+ out
66
+ end
@@ -1,78 +1,78 @@
1
- <% su_site_name = h options.title
2
- case object
3
- when String
4
- if object == "_index.html" || object == "index.html"
5
- su_page_url = "https://ruby.sketchup.com/index.html"
6
- su_page_title = "Alphabetic Index"
7
- su_page_desc = "Alphabetic Index of Files and API Namespaces. This is the main landing page for the SketchUp Ruby API Documentation."
8
- else
9
- su_page_url = "https://ruby.sketchup.com/"+(object =~ /(.html)\z/ ? object : "#{File.basename(object,'.*')}.html" )
10
- su_page_title = (@page_title && !@page_title.empty?) ? (h @page_title) : object.split('.')[0]
11
- su_page_desc = "The #{su_page_title} page."
12
- end
13
- when YARD::CodeObjects::Base # or subclass
14
- if object.root?
15
- if @file # Generating a YARD::CodeObjects::ExtraFileObject
16
- su_page_url = "https://ruby.sketchup.com/file.#{File.basename(@file.filename,'.*')}.html"
17
- su_page_title = h @page_title
18
- su_page_desc = @file.title
19
- elsif h @page_title == "Top Level Namespace"
20
- su_page_url = "https://ruby.sketchup.com/top-level-namespace.html"
21
- su_page_title = h @page_title
22
- su_page_desc = "The Top Level Namespace for Ruby and the SketchUp API, listing global constants, and a summary of toplevel modules and classes."
23
- else %>
24
- <!-- <%= "YARD Error - (embed_meta.erb) Unknown root object - using site name." %>--><%
25
- su_page_title = su_site_name
26
- su_page_url = "https://ruby.sketchup.com/"
27
- su_page_desc = "#{su_site_name}."
28
- end
29
- else # Generating a Class or Module page:
30
- su_page_url = "https://ruby.sketchup.com/#{@path.gsub('::','/')}.html"
31
- su_page_title = h @page_title
32
- if object.docstring.blank?
33
- if object.is_a?(YARD::CodeObjects::ClassObject)
34
- su_page_desc = "The #{@path} class."
35
- elsif object.is_a?(YARD::CodeObjects::ModuleObject)
36
- su_page_desc = "The #{@path} module."
37
- else
38
- su_page_desc = "The #{su_page_title} page."
39
- end %>
40
- <!-- <%= "YARD Warning - Blank docstring, object is: #{object.class.name}" %>--><%
41
- else
42
- su_page_desc = object.docstring.summary.gsub(/[{}+]/,'')
43
- end
44
- end # if root object
45
- else # object is unexpected type %>
46
- <!-- <%= "YARD Error - (embed_meta.erb) Unexpected type: #{object.class.name}" %>--><%
47
- su_page_title = su_site_name
48
- su_page_url = "https://ruby.sketchup.com/"
49
- if object.respond_to?(:docstring)
50
- su_page_desc = object.docstring.summary.gsub(/[{}+]/,'')
51
- else
52
- su_page_desc = "#{su_site_name}."
53
- end
54
- end
55
- su_page_img = "http://developer.sketchup.com/sites/developers.sketchup.com/files/Ruby.svg"
56
- %>
57
- <!-- GENERIC META PROPERTIES -->
58
- <meta name="url" content="<%= su_page_url %>" />
59
- <meta name="image" content="<%= su_page_img %>?s=60" />
60
- <meta name="title" content="<%= su_page_title %>" />
61
- <meta name="name" content="<%= su_site_name %>" />
62
- <meta name="description" content="<%= su_page_desc %>" />
63
- <!-- OPEN GRAPH META PROPERTIES -->
64
- <meta property="og:site_name" content="<%= su_site_name %>" />
65
- <meta property="og:type" content="website" />
66
- <meta property="og:image" content="<%= su_page_img %>" />
67
- <meta property="og:image:width" content="60" />
68
- <meta property="og:image:height" content="60" />
69
- <meta property="og:title" content="<%= su_page_title %>" />
70
- <meta property="og:url" content="<%= su_page_url %>" />
71
- <meta property="og:description" content="<%= su_page_desc %>" />
72
- <!-- TWITTER CARD META PROPERTIES -->
73
- <meta name="twitter:card" content="summary" />
74
- <meta name="twitter:site" content="@sketchup" />
75
- <meta name="twitter:title" content="<%= su_page_title %>" />
76
- <meta name="twitter:description" content="<%= su_page_desc %>" />
77
- <meta name="twitter:image:src" content="<%= su_page_img %>?s=120" />
78
- <meta name="twitter:url" content="<%= su_page_url %>" />
1
+ <% su_site_name = h options.title
2
+ case object
3
+ when String
4
+ if object == "_index.html" || object == "index.html"
5
+ su_page_url = "https://ruby.sketchup.com/index.html"
6
+ su_page_title = "Alphabetic Index"
7
+ su_page_desc = "Alphabetic Index of Files and API Namespaces. This is the main landing page for the SketchUp Ruby API Documentation."
8
+ else
9
+ su_page_url = "https://ruby.sketchup.com/"+(object =~ /(.html)\z/ ? object : "#{File.basename(object,'.*')}.html" )
10
+ su_page_title = (@page_title && !@page_title.empty?) ? (h @page_title) : object.split('.')[0]
11
+ su_page_desc = "The #{su_page_title} page."
12
+ end
13
+ when YARD::CodeObjects::Base # or subclass
14
+ if object.root?
15
+ if @file # Generating a YARD::CodeObjects::ExtraFileObject
16
+ su_page_url = "https://ruby.sketchup.com/file.#{File.basename(@file.filename,'.*')}.html"
17
+ su_page_title = h @page_title
18
+ su_page_desc = @file.title
19
+ elsif h @page_title == "Top Level Namespace"
20
+ su_page_url = "https://ruby.sketchup.com/top-level-namespace.html"
21
+ su_page_title = h @page_title
22
+ su_page_desc = "The Top Level Namespace for Ruby and the SketchUp API, listing global constants, and a summary of toplevel modules and classes."
23
+ else %>
24
+ <!-- <%= "YARD Error - (embed_meta.erb) Unknown root object - using site name." %>--><%
25
+ su_page_title = su_site_name
26
+ su_page_url = "https://ruby.sketchup.com/"
27
+ su_page_desc = "#{su_site_name}."
28
+ end
29
+ else # Generating a Class or Module page:
30
+ su_page_url = "https://ruby.sketchup.com/#{@path.gsub('::','/')}.html"
31
+ su_page_title = h @page_title
32
+ if object.docstring.blank?
33
+ if object.is_a?(YARD::CodeObjects::ClassObject)
34
+ su_page_desc = "The #{@path} class."
35
+ elsif object.is_a?(YARD::CodeObjects::ModuleObject)
36
+ su_page_desc = "The #{@path} module."
37
+ else
38
+ su_page_desc = "The #{su_page_title} page."
39
+ end %>
40
+ <!-- <%= "YARD Warning - Blank docstring, object is: #{object.class.name}" %>--><%
41
+ else
42
+ su_page_desc = object.docstring.summary.gsub(/[{}+]/,'')
43
+ end
44
+ end # if root object
45
+ else # object is unexpected type %>
46
+ <!-- <%= "YARD Error - (embed_meta.erb) Unexpected type: #{object.class.name}" %>--><%
47
+ su_page_title = su_site_name
48
+ su_page_url = "https://ruby.sketchup.com/"
49
+ if object.respond_to?(:docstring)
50
+ su_page_desc = object.docstring.summary.gsub(/[{}+]/,'')
51
+ else
52
+ su_page_desc = "#{su_site_name}."
53
+ end
54
+ end
55
+ su_page_img = "http://developer.sketchup.com/sites/developers.sketchup.com/files/Ruby.svg"
56
+ %>
57
+ <!-- GENERIC META PROPERTIES -->
58
+ <meta name="url" content="<%= su_page_url %>" />
59
+ <meta name="image" content="<%= su_page_img %>?s=60" />
60
+ <meta name="title" content="<%= su_page_title %>" />
61
+ <meta name="name" content="<%= su_site_name %>" />
62
+ <meta name="description" content="<%= su_page_desc %>" />
63
+ <!-- OPEN GRAPH META PROPERTIES -->
64
+ <meta property="og:site_name" content="<%= su_site_name %>" />
65
+ <meta property="og:type" content="website" />
66
+ <meta property="og:image" content="<%= su_page_img %>" />
67
+ <meta property="og:image:width" content="60" />
68
+ <meta property="og:image:height" content="60" />
69
+ <meta property="og:title" content="<%= su_page_title %>" />
70
+ <meta property="og:url" content="<%= su_page_url %>" />
71
+ <meta property="og:description" content="<%= su_page_desc %>" />
72
+ <!-- TWITTER CARD META PROPERTIES -->
73
+ <meta name="twitter:card" content="summary" />
74
+ <meta name="twitter:site" content="@sketchup" />
75
+ <meta name="twitter:title" content="<%= su_page_title %>" />
76
+ <meta name="twitter:description" content="<%= su_page_desc %>" />
77
+ <meta name="twitter:image:src" content="<%= su_page_img %>?s=120" />
78
+ <meta name="twitter:url" content="<%= su_page_url %>" />
@@ -1,4 +1,4 @@
1
- <div id="footer">
2
- Generated by
3
- <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
4
- </div>
1
+ <div id="footer">
2
+ Generated by
3
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
4
+ </div>
@@ -1,15 +1,15 @@
1
- <meta charset="<%= charset %>">
2
- <!-- VIEWPORT -->
3
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
4
- <!-- AUTHOR and GENERATOR -->
5
- <meta name="author" content="SketchUp Extensibility Team">
6
- <meta name="generator" content="YARD https://yardoc.org">
7
- <!-- TITLE -->
8
- <title><% if object == "_index.html" || object == "index.html" %>
9
- Alphabetic Index &mdash; <%= h options.title %><% else %>
10
- <%= h @page_title %><% if options.title && @page_title != options.title %> &mdash; <%= h options.title %><% end %><% end %>
11
- </title>
12
- <!-- SHORTCUT ICON -->
13
- <link rel="shortcut icon" type="image/vnd.microsoft.icon"
14
- href="https://ruby.sketchup.com/favicon.ico" />
15
- <%= erb(:embed_meta) %>
1
+ <meta charset="<%= charset %>">
2
+ <!-- VIEWPORT -->
3
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
4
+ <!-- AUTHOR and GENERATOR -->
5
+ <meta name="author" content="SketchUp Extensibility Team">
6
+ <meta name="generator" content="YARD https://yardoc.org">
7
+ <!-- TITLE -->
8
+ <title><% if object == "_index.html" || object == "index.html" %>
9
+ Alphabetic Index &mdash; <%= h options.title %><% else %>
10
+ <%= h @page_title %><% if options.title && @page_title != options.title %> &mdash; <%= h options.title %><% end %><% end %>
11
+ </title>
12
+ <!-- SHORTCUT ICON -->
13
+ <link rel="shortcut icon" type="image/vnd.microsoft.icon"
14
+ href="https://ruby.sketchup.com/favicon.ico" />
15
+ <%= erb(:embed_meta) %>
@@ -1,55 +1,55 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <%= erb(:headers) %>
5
- <!-- STYLESHEETS -->
6
- <link rel="stylesheet" type="text/css"
7
- href="https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic" />
8
- <% stylesheets.each do |stylesheet| %>
9
- <link rel="stylesheet" href="<%= url_for(stylesheet) %>" type="text/css" charset="utf-8" />
10
- <% end %>
11
- <!-- SCRIPTS -->
12
- <%= erb :script_setup %>
13
- <% javascripts.each do |javascript| %>
14
- <script type="text/javascript" charset="utf-8" src="<%= url_for(javascript) %>"></script>
15
- <% end %>
16
- <script>
17
- // Every time this page is loaded, it sends this action to SketchUp, telling
18
- // SketchUp that a new page has loaded that has example snippets that should
19
- // be replaced with code editors. Nothing happens if the page is loaded in a
20
- // regular browser outside of the SketchUp client.
21
- $( document ).ready(function() {
22
- if (typeof sketchup == 'object') {
23
- sketchup.page_loaded();
24
- }
25
- });
26
- </script>
27
-
28
- </head>
29
- <body>
30
-
31
- <%= erb(:navbar) %>
32
-
33
- <div id="su-content">
34
-
35
- <div class="nav_wrap">
36
- <iframe id="nav" src="<%= @nav_url %>"></iframe>
37
- <div id="resizer"></div>
38
- </div>
39
-
40
- <div id="main" tabindex="-1">
41
- <div id="header">
42
- <%= erb(:breadcrumb) %>
43
- <%= erb(:search) %>
44
- <div class="clear"></div>
45
- </div>
46
-
47
- <div id="content"><%= yieldall %></div>
48
-
49
- <%= erb(:footer) %>
50
- </div>
51
-
52
- </div>
53
-
54
- </body>
55
- </html>
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <%= erb(:headers) %>
5
+ <!-- STYLESHEETS -->
6
+ <link rel="stylesheet" type="text/css"
7
+ href="https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic" />
8
+ <% stylesheets.each do |stylesheet| %>
9
+ <link rel="stylesheet" href="<%= url_for(stylesheet) %>" type="text/css" charset="utf-8" />
10
+ <% end %>
11
+ <!-- SCRIPTS -->
12
+ <%= erb :script_setup %>
13
+ <% javascripts.each do |javascript| %>
14
+ <script type="text/javascript" charset="utf-8" src="<%= url_for(javascript) %>"></script>
15
+ <% end %>
16
+ <script>
17
+ // Every time this page is loaded, it sends this action to SketchUp, telling
18
+ // SketchUp that a new page has loaded that has example snippets that should
19
+ // be replaced with code editors. Nothing happens if the page is loaded in a
20
+ // regular browser outside of the SketchUp client.
21
+ $( document ).ready(function() {
22
+ if (typeof sketchup == 'object') {
23
+ sketchup.page_loaded();
24
+ }
25
+ });
26
+ </script>
27
+
28
+ </head>
29
+ <body>
30
+
31
+ <%= erb(:navbar) %>
32
+
33
+ <div id="su-content">
34
+
35
+ <div class="nav_wrap">
36
+ <iframe id="nav" src="<%= @nav_url %>"></iframe>
37
+ <div id="resizer"></div>
38
+ </div>
39
+
40
+ <div id="main" tabindex="-1">
41
+ <div id="header">
42
+ <%= erb(:breadcrumb) %>
43
+ <%= erb(:search) %>
44
+ <div class="clear"></div>
45
+ </div>
46
+
47
+ <div id="content"><%= yieldall %></div>
48
+
49
+ <%= erb(:footer) %>
50
+ </div>
51
+
52
+ </div>
53
+
54
+ </body>
55
+ </html>
@@ -1,36 +1,36 @@
1
- <!-- SU - start -->
2
- <header id="navbar" role="banner" class="navbar navbar-fixed-top navbar-inverse">
3
- <div id="api-documentation-header">
4
- <div class="navbar-header">
5
- <a class="logo navbar-btn pull-left" href="https://developer.sketchup.com" title="Home">
6
- <img src="https://ruby.sketchup.com/images/SU_Developer-RedWhite.png" alt="Home">
7
- </a>
8
- <a class="name navbar-brand" href="/en" title="Home">SketchUp Developer Center</a>
9
- <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
10
- <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
11
- <span class="sr-only">Toggle navigation</span>
12
- <span class="icon-bar"></span>
13
- <span class="icon-bar"></span>
14
- <span class="icon-bar"></span>
15
- </button>
16
- </div>
17
- <div class="navbar-collapse collapse">
18
- <nav role="navigation">
19
- <ul class="menu nav navbar-nav">
20
- <li class="first leaf"><a href="https://forums.sketchup.com/c/developers">Community</a></li>
21
- <li class="leaf"><a href="https://blog.sketchup.com/">SketchUp Blog</a></li>
22
- <li class="leaf"><a href="https://www.sketchup.com/download" class="top-menu--download-button">Download</a></li>
23
- <li class="last expanded dropdown">
24
- <a href="https://www.trimble.com" class="trimble-top-menu-item dropdown-toggle" data-target="#" data-toggle="dropdown"><img src="https://ruby.sketchup.com/images/trimble-logo-white.png"><span class="caret"></span></a>
25
- <ul class="dropdown-menu">
26
- <li class="first leaf"><a href="https://connect.trimble.com/">Trimble Connect</a></li>
27
- <li class="leaf"><a href="https://www.trimble.com/Corporate/About_Trimble.aspx">About Trimble</a></li>
28
- <li class="last leaf"><a href="https://buildings.trimble.com/">Trimble Buildings</a></li>
29
- </ul>
30
- </li>
31
- </ul>
32
- </nav>
33
- </div>
34
- </div>
35
- </header>
36
- <!-- SU - end -->
1
+ <!-- SU - start -->
2
+ <header id="navbar" role="banner" class="navbar navbar-fixed-top navbar-inverse">
3
+ <div id="api-documentation-header">
4
+ <div class="navbar-header">
5
+ <a class="logo navbar-btn pull-left" href="https://developer.sketchup.com" title="Home">
6
+ <img src="https://ruby.sketchup.com/images/SU_Developer-RedWhite.png" alt="Home">
7
+ </a>
8
+ <a class="name navbar-brand" href="/en" title="Home">SketchUp Developer Center</a>
9
+ <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
10
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
11
+ <span class="sr-only">Toggle navigation</span>
12
+ <span class="icon-bar"></span>
13
+ <span class="icon-bar"></span>
14
+ <span class="icon-bar"></span>
15
+ </button>
16
+ </div>
17
+ <div class="navbar-collapse collapse">
18
+ <nav role="navigation">
19
+ <ul class="menu nav navbar-nav">
20
+ <li class="first leaf"><a href="https://forums.sketchup.com/c/developers">Community</a></li>
21
+ <li class="leaf"><a href="https://blog.sketchup.com/">SketchUp Blog</a></li>
22
+ <li class="leaf"><a href="https://www.sketchup.com/download" class="top-menu--download-button">Download</a></li>
23
+ <li class="last expanded dropdown">
24
+ <a href="https://www.trimble.com" class="trimble-top-menu-item dropdown-toggle" data-target="#" data-toggle="dropdown"><img src="https://ruby.sketchup.com/images/trimble-logo-white.png"><span class="caret"></span></a>
25
+ <ul class="dropdown-menu">
26
+ <li class="first leaf"><a href="https://connect.trimble.com/">Trimble Connect</a></li>
27
+ <li class="leaf"><a href="https://www.trimble.com/Corporate/About_Trimble.aspx">About Trimble</a></li>
28
+ <li class="last leaf"><a href="https://buildings.trimble.com/">Trimble Buildings</a></li>
29
+ </ul>
30
+ </li>
31
+ </ul>
32
+ </nav>
33
+ </div>
34
+ </div>
35
+ </header>
36
+ <!-- SU - end -->