SlideShare a Scribd company logo
Macdom preprocesor
Vladimír Macháček
@8machy
Úvodem
use Machy8MacdomLoadersLoaderLatte;
protected function createTemplate()

{

$template = parent::createTemplate();

$macdom = new LoaderLatte($this);

$template->getLatte()->setLoader($macdom);

return $template;

}
Elementy & tagy
<div></div>


<input>
div


input
Selektory & atributy
<div id="id" class="trida" data-popis="popis"></div>
div id=id class='trida' data-popis="popis"
div #id .trida -popis=popis


Jak je to s textem?
<div>

<b>Text</b>

</div>
div <b>Text</b>
div
b Text
“Rychlé” atributy
<a href="nette.org" target="blank">Nette.org</a>


<input type="text" placeholder="Uživatelské jméno">

a $nette.org $blank Nette.org


input $text 3$Uživatelské jméno;
Makra
<meta charset="utf-8">
<script type="text/javascript" src="script.js" async></script>
utf-8
js-async script.js


Replikátor
<nav>


<a href="twitter.com" target="blank" class="trida1 trida2 trida3">

<i class="icon-twitter"></i> Jsme na Twitteru

</a>


<a href="facebook.com" target="blank" class="trida1 trida2 trida3">

<i class="icon-facebook"></i> Najdete nás na Facebooku

</a>


<a href="instagram.com" target="blank" class="trida1 trida2 trida3">

<i class="icon-instagram"></i> Prohlédněte si náš Instagram

</a>


</nav>
Replikátor
nav

@navLink a $[@].com $blank .trida1 .trida2 .trida3

@ i .icon-[@]


navLink [twitter]

[twitter] Jsme na Twitteru


navLink [facebook]

[facebook] Najdete nás na Facebooku


navLink [instagram]

[instagram] Prohlédněte si náš Instagram
Něco málo k nastavení
• Přidat & odebrat
• Elementy, atributy a makra
• Nekompilované oblasti a elementy
• Změnit
• Rychlé atributy, čím bude odsazen zpracovaný kód, způsob odsazení
• Povolit & zakázat
• Automatické odsazení dokumentu
• Úpravu výsledného kódu dle XHTML
• Komprese zpracovaného kódu
• Uzavírání nepárových tagů lomítkem
• Celý zápis boolean atributů
Challenge
Macdom vs Haml vs Jade vs Slim
<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8"/>

<meta content="width=device-width" name="viewport"/>

<link rel="shortcut icon" href="includes/favicon.ico"/>

<title>Macdom example</title>

</head>

<body>

<h1 id="title" class="titles main-title">Hello world</h1>

<nav>

<a target="blank" href="http://www.google.com" class="first-link">Link on - Google</a>

<a target="blank" href="http://www.yahoo.com">Link on - Yahoo</a>

<a target="blank" href="http://www.github.com">Link on - Github</a>

</nav>

<div id="wrapper">

Some text <b>here</b>.

</div>

<script async="" type="text/javascript" src="//code.jquery.com/jquery-1.12.0.min.js"></script>

</body>

