code: private boolean handleCodeBlock(TextCursor cursor, ArrayList<MDSection> paragraphs) {
          if (mode != MODE_ONLY_LINKS) {
              int blockStart = findCodeBlockStart(cursor);
              if (blockStart >= 0) {
                  int blockEnd = findCodeBlockEnd(cursor, blockStart);
                  if (blockEnd >= 0) {
                      // Adding Text Block if there are some elements before code block
                      if (cursor.currentOffset < blockStart) {
                          handleTextBlock(cursor, blockStart, paragraphs);
                      }
  
                      String codeContent = cursor.text.substring(cursor.currentOffset + 3, blockEnd - 3).trim();
  
                      // TODO: Better removing of empty leading and tailing lines
                      // Required to remove only ONE line
                      if (codeContent.startsWith("\n")) {
                          codeContent = codeContent.substring(1);
                      }
                      if (codeContent.endsWith("\n")) {
                          codeContent = codeContent.substring(0, codeContent.length() - 1);
                      }
  
                      cursor.currentOffset = blockEnd;
                      paragraphs.add(new MDSection(new MDCode(codeContent)));
                      return true;
                  }
              }
          }
  
          // Adding remaining text blocks
          if (cursor.currentOffset < cursor.text.length()) {
              handleTextBlock(cursor, cursor.text.length(), paragraphs);
          }
          return false;
      }
docs: Outer parsing method: Processing code blocks first
  
  @param cursor     text cursor
  @param paragraphs current paragraphs
  @return is code block found