Browse Source

html text-lvl back

221V 3 years ago
parent
commit
c5c034e861
8 changed files with 196 additions and 16 deletions
  1. 1 1
      .gitignore
  2. 9 0
      ebin/nitro.app
  3. 2 1
      include/n2z.hrl
  4. 27 4
      include/nitro.hrl
  5. 76 0
      src/elements/input/element_time.erl
  6. 80 0
      src/elements/text/element_q.erl
  7. 0 9
      src/nitro.app
  8. 1 1
      src/nitro.erl

+ 1 - 1
.gitignore

@@ -1 +1 @@
-ebin
+ebin/*.beam

+ 9 - 0
ebin/nitro.app

@@ -0,0 +1,9 @@
+{application, nitro, [
+  {description, "NITRO Nitrogen Web Framework"},
+  {vsn, "6.6.1"},
+  {applications, [kernel, stdlib]},
+  {modules, [nitro_conv, nitro_n2z, nitro_static, nitro, action_alert, action_api, action_bind, action_confirm, action_event, action_jq, action_manage, action_transfer, action_ui, action_wire, element_calendar, element_comboLookup, element_comboLookupEdit, element_comboLookupVec, element_koatuu, element_sortable_item, element_sortable_list, element_del, element_ins, element_area, element_audio, element_canvas, element_embed, element_iframe, element_image, element_map, element_object, element_param, element_source, element_track, element_video, element_button, element_fieldset, element_form, element_keygen, element_label, element_legend, element_meter, element_output, element_progress, element_select, element_textarea, element_blockquote, element_dtl, element_html, element_li, element_script, element_checkbox, element_color, element_date, element_datetime_local, element_datetime, element_dropdown, element_email, element_file, element_hidden, element_input_button, element_input_image, element_input_time, element_input, element_link, element_list, element_literal, element_month, element_number, element_password, element_q, element_radio, element_radiogroup, element_range, element_reset, element_search, element_submit, element_tel, element_textbox, element_time, element_url, element_week, element_command, element_details, element_menu, element_summary, element_upload, element_meta_base, element_meta_link, element_meta, element_style, element_col, element_colgroup, element_table, element_td, element_th, element_tr, wf_event, wf_render_actions, wf_render_elements, wf_render, wf_tags ]},
+  {registered, []},
+  {mod, { nitro, []}},
+  {env, []}
+]}.

+ 2 - 1
include/n2z.hrl

@@ -16,7 +16,7 @@
 -include_lib("kernel/include/logger.hrl").
 -include_lib("kernel/include/logger.hrl").
 -else.
 -else.
 -define(LOG_INFO(F), io:format(?FORMAT(F)) end).
 -define(LOG_INFO(F), io:format(?FORMAT(F)) end).
--define(LOG_INFO(F, X), io:format(?FORMAT(F),X)).
+-define(LOG_INFO(F, X), io:format(?FORMAT(F), X)).
 -define(LOG_ERROR(F), io:format("{~p,~p}: ~p~n", [?MODULE, ?LINE, F])).
 -define(LOG_ERROR(F), io:format("{~p,~p}: ~p~n", [?MODULE, ?LINE, F])).
 -define(LOG_ERROR(F, X), io:format(?FORMAT(F), X)).
 -define(LOG_ERROR(F, X), io:format(?FORMAT(F), X)).
 -endif.
 -endif.
@@ -48,6 +48,7 @@
 -define(CTX(ClientId), n2z:cache(ClientId)).
 -define(CTX(ClientId), n2z:cache(ClientId)).
 -define(REQ(ClientId), (n2z:cache(ClientId))#cx.req).
 -define(REQ(ClientId), (n2z:cache(ClientId))#cx.req).
 
 
+
 % Nitrogen Protocol
 % Nitrogen Protocol
 
 
 -include_lib("nitro/include/proto.hrl").
 -include_lib("nitro/include/proto.hrl").

+ 27 - 4
include/nitro.hrl

@@ -157,11 +157,34 @@
 -record(thead,    ?DEFAULT_BASE).
 -record(thead,    ?DEFAULT_BASE).
 -record(tr,       {?ELEMENT_BASE(element_tr), cells}).
 -record(tr,       {?ELEMENT_BASE(element_tr), cells}).
 
 
-% Text
+% HTML Text-level semantics
 -record('link', {?ELEMENT_BASE(element_link),  href, hreflang, media, rel, target, type, url="javascript:void(0);", download, name}).
 -record('link', {?ELEMENT_BASE(element_link),  href, hreflang, media, rel, target, type, url="javascript:void(0);", download, name}).
--record(mark, ?DEFAULT_BASE).
--record(code, ?DEFAULT_BASE).
--record(span, ?DEFAULT_BASE).
+-record(abbr,   ?DEFAULT_BASE).
+-record(b,      ?DEFAULT_BASE).
+-record(bdi,    ?DEFAULT_BASE).
+-record(bdo,    ?DEFAULT_BASE).
+-record(cite,   ?DEFAULT_BASE).
+-record(code,   ?DEFAULT_BASE).
+-record(dfn,    ?DEFAULT_BASE).
+-record(em,     ?DEFAULT_BASE).
+-record(i,      ?DEFAULT_BASE).
+-record(kbd,    ?DEFAULT_BASE).
+-record(mark,   ?DEFAULT_BASE).
+-record(q,      {?ELEMENT_BASE(element_q), cite}).
+-record(rt,     ?DEFAULT_BASE).
+-record(rp,     ?DEFAULT_BASE).
+-record(ruby,   ?DEFAULT_BASE).
+-record(s,      ?DEFAULT_BASE).
+-record(samp,   ?DEFAULT_BASE).
+-record(small,  ?DEFAULT_BASE).
+-record(span,   ?DEFAULT_BASE).
+-record(strong, ?DEFAULT_BASE).
+-record(sub,    ?DEFAULT_BASE).
+-record(sup,    ?DEFAULT_BASE).
+-record('time', {?ELEMENT_BASE(element_time), datetime}).
+-record(u,      ?DEFAULT_BASE).
+-record(var,    ?DEFAULT_BASE).
+
 
 
 % Extras
 % Extras
 -record(upload, {?CTRL_BASE(element_upload), name, value}).
 -record(upload, {?CTRL_BASE(element_upload), name, value}).

+ 76 - 0
src/elements/input/element_time.erl

@@ -0,0 +1,76 @@
+-module(element_time).
+% author Vladimir Galunshchikov
+
+-include_lib("nitro/include/nitro.hrl").
+
+-export([render_element/1]).
+
+
+render_element(Record) when Record#time.show_if == false ->
+  [<<>>];
+
+render_element(Record) ->
+  List = [
+    % global
+    {<<"accesskey">>, Record#time.accesskey},
+    {<<"class">>, Record#time.class},
+    
+    {<<"contenteditable">>,
+      case Record#time.contenteditable of
+        true -> "true";
+        false -> "false";
+        _ -> []
+      end},
+    
+    {<<"contextmenu">>, Record#time.contextmenu},
+    
+    {<<"dir">>,
+      case Record#time.dir of
+        "ltr" -> "ltr";
+        "rtl" -> "rtl";
+        "auto" -> "auto";
+        _ -> []
+      end},
+    
+    {<<"draggable">>,
+      case Record#time.draggable of
+        true -> "true";
+        false -> "false";
+        _ -> []
+      end},
+    
+    {<<"dropzone">>, Record#time.dropzone},
+    
+    {<<"hidden">>,
+      case Record#time.hidden of
+        "hidden" -> "hidden";
+        _ -> []
+      end},
+    
+    {<<"id">>, Record#time.id},
+    {<<"lang">>, Record#time.lang},
+    
+    {<<"spellcheck">>,
+      case Record#time.spellcheck of
+        true -> "true";
+        false -> "false";
+        _ -> []
+      end},
+    
+    {<<"style">>, Record#time.style},
+    {<<"tabindex">>, Record#time.tabindex},
+    {<<"title">>, Record#time.title},
+    
+    {<<"translate">>,
+      case Record#time.contenteditable of
+        "yes" -> "yes";
+        "no" -> "no";
+        _ -> []
+      end},
+    
+    % spec
+    {<<"datetime">>, Record#time.datetime} | Record#time.data_fields
+  ],
+  
+  wf_tags:emit_tag(<<"time">>, nitro:render(Record#time.body), List).
+

+ 80 - 0
src/elements/text/element_q.erl

@@ -0,0 +1,80 @@
+-module(element_q).
+% author Vladimir Galunshchikov
+
+-include_lib("nitro/include/nitro.hrl").
+
+-export([render_element/1]).
+
+
+render_element(Record) when Record#q.show_if == false ->
+  [<<>>];
+
+render_element(Record) ->
+  List = [
+    % global
+    {<<"accesskey">>, Record#q.accesskey},
+    {<<"class">>, Record#q.class},
+    
+    {<<"contenteditable">>,
+      case Record#q.contenteditable of
+        true -> "true";
+        false -> "false";
+        _ -> []
+      end},
+    
+    {<<"contextmenu">>, Record#q.contextmenu},
+    
+    {<<"dir">>,
+      case Record#q.dir of
+        "ltr" -> "ltr";
+        "rtl" -> "rtl";
+        "auto" -> "auto";
+        _ -> []
+      end},
+    
+    {<<"draggable">>,
+      case Record#q.draggable of
+        true -> "true";
+        false -> "false";
+        _ -> []
+      end},
+    
+    {<<"dropzone">>, Record#q.dropzone},
+    
+    {<<"hidden">>,
+      case Record#q.hidden of
+        "hidden" -> "hidden";
+        _ -> []
+      end},
+    
+    {<<"id">>, Record#q.id},
+    {<<"lang">>, Record#q.lang},
+    
+    {<<"spellcheck">>,
+      case Record#q.spellcheck of
+        true -> "true";
+        false -> "false";
+        _ -> []
+      end},
+    
+    {<<"style">>, Record#q.style},
+    {<<"tabindex">>, Record#q.tabindex},
+    {<<"title">>, Record#q.title},
+    
+    {<<"translate">>,
+      case Record#q.contenteditable of
+        "yes" -> "yes";
+        "no" -> "no";
+        _ -> []
+      end},
+    
+    % spec
+    {<<"cite">>, Record#q.cite} | Record#q.data_fields
+  ],
+  
+  wf_tags:emit_tag( <<"q">>, nitro:render(
+    case Record#q.body of
+      [] -> [];
+      B -> B
+    end), List).
+

+ 0 - 9
src/nitro.app

@@ -1,9 +0,0 @@
-{application, nitro, [
-    {description,  "NITRO Nitrogen Web Framework"},
-    {vsn,          "6.6.1"},
-    {applications, [kernel, stdlib]},
-    {modules, [nitro_conv, nitro_n2z, nitro_static, nitro, action_alert, action_api, action_bind, action_confirm, action_event, action_jq, action_manage, action_transfer, action_ui, action_wire, element_calendar, element_comboLookup, element_comboLookupEdit, element_comboLookupVec, element_koatuu, element_sortable_item, element_sortable_list, element_del, element_ins, element_area, element_audio, element_canvas, element_embed, element_iframe, element_image, element_map, element_object, element_param, element_source, element_track, element_video, element_button, element_fieldset, element_form, element_keygen, element_label, element_legend, element_meter, element_output, element_progress, element_select, element_textarea, element_blockquote, element_dtl, element_html, element_li, element_script, element_checkbox, element_color, element_date, element_datetime_local, element_datetime, element_dropdown, element_email, element_file, element_hidden, element_input_button, element_input_image, element_input_time, element_input, element_link, element_list, element_literal, element_month, element_number, element_password, element_radio, element_radiogroup, element_range, element_reset, element_search, element_submit, element_tel, element_textbox, element_url, element_week, element_command, element_details, element_menu, element_summary, element_upload, element_meta_base, element_meta_link, element_meta, element_style, element_col, element_colgroup, element_table, element_td, element_th, element_tr, wf_event, wf_render_actions, wf_render_elements, wf_render, wf_tags ]},
-    {registered,   []},
-    {mod, { nitro, []}},
-    {env, []}
-]}.

+ 1 - 1
src/nitro.erl

@@ -208,7 +208,7 @@ render_html(Elements) ->
 
 
 
 
 actions() -> erlang:get(actions).
 actions() -> erlang:get(actions).
-actions(Ac) -> erlang:put(actions,Ac).
+actions(Ac) -> erlang:put(actions, Ac).
 
 
 insert_top(Target, Elements) when erlang:element(1, Elements) == tr ->
 insert_top(Target, Elements) when erlang:element(1, Elements) == tr ->
   insert_top(tbody, Target, Elements);
   insert_top(tbody, Target, Elements);