2025-01-12 00:52:51 +08:00

65 lines
2.6 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>R Notebook: A knitr app on OpenCPU</title>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<!-- Styles for R syntax highlighter -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/styles/github.min.css">
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet">
<style type="text/css">
textarea {
font-size: 12px;
font-family: 'DejaVu Sans Mono', 'Droid Sans Mono', 'Lucida Console', Consolas, Monaco, monospace;
width: 99%;
}
</style>
<!-- R syntax highlighter -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/highlight.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/languages/r.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</head>
<body>
<div class="container">
<form action="https://public.opencpu.org/ocpu/library/base/R/identity/json" method="POST" id="knitForm">
<textarea name="x" class="form-control" rows=10></textarea>
<div><button type="button" class="btn btn-primary" id="knit"><span class="glyphicon glyphicon-play"></span> Convert</button></div>
<!-- the knitting result will be rendered inside this div -->
<div id="result"></div>
</form>
</div>
<script>
$('textarea[name="x"]').val('Start typing here...\n\n```{r test, fig.width=4, fig.height=4}\n# write R code here\npar(mar = c(4, 4, .1, .1))\nsmoothScatter(rnorm(500), rnorm(500))\n```\n\nThe value of pi is `r pi`.');
$('#knit').click(function() {
$(this).attr('class', 'btn disabled');
$('#knitForm').submit();
});
/* attach a submit handler to the form */
$('#knitForm').submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* get some values from elements on the page: */
var $form = $( this ),
term = $form.find('textarea[name="x"]').val().replace(/\\/g, '\\\\').replace(/"/g, '\\"'),
url = $form.attr('action'),
rcode = 'library(knitr)\n' +
'knit2html(text = "' + term + '", template = FALSE)';
/* Send the data using post and put the results in a div */
$.post(url, { x: rcode },
function( data ) {
$("#result").html(data[0]);
$('pre code').each(function(i, e) {hljs.highlightBlock(e)});
})
.complete(function() {$('#knit').attr('class', 'btn btn-primary');})
.error(function() { alert("An error occurred!"); });
});
</script>
</body>
</html>