std::string Stencil::call(const Call& call) { auto what = call.what(); // Getting content if(what=="html():string"){ return html(); } else if(what=="cila():string"){ return cila(); } // Setting content else if(what=="html(string)"){ std::string string = call.arg(0); html(string); } else if(what=="cila(string)"){ std::string string = call.arg(0); cila(string); } // Patching content else if(what=="patch(string)"){ std::string string = call.arg(0); patch(string); } // Saving else if(what=="html(string).write()"){ std::string string = call.arg(0); html(string).write(); } else if(what=="cila(string).write()"){ std::string string = call.arg(0); cila(string).write(); } // Conversion of content... // ... HTML to Cila else if(what=="html(string).cila():string"){ std::string string = call.arg(0); return html(string).cila(); } // ... Cila to HTML else if(what=="cila(string).html():string"){ std::string string = call.arg(0); return cila(string).html(); } // Rendering HTML else if(what=="html(string).render().html():string"){ std::string string = call.arg(0); return html(string).render().html(); } else if(what=="html(string).refresh().html():string"){ std::string string = call.arg(0); return html(string).refresh().html(); } // Rendering Cila else if(what=="cila(string).render().cila():string"){ std::string string = call.arg(0); return cila(string).render().cila(); } // Update <input>s else if(what=="inputs({string,string}).render().html():string"){ auto values = call.arg<std::map<std::string,std::string>>(0); return inputs( values ).render().html(); } // Restart else if(what=="restart().html():string"){ return restart().html(); } // Access to context else if(what=="interact(string):string"){ std::string string = call.arg(0); return interact(string); } else return Component::call(call); return ""; }