Kaip įterpti kodo pavyzdį į įrašą?

Kaip šiame puslapyje įterpiami kodo pavyzdžiai?

Anonimas

Jei rašote apie programavimą, kaip aš štai čia, anksčiau ar vėliau atsiranda poreikis į blogo įrašą įterpti kodo pavyzdį. Kartais – kelias eilutes, o kartais ir didelį gabalą. WordPress tam reikalui siūlo daugybę skirtingų įskiepių. Jų veikimo principas kartais skiriasi, bet dažniausias atvejis – CSS bei JavaScript ir/arba PHP pagalba suformatuojamas <code> elementas.

Aš jau kuris laikas renkuosi kitą variantą – Github’o Gist servisą. Žinau, kad taip dalis mano turinio lieka išoriniame servise, bet Gist man patinka dėl keleto priežasčių. Pirmiausia, man patinka pats Gist funkcionalumas – kodo gabaliukai ten lengvai redaguojami, versijuojami, fork‘inami ir pan. Norint sukurti naują gist’ą nereikia būti prisiregistravus, juos galima „paslėpti“ – kad matytų tik žmonės, turintys tiesiogines nuorodas į juos. Kitas dalykas – straipsnio tekstui WordPress taiko daugybę įvairių filtrų, sulig kiekvienu iš jų didėja tikimybė, kad kažkuris kodo gabaliukas pradės su vienu iš filtrų konfliktuoti, ir nepavyks to kodo įterpti taip, kaip norėtųsi. O labiausiai man patinka, kad gist’us įmanoma įterpti oEmbed metodu.

Kas tas oEmbed?

oEmbed – labai smagus ir paprastas būdas įterpti turtingą turinį (multimedia/dokumentus/ir pan), į savo rašomus tekstus. WordPress tokio įterpimo būdo palaikymas atsirado dar 2.9 versijoje, o palaikomų servisų sąrašas yra vis plečiamas. Kaip visa tai veikia? Rašydami tekstą tiesiog įterpkite „pliką“ nuorodą į norimą turinį atskiroje pastraipoje. Nuoroda neturi būti aktyvi, tiesiog plikas tekstas ir jokio papildomo teksto aplink. Štai taip:

https://www.youtube.com/watch?v=dQw4w9WgXcQ

Išsaugojus tokį tekstą ir atsidarius peržiūrą pamatysite, kad WordPress automatiškai toje vietoje įterpė YouTube grotuvą su jūsų norimu vaizdeliu:

Tokiu pat metodu galite įterpti muziką iš SoundCloud, Spotify ar Rdio, nuotraukas iš Flikr, Instagram ar Imgur, Twitter čiulbesius ir daug kitų dalykų. Pilną sąrašą rasite WordPress dokumentacijoje.

O tai kaip dėl Gist?

Turbūt jau pastebėjote, kad Gist tame sąraše nėra. Nors 4.0 versijoje šis sąrašas dar labiau išsiplės, WordPress toli gražu neatpažįsta visų paslaugų, kurios palaiko oEmbed, tik pačius populiariausius, Be to, Gist oficialiai nepalaiko oEmbed metodo. Bet  WordPress kūrėjų ir Tyrel Kesley dėka tai yra nesunkiai ištaisoma – tereikia keleto kodo eilučių:

Kodas čia suformatuotas kaip WordPres įskiepis, bet jį lygiai taip pat galima įterpti ir į Jūsų išvaizdos temos  functions.php failą. Tiesiog perkeltkite ten 27-44 eilutes.

Šį kodą taip pat nesunkiai galima pritaikyti kitiems servisams, kurie palaiko oEmbed. Didelį jų sąrašą galite rasti oEmbed.com, o Mathias Panzenböck Github’e dalinasi jau JSON formatu paruoštu rinkiniu. O WordPress dokumentacijoje galima pasikaityti apie funkcijas, kurios padeda pridėti naujas paslaugas į Jūsų oEmbed tiekėjų sąrašą. Jei svetainė oficialiai palaiko oEmbed, jums terekės wp_oembed_add_provider() funkcijos, jei ne – teks šiek tiek daugiau pasikrapštyti. Bet jei svetainė turi kokį nors ’embed’ metodą (iframe, javascript ar pan.), tą turinį įmanoma įterpti ir per oEmbed.