TL; DR
Сделайте это:
~r{web/templates/([^/]+/)*(?!\.\#)[^/]*\.eex$}
Объяснение
Документация предлагает регулярное выражение, подобное этому:
~r{web/templates/.*(eex)$}
Проблема в нашем случае в том, что часть .*
соответствует чему-либо , включая /
,
но мы должны быть в состоянии поймать .#
при начале имени файла.
Итак, мы делаем следующее:
- соответствует исходному фрагменту пути
...web/templates
,
- записаться в подкаталоги,
- игнорировать все, что начинается с
.#
- принять любой файл с расширением
.eex
.
Написано как расширенное регулярное выражение, это:
~r{
web/templates/
([^/]+/)* # recurse into directories
(?!\.\#) # ignore Emacs temporary files (`.#` prefix)
[^/]* # accept any file character
\.eex$ # accept only .eex files
}x
Это то, что я положил в config/dev.exs
, но, если вы хотите быть более кратким, используйте регулярное выражение из TL; DR