%%%------------------------------------------------------------------- %%% @author Adam Kovari %%% @copyright (C) 2016, Altworx s.r.o. %%% @doc %%% %%% @end %%%------------------------------------------------------------------- -module(aw_html_utils). -author("akovari"). %% API -export([htmlize/1, htmlize/2]). %%-------------------------------------------------------------------- %% @doc Escape HTML string %% @end %%-------------------------------------------------------------------- htmlize([]) -> []; htmlize([$<|T]) -> "<" ++ htmlize(T); htmlize([$>|T]) -> ">" ++ htmlize(T); htmlize([$&|T]) -> "&" ++ htmlize(T); htmlize([H|T]) when is_integer(H) -> [H|htmlize(T)]; htmlize([H|T]) -> [htmlize(H)|htmlize(T)]; htmlize(Bin) when is_binary(Bin) -> htmlize(Bin, <<>>); htmlize(_) -> error(badarg). htmlize(<<$<, Rest/bytes>>, Acc) -> htmlize(Rest, <>); htmlize(<<$>, Rest/bytes>>, Acc) -> htmlize(Rest, <>); htmlize(<<$&, Rest/bytes>>, Acc) -> htmlize(Rest, <>); htmlize(<>, Acc) -> htmlize(Rest, <>); htmlize(_, Acc) -> Acc.