Skip to content

Commit 8259ee4

Browse files
committed
Remove $ from practice slugs
1 parent f46ca9c commit 8259ee4

2 files changed

Lines changed: 63 additions & 63 deletions

File tree

autoload/NavigationManager.gd

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ var arguments := { }
1919

2020
var _current_unload_type := -1
2121
var _url_normalization_regex := RegExpGroup.compile(
22-
r"^(?<prefix>user:\/\/|res:\/\/|\.*?\/+)#?(?<course>[^\/]+)\/(?<lesson>[^\/]+)\/?(?<lesson_file>[^\.]+\.[^\/]+)?\/?(?<practice>\$.*)?",
22+
r"^(?<prefix>user:\/\/|res:\/\/|\.*?\/+)#?(?<course>[^\/]+)\/(?<lesson>[^\/]+)\/?(?<lesson_file>[^\.]+\.[^\/]+)?\/?(?<practice>.*)?",
2323
)
2424
var _slug_normalization_regex := RegExpGroup.compile(
25-
r"^#?(?<course>[^\/]+)\/(?<lesson>[^\$]+)\/?(?<practice>\$.*)?",
25+
r"^#?(?<course>[^\/]+)\/(?<lesson>[^\/]+)\/?(?<practice>.*)?",
2626
)
2727
var _lesson_cache := { }
2828

@@ -141,7 +141,7 @@ func navigate_to_lesson(course_id: String, lesson_slug: String) -> void:
141141

142142

143143
func navigate_to_practice(course_id: String, lesson_slug: String, practice_id: String) -> void:
144-
navigate_to("#%s/%s/$%s" % [course_id, lesson_slug, practice_id])
144+
navigate_to("#%s/%s/%s" % [course_id, lesson_slug, practice_id])
145145

146146

147147
func navigate_to(metadata: String) -> void:
@@ -176,11 +176,11 @@ func navigate_to(metadata: String) -> void:
176176

177177
var effective_path := "%s/%s" % [course_index.get_course_id(), normalized.lesson_path]
178178
if normalized.practice_path != "":
179-
var practice := course_index.get_practice_from_slug("%s/$%s" % [normalized.lesson_path, normalized.practice_path])
179+
var practice := course_index.get_practice_from_slug("%s/%s" % [normalized.lesson_path, normalized.practice_path])
180180
if not practice is BBCodeParser.ParseNode:
181181
push_error("'%s' does not have a practice at slug '%s'" % [lesson_path, normalized.practice_path])
182182
return
183-
effective_path += "/$%s" % [normalized.practice_path]
183+
effective_path += "/%s" % [normalized.practice_path]
184184

185185
history.push_back(effective_path)
186186
_push_javascript_state(effective_path)
@@ -364,7 +364,7 @@ class NormalizedUrl:
364364
protocol = regex_result.get_string("prefix")
365365
course_path = regex_result.get_string("course")
366366
lesson_path = regex_result.get_string("lesson").trim_suffix("/")
367-
practice_path = regex_result.get_string("practice").substr(1)
367+
practice_path = regex_result.get_string("practice")
368368
lesson_file = regex_result.get_string("lesson_file")
369369

370370
if protocol in ["//", "/"]:
@@ -376,7 +376,7 @@ class NormalizedUrl:
376376
if lesson_file != "":
377377
file_path += "/%s" % [lesson_file]
378378
if with_practices and practice_path != "":
379-
file_path += "/$%s" % [practice_path]
379+
file_path += "/%s" % [practice_path]
380380
return file_path
381381

382382

@@ -385,7 +385,7 @@ class NormalizedUrl:
385385
if lesson_file != "":
386386
url += "/%s" % [lesson_file]
387387
if practice_path != "":
388-
url += "/$%s" % [practice_path]
388+
url += "/%s" % [practice_path]
389389
return url
390390

391391

