docs: private void emitCodeLines(final StringBuilder out, final Line lines, final String meta, final boolean removeIndent)
      {
          Line line = lines;
          if (this.config.codeBlockEmitter != null)
          {
              final ArrayList<String> list = new ArrayList<String>();
              while (line != null)
              {
                  if (line.isEmpty)
                  {
                      list.add("");
                  }
                  else
                  {
                      list.add(removeIndent ? line.value.substring(4) : line.value);
                  }
                  line = line.next;
              }
              this.config.codeBlockEmitter.emitBlock(out, list, meta);
          }
          else
          {
              while (line != null)
              {
                  if (!line.isEmpty)
                  {
                      for (int i = removeIndent ? 4 : 0; i < line.value.length(); i++)
                      {
                          final char c;
                          switch (c = line.value.charAt(i))
                          {
                          case '&':
                              out.append("&amp;");
                              break;
                          case '<':
                              out.append("&lt;");
                              break;
                          case '>':
                              out.append("&gt;");
                              break;
                          default:
                              out.append(c);
                              break;
                          }
                      }
                  }
                  out.append('\n');
                  line = line.next;
              }
          }
      }