Genshi (mallspråk)

Genshi
Utvecklare Edgewall programvara
Initial release 3 augusti 2006 ; 16 år sedan ( 2006-08-03 )
Stabil frisättning
Edit this on Wikidata 0.7.7 / 22 april 2022 ; 10 månader sedan ( 22 april 2022 )
Förvar
Operativ system Cross-plattform
Typ Mallmotor
Licens 3-klausul BSD-licens
Hemsida genshi .edgewall .org

Genshi är en mallmotor för XML -baserade vokabulärer skrivna i Python . Genshi används för att enkelt infoga genererad utdata i XML-baserade språk, vanligtvis HTML , och återanvända element mellan dokument. Genshis syntax är baserad på Kid , men dess arkitektur är annorlunda. Genshi siktar på att implementera en del av dess funktionalitet samtidigt som mallar bearbetas snabbare, genom att dynamiskt bearbeta mallar med ett strömbaserat API, istället för att kompilera mallar till Python-kod.

Genshi kan användas med flera Python webbramverk , som CherryPy , TurboGears , Pylons och web2py . Genshi har ersatt Kid i TurboGears 2.x webbramverk.

Genshi-uppmärkning

Genshi använder namnutrymmen för att bädda in instruktioner i HTML. En typisk instruktion ges som ett attribut , med ett Python-uttryck inuti citattecken. Till exempel kommer följande att återge ett stycke som visar 4:

  
    
           
    
 <html  xmlns=  "http://www.w3.org/1999/xhtml"  xmlns:py=  "http://genshi.edgewall.org/"  >  <body>  <p  py:content=  "  2  +  2  "  >  Detta kommer att ersättas med 4  </  p  >  </  body  >  </  html  > 

På grund av användningen av namnrymder kan Genshi användas i WYSIWYG HTML-redigerare .

Skillnader mellan Kid och Genshi

  • Genshi tolkar mallar direkt (till skillnad från Kid, som genererar Python-kod)
  • Genshi använder XInclude för återanvändning av mallar
  • Genshi lägger till attribut som Kid inte har, som py:choose
  • Genshi-mallar är lättare att felsöka, eftersom de spårar mallens källfilnamn och radnummer, och fel från Genshis tolk ger mer begripliga stackspår än från Kids genererade kod .

externa länkar