</html>
Macdom vs Haml
!5
html
head
utf-8
viewport width=device-width
favicon includes/favicon.ico
title Macdom example
body
h1 #title .titles .main-title Hello world
nav
@ a $http://www.[@].com $blank Link on -
[google] .first-link Google
[yahoo] Yahoo
[github] Github
div #wrapper Some text <b>here</b>.
js-async //code.jquery.com/jquery-1.12.0.min.js
!!!
%html
%head
%meta{:charset => "utf-8"}/
%meta{:content => "width=device-width", :name => "viewport"}/
%link{:href => "includes/favicon.ico", :rel => "shortcut icon"}/
%title Macdom example
%body
%h1#title.titles.main-title Hello world
%nav
%a.first-link{:href => "http://www.google.com", :target => "blank"} Link on - Google
%a{:href => "http://www.yahoo.com", :target => "blank"} Link on - Yahoo
%a{:href => "http://www.github.com", :target => "blank"} Link on - Github
#wrapper
Some text
%b here
.
%script{:async => "", :src => "//code.jquery.com/jquery-1.12.0.min.js", :type => "text/javascript"}
Macdom vs Jade
!5
html
head
utf-8
viewport width=device-width
favicon includes/favicon.ico
title Macdom example
body
h1 #title .titles .main-title Hello world
nav
@ a $http://www.[@].com $blank Link on -
[google] .first-link Google
[yahoo] Yahoo
[github] Github
div #wrapper Some text <b>here</b>.
js-async //code.jquery.com/jquery-1.12.0.min.js
doctype html
html
head
meta(charset='utf-8')
meta(content='width=device-width', name='viewport')
link(rel='shortcut icon', href='includes/favicon.ico')
title Macdom example
body
h1#title.titles.main-title Hello world
nav
a.first-link(target='blank', href='http://www.google.com') Link on - Google
a(target='blank', href='http://www.yahoo.com') Link on - Yahoo
a(target='blank', href='http://www.github.com') Link on - Github
#wrapper
| Some text
b here
| .
script(async='', type='text/javascript', src='//code.jquery.com/jquery-1.12.0.min.js')
Macdom vs Slimdoctype html
html
head
meta charset="utf-8" /
meta content="width=device-width" name="viewport" /
link href="includes/favicon.ico" rel=("shortcut icon") /
title Macdom example
body
h1#title.titles.main-title Hello world
nav
a.first-link href="http://www.google.com" target="blank" Link on - Google
a href="http://www.yahoo.com" target="blank" Link on - Yahoo
a href="http://www.github.com" target="blank" Link on - Github
#wrapper
| Some text
b here
| .
script async="" src="//code.jquery.com/jquery-1.12.0.min.js" type="text/javascript"
!5
html
head
utf-8
viewport width=device-width
favicon includes/favicon.ico
title Macdom example
body
h1 #title .titles .main-title Hello world
nav
@ a $http://www.[@].com $blank Link on -
[google] .first-link Google
[yahoo] Yahoo
[github] Github
div #wrapper Some text <b>here</b>.
js-async //code.jquery.com/jquery-1.12.0.min.js
https://codepen.io/Machy8/
Vladimír Macháček
@8machy
Děkuji za pozornost!

More Related Content

What's hot

Concevoir un thème pour Wordpress
Concevoir un thème pour WordpressConcevoir un thème pour Wordpress
Concevoir un thème pour Wordpress
Jean-Luc Houedanou
 
Tjejer kodar 100 - Dag 2 - HTML & CSS
Tjejer kodar 100 - Dag 2 - HTML & CSSTjejer kodar 100 - Dag 2 - HTML & CSS
Tjejer kodar 100 - Dag 2 - HTML & CSS
Emil Stenström
 
Dennis zapana perez
Dennis zapana perezDennis zapana perez
Dennis zapana perezdennis_elvis
 
Crud php7 mysq li + bootstrap
Crud php7 mysq li + bootstrapCrud php7 mysq li + bootstrap
Crud php7 mysq li + bootstrap
SMK - Statens Museum for Kunst
 
Modernizerを用いたHTML5Webサイトの構築
Modernizerを用いたHTML5Webサイトの構築Modernizerを用いたHTML5Webサイトの構築
Modernizerを用いたHTML5Webサイトの構築Hiroaki Wakamatsu
 
DOCUMENTACION PAGINA WEB PHP
DOCUMENTACION PAGINA WEB PHPDOCUMENTACION PAGINA WEB PHP
DOCUMENTACION PAGINA WEB PHP
Dorian Xavier Bendezu Martinez
 
Clase 10 electiva profesional 3 aws rds php y mysql
Clase 10 electiva profesional 3 aws rds php y mysqlClase 10 electiva profesional 3 aws rds php y mysql
Clase 10 electiva profesional 3 aws rds php y mysql
Richard Eliseo Mendoza Gafaro
 
nose ponerle
nose ponerlenose ponerle
nose ponerleSilverKB
 
CSS設計の理想と現実
CSS設計の理想と現実CSS設計の理想と現実
CSS設計の理想と現実
拓樹 谷
 
Service Workers
Service WorkersService Workers
Service Workers
Patrick Kettner
 
Crea un tema compatibile con le ultime novità WordPress
Crea un tema compatibile con le ultime novità WordPressCrea un tema compatibile con le ultime novità WordPress
Crea un tema compatibile con le ultime novità WordPress
SkillsAndMore
 
Django user permissions in your templates
Django  user permissions  in your templatesDjango  user permissions  in your templates
Django user permissions in your templates
Anton Pirker
 
Blogger template-squeeze-page-angelogrande
Blogger template-squeeze-page-angelograndeBlogger template-squeeze-page-angelogrande
Blogger template-squeeze-page-angelograndeangelogrande782
 
Tools20121015
Tools20121015Tools20121015
Tools20121015
Frans Van Assche
 
