Packages
elvis_core
5.0.4
5.0.4
5.0.3
5.0.2
5.0.1
5.0.0
retired
4.2.3
4.2.2
4.2.1
4.2.0
4.1.1
4.1.0
4.0.0
3.2.5
3.2.4
3.2.3
3.2.2
3.2.1
3.2.0
3.1.0
3.0.1
3.0.0
2.0.1
2.0.0
1.4.0
1.3.2
1.3.1
1.3.0
1.2.0
1.1.2
1.1.1
1.1.0
1.0.0
0.7.0
0.6.1
0.6.0
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
Core library for the Erlang style reviewer
Current section
Files
Jump to
Current section
Files
elvis_core
rebar.config.script
rebar.config.script
%% -*- erlang -*-
%% Adds every project markdown extra (including doc_rules/**) to ex_doc so HexDocs
%% resolves links from README / RULES, and groups sidebar entries by category.
%% helper funs
SetOpt = fun(Key, Value, Opts) ->
lists:keystore(Key, 1, lists:keydelete(Key, 1, Opts), {Key, Value})
end,
InDir = fun(Dir) ->
fun(F) ->
lists:prefix(Dir, F)
end
end,
AsBin = fun(ListOfCharLists) ->
[list_to_binary(CharList) || CharList <- ListOfCharLists]
end,
RootExtras = [
"README.md",
"RULES.md",
"MIGRATION.md",
"CHANGELOG.md",
"CONTRIBUTING.md",
"SECURITY.md",
"CODE_OF_CONDUCT.md",
"LICENSE"
],
DocRuleFiles = lists:sort(filelib:wildcard("doc_rules/**/*.md")),
StyleFiles = lists:filter(InDir("doc_rules/elvis_style/"), DocRuleFiles),
TextStyleFiles = lists:filter(InDir("doc_rules/elvis_text_style/"), DocRuleFiles),
ProjectRuleFiles = lists:filter(InDir("doc_rules/elvis_project/"), DocRuleFiles),
GitignoreFiles = lists:filter(InDir("doc_rules/elvis_gitignore/"), DocRuleFiles),
GroupsForExtras = [
{<<"Overview">>, AsBin(RootExtras)},
{<<"Style rules">>, AsBin(StyleFiles)},
{<<"Text style rules">>, AsBin(TextStyleFiles)},
{<<"Project rules">>, AsBin(ProjectRuleFiles)},
{<<"Gitignore rules">>, AsBin(GitignoreFiles)}
],
AllExtras = RootExtras ++ DocRuleFiles,
ExDoc0 = proplists:get_value(ex_doc, CONFIG, []),
ExDoc1 = SetOpt(extras, AllExtras, ExDoc0),
ExDoc2 = SetOpt(groups_for_extras, GroupsForExtras, ExDoc1),
lists:keystore(ex_doc, 1, CONFIG, {ex_doc, ExDoc2}).