diff --git a/reference.md b/reference.md
index 49c29eed..9b9ffcf5 100644
--- a/reference.md
+++ b/reference.md
@@ -79,6 +79,7 @@ __Please note:__ CLIJx is under heavy construction. This list may change at any
* flip'
* gaussJordan
* generateDistanceMatrix
+* generateTouchMatrix
* getSize
* gradientX'
* gradientY'
@@ -146,10 +147,14 @@ __Please note:__ CLIJx is under heavy construction. This list may change at any
* multiplySliceBySliceWithScalars'
* multiplyStackWithPlane'
* nClosestPoints
+* nonzeroMaximumDiamond
+* nonzeroMaximumDiamond
* nonzeroMinimumDiamond
* nonzeroMinimumDiamond
* notEqualConstant
* notEqual
+* onlyzeroOverwriteMaximumBox
+* onlyzeroOverwriteMaximumDiamond
* particleImageVelocimetry2D
* particleImageVelocimetryTimelapse
* particleImageVelocimetry
@@ -502,7 +507,7 @@ Parameters (macro):
Image input, Image destination, String method
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, String arg3, Float arg4, Float arg5, Integer arg6
+ClearCLBuffer arg1, ClearCLBuffer arg2, String arg3
## automaticThreshold'
@@ -516,7 +521,7 @@ Parameters (macro):
Image input, Image destination, String method
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, String arg3
+ClearCLBuffer arg1, ClearCLBuffer arg2, String arg3, Float arg4, Float arg5, Integer arg6
## binaryAnd'
@@ -544,6 +549,12 @@ Image source, Image destination
Parameters (Java):
ClearCLImageInterface arg1, ClearCLImageInterface arg2
+
+
+### Example scripts
+* [outline.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/outline.ijm)
+
+
## binaryIntersection
@@ -650,7 +661,7 @@ Parameters (macro):
Image source, Image destination, Number sigmaX, Number sigmaY
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Float arg3, Float arg4
+ClearCLBuffer arg1, ClearCLBuffer arg2, Float arg3, Float arg4, Float arg5
## blur'
@@ -663,7 +674,7 @@ Parameters (macro):
Image source, Image destination, Number sigmaX, Number sigmaY
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Float arg3, Float arg4, Float arg5
+ClearCLBuffer arg1, ClearCLBuffer arg2, Float arg3, Float arg4
## boundingBox
@@ -677,6 +688,12 @@ Image source
Parameters (Java):
ClearCLBuffer arg1
+
+
+### Example scripts
+* [boundingBoxes.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/boundingBoxes.ijm)
+
+
## centerOfMass'
@@ -700,6 +717,21 @@ Image binary_input, Image labeling_destination
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2
+
+
+### Example scripts
+* [boundingBoxes.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/boundingBoxes.ijm)
+* [excludeLabelsOnEdges.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/excludeLabelsOnEdges.ijm)
+* [intensity_per_label.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/intensity_per_label.ijm)
+* [labeling.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/labeling.ijm)
+* [labeling_benchmarking.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/labeling_benchmarking.ijm)
+* [measure_area_per_label.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/measure_area_per_label.ijm)
+* [measure_statistics.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/measure_statistics.ijm)
+* [meshTouchingNeighbors.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/meshTouchingNeighbors.ijm)
+* [particle_analysis.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/particle_analysis.ijm)
+* [pullLabelsToROIManager.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/pullLabelsToROIManager.ijm)
+
+
## convertToImageJBinary'
@@ -775,6 +807,12 @@ Image source
Parameters (Java):
ClearCLBuffer arg1
+
+
+### Example scripts
+* [intensity_per_label.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/intensity_per_label.ijm)
+
+
## countNonZeroVoxelsLocally'
@@ -797,7 +835,7 @@ Parameters (macro):
Image source, Image destination, Number startX, Number startY, Number width, Number height
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4
+ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4, Integer arg5
## crop'
@@ -810,7 +848,7 @@ Parameters (macro):
Image source, Image destination, Number startX, Number startY, Number width, Number height
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4, Integer arg5
+ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4
## crossCorrelation
@@ -1001,6 +1039,12 @@ Image source, Image destination
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2
+
+
+### Example scripts
+* [distanceMap.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/distanceMap.ijm)
+
+
## divideImages'
@@ -1037,7 +1081,7 @@ Parameters (macro):
Image source, Image destination, Number factorX, Number factorY
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Float arg3, Float arg4, Float arg5
+ClearCLBuffer arg1, ClearCLBuffer arg2, Float arg3, Float arg4
## downsample'
@@ -1049,7 +1093,7 @@ Parameters (macro):
Image source, Image destination, Number factorX, Number factorY
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Float arg3, Float arg4
+ClearCLBuffer arg1, ClearCLBuffer arg2, Float arg3, Float arg4, Float arg5
## drawBox
@@ -1084,6 +1128,14 @@ Image destination, Number x1, Number y1, Number z1, Number x2, Number y2, Number
Parameters (Java):
ClearCLBuffer arg1, Float arg2, Float arg3, Float arg4, Float arg5, Float arg6, Float arg7, Float arg8
+
+
+### Example scripts
+* [drawLine.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/drawLine.ijm)
+* [meshTouchingNeighbors.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/meshTouchingNeighbors.ijm)
+* [mesh_closest_points.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/mesh_closest_points.ijm)
+
+
## drawSphere
@@ -1205,6 +1257,13 @@ Image label_map_input, Image label_map_destination
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2
+
+
+### Example scripts
+* [excludeLabelsOnEdges.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/excludeLabelsOnEdges.ijm)
+* [pullLabelsToROIManager.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/pullLabelsToROIManager.ijm)
+
+
## exponential
@@ -1295,6 +1354,30 @@ Image coordinate_list1, Image coordinate_list2, Image distance_matrix_destinatio
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2, ClearCLBuffer arg3
+
+
+### Example scripts
+* [mesh_closest_points.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/mesh_closest_points.ijm)
+* [spot_distance_measurement.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/spot_distance_measurement.ijm)
+
+
+
+## generateTouchMatrix
+
+Takes a labelmap with n labels and generates a (n+1)*(n+1) matrix where all pixels are set to 0 exept those where labels are touching.Only half of the matrix is filled (with x < y). For example, if labels 3 and 4 are touching then the pixel (3,4) in the matrix will be set to 1.
+
+Parameters (macro):
+Image label_map, Image touch_matrix_destination
+
+Parameters (Java):
+ClearCLBuffer arg1, ClearCLBuffer arg2
+
+
+
+### Example scripts
+* [meshTouchingNeighbors.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/meshTouchingNeighbors.ijm)
+
+
## getSize
@@ -1306,6 +1389,14 @@ Image source
Parameters (Java):
ClearCLBuffer arg1
+
+
+### Example scripts
+* [getsize.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/getsize.ijm)
+* [meshTouchingNeighbors.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/meshTouchingNeighbors.ijm)
+* [mesh_closest_points.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/mesh_closest_points.ijm)
+
+
## gradientX'
@@ -1416,6 +1507,14 @@ Image source
Parameters (Java):
ClearCLBuffer arg1, ResultsTable arg2
+
+
+### Example scripts
+* [matrix_multiply.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/matrix_multiply.ijm)
+* [meshTouchingNeighbors.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/meshTouchingNeighbors.ijm)
+* [mesh_closest_points.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/mesh_closest_points.ijm)
+
+
## invert'
@@ -1454,6 +1553,13 @@ Image label_map_source, Image mask_destination, Number label_index
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2, Float arg3
+
+
+### Example scripts
+* [boundingBoxes.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/boundingBoxes.ijm)
+* [measure_area_per_label.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/measure_area_per_label.ijm)
+
+
## laplace
@@ -1539,6 +1645,12 @@ Image source, Image label_map, Image destination, Number label_index
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2, ClearCLBuffer arg3, Float arg4
+
+
+### Example scripts
+* [intensity_per_label.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/intensity_per_label.ijm)
+
+
## maskStackWithPlane'
@@ -1569,6 +1681,12 @@ Image source, Image mask, Image destination
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2, ClearCLBuffer arg3
+
+
+### Example scripts
+* [intensity_per_label.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/intensity_per_label.ijm)
+
+
## matrixEqual
@@ -1677,7 +1795,7 @@ Parameters (macro):
Image source, Image destination, Number radiusX, Number radiusY
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4
+ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4, Integer arg5
## maximumSphere'
@@ -1689,7 +1807,7 @@ Parameters (macro):
Image source, Image destination, Number radiusX, Number radiusY
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4, Integer arg5
+ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4
## maximumXYZProjection'
@@ -1798,7 +1916,7 @@ Parameters (macro):
Image source, Image destination, Number radiusX, Number radiusY
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4
+ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4, Integer arg5
## meanSphere'
@@ -1810,7 +1928,7 @@ Parameters (macro):
Image source, Image destination, Number radiusX, Number radiusY
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4, Integer arg5
+ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4
## meanSquaredError
@@ -1903,7 +2021,7 @@ Parameters (macro):
Image source, Image destination, Number radiusX, Number radiusY
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4, Integer arg5
+ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4
## medianSphere'
@@ -1917,7 +2035,7 @@ Parameters (macro):
Image source, Image destination, Number radiusX, Number radiusY
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4
+ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4, Integer arg5
## minimumBox'
@@ -2088,6 +2206,12 @@ Image matrix1, Image matrix2, Image matrix_destination
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2, ClearCLBuffer arg3
+
+
+### Example scripts
+* [matrix_multiply.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/matrix_multiply.ijm)
+
+
## multiplySliceBySliceWithScalars'
@@ -2125,13 +2249,41 @@ Image distance_matrix, Image indexlist_destination, Number nClosestPointsTofind
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2
+
+
+### Example scripts
+* [mesh_closest_points.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/mesh_closest_points.ijm)
+
+
+
+## nonzeroMaximumDiamond
+
+Apply a maximum-sphere filter to the input image. The radius is fixed to 1 and pixels with value 0 are ignored.
+
+Parameters (macro):
+Image input, Image destination
+
+Parameters (Java):
+ClearCLImageInterface arg1, ClearCLBuffer arg2, ClearCLImageInterface arg3, ClearCLKernel arg4
+
+
+## nonzeroMaximumDiamond
+
+Apply a maximum-sphere filter to the input image. The radius is fixed to 1 and pixels with value 0 are ignored.
+
+Parameters (macro):
+Image input, Image destination
+
+Parameters (Java):
+ClearCLImageInterface arg1, ClearCLImageInterface arg2, ClearCLImageInterface arg3
+
## nonzeroMinimumDiamond
-null
+Apply a minimum-sphere filter to the input image. The radius is fixed to 1 and pixels with value 0 are ignored.
Parameters (macro):
-null
+Image input, Image destination
Parameters (Java):
ClearCLImageInterface arg1, ClearCLBuffer arg2, ClearCLImageInterface arg3, ClearCLKernel arg4
@@ -2139,10 +2291,10 @@ ClearCLImageInterface arg1, ClearCLBuffer arg2, ClearCLImageInterface arg3, Clea
## nonzeroMinimumDiamond
-null
+Apply a minimum-sphere filter to the input image. The radius is fixed to 1 and pixels with value 0 are ignored.
Parameters (macro):
-null
+Image input, Image destination
Parameters (Java):
ClearCLImageInterface arg1, ClearCLImageInterface arg2, ClearCLImageInterface arg3
@@ -2173,6 +2325,34 @@ Image source1, Image source2, Image destination
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2, ClearCLBuffer arg3
+
+## onlyzeroOverwriteMaximumBox
+
+null
+
+Parameters (macro):
+null
+
+Parameters (Java):
+ClearCLImageInterface arg1, ClearCLImageInterface arg2, ClearCLImageInterface arg3
+
+
+## onlyzeroOverwriteMaximumDiamond
+
+TODO
+
+Parameters (macro):
+Image input, Image destination
+
+Parameters (Java):
+ClearCLImageInterface arg1, ClearCLImageInterface arg2, ClearCLImageInterface arg3
+
+
+
+### Example scripts
+* [meshTouchingNeighbors.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/meshTouchingNeighbors.ijm)
+
+
## particleImageVelocimetry2D
@@ -2219,6 +2399,13 @@ Image source, Image destination, Number destinationX, Number destinationY
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4
+
+
+### Example scripts
+* [make_super_blobs.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/make_super_blobs.ijm)
+* [paste_images.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/paste_images.ijm)
+
+
## paste
@@ -2230,6 +2417,13 @@ Image source, Image destination, Number destinationX, Number destinationY
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2, Integer arg3, Integer arg4, Integer arg5
+
+
+### Example scripts
+* [make_super_blobs.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/make_super_blobs.ijm)
+* [paste_images.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/paste_images.ijm)
+
+
## powerImages
@@ -2267,6 +2461,12 @@ Image destination, String filename, String nextFilename, String loaderId
Parameters (Java):
ClearCLBuffer arg1, String arg2, String arg3, String arg4
+
+
+### Example scripts
+* [preloading.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/preloading.ijm)
+
+
## presign
@@ -2289,6 +2489,12 @@ Image binary_input
Parameters (Java):
ClearCLBuffer arg1
+
+
+### Example scripts
+* [pullAsROI.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/pullAsROI.ijm)
+
+
## radialProjection'
@@ -2320,7 +2526,7 @@ Parameters (macro):
Image destination, String filename, Number width, Number height, Number depth, Number bitsPerPixel
Parameters (Java):
-String arg1, Integer arg2, Integer arg3, Integer arg4, Integer arg5
+ClearCLBuffer arg1, String arg2
## readRawImageFromDisc
@@ -2331,7 +2537,7 @@ Parameters (macro):
Image destination, String filename, Number width, Number height, Number depth, Number bitsPerPixel
Parameters (Java):
-ClearCLBuffer arg1, String arg2
+String arg1, Integer arg2, Integer arg3, Integer arg4, Integer arg5
## replaceIntensity
@@ -2489,6 +2695,12 @@ Image distance_matrix, Image destination_minimum_distances
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2
+
+
+### Example scripts
+* [spot_distance_measurement.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/spot_distance_measurement.ijm)
+
+
## smallerConstant
@@ -2575,6 +2787,14 @@ Image input_spots, Image destination_pointlist
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2
+
+
+### Example scripts
+* [meshTouchingNeighbors.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/meshTouchingNeighbors.ijm)
+* [mesh_closest_points.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/mesh_closest_points.ijm)
+* [spot_distance_measurement.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/spot_distance_measurement.ijm)
+
+
## stackToTiles
@@ -2621,6 +2841,13 @@ Image input, Image labelmap
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2, int arg3
+
+
+### Example scripts
+* [measure_statistics.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/measure_statistics.ijm)
+* [particle_analysis.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/particle_analysis.ijm)
+
+
## statisticsOfLabelledPixels
@@ -2632,6 +2859,13 @@ Image input, Image labelmap
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2, ResultsTable arg3
+
+
+### Example scripts
+* [measure_statistics.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/measure_statistics.ijm)
+* [particle_analysis.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/particle_analysis.ijm)
+
+
## statisticsOfLabelledPixels
@@ -2643,6 +2877,13 @@ Image input, Image labelmap
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2, int arg3, int arg4
+
+
+### Example scripts
+* [measure_statistics.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/measure_statistics.ijm)
+* [particle_analysis.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/particle_analysis.ijm)
+
+
## statisticsOfLabelledPixels
@@ -2654,6 +2895,13 @@ Image input, Image labelmap
Parameters (Java):
ClearCLBuffer arg1, ClearCLBuffer arg2
+
+
+### Example scripts
+* [measure_statistics.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/measure_statistics.ijm)
+* [particle_analysis.ijm](https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/particle_analysis.ijm)
+
+
## subtractBackground
@@ -2783,7 +3031,7 @@ Parameters (macro):
Image input1, Image input2, Image destination
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, ClearCLBuffer arg3
+ClearCLBuffer arg1, ClearCLBuffer arg2, double[] arg3
## translationRegistration
@@ -2794,7 +3042,7 @@ Parameters (macro):
Image input1, Image input2, Image destination
Parameters (Java):
-ClearCLBuffer arg1, ClearCLBuffer arg2, double[] arg3
+ClearCLBuffer arg1, ClearCLBuffer arg2, ClearCLBuffer arg3
## translationTimelapseRegistration
diff --git a/src/test/java/net/haesleinhuepf/clijx/codegenerator/DocumentationGenerator.java b/src/test/java/net/haesleinhuepf/clijx/codegenerator/DocumentationGenerator.java
index e4ff9e61..3964c488 100644
--- a/src/test/java/net/haesleinhuepf/clijx/codegenerator/DocumentationGenerator.java
+++ b/src/test/java/net/haesleinhuepf/clijx/codegenerator/DocumentationGenerator.java
@@ -8,9 +8,7 @@
import net.haesleinhuepf.clijx.CLIJx;
import org.scijava.Context;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
+import java.io.*;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Parameter;
@@ -131,6 +129,10 @@ public static void main(String ... args) throws IOException {
builder.append(item.parametersJava);
builder.append("\n\n");
+ String linkToExamples = searchForExampleScripts("CLIJx_" + item.methodName, "src/main/macro/", "https://github.com/clij/clij-advanced-filters/blob/master/src/main/macro/");
+ if(linkToExamples.length() > 0) {
+ builder.append("\n\n### Example scripts\n" + linkToExamples + "\n\n");
+ }
}
File outputTarget = new File("reference.md");
@@ -139,4 +141,49 @@ public static void main(String ... args) throws IOException {
writer.write(builder.toString());
writer.close();
}
+
+ protected static String searchForExampleScripts(String searchFor, String searchinFolder, String baseLink) {
+ StringBuilder result = new StringBuilder();
+ for (File file : new File(searchinFolder).listFiles()) {
+ if (!file.isDirectory()) {
+ String content = readFile(file.getAbsolutePath());
+ if (content.contains(searchFor)) {
+ result.append("* [" + file.getName() + "](" + baseLink + file.getName() + ")\n");
+ }
+ }
+ }
+ return result.toString();
+ }
+
+ public static String readFile(String filename) {
+ System.out.println("Reading " + filename);
+ BufferedReader br = null;
+ try {
+ br = new BufferedReader(new FileReader(filename));
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }
+ try {
+ StringBuilder sb = new StringBuilder();
+ String line = br.readLine();
+
+ while (line != null) {
+ sb.append(line);
+ sb.append(System.lineSeparator());
+ line = br.readLine();
+ }
+ br.close();
+ return sb.toString();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ br.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return null;
+ }
+
}