Трета задача

  1. Здрасти,

    За да се изпечата резултата на примерния тест така, както е в условието на задачата, не трябва ли в Readme-то, реда с Пример да е # Пример, а не ## Пример.

    Edit:

    Сега като гледам, май не е само там проблема, ами и първия хедър не трябва да е type MarkdownParser, а само MarkdownParser.

  2. @Иван Божилов: Според сайта от статията

    # Заглавие # Второ Заглавие # ще се конвертира в H1 от вида Заглавие # Второ Заглавие т.е. следим до последния хеш символ на реда.

    Тъй като доста от нещата са стандартни и повечето могат да се тестват там (затова си мисля, че се очаква и нашите решения да работят по същия начин) е сравнително лесно да се прецени кое, как трябва да работи.

    Мен обаче, леко ме обърква идеята за изреченията, тъй като ако в дадения пример се очаква "Георги Кранев е много забавен." да не засече името му, то ако се използват регулярни изрази, те трябва да са доста обстойни и специфични.

    Какво става ако се опитаме да вкараме изречение в скоби, а също така в какви ли не други графични символи? Освен това е възможно изречение да започне с число, или ако се използва горната схема със специалните символи, да има много вложени изречения едно в друго.

    Та въпросът ми е, да очакваме стандартен текст, т.е. имаме само 3 знака за край на изречение ?!. и няма вложени едно в друго изречения, или се очаква да има вложени едно в друго изречения?

  3. Няколко бързи въпроса от мен :

    • Имената само на латиница и кирилица ли ще бъдат? Че не знам, кои са главните в иврит например.
    • В Links() трябва ли да вземем в предвид, че линковете в markdown-а имат определен синтактсис, имам в предвид [това](link) ? И попринцип има възможност за protocol://user:pass@domain/path, но явно ние да не я разглеждаме? Трябва ли да handle–нем и IP-та ?
    • Относно PhoneNumbers() като казвате, че не ви интересува колко цифри са, това означава ли, че H1 например е телефонният номер 1?
    • Като гледаме домейните, да имаме ли в предвид, че може да се използва и кирилица?
    • Само на латиница и кирилица
    • Да, трябва да го вземете под внимание. От [това](link) очакваме link. Няма нужда да си играете с user:pass@ или ip адреси. Макар последните при адекватен регулярен израз да идват безплатно
    • Не, защото има H отпред. Иначе сме ок да ни върнете телефонен номер с една цифра.
    • Ами факт е, че от известно време има домейни на разни особени азбуки, но не ги мислете тях. Само латиница :)
  4. Щом е така, ето малко тестове за нещата, които не са покрити от вашите. Като тестовете работят със съответния readme файл.

    Иначе относно:

    Да, трябва да го вземете под внимание. От [това](link) очакваме link. Няма нужда да си играете с user:pass@ или ip адреси. Макар последните при адекватен регулярен израз да идват безплатно.

    Не идват безплатно, ако не искаш да ги хванеш. Тоест ти ще го хванеш, но принципно си е отделен случай, защото там имаш друго ограничение за дължина и прочие. Като цяло за IP се разписват други (поне аз така знам) и дори други 2 :) Един за IPv4 и един за IPv6. Най-малкото IPv6 няма да хванеш с този, с който по случайност ще хванеш версия 4.

    • Валиден домейн се състои от букви, цифри, точки и тирета, нали?
    • Писали сте, че между цифрите в телефонен номер има скоби, тирета и интервали. Това означава ли, че може да има няколко символа един след друг и в такъв случай приемаме, че телефонен номер не завършва на скоба предполагам?
    • За URL-ите очакваме да бъдат тествани със съществуващи такива, нали? Кои от тези URL-и са валидни според условието - http://play.golang.org/, http://play.golang.org, play.golang.org? Само първият?
    • Какви схеми може да имаме? Само http, https, ftp и ftps?
  5. @Мария:

    • Да
    • Може да има няколко симола един след друг и не ви интересува какви са. Т.е. 012838(123 е супер валиден номер
    • Няма да тестваме за съществуващи такива. Без значение какво е link в [name](link), то ще се смята за URL. В противен случай бихме хванали само първия
    • Само http и https

    @Мартин, само след h1 заглавията има точка.

    • И въпрос относно Markdown: В края на ред той слага ли \n или \r или \r\n?
    • Какво става във функцията за генериране на списък, ако имаме H3, но не и H2 - 1.0.1 H3 или разчитаме header-ите винаги да са нормално подредени?
  6. Някой намерил ли е някакъв смислен начин за reference към групи? Например: (.*)-(.*) ще мачне "някакъв текст - друг текст" и аз искам после да кажа (по магически начин) fmt.Prinln(expr.group("\1") или нещо такова, което да ми върне "някакъв текст ", което е първата група.

Трябва да сте влезли в системата, за да може да отговаряте на теми.