使用可变持久性为knitr添加新语言

时间:2017-05-23 01:34:46

标签: r coffeescript knitr

我想用新语言或多个语言扩展std::string StudentRoll::toString() const { Node* temp = head; while(temp != NULL){ //my attempt Student newStudent(*(temp->s)); newStudent.toString(); //toString function from Student class temp = temp->next; } } 。模仿knitr函数的源代码here,会生成这样的代码,例如,它会添加CoffeeScript CLI支持。

eng_go

您可以将它放在knitr::knit_engines$set( cs = function ( options ) { f = tempfile( 'code', '.', fileext = '.coffee' ) writeLines( c( 'console.log try', paste0( ' ', options$code ), 'catch error then error.message' ), f ) on.exit( unlink( f ), add = TRUE ) cmd = Sys.which( 'coffee' ) extra = if ( options$eval ) { args <- paste0( ' ', f ) message( 'running: ', cmd, args ) tryCatch( system2( cmd, args, stdout = TRUE, stderr = TRUE, env = options$engine.env ), error = function ( e ) { if ( !options$error ) stop( e ) 'Error in executing CoffeeScript code' } ) } if ( options$results == 'hide' ) extra = NULL knitr::engine_output( options, options$code, extra ) } ) 文件的代码块中,下一个代码块可以是.Rmd类型,并且将被解释为我想要的。

我的问题是:是否有任何关于使用新功能扩展基本功能的文档?

特别是,我想知道如何使变量在块中保持不变(通过一次处理所有块?)并根据结果对象的类型自定义输出格式。

0 个答案:

没有答案