Jelajahi Sumber

Switch to live_view to be able to use Phoenix.Component

theenglishway (time) 2 tahun lalu
induk
melakukan
27dd81a19e

+ 1 - 1
cv_gen/lib/cv_gen.ex

@@ -9,7 +9,7 @@ defmodule CvGen do
   def generate do
     with raw_data <- File.read!(@data_file),
          {:ok, assigns} <- Jason.decode(raw_data, keys: :atoms),
-         res <- EEx.eval_file(@template_file, assigns: assigns),
+         res <- CvGenView.cv(assigns) |> Phoenix.HTML.Safe.to_iodata |> List.to_string(),
          do: File.write!(@output_file, res)
   end
 end

+ 11 - 0
cv_gen/lib/cv_gen_view.ex

@@ -0,0 +1,11 @@
+defmodule CvGenView do
+  use Phoenix.Component
+
+  embed_templates "templates/*"
+
+  def date(assigns) do
+    ~H"""
+    <time class="start_date" datetime={@date}>date</time>
+    """
+  end
+end

+ 4 - 4
cv_gen/lib/templates/cv.html.eex

@@ -160,10 +160,10 @@
             <dt class="position" lang="fr">Poste</dt>
             <dd lang="fr"><%= work.position %></dd>
             <dt class="start_date">Date début</dt>
-            <dd><time class="start_date" datetime="<%= work.startDate %>"></time></dd>
+            <dd><.date date={work.startDate}/></dd>
             <%= unless is_nil(work[:endDate]) do %>
               <dt class="end_date">Date fin</dt>
-              <dd><time class="end_date" datetime="<%= work.endDate %>"></time></dd>
+              <dd><time class="end_date" datetime={work.endDate}></time></dd>
               <% end %>
             <dt class="work_location"></dt>
             <dd>Paris</dd>
@@ -211,9 +211,9 @@
             <dt class="location"></dt>
             <dd><%= educ[:location] %></dd>
             <dt class="start_date">Date début</dt>
-            <dd><time class="start_date" datetime="<%= educ.startDate %>"></time></dd>
+            <dd><time class="start_date" datetime={educ.startDate}></time></dd>
             <dt class="end_date">Date fin</dt>
-            <dd><time class="end_date" datetime="<%= educ.endDate %>"></time></dd>
+            <dd><time class="end_date" datetime={educ.endDate}></time></dd>
           </dl>
         </li>
       <% end %>

+ 1 - 1
cv_gen/lib/watchdog.ex

@@ -14,7 +14,7 @@ defmodule CvGen.Watchdog do
   @impl true
   def handle_info(:timer_expired, state) do
     state =
-      with tpl_hash <- hash("lib/templates/cv.html.eex"),
+      with tpl_hash <- hash("lib/templates/cv.html.heex"),
            json_hash <- hash("lib/templates/cv.json") do
         if tpl_hash != state.tpl_hash or json_hash != state.json_hash do
           Logger.info("Content has changed, reloading")

+ 3 - 1
cv_gen/mix.exs

@@ -22,7 +22,9 @@ defmodule CvGen.MixProject do
   # Run "mix help deps" to learn about dependencies.
   defp deps do
     [
-      {:jason, "~> 1.4"}
+      {:jason, "~> 1.4"},
+      {:phoenix_html, "~> 3.3"},
+      {:phoenix_live_view, "~> 0.18.18"}
     ]
   end
 end

File diff ditekan karena terlalu besar
+ 12 - 0
cv_gen/mix.lock