[rkward] doc/rkwardplugins: updated plugin docs (preview)
m.eik michalke
meik.michalke at uni-duesseldorf.de
Tue Jan 26 19:18:51 UTC 2016
Git commit 65000561f4d4dfd070f9b558beb4d5c457af1d6d by m.eik michalke.
Committed on 26/01/2016 at 19:18.
Pushed by meikm into branch 'master'.
updated plugin docs (preview)
- re-wrote the JS sections to consistently show the new approach for preview code
- replaced tabs with two spaces in the first example (lines 1409 to 1448), this seems to produce a much better indentation in the generated HTML doc. do this for the full document?
M +45 -61 doc/rkwardplugins/index.docbook
http://commits.kde.org/rkward/65000561f4d4dfd070f9b558beb4d5c457af1d6d
diff --git a/doc/rkwardplugins/index.docbook b/doc/rkwardplugins/index.docbook
index b37deba..bb752d9 100644
--- a/doc/rkwardplugins/index.docbook
+++ b/doc/rkwardplugins/index.docbook
@@ -1406,53 +1406,46 @@ This chapter contains information on some topics that are useful only to certain
Here's an example .JS file that you should use as a template, whenever you create a plotting plugin:
</para>
<programlisting>
- function preprocess () {
- // the "somepackage" is needed to create the plot
- echo ("require (somepackage)\n");
- }
-
- function printout () {
- // all the real work is moved to a custom defined function doPrintout (), below
-
- doPrintout (true); // in this case, 'true' means: We want all the headers that should be printed in the output, not just the preview
- }
-
- function preview () {
- // we call all stages of the general code. Only the printout () function needs to be slightly different for the plot preview
- preprocess ();
- // calculate (); // in this example, the plugin has no calculate () function.
- doPrintout (false); // in this case, 'false' means: Create the plot, but not any headers or other output.
- }
-
- function doPrintout (full) {
- // this function takes care of generating the code for the printout() section. If "full" is set to true,
- // it generates the full code, including headers. If full is set to false, only the essentials will
- // be generated.
-
- if (full) {
- echo ('rk.header (' + i18n ("An example plot") + ')\n\n');
- echo ('rk.graph.on ()\n');
- }
- // only the following section will be generated for full==false
-
- // remember: everything between rk.graph.on() and rk.graph.off() should be wrapped inside a try() statement:
- echo ('try ({\n');
- // insert any option-setting code that should be run before the actual plotting commands.
- // The code itself is provided by the embedded plot options plugin. printIndentedUnlessEmpty() takes care of pretty formatting.
- printIndentedUnlessEmpty ('\t', getString ("plotoptions.code.preprocess"), '', '\n');
-
- // create the actual plot. plotoptions.code.printout provides the part of the generic plot options
- // that have to be added to the plotting call, itself.
- echo ('plot (5, 5' + getString ("plotoptions.code.printout") + ')\n');
-
- // insert any option-setting code that should be run after the actual plot.
- printIndentedUnlessEmpty ('\t', getString ("plotoptions.code.calculate"), '\n');
- echo ('})'\n); // the closure of the try() statement
-
- if (full) {
- echo ('rk.graph.off ()\n');
- }
- }
+ function preprocess () {
+ // the "somepackage" is needed to create the plot
+ echo ("require (somepackage)\n");
+ }
+
+ function preview () {
+ // we call all stages of the general code. Only the printout () function needs to be called slightly different for the plot preview
+ preprocess ();
+ // calculate (); // in this example, the plugin has no calculate () function.
+ printout (true); // in this case, 'true' means: Create the plot, but not any headers or other output.
+ }
+
+ function printout (is_preview) {
+ // If "is_preview" is set to false, it generates the full code, including headers.
+ // If "is_preview" is set to true, only the essentials will be generated.
+
+ if (!is_preview) {
+ echo ('rk.header (' + i18n ("An example plot") + ')\n\n');
+ echo ('rk.graph.on ()\n');
+ }
+ // only the following section will be generated for is_preview==true
+
+ // remember: everything between rk.graph.on() and rk.graph.off() should be wrapped inside a try() statement:
+ echo ('try ({\n');
+ // insert any option-setting code that should be run before the actual plotting commands.
+ // The code itself is provided by the embedded plot options plugin. printIndentedUnlessEmpty() takes care of pretty formatting.
+ printIndentedUnlessEmpty ('\t', getString ("plotoptions.code.preprocess"), '', '\n');
+
+ // create the actual plot. plotoptions.code.printout provides the part of the generic plot options
+ // that have to be added to the plotting call, itself.
+ echo ('plot (5, 5' + getString ("plotoptions.code.printout") + ')\n');
+
+ // insert any option-setting code that should be run after the actual plot.
+ printIndentedUnlessEmpty ('\t', getString ("plotoptions.code.calculate"), '\n');
+ echo ('})'\n); // the closure of the try() statement
+
+ if (!is_preview) {
+ echo ('rk.graph.off ()\n');
+ }
+ }
</programlisting>
</sect2>
<sect2 id="preview_output">
@@ -1477,15 +1470,11 @@ This chapter contains information on some topics that are useful only to certain
// In the plugin's JS file
function preview () {
// generates the code used for preview
- doPrintout (true);
+ printout (true);
}
- function printout () {
- // generates the code used for real
- doPrintout (false);
- }
-
- function doPrintout (is_preview) {
+ function printout (is_preview) {
+ // only generates a header if is_preview==false
if (!is_preview) {
new Header ("This is a caption").print ();
}
@@ -1515,15 +1504,10 @@ This chapter contains information on some topics that are useful only to certain
// In the plugin's JS file
function preview () {
// generates the code used for preview
- doCalculate (true);
- }
-
- function calculate () {
- // generates the "final" code
- doCalculate (false);
+ calculate (true);
}
- function doCalculate (is_preview) {
+ function calculate (is_preview) {
echo ('imported <- read.csv (file="' + getString ("file") /* [+ options] */);
if (is_preview) {
echo ('preview_data <- imported\n');
More information about the rkward-tracker
mailing list