Search in sources :

Example 11 with Line

use of org.eclipse.mylyn.wikitext.commonmark.internal.Line in project mylyn.docs by eclipse.

the class FencedCodeBlock method addInfoTextCssClass.

private void addInfoTextCssClass(ProcessingContext processingContext, Attributes codeAttributes, Matcher matcher) {
    String infoText = matcher.group(3);
    if (infoText != null && !infoText.isEmpty()) {
        InlineParser inlineParser = processingContext.getInlineParser();
        String language = inlineParser.toStringContent(processingContext, new TextSegment(Collections.singletonList(new Line(0, 0, infoText))));
        codeAttributes.setCssClass("language-" + language);
    }
}
Also used : Line(org.eclipse.mylyn.wikitext.commonmark.internal.Line) InlineParser(org.eclipse.mylyn.wikitext.commonmark.internal.inlines.InlineParser) TextSegment(org.eclipse.mylyn.wikitext.commonmark.internal.TextSegment)

Example 12 with Line

use of org.eclipse.mylyn.wikitext.commonmark.internal.Line in project mylyn.docs by eclipse.

the class HtmlType7Block method process.

@Override
public void process(ProcessingContext context, DocumentBuilder builder, LineSequence lineSequence) {
    Line line = lineSequence.getCurrentLine();
    while (line != null && !line.isEmpty()) {
        builder.charactersUnescaped(line.getText());
        builder.charactersUnescaped("\n");
        lineSequence.advance();
        line = lineSequence.getCurrentLine();
    }
}
Also used : Line(org.eclipse.mylyn.wikitext.commonmark.internal.Line)

Example 13 with Line

use of org.eclipse.mylyn.wikitext.commonmark.internal.Line in project mylyn.docs by eclipse.

the class AtxHeaderBlock method process.

@Override
public void process(ProcessingContext context, DocumentBuilder builder, LineSequence lineSequence) {
    Line currentLine = lineSequence.getCurrentLine();
    Matcher matcher = PATTERN.matcher(currentLine.getText());
    checkState(matcher.matches());
    lineSequence.advance();
    builder.setLocator(currentLine.toLocator());
    int contentOffset = matcher.start(2);
    int contentEnd = matcher.end(2);
    int headingLevel = headingLevel(matcher);
    if (contentEnd > contentOffset) {
        Line headerContent = currentLine.segment(contentOffset, contentEnd - contentOffset);
        TextSegment textSegment = new TextSegment(Collections.singletonList(headerContent));
        HeadingAttributes attributes = new HeadingAttributes();
        InlineParser inlineParser = context.getInlineParser();
        String headingText = inlineParser.toStringContent(context, textSegment);
        attributes.setId(context.generateHeadingId(headingLevel, headingText));
        builder.beginHeading(headingLevel, attributes);
        inlineParser.emit(context, builder, textSegment);
        builder.endHeading();
    } else {
        builder.beginHeading(headingLevel, new HeadingAttributes());
        builder.endHeading();
    }
}
Also used : Line(org.eclipse.mylyn.wikitext.commonmark.internal.Line) Matcher(java.util.regex.Matcher) HeadingAttributes(org.eclipse.mylyn.wikitext.parser.HeadingAttributes) InlineParser(org.eclipse.mylyn.wikitext.commonmark.internal.inlines.InlineParser) TextSegment(org.eclipse.mylyn.wikitext.commonmark.internal.TextSegment)

Example 14 with Line

use of org.eclipse.mylyn.wikitext.commonmark.internal.Line in project mylyn.docs by eclipse.

the class AbstractSourceSpanTest method assertParseToHtml.

public void assertParseToHtml(String expected, String markup) {
    StringWriter writer = new StringWriter();
    HtmlDocumentBuilder builder = new SimplifiedHtmlDocumentBuilder(writer);
    builder.setEmitAsDocument(false);
    builder.beginDocument();
    InlineParser parser = new InlineParser(span, new AllCharactersSpan());
    List<Inline> inlines = parser.parse(ProcessingContext.builder().build(), new TextSegment(ImmutableList.of(new Line(1, 0, markup))));
    for (Inline inline : inlines) {
        inline.emit(builder);
    }
    builder.endDocument();
    assertEquals(expected, writer.toString());
}
Also used : Line(org.eclipse.mylyn.wikitext.commonmark.internal.Line) StringWriter(java.io.StringWriter) SimplifiedHtmlDocumentBuilder(org.eclipse.mylyn.wikitext.commonmark.internal.spec.SimplifiedHtmlDocumentBuilder) TextSegment(org.eclipse.mylyn.wikitext.commonmark.internal.TextSegment) HtmlDocumentBuilder(org.eclipse.mylyn.wikitext.parser.builder.HtmlDocumentBuilder) SimplifiedHtmlDocumentBuilder(org.eclipse.mylyn.wikitext.commonmark.internal.spec.SimplifiedHtmlDocumentBuilder)

Example 15 with Line

use of org.eclipse.mylyn.wikitext.commonmark.internal.Line in project mylyn.docs by eclipse.

the class AbstractHtmlBlock method process.

@Override
public void process(ProcessingContext context, DocumentBuilder builder, LineSequence lineSequence) {
    Line line = lineSequence.getCurrentLine();
    final Line firstLine = line;
    while (line != null) {
        String lineText = line.getText();
        builder.charactersUnescaped(lineText);
        builder.charactersUnescaped("\n");
        lineSequence.advance();
        if (firstLine.equals(line)) {
            Matcher matcher = startPattern().matcher(lineText);
            checkState(matcher.matches());
            int offset = matcher.end(1);
            if (offset < lineText.length() - 1) {
                Matcher closeMatcher = closePattern().matcher(lineText);
                closeMatcher.region(offset, lineText.length());
                if (closeMatcher.find()) {
                    break;
                }
            }
        } else if (closePattern().matcher(lineText).find()) {
            break;
        }
        line = lineSequence.getCurrentLine();
    }
}
Also used : Line(org.eclipse.mylyn.wikitext.commonmark.internal.Line) Matcher(java.util.regex.Matcher)

Aggregations

Line (org.eclipse.mylyn.wikitext.commonmark.internal.Line)19 Matcher (java.util.regex.Matcher)7 TextSegment (org.eclipse.mylyn.wikitext.commonmark.internal.TextSegment)7 Test (org.junit.Test)5 InlineParser (org.eclipse.mylyn.wikitext.commonmark.internal.inlines.InlineParser)3 LineSequence (org.eclipse.mylyn.wikitext.commonmark.internal.LineSequence)2 Attributes (org.eclipse.mylyn.wikitext.parser.Attributes)2 DocumentBuilder (org.eclipse.mylyn.wikitext.parser.DocumentBuilder)2 HeadingAttributes (org.eclipse.mylyn.wikitext.parser.HeadingAttributes)2 StringWriter (java.io.StringWriter)1 Pattern (java.util.regex.Pattern)1 ProcessingContext (org.eclipse.mylyn.wikitext.commonmark.internal.ProcessingContext)1 ProcessingContextBuilder (org.eclipse.mylyn.wikitext.commonmark.internal.ProcessingContextBuilder)1 SimplifiedHtmlDocumentBuilder (org.eclipse.mylyn.wikitext.commonmark.internal.spec.SimplifiedHtmlDocumentBuilder)1 Locator (org.eclipse.mylyn.wikitext.parser.Locator)1 HtmlDocumentBuilder (org.eclipse.mylyn.wikitext.parser.builder.HtmlDocumentBuilder)1