@@ -67,81 +67,66 @@ defmodule ExDoc.DocAST do
6767
6868 @ doc """
6969 Transform AST into markdown string.
70-
71- The optional `fun` argument allows post-processing each AST node
72- after it's been converted to markdown.
7370 """
74- def to_markdown ( ast , fun \\ fn _ast , string -> string end )
71+ def to_markdown ( ast )
7572
76- def to_markdown ( binary , _fun ) when is_binary ( binary ) do
73+ def to_markdown ( binary ) when is_binary ( binary ) do
7774 ExDoc.Utils . h ( binary )
7875 end
7976
80- def to_markdown ( list , fun ) when is_list ( list ) do
81- result = Enum . map_join ( list , "" , & to_markdown ( & 1 , fun ) )
82- fun . ( list , result )
77+ def to_markdown ( list ) when is_list ( list ) do
78+ Enum . map_join ( list , "" , & to_markdown / 1 )
8379 end
8480
85- def to_markdown ( { :comment , _attrs , inner , _meta } = ast , fun ) do
86- fun . ( ast , "<!--#{ inner } -->" )
81+ def to_markdown ( { :comment , _attrs , inner , _meta } ) do
82+ "<!--#{ inner } -->"
8783 end
8884
89- def to_markdown ( { :code , attrs , inner , _meta } = ast , fun ) do
85+ def to_markdown ( { :code , attrs , inner , _meta } ) do
9086 lang = attrs [ :class ] || ""
9187
92- result = """
88+ """
9389 ```#{ lang }
9490 #{ inner }
9591 ```
9692 """
97-
98- fun . ( ast , result )
9993 end
10094
101- def to_markdown ( { :a , attrs , inner , _meta } = ast , fun ) do
102- result = "[#{ to_markdown ( inner , fun ) } ](#{ attrs [ :href ] } )"
103- fun . ( ast , result )
95+ def to_markdown ( { :a , attrs , inner , _meta } ) do
96+ "[#{ to_markdown ( inner ) } ](#{ attrs [ :href ] } )"
10497 end
10598
106- def to_markdown ( { :hr , _attrs , _inner , _meta } = ast , fun ) do
107- result = "\n \n ---\n \n "
108- fun . ( ast , result )
99+ def to_markdown ( { :hr , _attrs , _inner , _meta } ) do
100+ "\n \n ---\n \n "
109101 end
110102
111- def to_markdown ( { :p , _attrs , inner , _meta } = ast , fun ) do
112- result = to_markdown ( inner , fun ) <> "\n \n "
113- fun . ( ast , result )
103+ def to_markdown ( { :p , _attrs , inner , _meta } ) do
104+ to_markdown ( inner ) <> "\n \n "
114105 end
115106
116- def to_markdown ( { :br , _attrs , _inner , _meta } = ast , fun ) do
117- result = "\n \n "
118- fun . ( ast , result )
107+ def to_markdown ( { :br , _attrs , _inner , _meta } ) do
108+ "\n \n "
119109 end
120110
121- def to_markdown ( { :img , attrs , _inner , _meta } = ast , fun ) do
111+ def to_markdown ( { :img , attrs , _inner , _meta } ) do
122112 alt = attrs [ :alt ] || ""
123113 title = attrs [ :title ] || ""
124- result = ""
125- fun . ( ast , result )
114+ ""
126115 end
127116
128117 # ignoring these: area base col command embed input keygen link meta param source track wbr
129- def to_markdown ( { tag , _attrs , _inner , _meta } = ast , fun ) when tag in @ void_elements do
130- result = ""
131- fun . ( ast , result )
118+ def to_markdown ( { tag , _attrs , _inner , _meta } ) when tag in @ void_elements do
119+ ""
132120 end
133121
134- def to_markdown ( { _tag , _attrs , inner , % { verbatim: true } } = ast , fun ) do
135- result = Enum . join ( inner , "" )
136- fun . ( ast , result )
122+ def to_markdown ( { _tag , _attrs , inner , % { verbatim: true } } ) do
123+ Enum . join ( inner , "" )
137124 end
138125
139- def to_markdown ( { _tag , _attrs , inner , _meta } = ast , fun ) do
140- result = to_markdown ( inner , fun )
141- fun . ( ast , result )
126+ def to_markdown ( { _tag , _attrs , inner , _meta } ) do
127+ to_markdown ( inner )
142128 end
143129
144-
145130 ## parse markdown
146131
147132 defp parse_markdown ( markdown , opts ) do
0 commit comments