Вход | Регистрация

Пета задача

  • Имате да питате нещо по пета задача — тук е мястото.

    07.05.2009
  • Thumbs_up

    Този параграф как трябва да се интерпретира "ааа _ббб_ ввв _ггг_ ддд", като "ааа ббб ввв ггг ддд" или като "ааа ббб_ ввв _ггг ддд"

    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
  • Thumbs_up
    `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)
  • Thumbs_up
    # понеже _ се смята за символ от дума -- 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>Тука кво ще &lt;стане&gt;?</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)