WordPress-Themes mit Twig entwickeln
WordPress-Themes mit Twig entwickelnWordPress-Themes mit Twig entwickeln
WordPress-Themes mit Twig entwickeln
Walter Ebert
 

What's hot (19)

Concevoir un thème pour Wordpress
Concevoir un thème pour WordpressConcevoir un thème pour Wordpress
Concevoir un thème pour Wordpress
 
Tjejer kodar 100 - Dag 2 - HTML & CSS
Tjejer kodar 100 - Dag 2 - HTML & CSSTjejer kodar 100 - Dag 2 - HTML & CSS
Tjejer kodar 100 - Dag 2 - HTML & CSS
 
Lesson 01
Lesson 01Lesson 01
Lesson 01
 
Dennis zapana perez
Dennis zapana perezDennis zapana perez
Dennis zapana perez
 
Crud php7 mysq li + bootstrap
Crud php7 mysq li + bootstrapCrud php7 mysq li + bootstrap
Crud php7 mysq li + bootstrap
 
Modernizerを用いたHTML5Webサイトの構築
Modernizerを用いたHTML5Webサイトの構築Modernizerを用いたHTML5Webサイトの構築
Modernizerを用いたHTML5Webサイトの構築
 
DOCUMENTACION PAGINA WEB PHP
DOCUMENTACION PAGINA WEB PHPDOCUMENTACION PAGINA WEB PHP
DOCUMENTACION PAGINA WEB PHP
 
Clase 10 electiva profesional 3 aws rds php y mysql
Clase 10 electiva profesional 3 aws rds php y mysqlClase 10 electiva profesional 3 aws rds php y mysql
Clase 10 electiva profesional 3 aws rds php y mysql
 
nose ponerle
nose ponerlenose ponerle
nose ponerle
 
CSS設計の理想と現実
CSS設計の理想と現実CSS設計の理想と現実
CSS設計の理想と現実
 
Phpex3
Phpex3Phpex3
Phpex3
 
Service Workers
Service WorkersService Workers
Service Workers
 
Jquery Framework
Jquery FrameworkJquery Framework
Jquery Framework
 
Crea un tema compatibile con le ultime novità WordPress
Crea un tema compatibile con le ultime novità WordPressCrea un tema compatibile con le ultime novità WordPress
Crea un tema compatibile con le ultime novità WordPress
 
Django user permissions in your templates
Django  user permissions  in your templatesDjango  user permissions  in your templates
Django user permissions in your templates
 
Blogger template-squeeze-page-angelogrande
Blogger template-squeeze-page-angelograndeBlogger template-squeeze-page-angelogrande
Blogger template-squeeze-page-angelogrande
 
Tools20121015
Tools20121015Tools20121015
Tools20121015
 
WordPress-Themes mit Twig entwickeln
WordPress-Themes mit Twig entwickelnWordPress-Themes mit Twig entwickeln
WordPress-Themes mit Twig entwickeln
 
Alaindavila
AlaindavilaAlaindavila
Alaindavila
 

