Add hyphenation and a generalized render_public_content function
This commit is contained in:
31
lib/outlook/hyphenation.ex
Normal file
31
lib/outlook/hyphenation.ex
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
defmodule Outlook.Hyphenation do
|
||||||
|
|
||||||
|
def hyphenate(html, lang) do
|
||||||
|
form = get_multipart_form(
|
||||||
|
[
|
||||||
|
{"api-token", System.get_env("HYPH_API_TOKEN")},
|
||||||
|
{"hyph[lang]", String.downcase(lang)},
|
||||||
|
{"hyph[text]", html},
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
response_raw = HTTPoison.request!(
|
||||||
|
:post,
|
||||||
|
System.get_env("HYPH_URL"),
|
||||||
|
form,
|
||||||
|
get_multipart_headers()
|
||||||
|
)
|
||||||
|
response_raw.body
|
||||||
|
end
|
||||||
|
|
||||||
|
defp get_multipart_form fields do
|
||||||
|
{:multipart, fields}
|
||||||
|
end
|
||||||
|
|
||||||
|
defp get_multipart_headers() do
|
||||||
|
[
|
||||||
|
"Content-Type": "multipart/form-data",
|
||||||
|
"Transfer-Encoding": "chunked",
|
||||||
|
]
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -2,6 +2,7 @@ defmodule Outlook.InternalTree do
|
|||||||
|
|
||||||
alias Outlook.InternalTree.{Html,Modifiers,RawInternalBasic,InternalTree,Translation}
|
alias Outlook.InternalTree.{Html,Modifiers,RawInternalBasic,InternalTree,Translation}
|
||||||
alias Outlook.HtmlPreparations.HtmlPreparation
|
alias Outlook.HtmlPreparations.HtmlPreparation
|
||||||
|
alias Outlook.{Hyphenation, Translations}
|
||||||
|
|
||||||
def render_html(tree) do
|
def render_html(tree) do
|
||||||
tree
|
tree
|
||||||
@ -55,11 +56,24 @@ defmodule Outlook.InternalTree do
|
|||||||
Translation.render_translation(tree, translation)
|
Translation.render_translation(tree, translation)
|
||||||
end
|
end
|
||||||
|
|
||||||
def legacy_export(tree, translation) do
|
def render_public_content(tree, translation, language) do
|
||||||
content= Translation.render_translation(tree, translation)
|
Translation.render_translation(tree, translation)
|
||||||
|
|> Html.render_doc()
|
||||||
|
|> Hyphenation.hyphenate(language)
|
||||||
|
end
|
||||||
|
|
||||||
|
def legacy_export(translation_id) do
|
||||||
|
translation = Translations.get_translation!(translation_id)
|
||||||
|
content= Translation.render_translation(translation.article.content, translation.content)
|
||||||
|> garnish(%{tunits: %{class: "ttrans", "data-ttrans-status": fn n -> Map.get(n, :status) end}})
|
|> garnish(%{tunits: %{class: "ttrans", "data-ttrans-status": fn n -> Map.get(n, :status) end}})
|
||||||
|> Html.render_doc
|
|> Html.render_doc
|
||||||
|
|> Hyphenation.hyphenate(translation.language)
|
||||||
IO.puts "writing export.html to #{File.cwd!}"
|
IO.puts "writing export.html to #{File.cwd!}"
|
||||||
File.write("export.html", content)
|
File.write("export.html", content)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_tunit_ids(tree) do
|
||||||
|
InternalTree.collect_tunit_ids(tree)
|
||||||
|
# |> List.flatten()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -197,8 +197,12 @@ defmodule OutlookWeb.TranslationLive.FormComponent do
|
|||||||
defp publish(translation_params, %{"publish" => "true"}, socket) do
|
defp publish(translation_params, %{"publish" => "true"}, socket) do
|
||||||
translation_params
|
translation_params
|
||||||
|> Map.put("public_content",
|
|> Map.put("public_content",
|
||||||
InternalTree.render_translation(socket.assigns.translation.article.content, translation_params["content"])
|
InternalTree.render_public_content(
|
||||||
|> Html.render_doc())
|
socket.assigns.translation.article.content,
|
||||||
|
socket.assigns.translation_content,
|
||||||
|
socket.assigns.translation.language
|
||||||
|
)
|
||||||
|
)
|
||||||
end
|
end
|
||||||
defp publish(translation_params, %{"publish" => "false"}, _) do
|
defp publish(translation_params, %{"publish" => "false"}, _) do
|
||||||
translation_params
|
translation_params
|
||||||
|
|||||||
Reference in New Issue
Block a user