CINXE.COM
Source Code
<!DOCTYPE html> <html> <head> <title>Source Code</title> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=3" /> <meta content="ImageJ Wiki" property="og:site_name"> <meta content="Source Code" property="og:title"> <meta content="article" property="og:type"> <meta content="The ImageJ wiki is a community-edited knowledge base on topics relating to ImageJ, a public domain program for processing and analyzing scientific images, and its ecosystem of derivatives and variants, including ImageJ2, Fiji, and others." property="og:description"> <meta content="https://imagej.github.io/editing/code" property="og:url"> <meta content="https://imagej.github.io/media/icons/imagej2.png" property="og:image"> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> <link rel="manifest" href="/site.webmanifest"> <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="theme-color" content="#ffffff"> <link rel="stylesheet" href="/assets/css/lightbox.min.css" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/instantsearch.css@7/themes/algolia-min.css"/> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/dygraphs@2.1.0/dist/dygraph.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/dygraphs@2.1.0/dist/dygraph.min.css" /> <link rel="stylesheet" href="/assets/css/main.css" /> <link rel="stylesheet" href="/assets/css/layout.css"/> <link rel="stylesheet" href="/assets/css/includes.css" /> <link rel="stylesheet" href="/assets/css/dock.css"/> <noscript><link rel="stylesheet" href="/assets/css/noscript.css" /></noscript> <link rel="stylesheet" href="/assets/css/page.css" /> </head> <body class="is-preload"> <!-- Top bar --> <section id="top-bar"> <a href="/"><img id="site-logo" src="/media/icons/imagej2.png"></a> <div id="search-panel"> <div id="search-box"></div> </div> </section> <!-- Page-info --> <div class="page-info"> <a href="https://github.com/imagej/imagej.github.io/commits/main/_pages/editing/code.md">Page history</a> <a href="https://github.com/imagej/imagej.github.io/edit/main/_pages/editing/code.md">Edit this page</a> <a href="/editing">How do I edit this website?</a></div> <section id="left-column" class="sidebar dock"> <!-- Menu --> <div class="menu dockable"> <div class="drag-handle"></div><h3>ImageJ Docs</h3> <ul> <li><a href="/downloads">Download</a></li> <li><details><summary>Learn</summary><ul> <li><details><summary><a href="/learn">ImageJ Basics</a></summary><ul> <li><a href="/tutorials">Tutorials</a></li> <li><a href="/learn/user-guides">User Guides</a></li> <li><a href="/learn/keyboard-shortcuts">Keyboard Shortcuts</a></li> <li><a href="/learn/tips-and-tricks">Tips and Tricks</a></li> <li><a href="/learn/troubleshooting">Troubleshooting</a></li> <li><a href="/learn/faq">Frequently Asked Questions</a></li> <li><details><summary><a href="/platforms">Supported Platforms</a></summary><ul> <li><a href="/platforms/windows">Windows</a></li> <li><a href="/platforms/macos">MacOS</a></li> <li><a href="/platforms/linux">Linux</a></li> <li><a href="/platforms/pi">Raspberry Pi</a></li> <li><a href="/platforms/android">Android</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/Supported Platforms --> <li><details><summary><a href="/formats">File Formats</a></summary><ul> <li><a href="/formats/bio-formats">Bio-Formats</a></li> <li><a href="/formats/video">Video formats</a></li> <li><a href="/formats/quicktime">QuickTime</a></li> <li><a href="/formats/tiff">TIFF</a></li> <li><a href="/formats/pdf">PDF</a></li> <li><a href="/formats/dicom">DICOM</a></li> <li><a href="/formats/lsm">Zeiss LSM</a></li> <li><a href="/formats/olympus">Olympus VSI</a></li> <li><a href="/formats/lurawave">Opera Flex</a></li> <li><a href="/formats/fib-sem">FIB-SEM</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/File Formats --> </ul></details></li> <!-- Learn/ImageJ --> <li><details><summary><a href="/imaging">Scientific Imaging</a></summary><ul> <li><a href="/imaging/principles">Principles of Scientific Imaging</a></li> <li><a href="/imaging/annotating-images">Annotating Images</a></li> <li><a href="/imaging/colocalization-analysis">Colocalization</a></li> <li><a href="/imaging/color-image-processing">Color Image Processing</a></li> <li><a href="/imaging/deconvolution">Deconvolution</a></li> <li><a href="/imaging/image-intensity-processing">Image Intensity Processing</a></li> <li><a href="/imaging/particle-analysis">Particle Analysis</a></li> <li><a href="/imaging/registration">Registration</a></li> <li><a href="/imaging/segmentation">Segmentation</a></li> <li><a href="/imaging/stack-slice-manipulations">Stack-slice Manipulations</a></li> <li><a href="/imaging/t-functions">T-functions</a></li> <li><a href="/imaging/tracking">Tracking</a></li> <li><a href="/imaging/visualization">Visualization</a></li> <li><a href="/imaging/z-functions">Z-functions</a></li> </ul></details></li> <!-- Learn/Scientific Imaging --> </ul></details></li> <!-- Learn --> <li><details><summary><a href="/plugins">Extend</a></summary><ul> <li><a href="/list-of-extensions">List of Extensions</a></li> <li><details><summary><a href="/update-sites">Update Sites</a></summary><ul> <li><a href="/list-of-update-sites">List of Update Sites</a></li> <li><a href="/update-sites/following">Following an Update Site</a></li> <li><a href="/update-sites/setup">Creating an Update Site</a></li> <li><a href="/update-sites/tos">Terms of Service</a></li> <li><a href="/update-sites/automatic-uploads">Automatic Upload</a></li> <li><a href="/update-sites/core-uploads">Uploading to Core Sites</a></li> <li><a href="/update-sites/faq">Update Sites FAQ</a></li> <li><a href="/update-sites/stats">Statistics</a></li> </ul></details></li> <!-- Extend/Update Sites --> <li><details><summary><a href="/scripting">Scripting</a></summary><ul> <li><a href="/scripting/basics">Scripting Basics</a></li> <li><a href="/scripting/script-editor">Script Editor</a></li> <li><a href="/scripting/parameters">Parameters</a></li> <li><a href="/scripting/user-input">User Input</a></li> <li><a href="/scripting/auto-imports">Auto Import</a></li> <li><a href="/scripting/templates">Templates</a></li> <li><a href="/scripting/batch">Batch Processing</a></li> <li><a href="/scripting/headless">Running Headlessly</a></li> <li><a href="/scripting/comparisons">Scripting Comparisons</a></li> <li><a href="/scripting/toolbox">Toolbox</a></li> <li><details><summary>Languages</summary><ul> <li><a href="/scripting/beanshell">BeanShell Scripting</a></li> <li><a href="/scripting/groovy">Groovy Scripting</a></li> <li><a href="/scripting/macro">ImageJ Macro</a></li> <li><a href="/scripting/javascript">JavaScript</a></li> <li><a href="/scripting/clojure">Lisp (Clojure)</a></li> <li><a href="/scripting/matlab">MATLAB</a></li> <li><a href="/scripting/jython">Python (Jython)</a></li> <li><a href="/scripting/python">Python (native)</a></li> <li><a href="/scripting/renjin">R (Renjin)</a></li> <li><a href="/scripting/jruby">Ruby (JRuby)</a></li> <li><a href="/scripting/scala">Scala Scripting</a></li> </ul></details></li> <!-- Extend/Scripting/Languages --> </ul></details></li> <!-- Extend/Scripting --> <li><details><summary><a href="/develop">Development</a></summary><ul> <li><a href="/develop/philosophy">Philosophy</a></li> <li><a href="/develop/architecture">Architecture</a></li> <li><a href="/develop/source">Source code</a></li> <li><a href="/develop/project-management">Project management</a></li> <li><a href="/develop/coding-style">Coding style</a></li> <li><a href="/develop/javadoc">Using Javadoc</a></li> <li><a href="/develop/debugging">Debugging</a></li> <li><a href="/develop/wish-list">Wish list</a></li> <li><details><summary>Tools</summary><ul> <li><a href="/develop/github">GitHub</a></li> <li><a href="/develop/maven">Maven</a></li> <li><a href="/develop/ci">CI/CD</a></li> <li><a href="/develop/dotfiles">Dotfiles</a></li> <li><details><summary><a href="/develop/ides">IDEs</a></summary><ul> <li><a href="/develop/eclipse">Eclipse</a></li> <li><a href="/develop/netbeans">NetBeans</a></li> <li><a href="/develop/intellij">IntelliJ IDEA</a></li> <li><a href="/develop/command-line">Command Line</a></li> </ul></details></li> </ul></details></li> <!-- Extend/Development/Tools --> <li><details><summary>Guides</summary><ul> <li><a href="/develop/plugins">Writing plugins</a></li> <li><a href="/develop/improving-the-code">Contributing to a plugin</a></li> <li><a href="/develop/releasing">Development lifecycle</a></li> <li><a href="/develop/building-a-pom">Building a POM</a></li> <li><a href="/develop/debugging-exercises">Hands-on debugging</a></li> <li><a href="/develop/writing-ops">Adding new ops</a></li> <li><a href="/develop/formats">Adding new formats</a></li> <li><a href="/develop/native-libraries">Using native libraries</a></li> <li><a href="/develop/tips">Tips for developers</a></li> <li><a href="/develop/cpp-tips">Tips for C++ developers</a></li> <li><a href="/develop/ij1-plugins">ImageJ 1.x plugins</a></li> <li><a href="/develop/versioning">Versioning</a></li> <li><a href="/develop/logging">Logging</a></li> <li><a href="/develop/uber-jars">Uber-JARs</a></li> </ul></details></li> <!-- Extend/Development/Guides --> <li><details><summary><a href="/develop/git">Git</a></summary><ul> <li><a href="/develop/git/eclipse">Git in Eclipse (EGit)</a></li> <li><a href="/develop/git/mini-howto">Git mini howto</a></li> <li><a href="/develop/git/workshop">Git workshop</a></li> <li><a href="/develop/git/conflicts">Git conflicts</a></li> <li><a href="/develop/git/topic-branches">Git topic branches</a></li> <li><a href="/develop/git/notes">Git notes</a></li> <li><a href="/develop/git/reflogs">Git reflogs</a></li> <li><a href="/develop/git/submodules">Git submodules</a></li> <li><a href="/develop/git/pinpoint-regressions">How to pinpoint regressions</a></li> <li><a href="/develop/git/publish-a-repository">How to publish a git repository</a></li> <li><a href="/develop/git/extract-a-subproject">How to extract a subproject</a></li> </ul></details></li> <!-- Extend/Development/Git --> </ul></details></li> <!-- Extend/Development --> </ul></details></li> <!-- Extend --> <li><details open><summary><a href="/contribute">Contribute</a></summary><ul> <li><a href="/contribute/citing">Citing</a></li> <li><a href="/people">Contributors</a></li> <li><a href="/orgs">Organizations</a></li> <li><a href="/contribute/governance">Governance</a></li> <li><a href="/contribute/funding">Funding</a></li> <li><a href="/contribute/fiji">Contributing to Fiji</a></li> <li><details><summary><a href="/licensing">Licensing</a></summary><ul> <li><details><summary><a href="/licensing/open-source">Open Source</a></summary><ul> <li><a href="/licensing/apache">Apache</a></li> <li><a href="/licensing/bsd">BSD</a></li> <li><a href="/licensing/epl">EPL</a></li> <li><a href="/licensing/gpl">GPL</a></li> <li><a href="/licensing/lgpl">LGPL</a></li> <li><a href="/licensing/mit">MIT</a></li> <li><a href="/licensing/public-domain">Public domain</a></li> <li><a href="/licensing/big">BIG</a></li> </ul></details></li> <!-- Contribute/Licensing/Open Source --> <li><a href="/licensing/closed-source">Proprietary</a></li> </ul></details></li> <!-- Contribute/Licensing --> <li><details open><summary><a href="/editing">Editing the Wiki</a></summary><ul> <li><a href="/editing/advanced">Advanced Editing</a></li> <li><a href="/editing/buttons">Buttons</a></li> <li><a href="/editing/citations">Citations</a></li> <li><a class="current-page">Source Code</a></li> <li><a href="/editing/debugging">Debugging</a></li> <li><a href="/editing/headers">Headers</a></li> <li><a href="/editing/icons">Icons</a></li> <li><a href="/editing/images">Images</a></li> <li><a href="/editing/keys">Keyboard Shortcuts</a></li> <li><a href="/editing/linking">Linking</a></li> <li><a href="/editing/math">Math Expressions</a></li> <li><a href="/editing/menu-paths">Menu Paths</a></li> <li><a href="/editing/navigation">Navigation</a></li> <li><a href="/editing/notices">Notices</a></li> <li><a href="/editing/people">People</a></li> <li><a href="/editing/pitfalls">Pitfalls</a></li> <li><a href="/editing/quizzes">Quizzes</a></li> <li><a href="/editing/statbox">Statbox</a></li> <li><a href="/editing/symbols">Symbols</a></li> <li><a href="/editing/tables">Tables</a></li> <li><a href="/editing/tooltips">Tooltips</a></li> <li><a href="/editing/videos">Videos</a></li> <li><a href="/editing/whitespace">Whitespace</a></li> </ul></details></li> <!-- Contribute/Editing the Wiki --> </ul></details></li> <!-- Contribute --> <li><details><summary><a href="/discuss">Discuss</a></summary><ul> <li><a href="/discuss/bugs">Reporting Issues</a></li> <li><a href="/discuss/mailing-lists">Mailing Lists</a></li> <li><a href="/discuss/chat">Chat</a></li> </ul></details></li> <!-- Discuss --> <li><details><summary>Explore</summary><ul> <li><a href="/news">News</a></li> <li><details><summary><a href="/events">Events</a></summary><ul> <li><a href="/events/presentations">Presentations</a></li> <li><a href="/events/conferences">Conferences</a></li> <li><a href="/events/hackathons">Hackathons</a></li> <li><a href="/events">More...</a></li> </ul></details></li> <!-- Discuss/Events --> <li><details><summary><a href="/libs">Libraries</a></summary><ul> <li><a href="/libs/imagej-ops">ImageJ Ops</a></li> <li><a href="/libs/imagej-common">ImageJ Common</a></li> <li><a href="/libs/imagej-legacy">ImageJ Legacy</a></li> <li><a href="/libs/scijava">SciJava</a></li> <li><a href="/libs/scifio">SCIFIO</a></li> <li><details><summary><a href="/libs/imglib2">ImgLib2</a></summary><ul> <li><a href="/libs/imglib2/getting-started">Getting Started</a></li> <li><a href="/libs/imglib2/accessors">Accessors</a></li> <li><a href="/libs/imglib2/accessibles">Accessibles</a></li> <li><a href="/libs/imglib2/examples">Examples</a></li> <li><a href="/libs/imglib2/workshop-introductory">Introductory Workshop</a></li> <li><a href="/libs/imglib2/workshop-advanced">Advanced Workshop</a></li> <li><a href="/libs/imglib2/matlab">ImgLib2 images in MATLAB</a></li> <li><a href="/libs/imglib2/benchmarks">Benchmarks</a></li> <li><a href="/libs/imglib2/faq">FAQ</a></li> <li><a href="/libs/imglib2/developing">Developing ImgLib2</a></li> <li><a href="/libs/imglib2/discussion">ImgLib2 Discussion</a></li> </ul></details></li> <!-- Explore/Libraries/ImgLib2 --> <li><a href="/libs">More...</a></li> </ul></details></li> <!-- Explore/Libraries --> <li><details><summary><a href="/software">Software</a></summary><ul> <li><a href="/software/nih-image">NIH Image</a></li> <li><a href="/software/imagej">ImageJ</a></li> <li><a href="/software/imagej2">ImageJ2</a></li> <li><a href="/software/fiji">Fiji</a></li> <li><a href="/software">More...</a></li> </ul></details></li> <!-- Explore/Software --> </ul></details></li> <!-- Explore --> </ul> </div> </section> <section id="right-column" class="sidebar dock"> <!-- Vital stats --> <!-- Table of contents --> <div id="toc" class="toc menu dockable"> <div class="drag-handle"></div> <h3>Page contents</h3> <ul data-toc="#content" data-toc-headings="h1,h2,h3,h4,h5,h6"></ul> </div> </section> <!-- Page title --> <div class="container"> <header class="major special"> <h1>Source Code</h1> </header> </div> <!-- Nav bar --> <div id="nav-bar"><ul class="shadowed-box"><li><a href="/editing/index">Introduction</a></li><li><a href="/editing/advanced">Advanced Editing</a></li><li><a href="/editing/buttons">Buttons</a></li><li><a href="/editing/citations">Citations</a></li><li>Source Code</li><li><a href="/editing/debugging">Debugging</a></li><li><a href="/editing/dokuwiki-migration">DokuWiki Migration</a></li><li><a href="/editing/headers">Headers</a></li><li><a href="/editing/icons">Icons</a></li><li><a href="/editing/images">Images</a></li><li><a href="/editing/keys">Keyboard Shortcuts</a></li><li><a href="/editing/linking">Linking</a></li><li><a href="/editing/math">Math Expressions</a></li><li><a href="/editing/menu-paths">Menu Paths</a></li><li><a href="/editing/navigation">Navigation</a></li><li><a href="/editing/notices">Notices</a></li><li><a href="/editing/people">People</a></li><li><a href="/editing/pitfalls">Pitfalls</a></li><li><a href="/editing/quizzes">Quizzes</a></li><li><a href="/editing/statbox">Statbox</a></li><li><a href="/editing/symbols">Symbols</a></li><li><a href="/editing/tables">Tables</a></li><li><a href="/editing/tooltips">Tooltips</a></li><li><a href="/editing/videos">Videos</a></li><li><a href="/editing/whitespace">Whitespace</a></li></ul></div> <!-- Main content --> <section id="page" class="main style1"> <div class="container"> <div class="box alt"></div> <div id="content" class="page-content"> <p>This page describes nice ways of embedding source code in a page.</p> <h1 id="inline-code-snippets">Inline code snippets</h1> <p>If you just want to write a short snippet of code as part of a sentence, surround the code in backtick symbols (<code>`</code>).</p> <div class="example"> <div> <p>Code</p> <figure class="highlight"><pre><code class="language-liquid" data-lang="liquid">Type `print('Hello world!')` and save as `hello.py`.</code></pre></figure> </div> <div> <p>Result</p> <div> <p>Type <code class="language-plaintext highlighter-rouge">print('Hello world!')</code> and save as <code class="language-plaintext highlighter-rouge">hello.py</code>.</p> </div> </div> </div> <h2 id="code-fences">Code fences</h2> <p>A “code fence” is three backtick symbols (<code>```</code>) preceding your code, and another three concluding it. Optionally, you can write the name of the language in small case next to the leading fence to declare syntax highlighting is desired with the stated language.</p> <p><strong>NB:</strong> code fence syntax highlighting is currently not working locally due to differences in local build configuration. However, highlighting <em>will</em> display as appropriate on the public wiki.</p> <h3 id="java-example">Java example</h3> <div class="example"> <div> <p>Code</p> <figure class="highlight"><pre><code class="language-liquid" data-lang="liquid">```java Image3DUniverse univ = new Image3DUniverse(); univ.show(); univ.addMesh(yourImagePlus, null, "somename", 50, new boolean[] {true, true, true}, 2); ```</code></pre></figure> </div> <div> <p>Result</p> <div> <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nc">Image3DUniverse</span> <span class="n">univ</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">Image3DUniverse</span><span class="o">();</span> <span class="n">univ</span><span class="o">.</span><span class="na">show</span><span class="o">();</span> <span class="n">univ</span><span class="o">.</span><span class="na">addMesh</span><span class="o">(</span><span class="n">yourImagePlus</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="s">"somename"</span><span class="o">,</span> <span class="mi">50</span><span class="o">,</span> <span class="k">new</span> <span class="kt">boolean</span><span class="o">[]</span> <span class="o">{</span><span class="kc">true</span><span class="o">,</span> <span class="kc">true</span><span class="o">,</span> <span class="kc">true</span><span class="o">},</span> <span class="mi">2</span><span class="o">);</span> </code></pre></div> </div> </div> </div> </div> <h3 id="python-example">Python example</h3> <div class="example"> <div> <p>Code</p> <figure class="highlight"><pre><code class="language-liquid" data-lang="liquid">```python def update_progress(progress): barLength = 10 # length of progress bar block = int(round(barLength*progress)) text = f'\rPercent complete: ' + f'[{"#"*block + "-"*(barLength-block)}] ' + f'{progress*100}%' sys.stdout.write(text) sys.stdout.flush() ```</code></pre></figure> </div> <div> <p>Result</p> <div> <div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">update_progress</span><span class="p">(</span><span class="n">progress</span><span class="p">):</span> <span class="n">barLength</span> <span class="o">=</span> <span class="mi">10</span> <span class="c1"># length of progress bar </span> <span class="n">block</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">round</span><span class="p">(</span><span class="n">barLength</span><span class="o">*</span><span class="n">progress</span><span class="p">))</span> <span class="n">text</span> <span class="o">=</span> <span class="sa">f</span><span class="s">'</span><span class="se">\r</span><span class="s">Percent complete: '</span> <span class="o">+</span> <span class="sa">f</span><span class="s">'[</span><span class="si">{</span><span class="s">"#"</span><span class="o">*</span><span class="n">block</span> <span class="o">+</span> <span class="s">"-"</span><span class="o">*</span><span class="p">(</span><span class="n">barLength</span><span class="o">-</span><span class="n">block</span><span class="p">)</span><span class="si">}</span><span class="s">] '</span> <span class="o">+</span> <span class="sa">f</span><span class="s">'</span><span class="si">{</span><span class="n">progress</span><span class="o">*</span><span class="mi">100</span><span class="si">}</span><span class="s">%'</span> <span class="n">sys</span><span class="p">.</span><span class="n">stdout</span><span class="p">.</span><span class="n">write</span><span class="p">(</span><span class="n">text</span><span class="p">)</span> <span class="n">sys</span><span class="p">.</span><span class="n">stdout</span><span class="p">.</span><span class="n">flush</span><span class="p">()</span> </code></pre></div> </div> </div> </div> </div> <h2 id="highlight-directive">Highlight directive</h2> <p>Alternately, there is a <code class="language-plaintext highlighter-rouge">highlight</code> Liquid directive you can try. It looks like this:</p> <div class="example"> <div> <p>Code</p> <figure class="highlight"><pre><code class="language-liquid" data-lang="liquid"><span class="p">{%</span><span class="w"> </span><span class="nt">highlight</span><span class="w"> </span>java<span class="w"> </span><span class="p">%}</span> log.info("You're a wizard, Harry!"); log.error("I'm a what?"); <span class="p">{%</span><span class="w"> </span><span class="nt">endhighlight</span><span class="w"> </span><span class="p">%}</span></code></pre></figure> </div> <div> <p>Result</p> <div> <figure class="highlight"><pre><code class="language-java" data-lang="java"><span class="n">log</span><span class="o">.</span><span class="na">info</span><span class="o">(</span><span class="s">"You're a wizard, Harry!"</span><span class="o">);</span> <span class="n">log</span><span class="o">.</span><span class="na">error</span><span class="o">(</span><span class="s">"I'm a what?"</span><span class="o">);</span></code></pre></figure> </div> </div> </div> <p>The <code class="language-plaintext highlighter-rouge">highlight</code> directive and code fences are separate features, but functionally very similar. If code fences are not working as you like, give the <code class="language-plaintext highlighter-rouge">highlight</code> directive a try to see if it does any better.</p> <h2 id="line-numbers">Line numbers</h2> <p>Right now, inline code snippets cannot have line numbers; see <a href="https://github.com/imagej/imagej.github.io/issues/128">issue 128</a> for technical details. For now, if you want to have line numbers, use the <a href="#embedding-external-code">Embedding external code</a> approach below.</p> <div class="notice" style="font-size: 2; background: #ffcccb; border-left: 10px solid #f57900"><div class="notice-icon"><img src="/media/icons/warning.png" /></div><div class="notice-content"> <p>You might be familiar with the <code class="language-plaintext highlighter-rouge">linenos</code> argument to the <code class="language-plaintext highlighter-rouge">highlight</code> directive. Please <strong><em>do not use this</em></strong>. As of this writing (Q3 2021), it produces badly formed HTML output, which can break wiki pages.</p> </div> </div> <h2 id="making-code-snippets-executable-and-editable">Making code snippets executable and editable</h2> <p>By enabling the <code class="language-plaintext highlighter-rouge">imjoy</code> extension, you can make your code snippets executable and editable. It makes wiki pages more interactive, thus suited for building demos and tutorials. Currently, it support ImageJ macro and ImJoy plugin scripts.</p> <p>To enable it, you need to:</p> <ol> <li>add <code class="language-plaintext highlighter-rouge">imjoy</code> to <code class="language-plaintext highlighter-rouge">extensions</code> in the <a href="/editing#add-the-pages-front-matter">front matter</a> of your page;</li> <li>add a HTML comment <code class="language-plaintext highlighter-rouge"><!-- ImJoyPlugin: { ... } --></code> before your code block. Inside the <code class="language-plaintext highlighter-rouge">{}</code> you can pass settings for setting up the ImJoy plugin.</li> </ol> <p>Here is an example for making an ImageJ macro code snippet executable.</p> <p>First, enable the <code class="language-plaintext highlighter-rouge">imjoy</code> extension in the beginning of your page:</p> <div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span> <span class="na">title</span><span class="pi">:</span> <span class="s">My Awesome Page</span> <span class="na">extensions</span><span class="pi">:</span> <span class="pi">[</span><span class="s2">"</span><span class="s">imjoy"</span><span class="pi">]</span> <span class="nn">---</span> </code></pre></div></div> <p>Let’s say you have the following macro:</p> <div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nx">print</span><span class="p">(</span><span class="dl">"</span><span class="s2">hello world</span><span class="dl">"</span><span class="p">);</span> </code></pre></div></div> <p>To make it executable, you just need to add an HTML comment:</p> <div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"><!-- ImJoyPlugin: { "type": "macro"} --></span> <span class="p">```</span><span class="nl">javascript </span><span class="nx">print</span><span class="p">(</span><span class="dl">"</span><span class="s2">hello world</span><span class="dl">"</span><span class="p">);</span> <span class="p">```</span> </code></pre></div></div> <p>For more detailed instructions about using ImageJ macro with ImageJ.JS, please refer to <a href="/software/imagej-js">ImageJ.JS</a>.</p> <p>Similarily, you can execute an ImJoy plugin in code fences which can be used for integrating image viewers such as <a href="https://kaibu.org">Kaibu</a>, <a href="https://github.com/hms-dbmi/vizarr">vizarr</a> and <a href="https://kitware.github.io/itk-vtk-viewer/">ITK/VTK viewer</a>, or running ImageJ2 and Fiji through <a href="/scripting/pyimagej">PyImageJ</a> on a remote Jupyter server (e.g. on <a href="https://mybinder.org">Binder</a>). For more details, please refer to <a href="/software/imjoy">ImJoy</a>.</p> <h1 id="embedding-external-code">Embedding external code</h1> <p>If you have code in a repository such as GitHub, GitLab, or BitBucket, you can embed code blocks dynamically into the page using the <code class="language-plaintext highlighter-rouge">code</code> include. This approach has the advantage of avoiding copy-paste skew as the code evolves over time.</p> <p>Parameters supported by the <code class="language-plaintext highlighter-rouge">code</code> include are:</p> <table> <thead> <tr> <th style="text-align: left">Parameter</th> <th style="text-align: left">Description</th> <th style="text-align: left">Supported values</th> <th>Default</th> </tr> </thead> <tbody> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">service</code></td> <td style="text-align: left">Which repository hosting service</td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">github</code>, <code class="language-plaintext highlighter-rouge">gitlab</code>, <code class="language-plaintext highlighter-rouge">bitbucket</code></td> <td><code class="language-plaintext highlighter-rouge">github</code></td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">org</code></td> <td style="text-align: left">Name of the organization</td> <td style="text-align: left">any string</td> <td>none</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">repo</code></td> <td style="text-align: left">Name of the repository</td> <td style="text-align: left">any string</td> <td>none</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">branch</code></td> <td style="text-align: left">Which branch, tag, or commit</td> <td style="text-align: left">any string</td> <td>none</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">path</code></td> <td style="text-align: left">Path to the resource in source control</td> <td style="text-align: left">any string</td> <td>none</td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">line-start</code></td> <td style="text-align: left">First line to embed</td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">>= 1</code></td> <td><code class="language-plaintext highlighter-rouge">1</code></td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">line-end</code></td> <td style="text-align: left">Last line to embed</td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">>= 1</code></td> <td><code class="language-plaintext highlighter-rouge">99999</code></td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">label</code></td> <td style="text-align: left">Hyperlinked label to place before the code</td> <td style="text-align: left">any string</td> <td>no label</td> </tr> </tbody> </table> <h2 id="embedding-from-github">Embedding from GitHub</h2> <div class="example"> <div> <p>Code</p> <figure class="highlight"><pre><code class="language-liquid" data-lang="liquid"><span class="p">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span><span class="nv">code</span><span class="err"> </span><span class="w"> </span><span class="na">org</span><span class="o">=</span><span class="s2">"duckythescientist"</span><span class="err"> </span><span class="w"> </span><span class="na">repo</span><span class="o">=</span><span class="s2">"obfuscatedLife"</span><span class="err"> </span><span class="w"> </span><span class="na">branch</span><span class="o">=</span><span class="s2">"original"</span><span class="err"> </span><span class="w"> </span><span class="na">path</span><span class="o">=</span><span class="s2">"life.c"</span><span class="err"> </span><span class="w"> </span><span class="na">label</span><span class="o">=</span><span class="s2">"Conway's Obfuscated Game of Life"</span><span class="w"> </span><span class="p">%}</span></code></pre></figure> </div> <div> <p>Result</p> <div> <p><b><a href="https://github.com/duckythescientist/obfuscatedLife/blob/original/life.c">Conway’s Obfuscated Game of Life</a></b><br /> <script src="https://emgithub.com/embed.js?target=https%3A%2F%2Fgithub.com%2Fduckythescientist%2FobfuscatedLife%2Fblob%2Foriginal%2Flife.c%23L1-99999&style=github&showBorder=on&showLineNumbers=on&showFileMeta=on&showCopy=on"></script></p> </div> </div> </div> <p>Additional parameters supported by embeds from GitHub specifically:</p> <table> <thead> <tr> <th style="text-align: left">Parameter</th> <th style="text-align: left">Description</th> <th style="text-align: left">Supported values</th> <th>Default</th> </tr> </thead> <tbody> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">style</code></td> <td style="text-align: left">Syntax highlighting color scheme</td> <td style="text-align: left">various<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup></td> <td><code class="language-plaintext highlighter-rouge">github</code></td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">show-border</code></td> <td style="text-align: left">Whether to draw a border around the frame</td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">true</code> or <code class="language-plaintext highlighter-rouge">false</code></td> <td><code class="language-plaintext highlighter-rouge">true</code></td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">show-line-numbers</code></td> <td style="text-align: left">Whether to number the lines</td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">true</code> or <code class="language-plaintext highlighter-rouge">false</code></td> <td><code class="language-plaintext highlighter-rouge">true</code></td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">show-file-meta</code></td> <td style="text-align: left">Whether to include the footer with links</td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">true</code> or <code class="language-plaintext highlighter-rouge">false</code></td> <td><code class="language-plaintext highlighter-rouge">true</code></td> </tr> <tr> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">show-copy</code></td> <td style="text-align: left">Whether to include the Copy button on mouseover</td> <td style="text-align: left"><code class="language-plaintext highlighter-rouge">true</code> or <code class="language-plaintext highlighter-rouge">false</code></td> <td><code class="language-plaintext highlighter-rouge">true</code></td> </tr> </tbody> </table> <h2 id="embedding-from-gitlab">Embedding from GitLab</h2> <p>We want to support embedding from GitLab, but it’s not implemented yet:</p> <div class="example"> <div> <p>Code</p> <figure class="highlight"><pre><code class="language-liquid" data-lang="liquid"><span class="p">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span><span class="nv">code</span><span class="err"> </span><span class="w"> </span><span class="na">service</span><span class="o">=</span><span class="s2">"gitlab"</span><span class="err"> </span><span class="w"> </span><span class="na">org</span><span class="o">=</span><span class="s2">"tjian-darzacq-lab"</span><span class="err"> </span><span class="w"> </span><span class="na">repo</span><span class="o">=</span><span class="s2">"Spot-On-TrackMate"</span><span class="err"> </span><span class="w"> </span><span class="na">branch</span><span class="o">=</span><span class="s2">"master"</span><span class="err"> </span><span class="w"> </span><span class="na">path</span><span class="o">=</span><span class="s2">"src/main/java/plugin/trackmate/action/ExportTracksToSpotOn.java"</span><span class="err"> </span><span class="w"> </span><span class="na">line-start</span><span class="o">=</span><span class="mi">91</span><span class="w"> </span><span class="na">line-end</span><span class="o">=</span><span class="mi">112</span><span class="err"> </span><span class="w"> </span><span class="na">label</span><span class="o">=</span><span class="s2">"Spot-On export TrackMate tracks to XML"</span><span class="w"> </span><span class="p">%}</span></code></pre></figure> </div> <div> <p>Result</p> <div> <p><b><a href="https://gitlab.com/tjian-darzacq-lab/Spot-On-TrackMate/-/blob/master/src/main/java/plugin/trackmate/action/ExportTracksToSpotOn.java#L91-112#L91-112">Spot-On export TrackMate tracks to XML</a></b><br /></p> <div class="notice" style="font-size: 2; background: #ffcccb; border-left: 10px solid #f57900"><div class="notice-icon"><img src="/media/icons/warning.png" /></div><div class="notice-content"> <p>Embedding content from GitLab is not yet supported. Are you a JavaScript developer who can make it happen? <a href="/discuss">Reach out to us on the Image.sc Forum!</a></p> </div> </div> </div> </div> </div> <h2 id="embedding-from-bitbucket">Embedding from BitBucket</h2> <p>We want to support embedding from GitLab, but it’s not implemented yet:</p> <div class="example"> <div> <p>Code</p> <figure class="highlight"><pre><code class="language-liquid" data-lang="liquid"><span class="p">{%</span><span class="w"> </span><span class="nt">include</span><span class="w"> </span><span class="nv">code</span><span class="err"> </span><span class="w"> </span><span class="na">service</span><span class="o">=</span><span class="s2">"bitbucket"</span><span class="err"> </span><span class="w"> </span><span class="na">org</span><span class="o">=</span><span class="s2">"fernandoamat"</span><span class="err"> </span><span class="w"> </span><span class="na">repo</span><span class="o">=</span><span class="s2">"keller-lab-block-filetype"</span><span class="err"> </span><span class="w"> </span><span class="na">branch</span><span class="o">=</span><span class="s2">"d4755438000475d60e51ee2b793a7fd92c1be7fe"</span><span class="err"> </span><span class="w"> </span><span class="na">path</span><span class="o">=</span><span class="s2">"src/main/java/org/janelia/simview/klb/KLB.java"</span><span class="err"> </span><span class="w"> </span><span class="na">line-start</span><span class="o">=</span><span class="mi">279</span><span class="w"> </span><span class="na">line-end</span><span class="o">=</span><span class="mi">297</span><span class="err"> </span><span class="w"> </span><span class="na">label</span><span class="o">=</span><span class="s2">"Reading KLB data as ImgLib2 image"</span><span class="w"> </span><span class="p">%}</span></code></pre></figure> </div> <div> <p>Result</p> <div> <p><b><a href="https://bitbucket.org/fernandoamat/keller-lab-block-filetype/src/d4755438000475d60e51ee2b793a7fd92c1be7fe/src/main/java/org/janelia/simview/klb/KLB.java#lines-279:297#lines-279:297">Reading KLB data as ImgLib2 image</a></b><br /></p> <div class="notice" style="font-size: 2; background: #ffcccb; border-left: 10px solid #f57900"><div class="notice-icon"><img src="/media/icons/warning.png" /></div><div class="notice-content"> <p>Embedding content from BitBucket is not yet supported. Are you a JavaScript developer who can make it happen? <a href="/discuss">Reach out to us on the Image.sc Forum!</a></p> </div> </div> </div> </div> </div> <h1 id="footnotes">Footnotes</h1> <div class="footnotes" role="doc-endnotes"> <ol> <li id="fn:1" role="doc-endnote"> <p>Valid style values for GitHub embeds are:</p> <ul style="column-width: 11em; list-style: none;"> <li>a11y-dark</li> <li>a11y-light</li> <li>agate</li> <li>an-old-hope</li> <li>androidstudio</li> <li>arduino-light</li> <li>arta</li> <li>ascetic</li> <li>atelier-cave-dark</li> <li>atelier-cave-light</li> <li>atelier-dune-dark</li> <li>atelier-dune-light</li> <li>atelier-estuary-dark</li> <li>atelier-estuary-light</li> <li>atelier-forest-dark</li> <li>atelier-forest-light</li> <li>atelier-heath-dark</li> <li>atelier-heath-light</li> <li>atelier-lakeside-dark</li> <li>atelier-lakeside-light</li> <li>atelier-plateau-dark</li> <li>atelier-plateau-light</li> <li>atelier-savanna-dark</li> <li>atelier-savanna-light</li> <li>atelier-seaside-dark</li> <li>atelier-seaside-light</li> <li>atelier-sulphurpool-dark</li> <li>atelier-sulphurpool-light</li> <li>atom-one-dark</li> <li>atom-one-dark-reasonable</li> <li>atom-one-light</li> <li>codepen-embed</li> <li>color-brewer</li> <li>darcula</li> <li>dark</li> <li>default</li> <li>docco</li> <li>dracula</li> <li>far</li> <li>foundation</li> <li>github</li> <li>github-gist</li> <li>gml</li> <li>googlecode</li> <li>gradient-dark</li> <li>grayscale</li> <li>gruvbox-dark</li> <li>gruvbox-light</li> <li>hopscotch</li> <li>hybrid</li> <li>idea</li> <li>ir-black</li> <li>isbl-editor-dark</li> <li>isbl-editor-light</li> <li>kimbie.dark</li> <li>kimbie.light</li> <li>lightfair</li> <li>magula</li> <li>mono-blue</li> <li>monokai</li> <li>monokai-sublime</li> <li>night-owl</li> <li>nord</li> <li>obsidian</li> <li>ocean</li> <li>paraiso-dark</li> <li>paraiso-light</li> <li>purebasic</li> <li>qtcreator_dark</li> <li>qtcreator_light</li> <li>railscasts</li> <li>rainbow</li> <li>routeros</li> <li>shades-of-purple</li> <li>solarized-dark</li> <li>solarized-light</li> <li>sunburst</li> <li>tomorrow</li> <li>tomorrow-night</li> <li>tomorrow-night-blue</li> <li>tomorrow-night-bright</li> <li>tomorrow-night-eighties</li> <li>vs</li> <li>vs2015</li> <li>xcode</li> <li>xt256</li> <li>zenburn</li> </ul> <p><a href="#fnref:1" class="reversefootnote" role="doc-backlink">↩</a></p> </li> </ol> </div> </div> </div> </section> <!-- Footer --> <section id="footer"> <ul class="icons"> <li><a href="https://forum.image.sc/tag/imagej" class="icon alt"><img src="/media/icons/image-sc.png" width="24" style="vertical-align: middle; margin-top: -10px"><span class="label">Forum</span></a></li> <li><a href="https://twitter.com/hashtag/ImageJ" class="icon brands alt fa-twitter"><span class="label">Twitter</span></a></li> <li><a href="https://github.com/imagej" class="icon brands alt fa-github"><span class="label">GitHub</span></a></li> </ul> <ul class="copyright"> <li>Design: <a href="http://html5up.net">HTML5 UP</a></li> </ul> </section> <!-- Hamburger menu --> <nav role="navigation"> <div id="ham-toggle"> <input type="checkbox" /> <span></span> <!-- top bun --> <span></span> <!-- hamburger --> <span></span> <!-- bottom bun --> <ul id="ham-menu"> <div class="menu"><h3>ImageJ Docs</h3> <ul> <li><a href="/downloads">Download</a></li> <li><details><summary>Learn</summary><ul> <li><details><summary><a href="/learn">ImageJ Basics</a></summary><ul> <li><a href="/tutorials">Tutorials</a></li> <li><a href="/learn/user-guides">User Guides</a></li> <li><a href="/learn/keyboard-shortcuts">Keyboard Shortcuts</a></li> <li><a href="/learn/tips-and-tricks">Tips and Tricks</a></li> <li><a href="/learn/troubleshooting">Troubleshooting</a></li> <li><a href="/learn/faq">Frequently Asked Questions</a></li> <li><details><summary><a href="/platforms">Supported Platforms</a></summary><ul> <li><a href="/platforms/windows">Windows</a></li> <li><a href="/platforms/macos">MacOS</a></li> <li><a href="/platforms/linux">Linux</a></li> <li><a href="/platforms/pi">Raspberry Pi</a></li> <li><a href="/platforms/android">Android</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/Supported Platforms --> <li><details><summary><a href="/formats">File Formats</a></summary><ul> <li><a href="/formats/bio-formats">Bio-Formats</a></li> <li><a href="/formats/video">Video formats</a></li> <li><a href="/formats/quicktime">QuickTime</a></li> <li><a href="/formats/tiff">TIFF</a></li> <li><a href="/formats/pdf">PDF</a></li> <li><a href="/formats/dicom">DICOM</a></li> <li><a href="/formats/lsm">Zeiss LSM</a></li> <li><a href="/formats/olympus">Olympus VSI</a></li> <li><a href="/formats/lurawave">Opera Flex</a></li> <li><a href="/formats/fib-sem">FIB-SEM</a></li> </ul></details></li> <!-- Learn/ImageJ Basics/File Formats --> </ul></details></li> <!-- Learn/ImageJ --> <li><details><summary><a href="/imaging">Scientific Imaging</a></summary><ul> <li><a href="/imaging/principles">Principles of Scientific Imaging</a></li> <li><a href="/imaging/annotating-images">Annotating Images</a></li> <li><a href="/imaging/colocalization-analysis">Colocalization</a></li> <li><a href="/imaging/color-image-processing">Color Image Processing</a></li> <li><a href="/imaging/deconvolution">Deconvolution</a></li> <li><a href="/imaging/image-intensity-processing">Image Intensity Processing</a></li> <li><a href="/imaging/particle-analysis">Particle Analysis</a></li> <li><a href="/imaging/registration">Registration</a></li> <li><a href="/imaging/segmentation">Segmentation</a></li> <li><a href="/imaging/stack-slice-manipulations">Stack-slice Manipulations</a></li> <li><a href="/imaging/t-functions">T-functions</a></li> <li><a href="/imaging/tracking">Tracking</a></li> <li><a href="/imaging/visualization">Visualization</a></li> <li><a href="/imaging/z-functions">Z-functions</a></li> </ul></details></li> <!-- Learn/Scientific Imaging --> </ul></details></li> <!-- Learn --> <li><details><summary><a href="/plugins">Extend</a></summary><ul> <li><a href="/list-of-extensions">List of Extensions</a></li> <li><details><summary><a href="/update-sites">Update Sites</a></summary><ul> <li><a href="/list-of-update-sites">List of Update Sites</a></li> <li><a href="/update-sites/following">Following an Update Site</a></li> <li><a href="/update-sites/setup">Creating an Update Site</a></li> <li><a href="/update-sites/tos">Terms of Service</a></li> <li><a href="/update-sites/automatic-uploads">Automatic Upload</a></li> <li><a href="/update-sites/core-uploads">Uploading to Core Sites</a></li> <li><a href="/update-sites/faq">Update Sites FAQ</a></li> <li><a href="/update-sites/stats">Statistics</a></li> </ul></details></li> <!-- Extend/Update Sites --> <li><details><summary><a href="/scripting">Scripting</a></summary><ul> <li><a href="/scripting/basics">Scripting Basics</a></li> <li><a href="/scripting/script-editor">Script Editor</a></li> <li><a href="/scripting/parameters">Parameters</a></li> <li><a href="/scripting/user-input">User Input</a></li> <li><a href="/scripting/auto-imports">Auto Import</a></li> <li><a href="/scripting/templates">Templates</a></li> <li><a href="/scripting/batch">Batch Processing</a></li> <li><a href="/scripting/headless">Running Headlessly</a></li> <li><a href="/scripting/comparisons">Scripting Comparisons</a></li> <li><a href="/scripting/toolbox">Toolbox</a></li> <li><details><summary>Languages</summary><ul> <li><a href="/scripting/beanshell">BeanShell Scripting</a></li> <li><a href="/scripting/groovy">Groovy Scripting</a></li> <li><a href="/scripting/macro">ImageJ Macro</a></li> <li><a href="/scripting/javascript">JavaScript</a></li> <li><a href="/scripting/clojure">Lisp (Clojure)</a></li> <li><a href="/scripting/matlab">MATLAB</a></li> <li><a href="/scripting/jython">Python (Jython)</a></li> <li><a href="/scripting/python">Python (native)</a></li> <li><a href="/scripting/renjin">R (Renjin)</a></li> <li><a href="/scripting/jruby">Ruby (JRuby)</a></li> <li><a href="/scripting/scala">Scala Scripting</a></li> </ul></details></li> <!-- Extend/Scripting/Languages --> </ul></details></li> <!-- Extend/Scripting --> <li><details><summary><a href="/develop">Development</a></summary><ul> <li><a href="/develop/philosophy">Philosophy</a></li> <li><a href="/develop/architecture">Architecture</a></li> <li><a href="/develop/source">Source code</a></li> <li><a href="/develop/project-management">Project management</a></li> <li><a href="/develop/coding-style">Coding style</a></li> <li><a href="/develop/javadoc">Using Javadoc</a></li> <li><a href="/develop/debugging">Debugging</a></li> <li><a href="/develop/wish-list">Wish list</a></li> <li><details><summary>Tools</summary><ul> <li><a href="/develop/github">GitHub</a></li> <li><a href="/develop/maven">Maven</a></li> <li><a href="/develop/ci">CI/CD</a></li> <li><a href="/develop/dotfiles">Dotfiles</a></li> <li><details><summary><a href="/develop/ides">IDEs</a></summary><ul> <li><a href="/develop/eclipse">Eclipse</a></li> <li><a href="/develop/netbeans">NetBeans</a></li> <li><a href="/develop/intellij">IntelliJ IDEA</a></li> <li><a href="/develop/command-line">Command Line</a></li> </ul></details></li> </ul></details></li> <!-- Extend/Development/Tools --> <li><details><summary>Guides</summary><ul> <li><a href="/develop/plugins">Writing plugins</a></li> <li><a href="/develop/improving-the-code">Contributing to a plugin</a></li> <li><a href="/develop/releasing">Development lifecycle</a></li> <li><a href="/develop/building-a-pom">Building a POM</a></li> <li><a href="/develop/debugging-exercises">Hands-on debugging</a></li> <li><a href="/develop/writing-ops">Adding new ops</a></li> <li><a href="/develop/formats">Adding new formats</a></li> <li><a href="/develop/native-libraries">Using native libraries</a></li> <li><a href="/develop/tips">Tips for developers</a></li> <li><a href="/develop/cpp-tips">Tips for C++ developers</a></li> <li><a href="/develop/ij1-plugins">ImageJ 1.x plugins</a></li> <li><a href="/develop/versioning">Versioning</a></li> <li><a href="/develop/logging">Logging</a></li> <li><a href="/develop/uber-jars">Uber-JARs</a></li> </ul></details></li> <!-- Extend/Development/Guides --> <li><details><summary><a href="/develop/git">Git</a></summary><ul> <li><a href="/develop/git/eclipse">Git in Eclipse (EGit)</a></li> <li><a href="/develop/git/mini-howto">Git mini howto</a></li> <li><a href="/develop/git/workshop">Git workshop</a></li> <li><a href="/develop/git/conflicts">Git conflicts</a></li> <li><a href="/develop/git/topic-branches">Git topic branches</a></li> <li><a href="/develop/git/notes">Git notes</a></li> <li><a href="/develop/git/reflogs">Git reflogs</a></li> <li><a href="/develop/git/submodules">Git submodules</a></li> <li><a href="/develop/git/pinpoint-regressions">How to pinpoint regressions</a></li> <li><a href="/develop/git/publish-a-repository">How to publish a git repository</a></li> <li><a href="/develop/git/extract-a-subproject">How to extract a subproject</a></li> </ul></details></li> <!-- Extend/Development/Git --> </ul></details></li> <!-- Extend/Development --> </ul></details></li> <!-- Extend --> <li><details open><summary><a href="/contribute">Contribute</a></summary><ul> <li><a href="/contribute/citing">Citing</a></li> <li><a href="/people">Contributors</a></li> <li><a href="/orgs">Organizations</a></li> <li><a href="/contribute/governance">Governance</a></li> <li><a href="/contribute/funding">Funding</a></li> <li><a href="/contribute/fiji">Contributing to Fiji</a></li> <li><details><summary><a href="/licensing">Licensing</a></summary><ul> <li><details><summary><a href="/licensing/open-source">Open Source</a></summary><ul> <li><a href="/licensing/apache">Apache</a></li> <li><a href="/licensing/bsd">BSD</a></li> <li><a href="/licensing/epl">EPL</a></li> <li><a href="/licensing/gpl">GPL</a></li> <li><a href="/licensing/lgpl">LGPL</a></li> <li><a href="/licensing/mit">MIT</a></li> <li><a href="/licensing/public-domain">Public domain</a></li> <li><a href="/licensing/big">BIG</a></li> </ul></details></li> <!-- Contribute/Licensing/Open Source --> <li><a href="/licensing/closed-source">Proprietary</a></li> </ul></details></li> <!-- Contribute/Licensing --> <li><details open><summary><a href="/editing">Editing the Wiki</a></summary><ul> <li><a href="/editing/advanced">Advanced Editing</a></li> <li><a href="/editing/buttons">Buttons</a></li> <li><a href="/editing/citations">Citations</a></li> <li><a class="current-page">Source Code</a></li> <li><a href="/editing/debugging">Debugging</a></li> <li><a href="/editing/headers">Headers</a></li> <li><a href="/editing/icons">Icons</a></li> <li><a href="/editing/images">Images</a></li> <li><a href="/editing/keys">Keyboard Shortcuts</a></li> <li><a href="/editing/linking">Linking</a></li> <li><a href="/editing/math">Math Expressions</a></li> <li><a href="/editing/menu-paths">Menu Paths</a></li> <li><a href="/editing/navigation">Navigation</a></li> <li><a href="/editing/notices">Notices</a></li> <li><a href="/editing/people">People</a></li> <li><a href="/editing/pitfalls">Pitfalls</a></li> <li><a href="/editing/quizzes">Quizzes</a></li> <li><a href="/editing/statbox">Statbox</a></li> <li><a href="/editing/symbols">Symbols</a></li> <li><a href="/editing/tables">Tables</a></li> <li><a href="/editing/tooltips">Tooltips</a></li> <li><a href="/editing/videos">Videos</a></li> <li><a href="/editing/whitespace">Whitespace</a></li> </ul></details></li> <!-- Contribute/Editing the Wiki --> </ul></details></li> <!-- Contribute --> <li><details><summary><a href="/discuss">Discuss</a></summary><ul> <li><a href="/discuss/bugs">Reporting Issues</a></li> <li><a href="/discuss/mailing-lists">Mailing Lists</a></li> <li><a href="/discuss/chat">Chat</a></li> </ul></details></li> <!-- Discuss --> <li><details><summary>Explore</summary><ul> <li><a href="/news">News</a></li> <li><details><summary><a href="/events">Events</a></summary><ul> <li><a href="/events/presentations">Presentations</a></li> <li><a href="/events/conferences">Conferences</a></li> <li><a href="/events/hackathons">Hackathons</a></li> <li><a href="/events">More...</a></li> </ul></details></li> <!-- Discuss/Events --> <li><details><summary><a href="/libs">Libraries</a></summary><ul> <li><a href="/libs/imagej-ops">ImageJ Ops</a></li> <li><a href="/libs/imagej-common">ImageJ Common</a></li> <li><a href="/libs/imagej-legacy">ImageJ Legacy</a></li> <li><a href="/libs/scijava">SciJava</a></li> <li><a href="/libs/scifio">SCIFIO</a></li> <li><details><summary><a href="/libs/imglib2">ImgLib2</a></summary><ul> <li><a href="/libs/imglib2/getting-started">Getting Started</a></li> <li><a href="/libs/imglib2/accessors">Accessors</a></li> <li><a href="/libs/imglib2/accessibles">Accessibles</a></li> <li><a href="/libs/imglib2/examples">Examples</a></li> <li><a href="/libs/imglib2/workshop-introductory">Introductory Workshop</a></li> <li><a href="/libs/imglib2/workshop-advanced">Advanced Workshop</a></li> <li><a href="/libs/imglib2/matlab">ImgLib2 images in MATLAB</a></li> <li><a href="/libs/imglib2/benchmarks">Benchmarks</a></li> <li><a href="/libs/imglib2/faq">FAQ</a></li> <li><a href="/libs/imglib2/developing">Developing ImgLib2</a></li> <li><a href="/libs/imglib2/discussion">ImgLib2 Discussion</a></li> </ul></details></li> <!-- Explore/Libraries/ImgLib2 --> <li><a href="/libs">More...</a></li> </ul></details></li> <!-- Explore/Libraries --> <li><details><summary><a href="/software">Software</a></summary><ul> <li><a href="/software/nih-image">NIH Image</a></li> <li><a href="/software/imagej">ImageJ</a></li> <li><a href="/software/imagej2">ImageJ2</a></li> <li><a href="/software/fiji">Fiji</a></li> <li><a href="/software">More...</a></li> </ul></details></li> <!-- Explore/Software --> </ul></details></li> <!-- Explore --> </ul> </div> </ul> </div> </nav> <div id="dock-overlay-left" class="dock-overlay" data-dock-target="left-column"></div> <div id="dock-overlay-right" class="dock-overlay" data-dock-target="right-column"></div> <!-- Search results --> <div id="search-results"> <div id="search-hits"></div> <div id="pagination"></div> </div> <!-- Scripts --> <!-- Libraries --> <script src="/assets/js/jquery.min.js"></script> <script src="/assets/js/jquery.scrolly.min.js"></script> <script src="/assets/js/browser.min.js"></script> <script src="/assets/js/breakpoints.min.js"></script> <script src="/assets/js/util.js"></script> <script src="/assets/js/jquery.toc.js"></script> <script src="/assets/js/lightbox.min.js"></script> <!-- Extensions --> <!-- Site code --> <script src="/assets/js/main.js"></script> <script src="/assets/js/dock.js"></script> <script src="/assets/js/code.js"></script> <!-- Anchors --> <script src="https://cdn.jsdelivr.net/npm/anchor-js/anchor.min.js"></script> <script>anchors.add('#page h1, #page h2, #page h3, #page h4, #page h5, #page h6');</script> <!-- Citations --> <script src="https://cdn.jsdelivr.net/npm/citation-js@0.4.0-9"></script> <script src="/assets/js/cite.js"></script> <!-- Search --> <script src="https://cdn.jsdelivr.net/npm/algoliasearch@4.13.0/dist/algoliasearch-lite.umd.js"></script> <script src="https://cdn.jsdelivr.net/npm/instantsearch.js@4.40.3/dist/instantsearch.production.min.js"></script> <script src="/assets/js/search.js"></script> <script src="/assets/js/search-tweaks.js"></script> </body> </html>