1234567891011121314151617181920212223242526272829 |
- %% 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], Req1} = cowboy_req:path_info(Req),
- case filename:extension(Path) of
- <<".html">> -> maybe_generate_markdown(resource_path(Path));
- _Ext -> ok
- end,
- {ok, Req1, 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) ->
- {ok, Cwd} = file:get_cwd(),
- filename:join([Cwd, "priv", Path]).
- source_path(Path) ->
- << (filename:rootname(Path))/binary, ".md" >>.
|