Priključio Chad Miller Copyright (c) 2004, 2007, 2012 Chad Miller
naziv originala SmartyPants autor John Gruber Copyright (c) 2003 John Gruber
Pronađeno u Bazaar odeljku na http://web.chad.org/projects/smartypants.py/ .
Dodatak sa tipografskim navodnicima za Pyblosxom.
Originalni "SmartyPants" je besplatan web dodatak za Movable Type, Blosxom i BBEdit koji lako prevodi obične ASCII znake interpunkcije u “pametne” tipografske HTML entitete interpunkcije.
Оvaj softver, smartypants.py, nastoji da bude funkcionalan priključak SmartyPants-a za Python, za korišćenje uz Pyblosxom.
SmartyPants može obavljati sledeće transformacije:
To znači da možete da pišete, uređujete i čuvate vaše postove pomoću običnih starih ASCII ravnih navodnika, običnih crtica i običnih tačaka, ali vaš objavljeni post (i krajnji HTML rezultat) pojaviće se sa pametnim navodnicima, dugim crticama i odgovarajućim elipsama.
SmartyPants ne modifikuje karaktere u okviru <pre>, <code>, <kbd>, <math> ili <script> blokova oznaka. Tipično, ove oznake se upotrebljavaju da prikažu tekst tamo gde pametni navodnici i druga “pametna interpunkcija” ne bi bila odgovarajuća, kao što je izvorni kod ili označavanje primera.
Ako morate da koristite dosledne ravne navodnike (ili obične povlake i tačke), SmartyPants prihvata sledeće izlazne sekvence sa ulevo nagnutim kosim crtama kako bi izazvao pojavu ne-pametne interpunkcije. To čini tako što transformiše izlaznu sekvencu u decimalno kodirani HTML entitet:
(FIXME: tabela ovde)
Sasvim je glupo što postoji prekinuta veza između vizuelnog izgleda i oznake tabele onda kada su angažovani specijalni karakteri.
komentar Izlaz Vrednost Karakter
Оvo je korisno, na primer, kada želite da upotrebite ravne navodnike kao oznake za dužinu stopa i inča: 6'2" tall; a 17" iMac.
Za korisnike Pyblosxoma, smartypants_attributes atribut je tamo gde određujete opcije konfiguracije.
Brojčane vrednosti su najlakši način za konfiguraciju ponašanja SmartyPants-a.
"0" Potiskuje sve transformacije (ne radi ništa). "1" Izvodi podrazumevane SmartyPants transformacije: navodnike (uključujući i ``kose crte''), duge crtice i elipse. "--" (crtica crtica) se koristi da označi dugu crticu; ne postoji podrška za kratku crticu.
"2" Isto kao za smarty_pants="1", osim što koristi staro stenografsko kucanje za crtice: "--" (crtica crtica) za kratku crticu, "---" (crtica crtica crtica) za dugu crticu.
"3" Isto kao za smarty_pants="2", osim što invertuje stenografiju za crtice: "--" (crtica crtica) za kratku crticu, i "---" (crtica crtica crtica) za dugu crticu.
"-1" Režim pretvaranja. Obrće SmartyPants proces transformacije, pretvarajući HTML entitete koje proizvede SmartyPants u njihove ASCII ekvivalente. Npr. "“" se pretvara u obične duple navodnike (“), "—" se pretvara u dve crtice itd.
Sledeće vrednosti atributa pojedinačnih karaktera mogu se kombinovati kako bi se aktivirale individualne transformacije iz okvira smarty_pants atributa. Na primer, za obrazovanje normalnih navodnika i dugih crtica, ali ne elipsa ili ``nagnutih'' navodnika:
py['smartypants_attributes'] = "1"
"q" Obrazuje normalne znakove navoda: (") i (').
"b" Obrazuje duple ``nagnute'' znakove navoda.
"B" Obrazuje duple ``nagnute'' znakove navoda i `pojedinačne' navodnike.
"d" Obrazuje dugu crticu.
"D" Obrazuje dugu crticu i kratku crticu pomoću starog stenografskog kucanja: (crtica crtica) za kratku crticu, (crtica crtica crtica) za dugu crticu
"i" Obrazuje dugu crticu i kratku crticu pomoću invertovanog starog stenografskog kucanja: (crtica crtica) za dugu crticu, (crtica crtica crtica) za kratku crticu
"e" Obrazuje elipse.
"w" Prevodi svaku instancu " u normalne karaktere duplih navodnika. To ne bi trebalo da ima značaja za većinu ljudi, ali je od posebnog značaja za svakoga ko piše postove pomoću Dreamweavera, jer Dreamweaver neobjašnjivo koristi taj entitet da bi predstavio dosledni karakter duplih navodnika. SmartyPants obrazuje samo normalne navodnike, ne entitete (jer se obično entiteti koriste za eksplicitnu svrhu predstavljanja određenih karaktera koje označavaju). Opcija “w” se mora upotrebiti zajedno sa jednom (ili obe) drugom opcijom navodnika ("q" ili "b"). Na taj način, ako želite da primenite sve SmartyPants transformacije (navodnike, kratke i duge crtice i elipse) i da prevedete " entitete u regularne navodnike tako da SmartyPants može da ih obrazuje, treba da prenesete sledeće u smarty_pants atribut:
Lista smartypants_forbidden_flavours sadrži pyblosxom zabranjene flavore za koje neće doći do SmartyPants rasterizacije.
Jedna od situacija u kojima će navodnici postati uvijeni na pogrešan način jeste kada se apostrofi koriste na početku vodećih skraćivanja. Na primer:
'Twas the night before Christmas. (T’s’ desilo noć pred Božić)
U navedenom primeru SmartyPants će pretvoriti apostrof u otvarajući pojedinačni znak navoda, a u stvari bi trebalo da bude zatvarajući. Mislim da se ovaj problem ne može rešiti u opštem smislu -- svaki word procesor koji sam isprobao to radi pogrešno. U takvim slučajevima najbolje je upotrebiti ispravan HTML entitet za zatvaranje pojedinačnih navoda (’) ručno.
Da biste prijavili greške ili zahteve za svojstva (osim tema izlistanih u navedenom odeljku o upozorenjima), pošaljite mejl na smartypantspy@chad.org
Ako greška podrazumeva pogrešno uvijanje navodnika, molim vas pošaljite primer koji to ilustruje.
Brojevi verzije će pratiti SmartyPants brojeve verzije uz dodatak podvlačenja i smartypants.py verzije na kraju.
Nove verzije će biti dostupne na http://wiki.chad.org/SmartyPantsPy
John Gruber je odradio najteži posao u pisanju ovog softvera u Perlu za Movable Type i skoro sve od ove korisne dokumentacije. Chad Miller ju je priključio u Python za korišćenje uz Pyblosxom.
Delovi SmartyPants originalnog rada bazirani su na veštom MTRegex dodatku Brada Choatea Brad Choate takođe je doprineo sa nekim delovima izvornog koda za ovaj dodatak. Brad Choate je zaista odličan haker.
Jeremy Hedley i Charles Wiltgen zaslužuju da budu pomenuti zbog primernog beta testiranja originalnog SmartyPants-a.
Rael Dornfest priključio je SmartyPants u Blosxom