forked from golang/tour
/
values.js
167 lines (161 loc) · 6.5 KB
/
values.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
/* Copyright 2012 The Go Authors. All rights reserved.
* Use of this source code is governed by a BSD-style
* license that can be found in the LICENSE file.
*/
'use strict';
angular.module('tour.values', []).
// List of modules with description and lessons in it.
value('tableOfContents', [{
'id': 'mechanics',
'title': 'Using the tour',
'description': '<p>Welcome to a tour of the <a href="http://golang.org">Go programming language</a>. The tour covers the most important features of the language, mainly:</p>',
'lessons': ['welcome']
}, {
'id': 'basics',
'title': 'Basics',
'description': '<p>The starting point, learn all the basics of the language.</p><p>Declaring variables, calling functions, and all the things you need to know before moving to the next lessons.</p>',
'lessons': ['basics', 'flowcontrol', 'moretypes']
}, {
'id': 'methods',
'title': 'Methods and interfaces',
'description': '<p>Learn how to define methods on types, how to declare interfaces, and how to put everything together.</p>',
'lessons': ['methods']
}, {
'id': 'concurrency',
'title': 'Concurrency',
'description': '<p>Go provides concurrency features as part of the core language.</p><p>This module goes over goroutines and channels, and how they are used to implement different concurrency patterns.</p>',
'lessons': ['concurrency']
}]).
// translation
value('translation', {
'off': 'off',
'on': 'on',
'syntax': 'Syntax-Highlighting',
'lineno': 'Line-Numbers',
'reset': 'Reset Slide',
'format': 'Format Source Code',
'kill': 'Kill Program',
'run': 'Run',
'compile': 'Compile and Run',
'more': 'Options',
'toc': 'Table of Contents',
'prev': 'Previous',
'next': 'Next',
'waiting': 'Waiting for remote server...',
'errcomm': 'Error communicating with remote server.',
'submit-feedback': 'Send feedback about this page',
// GitHub issue template: update repo and messaging when translating.
'github-repo': 'github.com/golang/go',
'issue-title': 'tour: [REPLACE WITH SHORT DESCRIPTION]',
'issue-message': 'Change the title above to describe your issue and add your feedback here, including code if necessary',
'context': 'Context',
}).
// Config for codemirror plugin
value('ui.config', {
codemirror: {
mode: 'text/x-go',
matchBrackets: true,
lineNumbers: true,
autofocus: true,
indentWithTabs: true,
indentUnit: 4,
tabSize: 4,
lineWrapping: true,
extraKeys: {
'Shift-Enter': function() {
$('#run').click();
},
'Ctrl-Enter': function() {
$('#format').click();
},
'PageDown': function() {
return false;
},
'PageUp': function() {
return false;
},
},
// TODO: is there a better way to do this?
// AngularJS values can't depend on factories.
onChange: function() {
if (window.codeChanged !== null) window.codeChanged();
}
}
}).
// mapping from the old paths (#42) to the new organization.
// The values have been generated with the map.sh script in the tools directory.
value('mapping', {
'#1': '/welcome/1', // Hello, 世界
'#2': '/welcome/2', // Go local
'#3': '/basics/1', // Packages
'#4': '/basics/2', // Imports
'#5': '/basics/3', // Exported names
'#6': '/basics/4', // Functions
'#7': '/basics/5', // Functions continued
'#8': '/basics/6', // Multiple results
'#9': undefined, // Named results
'#10': '/basics/8', // Variables
'#11': '/basics/9', // Variables with initializers
'#12': '/basics/10', // Short variable declarations
'#13': '/basics/11', // Basic types
'#14': '/basics/13', // Type conversions
'#15': '/basics/15', // Constants
'#16': '/basics/16', // Numeric Constants
'#17': '/flowcontrol/1', // For
'#18': '/flowcontrol/2', // For continued
'#19': '/flowcontrol/3', // For is Go's "while"
'#20': '/flowcontrol/4', // Forever
'#21': '/flowcontrol/5', // If
'#22': '/flowcontrol/6', // If with a short statement
'#23': '/flowcontrol/7', // If and else
'#24': '/flowcontrol/8', // Exercise: Loops and Functions
'#25': '/moretypes/2', // Structs
'#26': '/moretypes/3', // Struct Fields
'#27': '/moretypes/1', // Pointers
'#28': '/moretypes/5', // Struct Literals
'#29': undefined, // The new function
'#30': '/moretypes/6', // Arrays
'#31': '/moretypes/7', // Slices
'#32': '/moretypes/8', // Slicing slices
'#33': '/moretypes/9', // Making slices
'#34': '/moretypes/10', // Nil slices
'#35': '/moretypes/12', // Range
'#36': '/moretypes/13', // Range continued
'#37': '/moretypes/14', // Exercise: Slices
'#38': '/moretypes/15', // Maps
'#39': '/moretypes/16', // Map literals
'#40': '/moretypes/17', // Map literals continued
'#41': '/moretypes/18', // Mutating Maps
'#42': '/moretypes/19', // Exercise: Maps
'#43': '/moretypes/20', // Function values
'#44': '/moretypes/21', // Function closures
'#45': '/moretypes/22', // Exercise: Fibonacci closure
'#46': '/flowcontrol/9', // Switch
'#47': '/flowcontrol/10', // Switch evaluation order
'#48': '/flowcontrol/11', // Switch with no condition
'#49': undefined, // Advanced Exercise: Complex cube roots
'#50': undefined, // Methods and Interfaces
'#51': '/methods/1', // Methods
'#52': '/methods/2', // Methods continued
'#53': '/methods/3', // Methods with pointer receivers
'#54': '/methods/4', // Interfaces
'#55': '/methods/5', // Interfaces are satisfied implicitly
'#56': '/methods/8', // Errors
'#57': '/methods/9', // Exercise: Errors
'#58': '/methods/13', // Web servers
'#59': '/methods/14', // Exercise: HTTP Handlers
'#60': '/methods/15', // Images
'#61': '/methods/16', // Exercise: Images
'#62': undefined, // Exercise: Rot13 Reader
'#63': undefined, // Concurrency
'#64': '/concurrency/1', // Goroutines
'#65': '/concurrency/2', // Channels
'#66': '/concurrency/3', // Buffered Channels
'#67': '/concurrency/4', // Range and Close
'#68': '/concurrency/5', // Select
'#69': '/concurrency/6', // Default Selection
'#70': '/concurrency/7', // Exercise: Equivalent Binary Trees
'#71': '/concurrency/8', // Exercise: Equivalent Binary Trees
'#72': '/concurrency/9', // Exercise: Web Crawler
'#73': '/concurrency/10', // Where to Go from here...
});