Search code examples
javascriptmarkdownline-breaks

Javascript: Add Dynamic Text to Markdown


I have some markdown content. For example:

let text = `This is line one,

This is para 2

![Tux, the Linux mascot](/assets/images/tux.png)

**This is title 1**

This is para 3

**This is title 2**

This is para 4`

What I need to do is add a string like inbetween this markdown, after the 4th line break. So, it should appear after Title 1, and the new markdown should look as follows:

`This is line one,
    
 This is para 2
    
 ![Tux, the Linux mascot](/assets/images/tux.png)
    
 **This is title 1**
    
 <Ad />

 This is para 3
    
 **This is title 2**
    
 This is para 4`

The problem is that I don't know how to look for line breaks in javascript.

How can I do this in javascript? The result should still be valid markdown.


Solution

  • You could split the string by line breaks.

    Then loop through the elements in the array, and then add the text after the nth element.

    let text = `This is line one,
    
    This is para 2
    
    ![Tux, the Linux mascot](/assets/images/tux.png)
    
    **This is title 1**
    
    This is para 3
    
    **This is title 2**
    
    This is para 4`;
    
    let split = text.split(/\n/g).filter(function(el) {
      return el;
    })
    
    let newString = '';
    
    split.forEach(function(value, key) {
      if (key == 3) {
        newString += value + '\n\n' + '<Ad />\n\n';
      } else {
        newString += value + '\n\n';
      }
    });
    
    console.log(newString)