private boolean title(Scanner scanner) {
        Position start = scanner.position();
        if (!LinkScanner.scanLinkTitleContent(scanner, titleDelimiter)) {
            // Invalid title, stop. Title collected so far must not be used.
            title = null;
            return false;
        }

        title.append(scanner.getSource(start, scanner.position()).getContent());

        if (!scanner.hasNext()) {
            // Title ran until the end of line, so continue on next line (until we find the delimiter)
            title.append('\n');
            return true;
        }

        // Skip delimiter character
        scanner.next();
        scanner.whitespace();
        if (scanner.hasNext()) {
            // spec: No further non-whitespace characters may occur on the line.
            // Title collected so far must not be used.
            title = null;
            return false;
        }
        referenceValid = true;
        paragraphLines.clear();

        // See if there's another definition.
        state = State.START_DEFINITION;
        return true;
    }
@Test
    public void testTitle() {
        parse("[foo]: /url 'title'");
        assertEquals(State.START_DEFINITION, parser.getState());
        assertParagraphLines("", parser);

        assertEquals(1, parser.getDefinitions().size());
        assertDef(parser.getDefinitions().get(0), "foo", "/url", "title");
    }