Skip to content

Commit

Permalink
Fix broken links
Browse files Browse the repository at this point in the history
Accomplished via:
  python _bin/update-links.py
  • Loading branch information
ctrueden committed Apr 21, 2021
1 parent 4fdcdc2 commit 2061211
Show file tree
Hide file tree
Showing 211 changed files with 431 additions and 414 deletions.
22 changes: 19 additions & 3 deletions _bin/broken-links.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,22 @@ test -d "$root" || {
exit 1
}

prefixes="
ij
conference
list-of-update-sites
presentations
workshops
"

allowed() {
for prefix in $prefixes
do
echo "$1" | grep -q "^/$prefix" && return 0
done
return 1
}

grep -IRo 'href="\/[^"]*' "$root" | sed 's/:href="/:/' | while read line
do
file=${line%%:*}
Expand All @@ -15,9 +31,9 @@ do
page=${link%#*}
test "$page" = "$link" && anchor="" || anchor=${link#*#}
target="$root$page"
test -f "$target" -o -f "$target.html" -o -f "$target/index.html" ||
{ echo "$link"; continue; }
test -z "$anchor" ||
test -f "$target" -o -f "$target.html" -o -f "$target/index.html" || allowed "$link" ||
{ echo "$link"; continue; }
test -z "$anchor" || allowed "$link" ||
grep -q "id=\"$anchor\"" "$target.html" 2>/dev/null ||
grep -q "id=\"$anchor\"" "$target/index.html" 2>/dev/null ||
echo "$link [NO ANCHOR]"
Expand Down
1 change: 1 addition & 0 deletions _bin/update-links.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ def processfile(path):
while True:
line_changed = False
for old, new in redirects.items():
if new.startswith('TODO') or new == '<UNCHANGED>' or new == '???': continue
for i in range(len(lines)):
l = lines[i].replace(f'="{old}"', f'="/{new}"') # HTML, no slash
l = l.replace(f']({old})', f'](/{new})') # Markdown, no slash
Expand Down
2 changes: 1 addition & 1 deletion _pages/Open_Source.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ description: test description

Everybody is welcome to [contribute](/about/contributing) with [plugins](/plugins), patches, [bug reports](/help/report-a-bug), [tutorials](/tutorials), [documentation](/learn), and artwork.

The [SciJava](SciJava) ecosystem is strongly committed to open-source software development. This software is not an open source software *product*—it is an open-source software *project* following an open-source development *process*. There are public [source code repositories](Source_Code), public [communication](Communication) channels, public [project management](/develop/project-management) resources, and of course, this [community editable website](Help_Contents). See the [Philosophy](/develop/philosophy) page for more information.
The [SciJava](SciJava) ecosystem is strongly committed to open-source software development. This software is not an open source software *product*—it is an open-source software *project* following an open-source development *process*. There are public [source code repositories](/develop/source), public [communication](Communication) channels, public [project management](/develop/project-management) resources, and of course, this [community editable website](Help_Contents). See the [Philosophy](/develop/philosophy) page for more information.

Why open source?
----------------
Expand Down
14 changes: 7 additions & 7 deletions _pages/Project_ideas.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,15 +132,15 @@ Scripting
Add JMathLib (MATLAB clone) support
-----------------------------------

Quite a few algorithms are available as proof-of-concept [MATLAB](MATLAB) scripts. While it is [wrong to think of pixels as little squares](Ftp___ftp.alvyray.com_Acrobat_6_Pixel.pdf), and literally all [MATLAB](MATLAB) scripts to perform image processing are suffering from that assumption, it would be very nice nevertheless to be able to run the scripts without having to buy [MATLAB](MATLAB) licenses just for that purpose.
Quite a few algorithms are available as proof-of-concept [MATLAB](/scripting/matlab) scripts. While it is [wrong to think of pixels as little squares](Ftp___ftp.alvyray.com_Acrobat_6_Pixel.pdf), and literally all [MATLAB](/scripting/matlab) scripts to perform image processing are suffering from that assumption, it would be very nice nevertheless to be able to run the scripts without having to buy [MATLAB](/scripting/matlab) licenses just for that purpose.

MATLAB bundles a Java runtime (and in fact, all of [MATLAB](MATLAB)'s GUI is implemented in Java!) and allows the user to instantiate Java classes and call methods on them:
MATLAB bundles a Java runtime (and in fact, all of [MATLAB](/scripting/matlab)'s GUI is implemented in Java!) and allows the user to instantiate Java classes and call methods on them:

import java.io.File;
f = File('/usr/local/Fiji.app/');
f.exists()

Happily, there is a [MATLAB](MATLAB) clone written in Java: [JMathLib](http://www.jmathlib.de/). While it is apparently not a speed demon, it should be useful to add JMathLib as a new scripting language to ImageJ, and integrate it into Fiji so that [MATLAB](MATLAB) scripts can be executed just like all other ImageJ scripts, too.
Happily, there is a [MATLAB](/scripting/matlab) clone written in Java: [JMathLib](http://www.jmathlib.de/). While it is apparently not a speed demon, it should be useful to add JMathLib as a new scripting language to ImageJ, and integrate it into Fiji so that [MATLAB](/scripting/matlab) scripts can be executed just like all other ImageJ scripts, too.

So far, we have [a branch which adds rudimentary JMathLib bindings to Fiji's scripting interface](https://fiji.sc/cgi-bin/gitweb.cgi?p=fiji.git;a=shortlog;h=refs/heads/jmathlib) and [a Git-SVN mirror of the JMathLib source code repository](https://fiji.sc/JMathLib/.git) with a special *fiji* branch. The idea is to work on this branch to adjust JMathLib in certain ways to support this project, and once that is done, contribute the changes back to the JMathLib project.

Expand All @@ -160,11 +160,11 @@ The following issues need to be tackled in the JMathLib source code:

<!-- -->

- JMathLib supports Java via a [non-standard mechanism](https://fiji.sc/cgi-bin/gitweb.cgi?p=JMathLib/.git;a=blob;f=src/jmathlib/plugins/dynjava/JavaPlugin.java;hb=refs/heads/fiji) based on [DynamicJava](http://old.koalateam.com/djava/). This is incompatible with [MATLAB](MATLAB), so there needs to be native support using [reflection](http://download-llnw.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/package-summary.html) to support the method to instantiate Java objects mentioned above.
- JMathLib supports Java via a [non-standard mechanism](https://fiji.sc/cgi-bin/gitweb.cgi?p=JMathLib/.git;a=blob;f=src/jmathlib/plugins/dynjava/JavaPlugin.java;hb=refs/heads/fiji) based on [DynamicJava](http://old.koalateam.com/djava/). This is incompatible with [MATLAB](/scripting/matlab), so there needs to be native support using [reflection](http://download-llnw.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/package-summary.html) to support the method to instantiate Java objects mentioned above.

This issue needs to be tackled in Fiji's source code:

- JMathLib's image toolbox does not contain much. Even the most basic functions are missing. And even if there were functions, we would have to override them, because the functions need to be done in a way so that they can use and interact with ImageJ. The best approach may be to start by implementing the functions mentioned in [[MATLAB](MATLAB)'s image processing toolbox'](http://www.mathworks.com/help/toolbox/images/index.html) *Getting Started* section, by implementing *.m* files that call directly into ImagePlus (using the above-mentioned technique).
- JMathLib's image toolbox does not contain much. Even the most basic functions are missing. And even if there were functions, we would have to override them, because the functions need to be done in a way so that they can use and interact with ImageJ. The best approach may be to start by implementing the functions mentioned in [[MATLAB](/scripting/matlab)'s image processing toolbox'](http://www.mathworks.com/help/toolbox/images/index.html) *Getting Started* section, by implementing *.m* files that call directly into ImagePlus (using the above-mentioned technique).

**Goal:** Integrate JMathLib as a new scripting language.
**Language:** Java.
Expand Down Expand Up @@ -246,7 +246,7 @@ To overcome the typical problem of loading native libraries via System.loadLibra
}
Rengine re = new Rengine();

Teach the Fiji Updater to accept other sites in addition to [fiji.sc](Fiji.sc)
Teach the Fiji Updater to accept other sites in addition to [fiji.sc](/about/funding)
-----------------------------------------------------------------------------------------

The Fiji Updater always looks for a static file containing an XML database of Fiji plugins (both current and past versions) on our website. To put new versions or new plugins there (to *upload into the updater*), you have to be a Fiji developer with write permission for that particular directory on our server.
Expand Down Expand Up @@ -280,7 +280,7 @@ The project is not without complications, though:
Integrate [JGit](http://www.jgit.org) into Fiji
-----------------------------------------------

An important part of Fiji's success is the ease with which developers can collaborate through the use of [Git](Git).
An important part of Fiji's success is the ease with which developers can collaborate through the use of [Git](/develop/git).

There exists a pure Java implementation of Git called [JGit](http://www.jgit.org), which already provides a large part of Git's functionality.

Expand Down
2 changes: 1 addition & 1 deletion _pages/about/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ This site, imagej.net, is a wiki (similar to the {% include wikipedia title='Wik

If you are an ImageJ user, contributing documentation is an easy way to give back to the community without needing to learn software development skills.

If you are a plugin author, please consider [documenting your plugin on this site](Distribution#Documenting_your_extension). You can have a look at the page [How\_to\_make\_a\_new\_tutorial](How_to_make_a_new_tutorial).
If you are a plugin author, please consider [documenting your plugin on this site](Distribution#Documenting_your_extension). You can have a look at the page [How\_to\_make\_a\_new\_tutorial](/tutorials/make-a-new-tutorial).

When in doubt, discuss your ideas publicly on the Image.sc [Forum](/help)!

Expand Down
2 changes: 1 addition & 1 deletion _pages/about/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ There are a few different flavors of ImageJ with very similar names, and some co
<td><img src="/media/Imagej1-icon.png" width="64"/></td>
<td><a href="/libs/imageja">ImageJA</a></td>
<td><a href="/about/contributors">ImageJ developers</a></td>
<td>ImageJA is a project that provides a clean <a href="Git">Git</a>
<td>ImageJA is a project that provides a clean <a href="/develop/git">Git</a>
history of ImageJ1, with a proper 'pom.xml' file so that it can be used
with Maven without hassles.<br><br>It is what ImageJ2's legacy support
uses at its core.</td>
Expand Down
10 changes: 5 additions & 5 deletions _pages/develop/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ description: test description
- For information on the *legal* structure, see [Licensing](/licensing).' %}


This page describes the technical structure of [SciJava](SciJava) and [ImageJ](/about) projects. For maximum benefit, we suggest readers familiarize themselves with [Maven](/develop/maven), [Git](Git) and [GitHub](/develop/github) before reading the sections here.
This page describes the technical structure of [SciJava](SciJava) and [ImageJ](/about) projects. For maximum benefit, we suggest readers familiarize themselves with [Maven](/develop/maven), [Git](/develop/git) and [GitHub](/develop/github) before reading the sections here.

Definitions
===========
Expand Down Expand Up @@ -62,7 +62,7 @@ The diagram on the right shows organizational relationships between SciJava soft
Git repositories
----------------

Each component is contained in its own [Git](Git) repository, so that interested developers can cherry-pick only those parts of interest. Version control is an indispensable tool to ensure *scientific reproducibility* (see below) by tracking known-working states of the source code, and maintain a written record of how and why the code has changed over time. For technical details, see the [Git](Git) section.
Each component is contained in its own [Git](/develop/git) repository, so that interested developers can cherry-pick only those parts of interest. Version control is an indispensable tool to ensure *scientific reproducibility* (see below) by tracking known-working states of the source code, and maintain a written record of how and why the code has changed over time. For technical details, see the [Git](/develop/git) section.

### Why separate Git repositories?

Expand All @@ -86,14 +86,14 @@ As a rule of thumb, we find that multi-module [Maven](/develop/maven) projects s
Maven component structure
-------------------------

All components in these organizations use [Maven](/develop/maven) for [project management](Project_Management). Each organization has its own Maven [groupId](http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-project-relationships.html#pom-relationships-sect-more-coordinates). Each component extends the {% include github org='scijava' repo='pom-scijava' label='pom-scijava' %} [parent POM](http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-project-relationships.html#pom-relationships-sect-project-inheritance), which provides sensible build defaults and compatible dependency versions (see "Bill of Materials" below).
All components in these organizations use [Maven](/develop/maven) for [project management](/develop/project-management). Each organization has its own Maven [groupId](http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-project-relationships.html#pom-relationships-sect-more-coordinates). Each component extends the {% include github org='scijava' repo='pom-scijava' label='pom-scijava' %} [parent POM](http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-project-relationships.html#pom-relationships-sect-project-inheritance), which provides sensible build defaults and compatible dependency versions (see "Bill of Materials" below).

<table><tbody><tr class="odd"><td><p><strong>Logo</strong></p></td><td><p><strong>Project</strong></p></td><td><p><strong>Organization</strong></p></td><td><p><strong>groupId</strong></p></td></tr><tr class="even"><td><p> {% include logo content='SciJava' %}</p></td><td><p><a href="SciJava">SciJava</a></p></td><td><p><a href="https://github.com/scijava">scijava</a></p></td><td><p><a href="https://maven.scijava.org/index.html#nexus-search;gav~org.scijava">org.scijava</a></p></td></tr><tr class="odd"><td><p> {% include logo content='ImageJ2' %}</p></td><td><p><a href="/about">ImageJ</a></p></td><td><p><a href="https://github.com/imagej">imagej</a></p></td><td><p><a href="https://maven.scijava.org/index.html#nexus-search;gav~net.imagej">net.imagej</a></p></td></tr><tr class="even"><td><p> {% include logo content='ImgLib2' %}</p></td><td><p><a href="/imglib2">ImgLib2</a></p></td><td><p><a href="https://github.com/imglib">imglib</a></p></td><td><p><a href="https://maven.scijava.org/index.html#nexus-search;gav~net.imglib2">net.imglib2</a></p></td></tr><tr class="odd"><td><p> {% include logo content='SCIFIO' %}</p></td><td><p><a href="/software/scifio">SCIFIO</a></p></td><td><p><a href="https://github.com/scifio">scifio</a></p></td><td><p><a href="https://maven.scijava.org/index.html#nexus-search;gav~io.scif">io.scif</a></p></td></tr><tr class="even"><td rowspan=3 style="vertical-align: middle"><p> {% include logo content='Fiji' %}</p></td><td><p><a href="/fiji">Fiji</a></p></td><td><p><a href="https://github.com/fiji">fiji</a></p></td><td><p><a href="https://maven.scijava.org/index.html#nexus-search;gav~sc.fiji">sc.fiji</a></p></td></tr><tr class="odd"><td><p><a href="/plugins/bdv">BigDataViewer</a></p></td><td><p><a href="https://github.com/bigdataviewer">bigdataviewer</a></p></td><td><p><a href="https://maven.scijava.org/index.html#nexus-search;gav~sc.fiji">sc.fiji</a></p></td><td></td></tr><tr class="even"><td><p><a href="/plugins/trakem2">TrakEM2</a></p></td><td><p><a href="https://github.com/trakem2">trakem2</a></p></td><td><p><a href="https://maven.scijava.org/index.html#nexus-search;gav~sc.fiji">sc.fiji</a></p></td><td></td></tr></tbody></table>

Bill of Materials
-----------------

The `pom-scijava` parent includes a [Bill of Materials](http://howtodoinjava.com/maven/maven-bom-bill-of-materials-dependency/) (BOM) which declares compatible versions of all components of the **SciJava component collection** in its [dependencyManagement section](http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management). These versions are intended to be used together in downstream projects, preventing version skew (symptoms of which include `ClassNotFoundException` and `NoSuchMethodError`, as well as erroneous behavior in general). This BOM is especially important while some components are still in beta, since they may sometimes break [backwards compatibility](Backwards_compatibility).
The `pom-scijava` parent includes a [Bill of Materials](http://howtodoinjava.com/maven/maven-bom-bill-of-materials-dependency/) (BOM) which declares compatible versions of all components of the **SciJava component collection** in its [dependencyManagement section](http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Management). These versions are intended to be used together in downstream projects, preventing version skew (symptoms of which include `ClassNotFoundException` and `NoSuchMethodError`, as well as erroneous behavior in general). This BOM is especially important while some components are still in beta, since they may sometimes break [backwards compatibility](/libs/imagej-legacy).

Core libraries
--------------
Expand Down Expand Up @@ -200,7 +200,7 @@ Either way, ***be sure to work on a topic branch while developing code in this f
Versioning
==========

SciJava components use the [Semantic Versioning](Semantic_Versioning) system. This scheme communicates information about the [backwards compatibility](Backwards_compatibility) (or lack thereof) between versions of each individual software component. In a nutshell:
SciJava components use the [Semantic Versioning](/develop/versioning) system. This scheme communicates information about the [backwards compatibility](/libs/imagej-legacy) (or lack thereof) between versions of each individual software component. In a nutshell:

> Given a version number MAJOR.MINOR.PATCH, increment the:
>
Expand Down
2 changes: 1 addition & 1 deletion _pages/develop/coding-style.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,6 @@ All of that said, there are times when use of the `protected` modifier is approp
See also
--------

[Eclipse code style profiles and IntelliJ](Eclipse_code_style_profiles_and_IntelliJ)
[Eclipse code style profiles and IntelliJ](/develop/intellij#code-style-profiles)


6 changes: 3 additions & 3 deletions _pages/develop/command-line.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Install and configure command line tools

<tabs> <tab name="/platforms/windows"> ![ x32px](/media/Win.png "fig: x32px") **Windows**

Install [Git](Git), [Maven](/develop/maven), and Java SE using [Chocolatey](https://chocolatey.org/):
Install [Git](/develop/git), [Maven](/develop/maven), and Java SE using [Chocolatey](https://chocolatey.org/):

choco install -y git maven jdk8

Expand All @@ -23,7 +23,7 @@ We also heartily recommend installing [Cygwin](https://www.cygwin.com/):

</tab> <tab name="OS X"> ![ x32px](/media/Osx.png "fig: x32px") **OS X**

Install [Git](Git) and [Maven](/develop/maven) using [Homebrew](http://brew.sh/):
Install [Git](/develop/git) and [Maven](/develop/maven) using [Homebrew](http://brew.sh/):

brew install git maven bash-completion

Expand All @@ -40,7 +40,7 @@ Download the source

git clone git://github.com/imagej/imagej

See the [Source Code](Source_Code) page for further details.
See the [Source Code](/develop/source) page for further details.

Build the source
----------------
Expand Down
2 changes: 1 addition & 1 deletion _pages/develop/debugging-exercises.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Requirements

As ImageJ is built using the [SciJava principles of project management](/develop/project-management), this guide assumes a basic familiarity with these topics and tools, especially:

- [Git](Git)
- [Git](/develop/git)
- [Maven](/develop/maven)

Additionally, you should:
Expand Down
Loading

0 comments on commit 2061211

Please sign in to comment.