Този параграф как трябва да се интерпретира "ааа _ббб_ ввв _ггг_ ддд", като "ааа ббб ввв ггг ддд" или като "ааа ббб_ ввв _ггг ддд"
Пета задача
-
Имате да питате нещо по пета задача — тук е мястото.
07.05.2009 -
09.05.2009
-
-
Тъй като в условието пише "език подобен на Markdown", някой може ли да потвърди, дали това (линка от предишният пост) работи по същият начин. До колкото разчитам условието и тествах някои неща, мисля че има разлика в дефинициите за блокове.
09.05.2009 (променeно 09.05.2009) -
По-скоро се придържай към условието на задачата. Не, че е по-вярното, ама такива ще бъдат тестовете =-)
А относно тестовете, интересно ми е как ще се тества еквивалентност на HTML изхода?
09.05.2009 -
В примера най-отдолу на задачата е дадено, че
> > for generating
> > entropy
> >
> > based
> >
> > on &embedded&
> > <code> `with backticks`се преобразува до един цитат. Според условието не трябва ли това да са три последователни цитата, защото са отделени с празни редове?
Съдържанието на цитата се интерпретира като нормален markup, (разбира се след > като се премахнат водещите > ...)
10.05.2009 (променeно 10.05.2009) -
Кое е празното на един ред, съдържащ ">"?
10.05.2009 -
Да прав си, обърках се нещо из тези тагове.
10.05.2009 -
Този параграф как трябва да се интерпретира "ааа _ббб_ ввв _ггг_ ддд", като "ааа ббб ввв ггг ддд" или като "ааа ббб_ ввв _ггг ддд"
>>> markup(r'ааа _ббб_ ввв _ггг_ ддд') '<p>ааа <strong>ббб</strong> ввв <strong>ггг</strong> ддд</p>'
10.05.2009 -
Борко пита:
>>> markup(r'_а_това_наблягане_ли_е_') '<p>_а_това_наблягане_ли_е_</p>' >>> markup(r'_а тованаблягане ли е_') '<p><strong>а тованаблягане ли е</strong></p>' >>> markup(r'`Това не е код, на`ли') '<p>`Това не е код, на`ли</p>'
10.05.2009 -
Ууу, злобно. Ще има зор.
10.05.2009 -
Голям голям :)
>>> markup(r'_това_не_е_наблегнато_') '<p>_това_не_е_наблегнато_</p>' >>> markup(r'_това\_е\_наблегнато_') '<p><strong>това_е_наблегнато</strong></p>'
Напомням че това е една част от задачата и съответно носи част (неголяма) от точките. Не се силете по нея.
Ще обновя условието с тези примери.
10.05.2009 -
`aaaa`_`aaa` `aaaa*_*aaa` `aaaa`b`aaa` `aaaa*b*aaa` `aaaa`$`aaa` `aaaa*$*aaa` `aaaa *bbb ccc` ddd* ** `Това код л`и е?` *Тука кво ще <стане>?*
Тия неща какво дават?
10.05.2009 (променeно 10.05.2009) -
# понеже _ се смята за символ от дума -- re.match(r'\w', '_') >>> markup(r'`aaaa`_`aaa`') '<p>`aaaa`_`aaa`</p>' >>> markup(r'`aaaa*_*aaa`') '<p><code>aaaa*_*aaa</code></p>' >>> markup(r'`aaaa`b`aaa`') '<p>`aaaa`b`aaa`</p>' >>> markup(r'`aaaa*b*aaa`') '<p><code>aaaa*b*aaa</code></p>' >>> markup(r'`aaaa`$`aaa`') '<p><code>aaaa</code>$<code>aaa</code></p>' >>> markup(r'`aaaa *bbb ccc` ddd*') '<p><code>aaaa *bbb ccc</code> ddd*</p>' >>> markup(r'**') '<p><em></em></p>' >>> markup(r'`Това код л`и е?`') # това го оставяме недефинирано и няма да тестваме такъв случай '<p>`Това код л`и е?`</p>' >>> markup(r'`Това код л` и е?`') '<p><code>Това код л</code> и е?`</p>' >>> markup(r'*Тука кво ще <стане>?*') '<p><em>Тука кво ще <стане>?</em></p>'
Отново ще обновя условието.
10.05.2009 (променeно 10.05.2009) -
При блоковете код, "консистентността" на отместването се отнася до всички блокове код, или само в рамките на блока? За цитатите до колкото го разбирам е само в рамките на блока?
10.05.2009 -
Само в рамките на блока
10.05.2009 -
Ще трябва ли да обработваме този случай и как?
> asd qwe
Според този интерпретатор резултата е
<blockquote> <p>asd qwe</p> </blockquote>
Освен това и този код (пред qwe има табулация, а не спейсове)...
> asd > qwe
...се свежда до...
<blockquote> <p>asd qwe</p> </blockquote>
... което разбива митовете за еднаквите whitespace-ове след >
Update:
Цитати се обозаначават със > последван от whitespace...
whitespace-ите включват и\n
, това значи ли че може да имаме валиден цитат:> qwe
10.05.2009 (променeно 10.05.2009) -
Синтаксисът в задачата е взаимстван от Markdown, но не е същият. Съответно никакви митове не се разбиват. Tова е Markup, а не Markdown :)
Ще трябва ли да обработваме този случай и как?
> asd qwe
Не. Приеми го за невалиден вход с който няма да тестваме. При цитатите в Markdown `>` може да се остави само на първия ред, но не и според условието на тази задача.
Update:
Цитати се обозаначават със > последван от whitespace...
whitespace-ите > включват и\n
, това значи ли че може да имаме валиден цитат:> qwe
По-точно:
Цитати се обозаначават със > последван от whitespace, като на всеки ред от цитата това трябва да е една и съща последователност.
Тук първият ред е:
>
Който е празен. Следващият ред не може да бъде част от цитата понеже не започва със >, но и не е отделен с поне един празен ред от цитата, така че това отново е невалиден вход.
Между блоковете има поне един празен ред. Може да определите вида на блока по началото на първият му ред. Това определя дали е цитат и съответно отместването.
Забележете че това е валиден блок код (вместо интервал използвам .):
..def foo(bar): ......return bar ..x = foo(0)
Където отместването е точно два интервала, а вътре кода си има собствено отместване.
Но това не е валиден блок код:
....x = foo(1) ..def baz(zap): ....return zap / 0
Понеже на първия ред отместването е 4 интервала, а на втория само 2.
Ще обновя условието с тези забележки.
11.05.2009 (променeно 11.05.2009) -
Хоп, вече има и примерно тестче.
11.05.2009 -
И валиден блок започва винаги с четен брой whitespace-ове, нали? Ще има ли тест с нечетен брой и какво трябва да се прави в този случай (параграф предполагам)?
11.05.2009 (променeно 11.05.2009) -
Много зависи от фазата на луната и продължителността на деня.
11.05.2009 -
Какво става в този случай:
'\\*дума*'12.05.2009 (променeно 12.05.2009) -
Ако имаш предвид
markup('\\*дума*')
то тогава входа е:\*дума*
В случая първата звездичка е escape-ната и не е начало на наблягане, затова изходът е:
*дума*
Понеже няма затваряща звездичка.
12.05.2009 (променeно 12.05.2009) -
Не си зададох правилно въпроса, имах предвид
markup(r'\\*дума*')12.05.2009 (променeно 12.05.2009) -
'<p>\<em>дума</em></p>'
12.05.2009 (променeно 12.05.2009)