Тук е мястото да питате, ако има нещо неясно по условието на трета задача. Примерният тест е тук.
Трета задача
Здрасти,
За да се изпечата резултата на примерния тест така, както е в условието на задачата, не трябва ли в Readme-то, реда с Пример да е
# Пример
, а не## Пример
.Edit:
Сега като гледам, май не е само там проблема, ами и първия хедър не трябва да е
type MarkdownParser
, а самоMarkdownParser
.Ако имаме "# Заглавие # Второ Заглавие #". Това как трябва да го възприемаме?
Направил съм ви pull request оправящ нещата, които Александър е казал.
П.П. аз загубих 30 минути в опит да открия какво бъркам на момента с хедъра.
Упс. Примера беше грешен.
В условието на домашното има само един h1 и той е MarkdownParser. h2 хедърите на този хедър са "type MarkdownParser" и "Пример".
@Иван Божилов: Според сайта от статията
# Заглавие # Второ Заглавие #
ще се конвертира в H1 от видаЗаглавие # Второ Заглавие
т.е. следим до последния хеш символ на реда.Тъй като доста от нещата са стандартни и повечето могат да се тестват там (затова си мисля, че се очаква и нашите решения да работят по същия начин) е сравнително лесно да се прецени кое, как трябва да работи.
Мен обаче, леко ме обърква идеята за изреченията, тъй като ако в дадения пример се очаква
"Георги Кранев е много забавен."
да не засече името му, то ако се използват регулярни изрази, те трябва да са доста обстойни и специфични.Какво става ако се опитаме да вкараме изречение в скоби, а също така в какви ли не други графични символи? Освен това е възможно изречение да започне с число, или ако се използва горната схема със специалните символи, да има много вложени изречения едно в друго.
Та въпросът ми е, да очакваме стандартен текст, т.е. имаме само 3 знака за край на изречение
?!.
и няма вложени едно в друго изречения, или се очаква да има вложени едно в друго изречения?@Александър, очаквайте стандартен текст. Няма да ви подаваме извращения, нито ще позволяваме на домашните си любимци да се разхождат по клавиатурата.
Няколко бързи въпроса от мен :
- Имената само на латиница и кирилица ли ще бъдат? Че не знам, кои са главните в иврит например.
- В
Links()
трябва ли да вземем в предвид, че линковете в markdown-а имат определен синтактсис, имам в предвид[това](link)
? И попринцип има възможност за protocol://user:pass@domain/path, но явно ние да не я разглеждаме? Трябва ли да handle–нем и IP-та ? - Относно
PhoneNumbers()
като казвате, че не ви интересува колко цифри са, това означава ли, чеH1
например е телефонният номер 1? - Като гледаме домейните, да имаме ли в предвид, че може да се използва и кирилица?
- Само на латиница и кирилица
- Да, трябва да го вземете под внимание. От
[това](link)
очаквамеlink
. Няма нужда да си играете сuser:pass@
или ip адреси. Макар последните при адекватен регулярен израз да идват безплатно - Не, защото има H отпред. Иначе сме ок да ни върнете телефонен номер с една цифра.
- Ами факт е, че от известно време има домейни на разни особени азбуки, но не ги мислете тях. Само латиница :)
Щом е така, ето малко тестове за нещата, които не са покрити от вашите. Като тестовете работят със съответния 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
?
А, относно GenerateTableOfContents(). В това което сте написали има
<<< 1.1 type MarkdownParser
и
<<< 1.2. Пример
Като след "1.1" няма точка а след "1.2" има. Трябва ли да има точки или не?
@Мария:
- Да
- Може да има няколко симола един след друг и не ви интересува какви са. Т.е.
012838(123
е супер валиден номер - Няма да тестваме за съществуващи такива. Без значение какво е
link
в[name](link)
, то ще се смята за URL. В противен случай бихме хванали само първия - Само
http
иhttps
@Мартин, само след h1 заглавията има точка.
Тоест вземаме предвид само
[name](link)
синтаксиса, а[name]: link
- не и в този случай дори приlink = is this a link?
ще го вземем? Нали схемата, домейнът и пътят бяха задължителни?Задължителни са, ако не са в
[name](link)
. В този случай според самия синтаксис на markdown това са линкове.- И въпрос относно Markdown: В края на ред той слага ли
\n
или\r
или\r\n
? - Какво става във функцията за генериране на списък, ако имаме H3, но не и H2 - 1.0.1 H3 или разчитаме header-ите винаги да са нормално подредени?
- И въпрос относно Markdown: В края на ред той слага ли
- Слага се такъв line ending, какъвто е използван при писането на самия документ.
- Очаквате адекватно подредени хедъри
Някой намерил ли е някакъв смислен начин за reference към групи? Например:
(.*)-(.*)
ще мачне "някакъв текст - друг текст" и аз искам после да кажа (по магически начин)fmt.Prinln(expr.group("\1")
или нещо такова, което да ми върне "някакъв текст ", което е първата група.Мисля, че в Go това го няма или поне аз не успях да намеря нищо.
Време е за малко тестове от мен. Не са съвсем пълни. Ако успея ще къмитна и още.
Ще си качите ли вашите (финални) тестове ?
Ще ги качим.
Напомням.
Пак напомням, пък ако сте ги качили някъде и просто не съм видял, ако може един линк.
Трябва да сте влезли в системата, за да може да отговаряте на теми.