Skip to content

Instantly share code, notes, and snippets.

@judah-caruso
Last active April 7, 2019 03:54
Show Gist options
  • Save judah-caruso/726b366a05c4aa1537af7b911db6601b to your computer and use it in GitHub Desktop.
Save judah-caruso/726b366a05c4aa1537af7b911db6601b to your computer and use it in GitHub Desktop.
Takes a string of code and converts each special character to HTML entities.
import std
// should cover the main "problematic" characters
def char_to_entity(char):
return switch(char):
case "|" : "|"
case "_" : "_"
case ";" : ";"
case "#" : "#"
case "-" : "‐"
case "<" : "&lt;"
case ">" : "&gt;"
case "*" : "&ast;"
case "\n": "<br />"
case "\t", " ": "&nbsp;"
default: char
def string_to_safe(str):
let converted =
str.map() t: char_to_entity(unicode_to_string([t]))
return concat_string(converted, "")
// so meta!
let code =
"""
def string_to_safe(str):
let converted =
str.map() t: char_to_entity(unicode_to_string([t]))
return concat_string(converted, "")
"""
print string_to_safe(code)
// output: def&nbsp;string&lowbar;to&lowbar;safe(str):<br />&nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;converted&nbsp;=<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str.map()&nbsp;t:&nbsp;char&lowbar;to&lowbar;entity(unicode&lowbar;to&lowbar;string([t]))<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;concat&lowbar;string(converted,&nbsp;"")<br />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment