Просмотр исходного кода

fix error "not an iodata term", fix list string class

221V 1 год назад
Родитель
Сommit
23bea0a52e
2 измененных файлов с 3 добавлено и 3 удалено
  1. 1 1
      src/render/wf_render_actions.erl
  2. 2 2
      src/render/wf_tags.erl

+ 1 - 1
src/render/wf_render_actions.erl

@@ -15,7 +15,7 @@ render_action(Action) ->
   case Res of
     Res when erlang:is_tuple(Res) -> render_action(Res);
     Bin when erlang:is_binary(Bin) -> Bin;
-    Str when erlang:is_list(Str) -> Str;
+    Str when erlang:is_list(Str) -> unicode:characters_to_binary(Str, utf8);
     _ -> []
   end.
 

+ 2 - 2
src/render/wf_tags.erl

@@ -38,7 +38,7 @@ display_property({_, undefined}) ->
   [];
 display_property({_, []}) ->
   [];
-display_property({Id, _Value} = P) when Id == <<"class">> orelse Id == <<"data-toggle">> ->
+display_property({Id, Value} = P) when (Id == <<"class">> andalso (erlang:is_list(Value) andalso erlang:is_atom(hd(Value)))) orelse Id == <<"data-toggle">> ->
   prop(P);
 display_property({Prop, Value}) -> [<<" ">>, nitro:to_binary(Prop), <<"=\"">>, nitro:to_binary(Value), <<"\"">>].
 
@@ -47,5 +47,5 @@ prop({Id, Value}) when erlang:is_atom(Value) ->
 prop({Id, Value}) when erlang:is_binary(Value) ->
   [<<" ">>, Id, <<"=\"">>, Value, <<"\"">>];
 prop({Id, Value}) ->
-  [<<" ">>, Id, <<"=\"">>, string:join([ nitro:to_list(V) || V <- Value ], " "), <<"\"">>].
+  [<<" ">>, Id, <<"=\"">>, unicode:characters_to_binary( string:join([ nitro:to_list(V) || V <- Value ], " "), utf8), <<"\"">>].