Skip to content
This repository was archived by the owner on Jan 13, 2024. It is now read-only.

Commit c6ad65a

Browse files
authored
Merge pull request #4 from Axinet/sort-languages
Sort languages options in select
2 parents dbd999f + 55bf823 commit c6ad65a

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

src/codeflask.js

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -189,24 +189,26 @@
189189

190190
let languagesSelect = document.createElement("select");
191191
languagesSelect.classList.add("small");
192-
// languagesSelect.id = "mySelect";
193192

194-
//Create and append the options
195-
for (var i = 0; i < Object.keys(Prism.languages).length; i++) {
193+
//sort available languages alphabetically (ignore case)
194+
let languages = Object.keys(Prism.languages).sort(function (a, b) {
195+
return a.toLowerCase().localeCompare(b.toLowerCase());
196+
});
196197

198+
//Create and append the options
199+
for (var i = 0; i < languages.length; i++) {
197200
// Weirdly PrismJS doesnt expose a list of installed languages, or rather it does, but it is mixed with helper functions, which i have to clear here.
198-
if( !(Object.keys(Prism.languages)[i] == "extend") && !(Object.keys(Prism.languages)[i] == "insertBefore") && !(Object.keys(Prism.languages)[i] == "DFS")){
199-
200-
var option = document.createElement("option");
201-
option.value = Object.keys(Prism.languages)[i];
202-
option.text = Object.keys(Prism.languages)[i];
203-
if(Object.keys(Prism.languages)[i] == this.data.language){
204-
option.selected="selected"
205-
}
206-
languagesSelect.appendChild(option);
207-
201+
if (languages[i] == "extend" || languages[i] == "insertBefore" || languages[i] == "DFS") {
202+
continue;
208203
}
209204

205+
var option = document.createElement("option");
206+
option.value = languages[i];
207+
option.text = languages[i];
208+
if(languages[i] == this.data.language){
209+
option.selected="selected"
210+
}
211+
languagesSelect.appendChild(option);
210212
}
211213

212214
languagesSelect.addEventListener('change', (event) => {

0 commit comments

Comments
 (0)