blob: 988de9d4353c0d3bd775ece5997b2a882a93fac2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
%% Feel free to use, reuse and abuse the code in this file.
-module(markdown_converter).
-behaviour(cowboy_middleware).
-export([execute/2]).
execute(Req, Env) ->
[Path] = cowboy_req:path_info(Req),
case filename:extension(Path) of
<<".html">> -> maybe_generate_markdown(resource_path(Path));
_Ext -> ok
end,
{ok, Req, Env}.
maybe_generate_markdown(Path) ->
ModifiedAt = filelib:last_modified(source_path(Path)),
GeneratedAt = filelib:last_modified(Path),
case ModifiedAt > GeneratedAt of
true -> erlmarkdown:conv_file(source_path(Path), Path);
false -> ok
end.
resource_path(Path) ->
PrivDir = code:priv_dir(markdown_middleware),
filename:join([PrivDir, Path]).
source_path(Path) ->
<< (filename:rootname(Path))/binary, ".md" >>.
|