@@ -394,5 +394,5 @@ class NormalizedUrl:
394394
if lesson_file != "":
395395
string += "/%s" % [lesson_file]
396396
if practice_path != "":
397-
string += "/$%s" % [practice_path]
397+
string += "/%s" % [practice_path]
398398
return string

course/CourseLearnGDScriptIndex.gd

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -63,84 +63,84 @@ const _LESSON_SLUG_ALIASES := {
6363
"lesson-28-specifying-types/lesson.tres": "specifying-types",
6464

6565
# legacy practices
66-
"lesson-1-what-code-is-like/practice-55916.tres": "what-code-is-like/$try-your-first-code",
67-
"lesson-2-your-first-error/practice-85733.tres": "your-first-error/$fix-your-first-error",
66+
"lesson-1-what-code-is-like/practice-55916.tres": "what-code-is-like/try-your-first-code",
67+
"lesson-2-your-first-error/practice-85733.tres": "your-first-error/fix-your-first-error",
6868

69-
"lesson-3-standing-on-shoulders-of-giants/practice-QiGjB7tK.tres": "standing-on-shoulders-of-giants/$make-the-character-visible",
70-
"lesson-3-standing-on-shoulders-of-giants/practice-HJMQ2XNw.tres": "standing-on-shoulders-of-giants/$make-the-robot-upright",
69+
"lesson-3-standing-on-shoulders-of-giants/practice-QiGjB7tK.tres": "standing-on-shoulders-of-giants/make-the-character-visible",
70+
"lesson-3-standing-on-shoulders-of-giants/practice-HJMQ2XNw.tres": "standing-on-shoulders-of-giants/make-the-robot-upright",
7171

72-
"lesson-4-drawing-a-rectangle/practice-Gx0c7DDi.tres": "drawing-a-rectangle/$drawing-a-corner",
73-
"lesson-4-drawing-a-rectangle/practice-5AJTESv5.tres": "drawing-a-rectangle/$drawing-a-rectangle",
74-
"lesson-4-drawing-a-rectangle/practice-kGx0c7DD.tres": "drawing-a-rectangle/$drawing-a-bigger-rectangle",
72+
"lesson-4-drawing-a-rectangle/practice-Gx0c7DDi.tres": "drawing-a-rectangle/drawing-a-corner",
73+
"lesson-4-drawing-a-rectangle/practice-5AJTESv5.tres": "drawing-a-rectangle/drawing-a-rectangle",
74+
"lesson-4-drawing-a-rectangle/practice-kGx0c7DD.tres": "drawing-a-rectangle/drawing-a-bigger-rectangle",
7575

76-
"lesson-5-your-first-function/practice-QiGjB7tK.tres": "your-first-function/$a-function-to-draw-squares",
77-
"lesson-5-your-first-function/practice-kGx0c7DD.tres": "your-first-function/$drawing-multiple-squares",
76+
"lesson-5-your-first-function/practice-QiGjB7tK.tres": "your-first-function/a-function-to-draw-squares",
77+
"lesson-5-your-first-function/practice-kGx0c7DD.tres": "your-first-function/drawing-multiple-squares",
7878

79-
"lesson-6-multiple-function-parameters/practice-qAYVjotx.tres": "multiple-function-parameters/$drawing-corners-of-different-sizes",
80-
"lesson-6-multiple-function-parameters/practice-DwfyqdYO.tres": "multiple-function-parameters/$using-multiple-parameters",
81-
"lesson-6-multiple-function-parameters/practice-v5tT6n1T.tres": "multiple-function-parameters/$drawing-squares-of-any-size",
82-
"lesson-6-multiple-function-parameters/practice-lkGx0c7D.tres": "multiple-function-parameters/$drawing-rectangles-of-any-size",
79+
"lesson-6-multiple-function-parameters/practice-qAYVjotx.tres": "multiple-function-parameters/drawing-corners-of-different-sizes",
80+
"lesson-6-multiple-function-parameters/practice-DwfyqdYO.tres": "multiple-function-parameters/using-multiple-parameters",
81+
"lesson-6-multiple-function-parameters/practice-v5tT6n1T.tres": "multiple-function-parameters/drawing-squares-of-any-size",
82+
"lesson-6-multiple-function-parameters/practice-lkGx0c7D.tres": "multiple-function-parameters/drawing-rectangles-of-any-size",
8383

84-
"lesson-7-member-variables/practice-Gx0c7DDi.tres": "member-variables/$draw-a-rectangle-at-a-precise-position",
85-
"lesson-7-member-variables/practice-x0c7DDiz.tres": "member-variables/$draw-squares-at-different-positions",
84+
"lesson-7-member-variables/practice-Gx0c7DDi.tres": "member-variables/draw-a-rectangle-at-a-precise-position",
85+
"lesson-7-member-variables/practice-x0c7DDiz.tres": "member-variables/draw-squares-at-different-positions",
8686

87-
"lesson-8-defining-variables/practice-lkGx0c7D.tres": "defining-variables/$define-a-health-variable",
87+
"lesson-8-defining-variables/practice-lkGx0c7D.tres": "defining-variables/define-a-health-variable",
8888

89-
"lesson-9-adding-and-subtracting/practice-nk1K416Q.tres": "adding-and-subtracting/$damaging-the-robot",
90-
"lesson-9-adding-and-subtracting/practice-kGx0c7DD.tres": "adding-and-subtracting/$healing-the-robot",
89+
"lesson-9-adding-and-subtracting/practice-nk1K416Q.tres": "adding-and-subtracting/damaging-the-robot",
90+
"lesson-9-adding-and-subtracting/practice-kGx0c7DD.tres": "adding-and-subtracting/healing-the-robot",
9191

92-
"lesson-10-the-game-loop/practice-tKRHJMQ2.tres": "the-game-loop/$rotating-a-character-continuously",
93-
"lesson-10-the-game-loop/practice-QiGjB7tK.tres": "the-game-loop/$creating-circular-movement",
92+
"lesson-10-the-game-loop/practice-tKRHJMQ2.tres": "the-game-loop/rotating-a-character-continuously",
93+
"lesson-10-the-game-loop/practice-QiGjB7tK.tres": "the-game-loop/creating-circular-movement",
9494

95-
"lesson-11-time-delta/practice-UdOCQiGj.tres": "time-delta/$rotating-using-delta",
96-
"lesson-11-time-delta/practice-x0c7DDiz.tres": "time-delta/$moving-in-a-circle-using-delta",
95+
"lesson-11-time-delta/practice-UdOCQiGj.tres": "time-delta/rotating-using-delta",
96+
"lesson-11-time-delta/practice-x0c7DDiz.tres": "time-delta/moving-in-a-circle-using-delta",
9797

98-
"lesson-12-using-variables/practice-lkGx0c7D.tres": "using-variables/$clarifying-code-using-variables",
99-
"lesson-12-using-variables/practice-KUdOCQiG.tres": "using-variables/$fixing-an-out-of-scope-error",
98+
"lesson-12-using-variables/practice-lkGx0c7D.tres": "using-variables/clarifying-code-using-variables",
99+
"lesson-12-using-variables/practice-KUdOCQiG.tres": "using-variables/fixing-an-out-of-scope-error",
100100

101-
"lesson-13-conditions/practice-KRHJMQ2X.tres": "conditions/$using-comparisons",
102-
"lesson-13-conditions/practice-MqAYVjot.tres": "conditions/$limiting-healing",
103-
"lesson-13-conditions/practice-xZPxY8VU.tres": "conditions/$preventing-health-from-going-below-zero",
101+
"lesson-13-conditions/practice-KRHJMQ2X.tres": "conditions/using-comparisons",
102+
"lesson-13-conditions/practice-MqAYVjot.tres": "conditions/limiting-healing",
103+
"lesson-13-conditions/practice-xZPxY8VU.tres": "conditions/preventing-health-from-going-below-zero",
104104

105-
"lesson-14-multiplying/practice-0c7DDizK.tres": "multiplying/$increasing-maximum-health-exponentially",
106-
"lesson-14-multiplying/practice-CQiGjB7t.tres": "multiplying/$reducing-damage-at-higher-levels",
105+
"lesson-14-multiplying/practice-0c7DDizK.tres": "multiplying/increasing-maximum-health-exponentially",
106+
"lesson-14-multiplying/practice-CQiGjB7t.tres": "multiplying/reducing-damage-at-higher-levels",
107107

108-
"lesson-16-2d-vectors/practice-RHJMQ2XN.tres": "2d-vectors/$increasing-scale-using-vectors",
109-
"lesson-16-2d-vectors/practice-kGx0c7DD.tres": "2d-vectors/$resetting-size-and-position-using-vectors",
108+
"lesson-16-2d-vectors/practice-RHJMQ2XN.tres": "2d-vectors/increasing-scale-using-vectors",
109+
"lesson-16-2d-vectors/practice-kGx0c7DD.tres": "2d-vectors/resetting-size-and-position-using-vectors",
110110

111-
"lesson-17-while-loops/practice-lkGx0c7D.tres": "while-loops/$moving-to-the-end-of-a-board",
111+
"lesson-17-while-loops/practice-lkGx0c7D.tres": "while-loops/moving-to-the-end-of-a-board",
112112

113-
"lesson-18-for-loops/practice-7tKRHJMQ.tres": "for-loops/$using-a-for-loop-to-move-to-the-end-of-the-board",
114-
"lesson-18-for-loops/practice-UDpPwQDw.tres": "for-loops/$improving-code-with-a-for-loop",
113+
"lesson-18-for-loops/practice-7tKRHJMQ.tres": "for-loops/using-a-for-loop-to-move-to-the-end-of-the-board",
114+
"lesson-18-for-loops/practice-UDpPwQDw.tres": "for-loops/improving-code-with-a-for-loop",
115115

116-
"lesson-19-creating-arrays/practice-otxF5HUx.tres": "creating-arrays/$walking-to-the-robot",
117-
"lesson-19-creating-arrays/practice-PxY8VUDp.tres": "creating-arrays/$selecting-units",
116+
"lesson-19-creating-arrays/practice-otxF5HUx.tres": "creating-arrays/walking-to-the-robot",
117+
"lesson-19-creating-arrays/practice-PxY8VUDp.tres": "creating-arrays/selecting-units",
118118

119-
"lesson-20-looping-over-arrays/practice-f8B67UJ8.tres": "looping-over-arrays/$move-the-robot-along-the-path",
120-
"lesson-20-looping-over-arrays/practice-clsFcSrG.tres": "looping-over-arrays/$back-to-the-drawing-board",
119+
"lesson-20-looping-over-arrays/practice-f8B67UJ8.tres": "looping-over-arrays/move-the-robot-along-the-path",
120+
"lesson-20-looping-over-arrays/practice-clsFcSrG.tres": "looping-over-arrays/back-to-the-drawing-board",
121121

122-
"lesson-21-strings/practice-iGjB7tKR.tres": "strings/$creating-string-variables",
123-
"lesson-21-strings/practice-NwQMqAYV.tres": "strings/$using-an-array-of-strings-to-play-a-combo",
122+
"lesson-21-strings/practice-iGjB7tKR.tres": "strings/creating-string-variables",
123+
"lesson-21-strings/practice-NwQMqAYV.tres": "strings/using-an-array-of-strings-to-play-a-combo",
124124

125-
"lesson-22-functions-return-values/practice-llf8B67U.tres": "functions-return-values/$converting-coordinates-from-the-grid-to-the-screen",
125+
"lesson-22-functions-return-values/practice-llf8B67U.tres": "functions-return-values/converting-coordinates-from-the-grid-to-the-screen",
126126

127-
"lesson-23-append-to-arrays/practice-KUdOCQiG.tres": "append-to-arrays/$completing-orders",
128-
"lesson-23-append-to-arrays/practice-B7tKRHJM.tres": "append-to-arrays/$clearing-up-the-crates",
127+
"lesson-23-append-to-arrays/practice-KUdOCQiG.tres": "append-to-arrays/completing-orders",
128+
"lesson-23-append-to-arrays/practice-B7tKRHJM.tres": "append-to-arrays/clearing-up-the-crates",
129129

130-
"lesson-24-access-array-indices/practice-ErO9L4MW.tres": "access-array-indices/$using-the-right-items",
131-
"lesson-24-access-array-indices/practice-wfi7YGry.tres": "access-array-indices/$realigning-the-train-tracks",
130+
"lesson-24-access-array-indices/practice-ErO9L4MW.tres": "access-array-indices/using-the-right-items",
131+
"lesson-24-access-array-indices/practice-wfi7YGry.tres": "access-array-indices/realigning-the-train-tracks",
132132

133-
"lesson-25-creating-dictionaries/practice-tZixQOPR.tres": "creating-dictionaries/$creating-an-inventory-using-a-dictionary",
134-
"lesson-25-creating-dictionaries/practice-9clsFcSr.tres": "creating-dictionaries/$increasing-item-counts",
133+
"lesson-25-creating-dictionaries/practice-tZixQOPR.tres": "creating-dictionaries/creating-an-inventory-using-a-dictionary",
134+
"lesson-25-creating-dictionaries/practice-9clsFcSr.tres": "creating-dictionaries/increasing-item-counts",
135135

136-
"lesson-26-looping-over-dictionaries/practice-nVHARbBW.tres": "looping-over-dictionaries/$displaying-the-inventory",
137-
"lesson-26-looping-over-dictionaries/practice-bDGt6fUq.tres": "looping-over-dictionaries/$placing-units-on-the-board",
136+
"lesson-26-looping-over-dictionaries/practice-nVHARbBW.tres": "looping-over-dictionaries/displaying-the-inventory",
137+
"lesson-26-looping-over-dictionaries/practice-bDGt6fUq.tres": "looping-over-dictionaries/placing-units-on-the-board",
138138

139-
"lesson-27-value-types/practice-lkGx0c7D.tres": "value-types/$displaying-the-player-health-and-energy",
140-
"lesson-27-value-types/practice-izKUdOCQ.tres": "value-types/$letting-the-player-type-numbers",
139+
"lesson-27-value-types/practice-lkGx0c7D.tres": "value-types/displaying-the-player-health-and-energy",
140+
"lesson-27-value-types/practice-izKUdOCQ.tres": "value-types/letting-the-player-type-numbers",
141141

142-
"lesson-28-specifying-types/practice-x0c7DDiz.tres": "specifying-types/$add-the-correct-type-hints-to-variables",
143-
"lesson-28-specifying-types/practice-UdOCQiGj.tres": "specifying-types/$fix-the-values-to-match-the-type-hints",
142+
"lesson-28-specifying-types/practice-x0c7DDiz.tres": "specifying-types/add-the-correct-type-hints-to-variables",
143+
"lesson-28-specifying-types/practice-UdOCQiGj.tres": "specifying-types/fix-the-values-to-match-the-type-hints",
144144
}
145145

146146
var _inverted_lessons := {}
@@ -203,4 +203,4 @@ func get_practice_from_slug(slug: String) -> BBCodeParser.ParseNode:
203203

204204

205205
func set_practice_slug(lesson_slug: String, practice_slug: String, practice: BBCodeParser.ParseNode) -> void:
206-
practice_slugs["%s/$%s" % [lesson_slug, practice_slug]] = practice
206+
practice_slugs["%s/%s" % [lesson_slug, practice_slug]] = practice

0 commit comments

Comments
 (0)