Macdom html preprocesor

  • 2. Úvodem use Machy8MacdomLoadersLoaderLatte; protected function createTemplate()
 {
 $template = parent::createTemplate();
 $macdom = new LoaderLatte($this);
 $template->getLatte()->setLoader($macdom);
 return $template;
 }
  • 4. Selektory & atributy <div id="id" class="trida" data-popis="popis"></div> div id=id class='trida' data-popis="popis" div #id .trida -popis=popis 

  • 5. Jak je to s textem? <div>
 <b>Text</b>
 </div> div <b>Text</b> div b Text
  • 6. “Rychlé” atributy <a href="nette.org" target="blank">Nette.org</a> 
 <input type="text" placeholder="Uživatelské jméno">
 a $nette.org $blank Nette.org 
 input $text 3$Uživatelské jméno;
  • 7. Makra <meta charset="utf-8"> <script type="text/javascript" src="script.js" async></script> utf-8 js-async script.js 

  • 8. Replikátor <nav> 
 <a href="twitter.com" target="blank" class="trida1 trida2 trida3">
 <i class="icon-twitter"></i> Jsme na Twitteru
 </a> 
 <a href="facebook.com" target="blank" class="trida1 trida2 trida3">
 <i class="icon-facebook"></i> Najdete nás na Facebooku
 </a> 
 <a href="instagram.com" target="blank" class="trida1 trida2 trida3">
 <i class="icon-instagram"></i> Prohlédněte si náš Instagram
 </a> 
 </nav>
  • 9. Replikátor nav
 @navLink a $[@].com $blank .trida1 .trida2 .trida3
 @ i .icon-[@] 
 navLink [twitter]
 [twitter] Jsme na Twitteru 
 navLink [facebook]
 [facebook] Najdete nás na Facebooku 
 navLink [instagram]
 [instagram] Prohlédněte si náš Instagram
  • 10. Něco málo k nastavení • Přidat & odebrat • Elementy, atributy a makra • Nekompilované oblasti a elementy • Změnit • Rychlé atributy, čím bude odsazen zpracovaný kód, způsob odsazení • Povolit & zakázat • Automatické odsazení dokumentu • Úpravu výsledného kódu dle XHTML • Komprese zpracovaného kódu • Uzavírání nepárových tagů lomítkem • Celý zápis boolean atributů
  • 11. Challenge Macdom vs Haml vs Jade vs Slim <!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8"/>
 <meta content="width=device-width" name="viewport"/>
 <link rel="shortcut icon" href="includes/favicon.ico"/>
 <title>Macdom example</title>
 </head>
 <body>
 <h1 id="title" class="titles main-title">Hello world</h1>
 <nav>
 <a target="blank" href="http://www.google.com" class="first-link">Link on - Google</a>
 <a target="blank" href="http://www.yahoo.com">Link on - Yahoo</a>
 <a target="blank" href="http://www.github.com">Link on - Github</a>
 </nav>
 <div id="wrapper">
 Some text <b>here</b>.
 </div>
 <script async="" type="text/javascript" src="//code.jquery.com/jquery-1.12.0.min.js"></script>
 </body>
 </html>
  • 12. Macdom vs Haml !5 html head utf-8 viewport width=device-width favicon includes/favicon.ico title Macdom example body h1 #title .titles .main-title Hello world nav @ a $http://www.[@].com $blank Link on - [google] .first-link Google [yahoo] Yahoo [github] Github div #wrapper Some text <b>here</b>. js-async //code.jquery.com/jquery-1.12.0.min.js !!! %html %head %meta{:charset => "utf-8"}/ %meta{:content => "width=device-width", :name => "viewport"}/ %link{:href => "includes/favicon.ico", :rel => "shortcut icon"}/ %title Macdom example %body %h1#title.titles.main-title Hello world %nav %a.first-link{:href => "http://www.google.com", :target => "blank"} Link on - Google %a{:href => "http://www.yahoo.com", :target => "blank"} Link on - Yahoo %a{:href => "http://www.github.com", :target => "blank"} Link on - Github #wrapper Some text %b here . %script{:async => "", :src => "//code.jquery.com/jquery-1.12.0.min.js", :type => "text/javascript"}
  • 13. Macdom vs Jade !5 html head utf-8 viewport width=device-width favicon includes/favicon.ico title Macdom example body h1 #title .titles .main-title Hello world nav @ a $http://www.[@].com $blank Link on - [google] .first-link Google [yahoo] Yahoo [github] Github div #wrapper Some text <b>here</b>. js-async //code.jquery.com/jquery-1.12.0.min.js doctype html html head meta(charset='utf-8') meta(content='width=device-width', name='viewport') link(rel='shortcut icon', href='includes/favicon.ico') title Macdom example body h1#title.titles.main-title Hello world nav a.first-link(target='blank', href='http://www.google.com') Link on - Google a(target='blank', href='http://www.yahoo.com') Link on - Yahoo a(target='blank', href='http://www.github.com') Link on - Github #wrapper | Some text b here | . script(async='', type='text/javascript', src='//code.jquery.com/jquery-1.12.0.min.js')
  • 14. Macdom vs Slimdoctype html html head meta charset="utf-8" / meta content="width=device-width" name="viewport" / link href="includes/favicon.ico" rel=("shortcut icon") / title Macdom example body h1#title.titles.main-title Hello world nav a.first-link href="http://www.google.com" target="blank" Link on - Google a href="http://www.yahoo.com" target="blank" Link on - Yahoo a href="http://www.github.com" target="blank" Link on - Github #wrapper | Some text b here | . script async="" src="//code.jquery.com/jquery-1.12.0.min.js" type="text/javascript" !5 html head utf-8 viewport width=device-width favicon includes/favicon.ico title Macdom example body h1 #title .titles .main-title Hello world nav @ a $http://www.[@].com $blank Link on - [google] .first-link Google [yahoo] Yahoo [github] Github div #wrapper Some text <b>here</b>. js-async //code.jquery.com/jquery-1.12.0.min.js