@@ -188,7 +188,8 @@ fn paragraph_parser_opener_candidates_and_links() -> impl Parser<
188188 just ( ParagraphSegmentToken :: Special ( '}' ) )
189189 . not ( )
190190 . repeated ( )
191- . at_least ( 1 ) ,
191+ . at_least ( 1 )
192+ . or_not ( ) ,
192193 )
193194 . then_ignore ( just ( ParagraphSegmentToken :: Special ( '}' ) ) )
194195 . then ( anchor. clone ( ) . or_not ( ) )
@@ -197,26 +198,32 @@ fn paragraph_parser_opener_candidates_and_links() -> impl Parser<
197198 filepath : filepath
198199 . map ( |content| content. into_iter ( ) . map_into :: < String > ( ) . collect ( ) ) ,
199200 description : description. map ( |content| parse_paragraph ( content) . unwrap ( ) ) ,
200- targets : vec ! [ if let Some ( modifiers) = modifiers {
201- match modifiers. as_str( ) {
202- "$" => LinkTarget :: Definition ( parse_paragraph( content) . unwrap( ) ) ,
203- "^" => LinkTarget :: Footnote ( parse_paragraph( content) . unwrap( ) ) ,
204- "?" => LinkTarget :: Wiki ( parse_paragraph( content) . unwrap( ) ) ,
205- "=" => LinkTarget :: Extendable ( parse_paragraph( content) . unwrap( ) ) ,
206- "/" => LinkTarget :: Path ( content. into_iter( ) . map_into:: <String >( ) . collect( ) ) ,
207- "@" => LinkTarget :: Timestamp (
208- content. into_iter( ) . map_into:: <String >( ) . collect( ) ,
209- ) ,
210-
211- // Only other possibility is a heading.
212- str => LinkTarget :: Heading {
213- level: str . len( ) as u16 ,
214- title: parse_paragraph( content) . unwrap( ) ,
215- } ,
216- }
201+ targets : if let Some ( content) = content {
202+ vec ! [ if let Some ( modifiers) = modifiers {
203+ match modifiers. as_str( ) {
204+ "$" => LinkTarget :: Definition ( parse_paragraph( content) . unwrap( ) ) ,
205+ "^" => LinkTarget :: Footnote ( parse_paragraph( content) . unwrap( ) ) ,
206+ "?" => LinkTarget :: Wiki ( parse_paragraph( content) . unwrap( ) ) ,
207+ "=" => LinkTarget :: Extendable ( parse_paragraph( content) . unwrap( ) ) ,
208+ "/" => {
209+ LinkTarget :: Path ( content. into_iter( ) . map_into:: <String >( ) . collect( ) )
210+ }
211+ "@" => LinkTarget :: Timestamp (
212+ content. into_iter( ) . map_into:: <String >( ) . collect( ) ,
213+ ) ,
214+
215+ // Only other possibility is a heading.
216+ str => LinkTarget :: Heading {
217+ level: str . len( ) as u16 ,
218+ title: parse_paragraph( content) . unwrap( ) ,
219+ } ,
220+ }
221+ } else {
222+ LinkTarget :: Url ( content. into_iter( ) . map_into:: <String >( ) . collect( ) )
223+ } ]
217224 } else {
218- LinkTarget :: Url ( content . into_iter ( ) . map_into :: < String > ( ) . collect ( ) )
219- } ] ,
225+ vec ! [ ]
226+ } ,
220227 } ,
221228 ) ;
222229
0 commit comments