Как создать и интегрировать набор пользовательских шаблонов в Phoenix Framework (Elixir)



Вместо того, чтобы настраивать шаблоны, поставляемые с Phoenix Framework, я хотел бы создать свой собственный набор и иметь их вызываемыми в качестве пользовательской задачи смешивания.



Я могу создать пользовательскую задачу смешивания, но не могу понять:





  1. Где в рамках структуры каталогов phoenix framework поместить каталог пользовательских шаблонов



  2. Как изменить модульный микс.Задачи.???.Gen.Html так что смешайте.Феникс.пути copy_from(), ... можно найти каталог, в котором пользовательские шаблоны сохраняются. (Куда ??? это строка для имени моей настройки. Это копия Микса.Задачи.Феникс.Gen.Html модуль, который я переименовал и могу успешно запустить с немодифицированным кодом, успешно найдя предоставленные шаблоны)



Была тема по проблемам Phoenix Github, которая немного говорила на эту тему, но не помогала с путями каталогов для использования.



Любые предложения или указатели на проекты, которые реализовали свои собственные пользовательские шаблоны были бы очень признательны.

412   1  

1 ответ:

Расположение шаблонов в настоящее времяжестко закодировано в источнике phoenix, поэтому вы не сможете указать произвольное местоположение. Однако сначала он будет искать в текущем каталоге,а затем внутри исходного кода phoenix. Единственное, что вам нужно сделать, это создать каталог priv/templates/phoenix.gen.html/ внутри вашего приложения. Затем вы можете переопределить шаблоны там.

# create dummy app
$ mix phoenix.new my_app
$ cd my_app
$ mix deps.get
$ mix deps.compile

# override the show template
$ mkdir -p priv/templates/phoenix.gen.html/
$ echo 'TEST <%= 123 %>' > priv/templates/phoenix.gen.html/show.html.eex

# run the generator
$ mix phoenix.gen.html User users name:string

# the show template is now overridden
$ cat web/templates/user/show.html.eex
TEST 123

# other templates are left untouched
$ cat web/templates/user/index.html.eex
<h2>Listing users</h2>
...

Comments

    Ничего не найдено.