You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2021/10/01 16:09:26 UTC
[sis-site] branch main updated (10d9cac -> 21538a1)
This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/sis-site.git.
from 10d9cac Update the email templates.
new 5facb89 Update the release note with a list of incompatible hanges.
new 1db660f Update roles for Alexis and Bruno.
new 21538a1 Upgrade web site to Bootstrap 5. Remove obsolete material. Use shorter abbreviations for ISO/OGC/JDBC/UTC.
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
layouts/_default/baseof.html | 115 ++++++-----------
layouts/partials/menu.html | 96 +++++++++------
layouts/shortcodes/CRS.html | 1 +
layouts/shortcodes/ISO.html | 1 +
layouts/shortcodes/JDBC.html | 1 +
layouts/shortcodes/OGC.html | 1 +
layouts/shortcodes/UTC.html | 1 +
layouts/shortcodes/abbr.html | 4 -
source/_index.md | 1 -
source/code-patterns.md | 20 ++-
source/coding-conventions.md | 4 +-
source/contributor.md | 14 +--
source/faq.md | 98 +++++++--------
source/faq_fr.md | 92 +++++++-------
source/site-management.md | 137 ---------------------
source/source.md | 2 +-
source/team-list.md | 3 +-
static/css/bootstrap.min.css | 264 ----------------------------------------
static/css/sis.css | 81 ++++++------
static/js/bootstrap.min.js | 6 -
static/js/jquery-1.9.1.min.js | 5 -
static/release-notes/1.1.html | 15 ++-
templates/single_narrative.html | 1 -
templates/skeleton.html | 121 ------------------
24 files changed, 273 insertions(+), 811 deletions(-)
create mode 100644 layouts/shortcodes/CRS.html
create mode 100644 layouts/shortcodes/ISO.html
create mode 100644 layouts/shortcodes/JDBC.html
create mode 100644 layouts/shortcodes/OGC.html
create mode 100644 layouts/shortcodes/UTC.html
delete mode 100644 layouts/shortcodes/abbr.html
delete mode 100644 source/site-management.md
delete mode 100644 static/css/bootstrap.min.css
delete mode 100644 static/js/bootstrap.min.js
delete mode 100644 static/js/jquery-1.9.1.min.js
delete mode 100644 templates/single_narrative.html
delete mode 100644 templates/skeleton.html
[sis-site] 01/03: Update the release note with a list of
incompatible hanges.
Posted by de...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/sis-site.git
commit 5facb890e35d6db5a99d437fb6694b93716acd0a
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Fri Oct 1 11:55:47 2021 +0200
Update the release note with a list of incompatible hanges.
---
static/release-notes/1.1.html | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/static/release-notes/1.1.html b/static/release-notes/1.1.html
index 0cc60da..874a4cf 100644
--- a/static/release-notes/1.1.html
+++ b/static/release-notes/1.1.html
@@ -15,9 +15,22 @@
<p>Apache SIS 1.1 can read GeoTIFF images, apply raster reprojections and create isolines from rasters.
It can read features from a SQL database with the <code>FeatureType</code> inferred by analyzing the database schema.
Features can be filtered by the filter API added in this release, including with geometric operations defined by SQLMM.
+ Some changes are listed below (non-exhaustive list):
</p>
-<p>Some changes are listed below (non-exhaustive list):</p>
+<h2>Incompatible changes</h2>
+<p>In the <code>sis-utility</code> module, the following classes:</p>
+
+<ul>
+ <li><code>org.apache.sis.util.iso.AbstractInternationalString</code></li>
+ <li><code>org.apache.sis.util.iso.SimpleInternationalString</code></li>
+ <li><code>org.apache.sis.util.iso.DefaultInternationalString</code></li>
+ <li><code>org.apache.sis.util.iso.ResourceInternationalString</code></li>
+</ul>
+
+<p>moved to the <code>org.apache.sis.util</code> package (one level up).
+ This change is for avoiding a collision with a package of the same name
+ in the <code>sis-metadata</code> module.</p>
<h2>New features</h2>
<ul>
[sis-site] 03/03: Upgrade web site to Bootstrap 5. Remove obsolete
material. Use shorter abbreviations for ISO/OGC/JDBC/UTC.
Posted by de...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/sis-site.git
commit 21538a1e1c128983651a83445d11dc90d73dc053
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Fri Oct 1 18:08:17 2021 +0200
Upgrade web site to Bootstrap 5. Remove obsolete material. Use shorter abbreviations for ISO/OGC/JDBC/UTC.
---
layouts/_default/baseof.html | 115 ++++++-----------
layouts/partials/menu.html | 96 +++++++++------
layouts/shortcodes/CRS.html | 1 +
layouts/shortcodes/ISO.html | 1 +
layouts/shortcodes/JDBC.html | 1 +
layouts/shortcodes/OGC.html | 1 +
layouts/shortcodes/UTC.html | 1 +
layouts/shortcodes/abbr.html | 4 -
source/_index.md | 1 -
source/code-patterns.md | 20 ++-
source/coding-conventions.md | 4 +-
source/contributor.md | 14 +--
source/faq.md | 98 +++++++--------
source/faq_fr.md | 92 +++++++-------
source/site-management.md | 137 ---------------------
source/source.md | 2 +-
static/css/bootstrap.min.css | 264 ----------------------------------------
static/css/sis.css | 81 ++++++------
static/js/bootstrap.min.js | 6 -
static/js/jquery-1.9.1.min.js | 5 -
templates/single_narrative.html | 1 -
templates/skeleton.html | 121 ------------------
22 files changed, 257 insertions(+), 809 deletions(-)
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 818589b..8fb8ef4 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -19,11 +19,10 @@
-->
<title>Apache SIS - {{ .Title }}</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
- <link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.min.css">
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css"
+ rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" media="screen" href="css/syntax.css">
<link rel="stylesheet" type="text/css" media="screen" href="css/sis.css">
</head>
@@ -32,82 +31,42 @@
{{ partial "menu.html" }}
-<div class="container-fluid">
- <div class="row-fluid">
- <div class="span2">
- <div class="apache-con">
- <a href="https://www.apache.org/events/current-event.html">
- <img src="https://www.apache.org/events/current-event-234x60.png" alt="ApacheCon"/>
- </a>
- </div>
- <div class="well sidebar-nav">
- <ul class="nav nav-list">
- <li><a href="index.html">Home</a></li>
- <li><a href="http://www.apache.org/licenses/">License</a></li>
- <li><a href="mail-lists.html">Mailing Lists</a></li>
- <li><a href="team-list.html">Project Team</a></li>
- <li class="nav-header">Project Documentation</li>
- <li><a href="book/index.html">Developer Guide</a></li>
- <li><a href="apidocs/index.html">Online Javadoc</a></li>
- <li><a href="downloads.html">Downloads</a></li>
- <li><a href="source.html">Checkout Sources</a></li>
- <li><a href="epsg.html">EPSG Database</a></li>
- <li><a href="faq.html">FAQ</a></li>
- <li><a href="https://issues.apache.org/jira/browse/SIS">Issue Tracker</a></li>
- <li class="nav-header">ASF</li>
- <li><a href="http://www.apache.org">The Foundation</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html">Donate</a></li>
- <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
- <li><a href="http://www.apache.org/security/">Security</a></li>
- </ul>
- </div><!--/.well -->
- </div><!--/span-->
- <div class="span10">
- <section id="content" class="row">
- <article class="span12">
- <img src="img/logo.png" class="sis-logo" align="left"/>
- <p class="page-title">{{ .Title }}</p>
- <!-- FIXME: move to an scss/css file -->
- <style type="text/css">
- /* The following code is added by mdx_elementid.py
- It was originally lifted from http://subversion.apache.org/style/site.css */
- /*
- * Hide class="elementid-permalink", except when an enclosing heading
- * has the :hover property.
- */
- .headerlink, .elementid-permalink {
- visibility: hidden;
- }
- h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }
- </style>
- {{ block "main" . }}{{ end }}
- </article>
- </section>
- </div>
- </div>
-</div><!--/.container-fluid -->
-
-<footer class="footer">
- <div class="container">
- <p>
- Copyright © 2013-{{ now.Year }} The Apache Software Foundation, Licensed under the
- <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>
- Apache SIS, Apache, the Apache feather logo are trademarks of The Apache Software Foundation.
- </p>
+<div class="row flex-nowrap">
+ <div class="d-flex flex-column flex-shrink-0 p-3 text-white bg-dark" style="width: 280px;">
+ <hr>
+ <ul class="nav nav-pills flex-column mb-auto">
+ <li><a class="nav-link {{ if eq .Page.RelPermalink "/" }} active {{ else }} text-white {{ end }}" href="/index.html">Home</a></li>
+ <li><a class="nav-link text-white" href="http://www.apache.org/licenses/">License</a></li>
+ <li><a class="nav-link {{ if eq .Page.RelPermalink "/downloads.html" }} active {{ else }} text-white {{ end }}" href="downloads.html">Downloads</a></li>
+ <li><a class="nav-link text-white" href="book/index.html">Developer Guide</a></li>
+ <li><a class="nav-link text-white" href="apidocs/index.html">Online Javadoc</a></li>
+ <li><a class="nav-link {{ if eq .Page.RelPermalink "/epsg.html" }} active {{ else }} text-white {{ end }}" href="epsg.html">EPSG Database</a></li>
+ <li><a class="nav-link {{ if eq .Page.RelPermalink "/code-patterns.html" }} active {{ else }} text-white {{ end }}" href="code-patterns.html">Code patterns</a></li>
+ <li><a class="nav-link {{ if eq .Page.RelPermalink "/faq.html" }} active {{ else }} text-white {{ end }}" href="faq.html">FAQ</a></li>
+ </ul>
</div>
+ <div class="col">
+ <main class="container">
+ <article>
+ <img src="img/logo.png" class="sis-logo" align="left"/>
+ <p class="page-title">{{ .Title }}</p>
+ {{ block "main" . }}{{ end }}
+ </article>
+ </main>
+ <footer class="footer">
+ <div class="container">
+ <p>
+ Copyright © 2013-{{ now.Year }} The Apache Software Foundation, Licensed under the
+ <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br/>
+ Apache SIS, Apache, the Apache feather logo are trademarks of The Apache Software Foundation.
+ </p>
+ </div>
</footer>
+ </div>
+</div>
-<script src="js/jquery-1.9.1.min.js"></script>
-<script src="js/bootstrap.min.js"></script>
-<!-- for marking links as active in the navbar-menu -->
-<script type="text/javascript">
-const pathname = window.location.pathname
-const current_path = pathname.substring(1, pathname.length)
-const link = $('a[href="' + current_path + '"]')
-if (link !== undefined) {
- link.parents('li,ul').addClass('active')
-}
-</script>
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"
+ integrity="sha384-/bQdsTh/da6pkI1MST/rWKFNjaCP5gBSY4sEBT38Q/9RBh9AH40zEOg7Hlq2THRZ" crossorigin="anonymous"></script>
</body>
</html>
diff --git a/layouts/partials/menu.html b/layouts/partials/menu.html
index eb25415..86d7641 100644
--- a/layouts/partials/menu.html
+++ b/layouts/partials/menu.html
@@ -1,37 +1,61 @@
-<div class="navbar navbar-inverse navbar-fixed-top">
- <div class="navbar-inner">
- <div class="container">
- <a class="brand" href="/index.html"> Apache SIS™</a>
- <div class="nav-collapse">
- <ul class="nav">
- <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown">About<b class="caret"></b></a>
- <ul class="dropdown-menu">
- <li><a href="http://www.apache.org/licenses/">License</a></li>
- <li><a href="mail-lists.html">Mailing Lists</a></li>
- <li><a href="team-list.html">Project Team</a></li>
- </ul>
- </li>
- <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown">Project Documentation<b class="caret"></b></a>
- <ul class="dropdown-menu">
- <li><a href="book/index.html">Developer Guide</a></li>
- <li><a href="apidocs/index.html">Online Javadoc</a></li>
- <li><a href="downloads.html">Downloads</a></li>
- <li><a href="source.html">Checkout Sources</a></li>
- <li><a href="epsg.html">EPSG Database</a></li>
- <li><a href="faq.html">FAQ</a></li>
- <li><a href="https://issues.apache.org/jira/browse/SIS">Issue Tracker</a></li>
- </ul>
- </li>
- <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
- <ul class="dropdown-menu">
- <li><a href="http://www.apache.org">The Foundation</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html">Donate</a></li>
- <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
- <li><a href="http://www.apache.org/security/">Security</a></li>
- </ul>
- </li>
+<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
+ <div class="container-fluid">
+ <a class="navbar-brand" href="/index.html"> Apache SIS™</a>
+ <ul class="navbar-nav me-auto mb-2 mb-md-0">
+ <li class="nav-item dropdown">
+ <a class="nav-link dropdown-toggle" id="menuAbout" data-bs-toggle="dropdown" aria-expanded="false">About</a>
+ <ul class="dropdown-menu" aria-labelledby="menuAbout">
+ <li><a class="dropdown-item" href="http://www.apache.org/licenses/">License</a></li>
+ <li><a class="dropdown-item" href="mail-lists.html">Mailing Lists</a></li>
+ <li><a class="dropdown-item" href="team-list.html">Project Team</a></li>
</ul>
- </div><!-- /.nav-collapse -->
- </div><!-- /.container -->
- </div><!-- /.navbar-inner -->
-</div>
+ </li>
+ <li class="nav-item dropdown">
+ <a class="nav-link dropdown-toggle" id="menuDownload" data-bs-toggle="dropdown" aria-expanded="false">Download</a>
+ <ul class="dropdown-menu" aria-labelledby="menuDownload">
+ <li><a class="dropdown-item" href="downloads.html">Downloads</a></li>
+ <li><a class="dropdown-item" href="source.html">Checkout Sources</a></li>
+ <li><a class="dropdown-item" href="build.html">Build from Sources</a></li>
+ </ul>
+ </li>
+ <li class="nav-item dropdown">
+ <a class="nav-link dropdown-toggle" id="menuDocumentation" data-bs-toggle="dropdown" aria-expanded="false">Documentation</a>
+ <ul class="dropdown-menu" aria-labelledby="menuDocumentation">
+ <li><a class="dropdown-item" href="book/index.html">Developer Guide</a></li>
+ <li><a class="dropdown-item" href="apidocs/index.html">Online Javadoc</a></li>
+ <li><a class="dropdown-item" href="epsg.html">EPSG Database</a></li>
+ <li><a class="dropdown-item" href="tables/CoordinateReferenceSystems.html">Supported CRS</a></li>
+ <li><a class="dropdown-item" href="tables/CoordinateOperationMethods.html">Map Projections</a></li>
+ <li><a class="dropdown-item" href="code-patterns.html">Code Patterns</a></li>
+ <li><a class="dropdown-item" href="faq.html">FAQ</a></li>
+ <li><a class="dropdown-item" href="https://cwiki.apache.org/confluence/display/SIS">Wiki</a></li>
+ </ul>
+ </li>
+ <li class="nav-item dropdown">
+ <a class="nav-link dropdown-toggle" id="menuContribute" data-bs-toggle="dropdown" aria-expanded="false">Contribute</a>
+ <ul class="dropdown-menu" aria-labelledby="menuContribute">
+ <li><a class="dropdown-item" href="contributor.html">New Contributor</a></li>
+ <li><a class="dropdown-item" href="coding-conventions.html">Coding Conventions.</a></li>
+ <li><a class="dropdown-item" href="https://issues.apache.org/jira/browse/SIS">Issue Tracker</a></li>
+ <li><a class="dropdown-item" href="release-management.html">Release management</a></li>
+ </ul>
+ </li>
+ <li class="nav-item dropdown">
+ <a class="nav-link dropdown-toggle" id="menuASF" data-bs-toggle="dropdown" aria-expanded="false">The Foundation</a>
+ <ul class="dropdown-menu" aria-labelledby="menuASF">
+ <li><a class="dropdown-item" href="http://www.apache.org">The Foundation</a></li>
+ <li><a class="dropdown-item" href="http://www.apache.org/foundation/sponsorship.html">Donate</a></li>
+ <li><a class="dropdown-item" href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+ <li><a class="dropdown-item" href="http://www.apache.org/security/">Security</a></li>
+ </ul>
+ </li>
+ </ul>
+ <ul class="navbar-nav ml-auto mb-2 mb-md-0">
+ <li class="nav-item">
+ <a href="https://www.apache.org/events/current-event.html">
+ <img class="apache-con" src="https://www.apache.org/events/current-event-234x60.png" alt="ApacheCon"/>
+ </a>
+ </li>
+ </ul>
+ </div>
+</nav>
diff --git a/layouts/shortcodes/CRS.html b/layouts/shortcodes/CRS.html
new file mode 100644
index 0000000..e4371f7
--- /dev/null
+++ b/layouts/shortcodes/CRS.html
@@ -0,0 +1 @@
+<abbr title="Coordinate Reference System">CRS</abbr>
diff --git a/layouts/shortcodes/ISO.html b/layouts/shortcodes/ISO.html
new file mode 100644
index 0000000..1967b63
--- /dev/null
+++ b/layouts/shortcodes/ISO.html
@@ -0,0 +1 @@
+<abbr title="International Organization for Standardization">ISO</abbr>
diff --git a/layouts/shortcodes/JDBC.html b/layouts/shortcodes/JDBC.html
new file mode 100644
index 0000000..a6f6b18
--- /dev/null
+++ b/layouts/shortcodes/JDBC.html
@@ -0,0 +1 @@
+<abbr title="Java DataBase Connectivity">JDBC</abbr>
diff --git a/layouts/shortcodes/OGC.html b/layouts/shortcodes/OGC.html
new file mode 100644
index 0000000..3e7a6b6
--- /dev/null
+++ b/layouts/shortcodes/OGC.html
@@ -0,0 +1 @@
+<abbr title="Open Geospatial Consortium">OGC</abbr>
diff --git a/layouts/shortcodes/UTC.html b/layouts/shortcodes/UTC.html
new file mode 100644
index 0000000..6796cf3
--- /dev/null
+++ b/layouts/shortcodes/UTC.html
@@ -0,0 +1 @@
+<abbr title="Universal Time Coordinated">UTC</abbr>
diff --git a/layouts/shortcodes/abbr.html b/layouts/shortcodes/abbr.html
deleted file mode 100644
index 79fbfde..0000000
--- a/layouts/shortcodes/abbr.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<!-- Author: Parsia Hakimian https://github.com/parsiya/Hugo-Shortcodes -->
-<!-- abbr HTML tag -->
-
-<abbr title="{{ .Get "title" }}">{{ .Get "text" }}</abbr>
diff --git a/source/_index.md b/source/_index.md
index 87d4e27..f262e80 100644
--- a/source/_index.md
+++ b/source/_index.md
@@ -66,7 +66,6 @@ Following links are for those who wish to contribute to Apache SIS:
* [Build](build.html): build from the source, create the distribution file.
* [Issue tracking][JIRA]: JIRA.
* [Release management](release-management.html) (for release managers)
-* [Web site management](site-management.html) (for release managers and site maintainers)
* [SIS Wiki][wiki] for "drawing board" and roadmap.
[geoapi]: http://www.geoapi.org/
diff --git a/source/code-patterns.md b/source/code-patterns.md
index bbc1d61..ce26706 100644
--- a/source/code-patterns.md
+++ b/source/code-patterns.md
@@ -15,10 +15,11 @@ Recommended code pattern when using the `sis-referencing` module.
The [axis order issue](faq.html#axisOrder) causes lot of confusion,
and developers are sometime tempted to swap their ordinate values in order to comply with some expected axis ordering.
It should never be necessary, since the Apache SIS referencing engine manages axis order transparently — provided that
-the Coordinate Reference System (CRS) definition is accurate. If a code needs to swap ordinates, this is probably an
-indication that the CRS has not been properly defined. Instead than patching the coordinate values, try to make sure
-that the _Source CRS_ (associated to the original data) and the _Target CRS_ (the coordinate space where to perform the
-work) are properly defined, and let the referencing engine performs the conversion from the source to the target CRS.
+the Coordinate Reference System (CRS) definition is accurate.
+If a code needs to swap ordinates, this is probably an indication that the {{% CRS %}} has not been properly defined.
+Instead than patching the coordinate values, try to make sure that the _Source CRS_ (associated to the original data)
+and the _Target CRS_ (the coordinate space where to perform the work) are properly defined,
+and let the referencing engine performs the conversion from the source to the target {{% CRS %}}.
# Coverages {#coverage}
@@ -41,12 +42,12 @@ Recommended code pattern for internationalization.
Geospatial data often cover a wide geographic area, spanning many time zones.
Timezone are sometime specified as metadata in the header of data files to be read,
-or is sometime fixed to UTC by applications managing world-wide data.
+or is sometime fixed to {{% UTC %}} by applications managing world-wide data.
Some Apache SIS objects have `Locale` and `TimeZone` information.
Such locale and timezone are given to `java.text.DateFormat` or `java.util.Calendar` constructors among others.
-When reading dates or timestamps from a JDBC database, always use the `ResultSet` method
-accepting a `Calendar` argument, when such method is available.
+When reading dates or timestamps from a {{% JDBC %}} database,
+always use the `ResultSet` method accepting a `Calendar` argument, when such method is available.
For example prefer the `getTimestamp(int, Calendar)` method instead than `getTimestamp(int)`.
The `Calendar` object should has been created with the appropriate timezone.
@@ -88,8 +89,3 @@ since developers use them for configuring their logging (verbosity, destination,
All logging at `Level.INFO` or above shall be targeted to users or administrators, not to developers.
In particular `Level.SEVERE` shall be reserved for critical errors that compromise the application stability —
it shall not be used for exceptions thrown while parsing user data (file or database).
-
-*[CRS]: Coordinate Reference System
-*[JDBC]: Java DataBase Connectivity
-*[OGC]: Open Geospatial Consortium
-*[UTC]: Universal Time Coordinated
diff --git a/source/coding-conventions.md b/source/coding-conventions.md
index 28b623c..9a61a82 100644
--- a/source/coding-conventions.md
+++ b/source/coding-conventions.md
@@ -23,7 +23,7 @@ as below:
Classes that do not implement an interface are usually not prefixed, even if abstract.
Classes implementing GeoAPI interfaces usually (but not always) begin with `Abstract`, `Default`, `Simple` or `General` prefix.
-* The `Abstract` prefix is used when a class is abstract according {{< abbr title="International Organization for Standardization" text="ISO" >}} specifications — it may or may not be be abstract in the Java sense.
+* The `Abstract` prefix is used when a class is abstract according {{% ISO %}} specifications — it may or may not be be abstract in the Java sense.
* The `General` prefix is used when an implementation is designed for use in the general case,
as opposed to other implementations specialized for a fixed number of dimensions or other conditions.
* Implementations specialized for a fixed number of dimensions are suffixed with `1D`, `2D`, `3D` or `4D` rather than being prefixed.
@@ -75,7 +75,7 @@ import org.opengis.feature.Feature;
* **Indentation:** Use a consistent space indents and never use tabs.
+ Use 4 space indents for Java files.
- + Use 2 space indents for XML files, because {{< abbr title="International Organization for Standardization" text="ISO" >}}/{{< abbr title="Open Geospatial Consortium" text="OGC" >}} XML schemas tend to have a very deep structure.
+ + Use 2 space indents for XML files, because {{% ISO %}}/{{% OGC %}} XML schemas tend to have a very deep structure.
* **Space after keyword:** Put a space after `if`, `else`, `for`, `try`, `catch` and similar keywords
(not after method names).
* **Trailing Whitespaces:** Remove all trailing whitespaces.
diff --git a/source/contributor.md b/source/contributor.md
index 8384d5a..81d268f 100644
--- a/source/contributor.md
+++ b/source/contributor.md
@@ -37,14 +37,14 @@ Apache SIS also provides an introduction in the [Developer guide](book/en/develo
## The ISO/OGC Geospatial Model {#ogc}
SIS builds on the standards developed through a collaboration between the International
-Organization for Standardization ({{< abbr title="International Organization for Standardization" text="ISO" >}}) and the Open Geospatial Consortium ({{< abbr title="Open Geospatial Consortium" text="OGC" >}}).
+Organization for Standardization (ISO) and the Open Geospatial Consortium (OGC).
Contributors to SIS should have at least a basic understanding of the model developed in the
-{{< abbr title="International Organization for Standardization" text="ISO" >}} 19000 series of specifications, starting with the Abstract model and working through the
-_Feature_ model. While the {{< abbr title="International Organization for Standardization" text="ISO" >}} specifications are sold, the {{< abbr title="Open Geospatial Consortium" text="OGC" >}} releases its own, essentially
-identical versions of standards which have evolved from the collaboration. The {{< abbr title="Open Geospatial Consortium" text="OGC" >}} specifications
-are available for the [{{< abbr title="Open Geospatial Consortium" text="OGC" >}} standards and specification][standards] page.
+{{% ISO %}} 19000 series of specifications, starting with the Abstract model and working through the
+_Feature_ model. While the {{% ISO %}} specifications are sold, the {{% OGC %}} releases its own, essentially
+identical versions of standards which have evolved from the collaboration. The {{% OGC %}} specifications
+are available for the [{{% OGC %}} standards and specification][standards] page.
-As time progresses, we hope to develop documentation material to introduce the {{< abbr title="International Organization for Standardization" text="ISO" >}} 19000 specification series.
+As time progresses, we hope to develop documentation material to introduce the {{% ISO %}} 19000 specification series.
Most of the documentation provided by SIS can be found in the [Developer guide](book/en/developer-guide.html).
## Object-Oriented Programming in Java {#java}
@@ -83,7 +83,7 @@ the concept is central to all graphics programming.
## The GeoAPI Interfaces {#geoapi}
SIS is build partially as an implementation of the GeoAPI interfaces. GeoAPI defines a set
-of objects offering particular methods thereby providing an interpretation of the {{< abbr title="International Organization for Standardization" text="ISO" >}}/{{< abbr title="Open Geospatial Consortium" text="OGC" >}}
+of objects offering particular methods thereby providing an interpretation of the {{% ISO %}}/{{% OGC %}}
standards in the Java language. GeoAPI therefore defines the core of the model implemented
by Apache SIS.
diff --git a/source/faq.md b/source/faq.md
index b0e6d37..cc64514 100644
--- a/source/faq.md
+++ b/source/faq.md
@@ -52,26 +52,26 @@ public class MyApp {
The operation _methods_ (including, but not limited to, map projections) supported by Apache SIS
are listed in the [Coordinate Operation Methods](tables/CoordinateOperationMethods.html) page.
The amount of map projection methods is relatively small,
-but the amount of _projected {{< abbr title="Coordinate Reference System" text="CRS" >}}_ that we can build from them can be very large.
+but the amount of _projected {{% CRS %}}_ that we can build from them can be very large.
For example with only three family of methods (_Cylindrical Mercator_, _Transverse Mercator_ and _Lambert Conic Conformal_)
-used with different parameter values, we can cover thousands of projected {{< abbr title="Coordinate Reference System" text="CRS" >}} listed in the EPSG geodetic dataset.
+used with different parameter values, we can cover thousands of projected {{% CRS %}} listed in the EPSG geodetic dataset.
In order to use a map projection method, we need to know the value to assign to the projection parameters.
-For convenience, thousands of projected {{< abbr title="Coordinate Reference System" text="CRS" >}} with pre-defined parameter values are are assigned a unique identifier.
+For convenience, thousands of projected {{% CRS %}} with pre-defined parameter values are are assigned a unique identifier.
A well-known source of such definitions is the EPSG geodetic dataset, but other authorities also exist.
-The predefined {{< abbr title="Coordinate Reference System" text="CRS" >}} known to Apache SIS are listed in the
+The predefined {{% CRS %}} known to Apache SIS are listed in the
[Coordinate Reference Systems](tables/CoordinateReferenceSystems.html) page.
### What is the axis order issue and how is it addressed? {#axisOrder}
-The axis order is specified by the authority (typically a national agency) defining the Coordinate Reference System ({{< abbr title="Coordinate Reference System" text="CRS" >}}).
-The order depends on the {{< abbr title="Coordinate Reference System" text="CRS" >}} type and the country defining the {{< abbr title="Coordinate Reference System" text="CRS" >}}.
-In the case of geographic {{< abbr title="Coordinate Reference System" text="CRS" >}}, the (_latitude_, _longitude_) axis order is widely used by geographers and pilots for centuries.
-However software developers tend to consistently use the (_x_, _y_) order for every kind of {{< abbr title="Coordinate Reference System" text="CRS" >}}.
-Those different practices resulted in contradictory definitions of axis order for almost every {{< abbr title="Coordinate Reference System" text="CRS" >}} of kind `GeographicCRS`,
+The axis order is specified by the authority (typically a national agency) defining the Coordinate Reference System ({{% CRS %}}).
+The order depends on the {{% CRS %}} type and the country defining the {{% CRS %}}.
+In the case of geographic {{% CRS %}}, the (_latitude_, _longitude_) axis order is widely used by geographers and pilots for centuries.
+However software developers tend to consistently use the (_x_, _y_) order for every kind of {{% CRS %}}.
+Those different practices resulted in contradictory definitions of axis order for almost every {{% CRS %}} of kind `GeographicCRS`,
for some `ProjectedCRS` in the South hemisphere (South Africa, Australia, _etc._) and for some polar projections among others.
-For any {{< abbr title="Coordinate Reference System" text="CRS" >}} identified by an EPSG code, the official axis order can be checked on the
+For any {{% CRS %}} identified by an EPSG code, the official axis order can be checked on the
official EPSG registry at [https://epsg.org/](https://epsg.org/)
(not to be confused with other sites having "epsg" in their name,
but actually unrelated to the organization in charge of EPSG definitions):
@@ -79,9 +79,9 @@ click on the _"Retrieve by code"_ link and enter the numerical code.
Then click on the _"View"_ link on the right side,
and click on the _"+"_ symbol of the left side of _"Axes"_.
-Recent {{< abbr title="Open Geospatial Consortium" text="OGC" >}} standards mandate the use of axis order as defined by the authority.
-Oldest {{< abbr title="Open Geospatial Consortium" text="OGC" >}} standards used the (_x_, _y_) axis order instead, ignoring any authority specification.
-Among the legacy {{< abbr title="Open Geospatial Consortium" text="OGC" >}} standards that used the non-conform axis order,
+Recent {{% OGC %}} standards mandate the use of axis order as defined by the authority.
+Oldest {{% OGC %}} standards used the (_x_, _y_) axis order instead, ignoring any authority specification.
+Among the legacy {{% OGC %}} standards that used the non-conform axis order,
an influent one is version 1 of the _Well Known Text_ (WKT) format specification.
According that widely-used format, WKT definitions without explicit `AXIS[...]` elements
shall default to (_longitude_, _latitude_) or (_x_, _y_) axis order.
@@ -90,7 +90,7 @@ and should contain an explicit `ORDER[...]` sub-element for making the intended
Many software products still use the old (_x_, _y_) axis order, sometime because it is easier to implement.
But Apache SIS rather defaults to axis order _as defined by the authority_ (except when parsing a WKT 1 definition),
-but allows changing axis order to the (_x_, _y_) order after {{< abbr title="Coordinate Reference System" text="CRS" >}} creation.
+but allows changing axis order to the (_x_, _y_) order after {{% CRS %}} creation.
This change can be done with the following code:
{{< highlight java >}}
@@ -118,7 +118,7 @@ The EPSG code of some UTM projections can be determined as below, where _zone_ i
Note that the above list is incomplete. See the EPSG database for additional UTM definitions
(WGS 72BE, SIRGAS 2000, SIRGAS 1995, SAD 69, ETRS 89, _etc._, most of them defined only for a few zones).
-Once the EPSG code of the UTM projection has been determined, the {{< abbr title="Coordinate Reference System" text="CRS" >}} can be obtained as in the example below:
+Once the EPSG code of the UTM projection has been determined, the {{% CRS %}} can be obtained as in the example below:
{{< highlight java >}}
int code = 32600 + zone; // For WGS84 northern hemisphere
@@ -144,29 +144,29 @@ Those parameter values are usually inferred from the datum, but Apache SIS allow
### How can I identify the projection kind of a CRS? {#projectionKind}
-The "kind of projection" (Mercator, Lambert Conformal, _etc._) is called _Operation Method_ in {{< abbr title="International Organization for Standardization" text="ISO" >}} 19111 terminology.
-One approach is to check the value of `OperationMethod.getName()` and compare them against the {{< abbr title="Open Geospatial Consortium" text="OGC" >}} or EPSG names
+The "kind of projection" (Mercator, Lambert Conformal, _etc._) is called _Operation Method_ in {{% ISO %}} 19111 terminology.
+One approach is to check the value of `OperationMethod.getName()` and compare them against the {{% OGC %}} or EPSG names
listed in the [Coordinate Operation Methods](tables/CoordinateOperationMethods.html) page.
### How do I get the EPSG code of an existing CRS? {#lookupEPSG}
The _identifier_ of a Coordinate Reference System (CRS) object can be obtained by the `getIdentifiers()` method,
which usually return a collection of zero or one element.
-If the {{< abbr title="Coordinate Reference System" text="CRS" >}} has been created from a Well Known Text (WKT) parsing
+If the {{% CRS %}} has been created from a Well Known Text (WKT) parsing
and the WKT ends with an `AUTHORITY["EPSG", "xxxx"]` (WKT version 1) or `ID["EPSG", xxxx]` (WKT version 2) element,
then the identifier (an EPSG numerical code in this example) is the _xxxx_ value in that element.
-If the {{< abbr title="Coordinate Reference System" text="CRS" >}} has been created from the EPSG geodetic dataset (for example by a call to `CRS.forCode("EPSG:xxxx")`),
+If the {{% CRS %}} has been created from the EPSG geodetic dataset (for example by a call to `CRS.forCode("EPSG:xxxx")`),
then the identifier is the _xxxx_ code given to that method.
-If the {{< abbr title="Coordinate Reference System" text="CRS" >}} has been created in another way, then the collection returned by the `getIdentifiers()` method
-may or may not be empty depending if the program that created the {{< abbr title="Coordinate Reference System" text="CRS" >}} took the responsibility of providing identifiers.
+If the {{% CRS %}} has been created in another way, then the collection returned by the `getIdentifiers()` method
+may or may not be empty depending if the program that created the {{% CRS %}} took the responsibility of providing identifiers.
If the collection of identifiers is empty, the most effective fix is to make sure that the WKT
-contains an `AUTHORITY` or `ID` element (assuming that the {{< abbr title="Coordinate Reference System" text="CRS" >}} was parsed from a WKT).
+contains an `AUTHORITY` or `ID` element (assuming that the {{% CRS %}} was parsed from a WKT).
If this is not possible, then the `org.apache.sis.referencing.IdentifiedObjects` class contains some convenience methods which may help.
-In the following example, the call to `lookupEPSG(...)` will scan the EPSG database for a {{< abbr title="Coordinate Reference System" text="CRS" >}} equals
+In the following example, the call to `lookupEPSG(...)` will scan the EPSG database for a {{% CRS %}} equals
(ignoring metadata) to the given one. *Note that this scan is sensitive to axis order.*
-Most geographic {{< abbr title="Coordinate Reference System" text="CRS" >}} in the EPSG database are declared with (_latitude_, _longitude_) axis order.
-Consequently if the given {{< abbr title="Coordinate Reference System" text="CRS" >}} has (_longitude_, _latitude_) axis order, then the scan is likely to find no match.
+Most geographic {{% CRS %}} in the EPSG database are declared with (_latitude_, _longitude_) axis order.
+Consequently if the given {{% CRS %}} has (_longitude_, _latitude_) axis order, then the scan is likely to find no match.
{{< highlight java >}}
CoordinateReferenceSystem myCRS = ...;
@@ -178,12 +178,12 @@ if (identifier != null) {
### How do I get the "urn:ogc:def:crs:..." URN of an existing CRS? {#lookupURN}
-{{< abbr title="Open Geospatial Consortium" text="OGC" >}} defines URN for {{< abbr title="Coordinate Reference System" text="CRS" >}} identifiers, for example `"urn:ogc:def:crs:epsg:7.1:4326"`
+{{% OGC %}} defines URN for {{% CRS %}} identifiers, for example `"urn:ogc:def:crs:epsg:7.1:4326"`
where `"7.1"` is the version of the EPSG database used.
URN may or may not be present in the set of identifiers returned by `crs.getIdentifiers()`.
-In many cases (especially if the {{< abbr title="Coordinate Reference System" text="CRS" >}} was parsed from a Well Known Text), only simple identifiers like `"EPSG:4326"` are provided.
+In many cases (especially if the {{% CRS %}} was parsed from a Well Known Text), only simple identifiers like `"EPSG:4326"` are provided.
An easy way to build the full URN is to use the code below.
-That example may scan the EPSG database for finding the information if it was not explicitely provided in the given {{< abbr title="Coordinate Reference System" text="CRS" >}}.
+That example may scan the EPSG database for finding the information if it was not explicitely provided in the given {{% CRS %}}.
{{< highlight java >}}
CoordinateReferenceSystem myCRS = ...;
@@ -192,26 +192,26 @@ String urn = IdentifiedObjects.lookupURN(myCRS);
### Can I rely on IdentifiedObjects.lookupEPSG(...) to work correctly as the inverse of CRS.forCode(...)? {#lookupReliability}
-For {{< abbr title="Coordinate Reference System" text="CRS" >}} created from the EPSG geodetic dataset, usually yes.
-Note however that `IdentifiedObjects.getIdentifier(...)` is cheaper and insensitive to the details of {{< abbr title="Coordinate Reference System" text="CRS" >}} definition,
-since it never query the database. But it works only if the {{< abbr title="Coordinate Reference System" text="CRS" >}} declares explicitly its code,
-which is the case for {{< abbr title="Coordinate Reference System" text="CRS" >}} created from the EPSG database or parsed from a Well Known Text (WKT) having an `AUTHORITY` or `ID` element.
+For {{% CRS %}} created from the EPSG geodetic dataset, usually yes.
+Note however that `IdentifiedObjects.getIdentifier(...)` is cheaper and insensitive to the details of {{% CRS %}} definition,
+since it never query the database. But it works only if the {{% CRS %}} declares explicitly its code,
+which is the case for {{% CRS %}} created from the EPSG database or parsed from a Well Known Text (WKT) having an `AUTHORITY` or `ID` element.
The `lookupEPSG(...)` method on the other hand is robust to erroneous code declaration,
-since it always compares the {{< abbr title="Coordinate Reference System" text="CRS" >}} with the database content.
+since it always compares the {{% CRS %}} with the database content.
But it may fail if there is slight mismatch (for example rounding errors in projection parameters)
-between the supplied {{< abbr title="Coordinate Reference System" text="CRS" >}} and the {{< abbr title="Coordinate Reference System" text="CRS" >}} found in the database.
+between the supplied {{% CRS %}} and the {{% CRS %}} found in the database.
### How can I determine if two CRS are "functionally" equal? {#equalsIgnoreMetadata}
Two Coordinate Reference Systems may not be considered equal if they are associated to different metadata
-(name, identifiers, scope, domain of validity, remarks), even though they represent the same logical {{< abbr title="Coordinate Reference System" text="CRS" >}}.
-In order to test if two {{< abbr title="Coordinate Reference System" text="CRS" >}} are functionally equivalent, use `Utilities.equalsIgnoreMetadata(myFirstCRS, mySecondCRS)`.
+(name, identifiers, scope, domain of validity, remarks), even though they represent the same logical {{% CRS %}}.
+In order to test if two {{% CRS %}} are functionally equivalent, use `Utilities.equalsIgnoreMetadata(myFirstCRS, mySecondCRS)`.
### Are CRS objects safe for use as keys in HashMap? {#crsHashCode}
Yes, every classes defined in the `org.apache.sis.referencing.crs`, `cs` and `datum` packages
define properly their `equals(Object)` and `hashCode()` methods.
-The Apache SIS library itself uses {{< abbr title="Coordinate Reference System" text="CRS" >}} objects in `HashMap`-like containers for caching purpose.
+The Apache SIS library itself uses {{% CRS %}} objects in `HashMap`-like containers for caching purpose.
## Coordinate transformations {#transforms}
@@ -259,7 +259,7 @@ ESRI also defines a _"Stereographic"_ projection, which is actually an oblique p
The Well Known Text (WKT) specification has been interpreted in different ways by different implementors.
One subtle issue is the angular units of prime meridian and projection parameter values.
The WKT 1 specification clary states: _"If the `PRIMEM` clause occurs inside a `GEOGCS`,
-then the longitude units will match those of the geographic coordinate system"_ (source: {{< abbr title="Open Geospatial Consortium" text="OGC" >}} 01-009).
+then the longitude units will match those of the geographic coordinate system"_ (source: {{% OGC %}} 01-009).
However ESRI and GDAL among others unconditionally use decimal degrees, ignoring this part of the WKT specification.
This problem can be identified by WKT inspection as in the following extract:
@@ -284,15 +284,15 @@ In order to get the intended result, there is a choice:
* Or ask explicitely Apache SIS to parse the WKT using the ESRI or GDAL conventions, by specifying the
`Convention.WKT1_COMMON_UNITS` enumeration value to `WKTFormat` in the `org.apache.sis.io.wkt` package.
-Note that the GeoPackage standard explicitely requires {{< abbr title="Open Geospatial Consortium" text="OGC" >}} 01-009 compliant WKT
-and the new WKT 2 standard also follows the {{< abbr title="Open Geospatial Consortium" text="OGC" >}} 01-009 interpretation.
+Note that the GeoPackage standard explicitely requires {{% OGC %}} 01-009 compliant WKT
+and the new WKT 2 standard also follows the {{% OGC %}} 01-009 interpretation.
The default Apache SIS behavior is consistent with those two standards.
### I verified all the above and still have an error of about one kilometer. {#BursaWolf}
Coordinate Reference Systems (CRS) approximate the Earth’s shape by an ellipsoid.
Different ellipsoids (actually different _datum_) are used in different countries of the world and at different time in history.
-When transforming coordinates between two {{< abbr title="Coordinate Reference System" text="CRS" >}} using the same datum, no Bursa-Wolf parameters are needed.
+When transforming coordinates between two {{% CRS %}} using the same datum, no Bursa-Wolf parameters are needed.
But when the transformation involves a change of datum, the referencing module needs some information about how to perform that datum shift.
There is many way to specify how to perform a datum shift, and most of them are only approximation.
@@ -305,22 +305,22 @@ If the CRS are parsed from a WKT string, make sure that the string contains the
The results of coordinate transformations when running in a web application container (JBoss, _etc._)
may be a few meters off compared to coordinates transformations in an IDE (NetBeans, Eclipse, _etc._).
-The results depend on whether an EPSG factory is available on the classpath, **regardless how the {{< abbr title="Coordinate Reference System" text="CRS" >}} were created**,
-because the EPSG factory specifies explicitly the coordinate operation to apply for some pairs of {{< abbr title="Coordinate Reference System" text="CRS" >}}.
+The results depend on whether an EPSG factory is available on the classpath, **regardless how the {{% CRS %}} were created**,
+because the EPSG factory specifies explicitly the coordinate operation to apply for some pairs of {{% CRS %}}.
In such case, the coordinate operation specified by EPSG has precedence over the Burwa-Wolf parameters
(the `TOWGS84` element in version 1 of Well Known Text format).
A connection to the EPSG database may have been established for one environment
-(typically the JEE one) and not the other (typically the IDE one) because only the former has {{< abbr title="Java DataBase Connectivity" text="JDBC" >}} driver.
+(typically the JEE one) and not the other (typically the IDE one) because only the former has {{% JDBC %}} driver.
The recommended way to uniformize the results is to add in the second environment (IDE)
-the same {{< abbr title="Java DataBase Connectivity" text="JDBC" >}} driver than the one available in the first environment (JEE).
+the same {{% JDBC %}} driver than the one available in the first environment (JEE).
It should be one of the following: JavaDB (a.k.a. Derby), HSQL or PostgreSQL.
Make sure that the [connection parameters to the EPSG database](epsg.html) are also the same.
### Can I always expect a transform from an arbitrary CRS to WGS84 to succeed? {#toWGS84}
-For 2D horizontal {{< abbr title="Coordinate Reference System" text="CRS" >}} created from the EPSG database, calls to `CRS.findOperation(...)` should generally succeed.
-For 3D {{< abbr title="Coordinate Reference System" text="CRS" >}} having any kind of height different than ellipsoidal height, or for a 2D {{< abbr title="Coordinate Reference System" text="CRS" >}} of type `EngineeringCRS`, it may fail.
+For 2D horizontal {{% CRS %}} created from the EPSG database, calls to `CRS.findOperation(...)` should generally succeed.
+For 3D {{% CRS %}} having any kind of height different than ellipsoidal height, or for a 2D {{% CRS %}} of type `EngineeringCRS`, it may fail.
Note however that even if the call to `CRS.findOperation(...)` succeed, the call to `MathTransform.transform(...)` may fail
or produce `NaN` or infinity values if the coordinate to transform is far from the domain of validity.
@@ -332,9 +332,9 @@ or produce `NaN` or infinity values if the coordinate to transform is far from t
Developers do not need to implement directly the metadata interfaces.
If the underlying storage framework can access metadata from their class and attribute names (either Java names
-or {{< abbr title="International Organization for Standardization" text="ISO" >}}/{{< abbr title="Open Geospatial Consortium" text="OGC" >}} names), then it is possible to implement a single engine accessing any kind of metadata and let the
+or {{% ISO %}}/{{% OGC %}} names), then it is possible to implement a single engine accessing any kind of metadata and let the
Java Virtual Machine implements the GeoAPI interfaces on-the-fly, using the `java.lang.reflect.Proxy` class.
-See the `Proxy` Javadoc for details, keeping in mind that the {{< abbr title="International Organization for Standardization" text="ISO" >}}/{{< abbr title="Open Geospatial Consortium" text="OGC" >}} name of a `java.lang.Class` or
+See the `Proxy` Javadoc for details, keeping in mind that the {{% ISO %}}/{{% OGC %}} name of a `java.lang.Class` or
`java.lang.reflect.Method` object can be obtained as below:
{{< highlight java >}}
diff --git a/source/faq_fr.md b/source/faq_fr.md
index befceda..4837b3f 100644
--- a/source/faq_fr.md
+++ b/source/faq_fr.md
@@ -65,13 +65,13 @@ Les systèmes de coordonnées prédéfinis dans Apache SIS sont listés à la pa
### Qu’est ce que le problème d’ordre des axes et comment est il abordé ? {#axisOrder}
L’ordre des axes est spécifié par l’autorité (typiquement un organisme public) qui défini les Systèmes de Référence des Coordonnées (CRS).
-L’ordre dépend du type de {{< abbr title="Coordinate Reference System" text="CRS" >}} et du pays qui définit le {{< abbr title="Coordinate Reference System" text="CRS" >}}.
-Dans le cas d’un {{< abbr title="Coordinate Reference System" text="CRS" >}} géographique, l’ordre des axes (_latitude_, _longitude_) est largement répandu chez les géographes et les pilotes depuis des siècles.
-Toutefois certains développeurs de logiciels ont tendance à toujours utiliser l’ordre (_x_, _y_) pour tous les {{< abbr title="Coordinate Reference System" text="CRS" >}}.
-Ces pratiques différentes ont conduit à des définitions contradictoires d’ordre des axes pour presque tous les {{< abbr title="Coordinate Reference System" text="CRS" >}} de type `GeographicCRS`,
+L’ordre dépend du type de {{% CRS %}} et du pays qui définit le {{% CRS %}}.
+Dans le cas d’un {{% CRS %}} géographique, l’ordre des axes (_latitude_, _longitude_) est largement répandu chez les géographes et les pilotes depuis des siècles.
+Toutefois certains développeurs de logiciels ont tendance à toujours utiliser l’ordre (_x_, _y_) pour tous les {{% CRS %}}.
+Ces pratiques différentes ont conduit à des définitions contradictoires d’ordre des axes pour presque tous les {{% CRS %}} de type `GeographicCRS`,
pour certains `ProjectedCRS` de l’hémisphère sud (Afrique de sud, Australie, _etc._) et pour certaines projections polaires entre autre.
-Pour chaque {{< abbr title="Coordinate Reference System" text="CRS" >}} identifié par un code EPSG, l’ordre officiel des axes peut être vérifié avec
+Pour chaque {{% CRS %}} identifié par un code EPSG, l’ordre officiel des axes peut être vérifié avec
le registre EPSG à l’adresse [https://epsg.org/](https://epsg.org/)
(à ne pas confondre avec d’autres sites ayant « epsg » dans leur nom
mais qui sont sans aucune relation avec l’organisme en charge des définitions EPSG) :
@@ -79,9 +79,9 @@ Cliquez sur le lien _« Retrieve by code »_ et entrez le code numérique.
Cliquez ensuite sur le lien _« View »_ de la partie droite
et cliquez sur le symbole _« + »_ à gauche de _« Axes »_.
-Les standards {{< abbr title="Open Geospatial Consortium" text="OGC" >}} récents stipulent que l’ordre des axes est celui défini par l’autorité.
-Les standards {{< abbr title="Open Geospatial Consortium" text="OGC" >}} plus anciens utilisaient l’ordre des axes (_x_, _y_), ignorant la définition de l’autorité.
-Parmi les standards {{< abbr title="Open Geospatial Consortium" text="OGC" >}} obsolètes qui utilisent un ordre des axes non-conforme,
+Les standards {{% OGC %}} récents stipulent que l’ordre des axes est celui défini par l’autorité.
+Les standards {{% OGC %}} plus anciens utilisaient l’ordre des axes (_x_, _y_), ignorant la définition de l’autorité.
+Parmi les standards {{% OGC %}} obsolètes qui utilisent un ordre des axes non-conforme,
l’un des plus influent est la version 1 de la spécification _Well Known Text_ (WKT).
Selon ce format très utilisé, les définitions WKT sans éléments `AXIS[...]`
doivent par défaut être dans l’ordre (_longitude_, _latitude_) ou (_x_, _y_).
@@ -90,7 +90,7 @@ et doivent contenir explicitement le sous-élément `ORDER[...]` pour appuyer l
Beaucoup de logiciels utilisent toujours l’ancien ordre des axes (_x_, _y_), parfois parce qu’il est plus simple à implémenter.
Mais Apache SIS suit l’ordre des axes _tel que défini par l’autorité_ (à l’exception de la lecture de fichier WKT 1).
-Il permet toutefois de changer l’ordre des axes après la création d’un {{< abbr title="Coordinate Reference System" text="CRS" >}}.
+Il permet toutefois de changer l’ordre des axes après la création d’un {{% CRS %}}.
Ce changement se fait avec le code suivant :
{{< highlight java >}}
@@ -119,7 +119,7 @@ où _zone_ est un nombre de 1 à 60 inclusif (sauf spécifié autrement) :
Notez que la liste ci-dessus est incomplète. Voir la base EPSG pour d’avantages de définitions UTM
(WGS 72BE, SIRGAS 2000, SIRGAS 1995, SAD 69, ETRS 89, _etc._, la plupart définissent quelques zones).
-Une fois que le code EPSG de la projection UTM est déterminé, le {{< abbr title="Coordinate Reference System" text="CRS" >}} peut être obtenu comme dans l’exemple ci-dessous:
+Une fois que le code EPSG de la projection UTM est déterminé, le {{% CRS %}} peut être obtenu comme dans l’exemple ci-dessous:
{{< highlight java >}}
int code = 32600 + zone; // Pour l’hémisphère nord WGS84
@@ -145,29 +145,29 @@ Ces paramètres sont généralement déduit du référentiel, mais Apache SIS au
### Comment puis-je identifier le type de projection d’un CRS ? {#projectionKind}
-Le terme « type de projection » (Mercator, Lambert Conformal, _etc._) est appelé _Operation Method_ dans la terminologie {{< abbr title="International Organization for Standardization" text="ISO" >}} 19111.
-Une approche possible est de vérifier la valeur de `OperationMethod.getName()` et de comparer avec les noms {{< abbr title="Open Geospatial Consortium" text="OGC" >}} et EPSG
+Le terme « type de projection » (Mercator, Lambert Conformal, _etc._) est appelé _Operation Method_ dans la terminologie {{% ISO %}} 19111.
+Une approche possible est de vérifier la valeur de `OperationMethod.getName()` et de comparer avec les noms {{% OGC %}} et EPSG
listés à la page [Coordinate Operation Methods](tables/CoordinateOperationMethods.html).
### Comment obtenir le code EPSG d’un CRS existant ? {#lookupEPSG}
-La propriété _identifiant_ d’un {{< abbr title="Coordinate Reference System" text="CRS" >}} peut être obtenue par la méthode `getIdentifiers()`
+La propriété _identifiant_ d’un {{% CRS %}} peut être obtenue par la méthode `getIdentifiers()`
qui retourne une collection de zéro ou un élément.
-Si le {{< abbr title="Coordinate Reference System" text="CRS" >}} a été créé à partir d’un _Well Known Text_ (WKT)
+Si le {{% CRS %}} a été créé à partir d’un _Well Known Text_ (WKT)
et que le WKT se termine avec un élément `AUTHORITY["EPSG", "xxxx"]` (WKT version 1) ou `ID["EPSG", xxxx]` (WKT version 2,
alors l’identifiant (un code numérique EPSG dans cet exemple) sera le _xxxx_ de cet élément.
-Si le {{< abbr title="Coordinate Reference System" text="CRS" >}} a été créé à partir de la base EPSG (par exemple avec l’appelle à `CRS.forCode("EPSG:xxxx")`),
+Si le {{% CRS %}} a été créé à partir de la base EPSG (par exemple avec l’appelle à `CRS.forCode("EPSG:xxxx")`),
alors l’identifiant est le code _xxxx_ donné à la méthode.
-Si le {{< abbr title="Coordinate Reference System" text="CRS" >}} a été créé d’une autre façon, alors la collection retournée par la méthode `getIdentifiers()`
-pourra être vide dans le cas où le programme qui a créé le {{< abbr title="Coordinate Reference System" text="CRS" >}} a aussi pris la responsabilité de fournir les identifiants.
+Si le {{% CRS %}} a été créé d’une autre façon, alors la collection retournée par la méthode `getIdentifiers()`
+pourra être vide dans le cas où le programme qui a créé le {{% CRS %}} a aussi pris la responsabilité de fournir les identifiants.
Si la collection d’identifiants est vide, la méthode la plus efficace de le corriger est de s’assurer que le WKT
-contient un élément `AUTHORITY` ou `ID` (en supposant que le {{< abbr title="Coordinate Reference System" text="CRS" >}} vient d’un WKT).
+contient un élément `AUTHORITY` ou `ID` (en supposant que le {{% CRS %}} vient d’un WKT).
Si ce n’est pas possible, alors la classe `org.apache.sis.referencing.IdentifiedObjects` contient des méthodes utilitaires qui peuvent aider
-Dans l’exemple suivant, l’appel à `lookupEPSG(...)` va parcourir la base EPSG pour un {{< abbr title="Coordinate Reference System" text="CRS" >}} équivalent (en ignorant les métadonnées).
+Dans l’exemple suivant, l’appel à `lookupEPSG(...)` va parcourir la base EPSG pour un {{% CRS %}} équivalent (en ignorant les métadonnées).
*Attention, cette recherche est sensible à l’ordre des axes.*
-La plupart des {{< abbr title="Coordinate Reference System" text="CRS" >}} géographiques de la base EPSG sont déclarés avec l’ordre des axes (_latitude_, _longitude_).
-En conséquence, si le {{< abbr title="Coordinate Reference System" text="CRS" >}} possède un ordre des axes (_longitude_, _latitude_), la recherche a toutes les chances de ne pas trouver de résultats.
+La plupart des {{% CRS %}} géographiques de la base EPSG sont déclarés avec l’ordre des axes (_latitude_, _longitude_).
+En conséquence, si le {{% CRS %}} possède un ordre des axes (_longitude_, _latitude_), la recherche a toutes les chances de ne pas trouver de résultats.
{{< highlight java >}}
CoordinateReferenceSystem myCRS = ...;
@@ -179,10 +179,10 @@ if (identifier != null) {
### Comment obtenir l’URN « urn:ogc:def:crs:... » d’un CRS existant ? {#lookupURN}
-L’{{< abbr title="Open Geospatial Consortium" text="OGC" >}} définit les URN pour les identifiants de {{< abbr title="Coordinate Reference System" text="CRS" >}}, par exemple `"urn:ogc:def:crs:epsg:7.1:4326"`
+L’{{% OGC %}} définit les URN pour les identifiants de {{% CRS %}}, par exemple `"urn:ogc:def:crs:epsg:7.1:4326"`
avec `"7.1"` comme version de la base EPSG utilisée.
Les URN peuvent ou non être présentes dans la collection d’identifiants retournée par `crs.getIdentifiers()`.
-Dans beaucoup de cas (principalement quand le {{< abbr title="Coordinate Reference System" text="CRS" >}} provient d’un _Well Known Text_), seul des identifiants simples comme `"EPSG:4326"` sont présents.
+Dans beaucoup de cas (principalement quand le {{% CRS %}} provient d’un _Well Known Text_), seul des identifiants simples comme `"EPSG:4326"` sont présents.
Une façon simple de construire une URN complète est d’utiliser le code ci-dessous.
Cet exemple peut avoir à parcourir la base EPSG afin de trouver les informations qui n’apparaissent pas explicitement dans `myCRS`.
@@ -193,25 +193,25 @@ String urn = IdentifiedObjects.lookupURN(myCRS);
### Puis-je m’appuyer sur IdentifiedObjects.lookupEPSG(...) comme inverse de CRS.forCode(...) ? {#lookupReliability}
-Pour les {{< abbr title="Coordinate Reference System" text="CRS" >}} créés avec la base EPSG, en général oui.
-À noter toutefois que `IdentifiedObjects.getIdentifier(...)` est moins riche et insensible aux détails de la définition du {{< abbr title="Coordinate Reference System" text="CRS" >}}
-car il n’interroge pas la base de données EPSG. Il marche uniquement si le {{< abbr title="Coordinate Reference System" text="CRS" >}} déclare explicitement son code
-ce qui est le cas des {{< abbr title="Coordinate Reference System" text="CRS" >}} créés à partir de la base EPSG ou lus à partir d’un _Well Known Text_ (WKT) avec un élément `AUTHORITY` ou `ID`.
-La méthode `lookupEPSG(...)` à l’inverse est plus robuste contre les erreurs de déclaration de code car elle compare toujours le {{< abbr title="Coordinate Reference System" text="CRS" >}} avec celui de la base.
+Pour les {{% CRS %}} créés avec la base EPSG, en général oui.
+À noter toutefois que `IdentifiedObjects.getIdentifier(...)` est moins riche et insensible aux détails de la définition du {{% CRS %}}
+car il n’interroge pas la base de données EPSG. Il marche uniquement si le {{% CRS %}} déclare explicitement son code
+ce qui est le cas des {{% CRS %}} créés à partir de la base EPSG ou lus à partir d’un _Well Known Text_ (WKT) avec un élément `AUTHORITY` ou `ID`.
+La méthode `lookupEPSG(...)` à l’inverse est plus robuste contre les erreurs de déclaration de code car elle compare toujours le {{% CRS %}} avec celui de la base.
Elle peut échouer s’il y a une légère différence (par exemple d’arrondie dans les paramètres)
-entre le {{< abbr title="Coordinate Reference System" text="CRS" >}} fourni et le {{< abbr title="Coordinate Reference System" text="CRS" >}} trouvé dans la base de données.
+entre le {{% CRS %}} fourni et le {{% CRS %}} trouvé dans la base de données.
### Comment déterminer si deux CRS sont « fonctionnellement » égaux ? {#equalsIgnoreMetadata}
-Deux {{< abbr title="Coordinate Reference System" text="CRS" >}} peuvent ne pas être considérés égaux s’ils sont associés à des métadonnées différentes
-(nom, identifiant, domaine d’usage, domaine de validité, remarque), même s’ils représentent mathématiquement le même {{< abbr title="Coordinate Reference System" text="CRS" >}}.
-Afin de tester si deux {{< abbr title="Coordinate Reference System" text="CRS" >}} sont fonctionnellement équivalents, utilisez la méthode `Utilities.equalsIgnoreMetadata(myFirstCRS, mySecondCRS)`.
+Deux {{% CRS %}} peuvent ne pas être considérés égaux s’ils sont associés à des métadonnées différentes
+(nom, identifiant, domaine d’usage, domaine de validité, remarque), même s’ils représentent mathématiquement le même {{% CRS %}}.
+Afin de tester si deux {{% CRS %}} sont fonctionnellement équivalents, utilisez la méthode `Utilities.equalsIgnoreMetadata(myFirstCRS, mySecondCRS)`.
### Est-ce que les CRS sont utilisables comme clé dans un HashMap ? {#crsHashCode}
Oui, toutes les classes définies dans les paquets `org.apache.sis.referencing.crs`, `cs` et `datum`
définissent leurs propres méthodes `equals(Object)` et `hashCode()`.
-La bibliothèque Apache SIS utilise elle-même les objets {{< abbr title="Coordinate Reference System" text="CRS" >}} dans des `Map` à des fins de cache.
+La bibliothèque Apache SIS utilise elle-même les objets {{% CRS %}} dans des `Map` à des fins de cache.
## Transformation de coordonnées {#transforms}
@@ -222,7 +222,7 @@ Les développeurs ont tendance à présumer que l’ordre des axes est (_x_, _y
mais les géographes et pilotes utilisent l’ordre (_latitude_, _longitude_) depuis des siècles
et la base de données EPSG définit les systèmes de coordonnées de cette façon.
Si une transformation de coordonnées semble produire des valeurs complètement fausses,
-la première chose à faire est d’afficher les {{< abbr title="Coordinate Reference System" text="CRS" >}} source et cible :
+la première chose à faire est d’afficher les {{% CRS %}} source et cible :
{{< highlight java >}}
System.out.println(sourceCRS);
@@ -230,7 +230,7 @@ System.out.println(targetCRS);
{{< / highlight >}}
Une attention particulière doit être portée à l’ordre des éléments `AXIS`.
-Dans l’exemple ci-dessous, le {{< abbr title="Coordinate Reference System" text="CRS" >}} stipule clairement l’ordre (_latitude_, _longitude_) :
+Dans l’exemple ci-dessous, le {{% CRS %}} stipule clairement l’ordre (_latitude_, _longitude_) :
{{< highlight text >}}
GeodeticCRS["WGS 84",
@@ -259,7 +259,7 @@ ESRI définit aussi une projection _« Stereographic »_ qui est en réalité
La spécification _Well Known Text_ (WKT) a été interprétée de différentes façons en fonction des implémentations logicielles.
Un problème subtil vient des unités d’angles pour le méridien d’origine et les paramètres de projection.
La spécification WKT 1 stipule clairement : _« Si l’élément `PRIMEM` apparaît dans `GEOGCS`,
-alors l’unité des longitudes doit correspondre à celle du système de coordonnées géographiques »_ (traduction libre de {{< abbr title="Open Geospatial Consortium" text="OGC" >}} 01-009).
+alors l’unité des longitudes doit correspondre à celle du système de coordonnées géographiques »_ (traduction libre de {{% OGC %}} 01-009).
Toutefois ESRI et GDAL entres autres utilisent inconditionnellement des degrés décimaux, ignorant cette partie de la spécification WKT.
Ce problème peut être identifié en inspectant l’extrait de WKT suivant :
@@ -284,34 +284,34 @@ Afin d’obtenir le résultat attendu, il est possible de :
* Ou demander explicitement à Apache SIS de lire le WKT en utilisant les conventions ESRI ou GDAL,
avec l’énumération `Convention.WKT1_COMMON_UNITS` pour la valeur de `WKTFormat` dans le paquet `org.apache.sis.io.wkt`.
-Il est à noter que le standard GeoPackage requiert explicitement la conformité avec {{< abbr title="Open Geospatial Consortium" text="OGC" >}} 01-009
-et que le nouveau standard WKT 2 suit aussi l’interprétation de {{< abbr title="Open Geospatial Consortium" text="OGC" >}} 01-009.
+Il est à noter que le standard GeoPackage requiert explicitement la conformité avec {{% OGC %}} 01-009
+et que le nouveau standard WKT 2 suit aussi l’interprétation de {{% OGC %}} 01-009.
Le comportement par défaut de Apache SIS est cohérent avec ces deux standards.
### J’ai vérifié tous ce qui est ci-dessus et j’ai toujours une erreur d’environ un kilomètre. {#BursaWolf}
Les systèmes de coordonnées (CRS) font une approximation de la forme de la terre avec une ellipsoïde.
Différentes ellipsoïdes (en réalité différents _référentiels_) sont utilisées dans différents pays du monde et à différents moments de l’histoire.
-Quand on transforme des coordonnées entre deux {{< abbr title="Coordinate Reference System" text="CRS" >}} utilisant le même référentiel, aucun paramètre Bursa-Wolf n’est requis.
+Quand on transforme des coordonnées entre deux {{% CRS %}} utilisant le même référentiel, aucun paramètre Bursa-Wolf n’est requis.
Mais quand la transformation implique un changement de référentiel, le module de géoréférencement à besoin d’informations sur la manière d’effectuer ce changement.
Il y a plusieurs façon de spécifier comment appliquer un changement de référentiel, et la plupart sont seulement approximatives.
La méthode de Bursa-Wolf est l’une d’elle, mais pas la seule. Toutefois elle est une des plus fréquemment utilisées.
Les paramètres Bursa-Wolf peuvent être spécifiés à l’intérieur de l’élément `TOWGS84` de la version 1 du format _Well Known Text_ (WKT),
ou dans l’élément `BOUNDCRS` avec la version 2 du format WKT.
-Si le {{< abbr title="Coordinate Reference System" text="CRS" >}} est lu à partir d’une chaine WKT, assurez-vous qu’elle contient l’élément approprié.
+Si le {{% CRS %}} est lu à partir d’une chaine WKT, assurez-vous qu’elle contient l’élément approprié.
### J’obtiens des résultats légèrement différents d’un environnement d’exécution à l’autre. {#slightDifferences}
Les résultats de transformations de coordonnées quand on lance l’application dans un conteneur web (type JBoss, _etc._)
peuvent avoir quelques mètres de différence avec la transformation exécutée dans un IDE (NetBeans, Eclipse, _etc._).
Les résultats dépendent de la présence de la fabrique EPSG dans le chemin de classes (classpath),
-**peu importe comment le {{< abbr title="Coordinate Reference System" text="CRS" >}} a été créé**, parce-que la fabrique EPSG spécifie explicitement l’opération à appliquer pour certaines paires de {{< abbr title="Coordinate Reference System" text="CRS" >}}.
+**peu importe comment le {{% CRS %}} a été créé**, parce-que la fabrique EPSG spécifie explicitement l’opération à appliquer pour certaines paires de {{% CRS %}}.
Dans ces cas, l’opération spécifiée par EPSG a priorité par rapport aux paramètres de Bursa-Wolf
(l’element `TOWGS84` de la version 1 du format _Well Known Text_).
Une connexion à la base EPSG peut avoir été établie dans un environnement (typiquement celui JEE)
-et pas dans l’autre (typiquement un IDE) car uniquement le premier à un pilote {{< abbr title="Java DataBase Connectivity" text="JDBC" >}}.
+et pas dans l’autre (typiquement un IDE) car uniquement le premier à un pilote {{% JDBC %}}.
La méthode recommandée pour uniformiser les résultats est d’ajouter dans le second environnement (l’IDE)
le même pilote que celui présent dans le premier environnement (JEE).
Cela devrait être un des suivant : JavaDB (aussi nommé Derby), HSQL ou PostgreSQL.
@@ -319,8 +319,8 @@ Assurez vous également que les [paramètres de connexion à la base EPSG](epsg.
### Puis-je présumer qu’il est toujours possible de transformer un CRS arbitraire vers WGS84 ? {#toWGS84}
-Pour les {{< abbr title="Coordinate Reference System" text="CRS" >}} 2D horizontaux créés avec la base de données EPSG, l’appel à `CRS.findOperation(...)` devrait toujours marcher.
-Pour les {{< abbr title="Coordinate Reference System" text="CRS" >}} 3D ayant n’importe quel axe de hauteur autre que la hauteur ellipsoïdale, ou pour les {{< abbr title="Coordinate Reference System" text="CRS" >}} 2D de type `EngineeringCRS`, la méthode peu échouer.
+Pour les {{% CRS %}} 2D horizontaux créés avec la base de données EPSG, l’appel à `CRS.findOperation(...)` devrait toujours marcher.
+Pour les {{% CRS %}} 3D ayant n’importe quel axe de hauteur autre que la hauteur ellipsoïdale, ou pour les {{% CRS %}} 2D de type `EngineeringCRS`, la méthode peu échouer.
Il reste à noter que dans le cas ou la méthode `CRS.findOperation(...)` ne lève pas d’erreur, l’appel à `MathTransform.transform(...)` peut
produire des valeurs `NaN` or `Infinity`si la coordonnée transformée est éloignée de la zone de validité.
@@ -332,9 +332,9 @@ produire des valeurs `NaN` or `Infinity`si la coordonnée transformée est éloi
Les développeurs n’ont pas besoin d’implémenter directement les interfaces de metadonnées.
Si le système de stockage sous-jacent peut accéder aux metadonnées à partir de leur classes et nom de propriétés
-(soit le nom java ou le nom {{< abbr title="International Organization for Standardization" text="ISO" >}}/{{< abbr title="Open Geospatial Consortium" text="OGC" >}}), alors il est possible d’implémenter un seul moteur pour tous les types de metadonnées
+(soit le nom java ou le nom {{% ISO %}}/{{% OGC %}}), alors il est possible d’implémenter un seul moteur pour tous les types de metadonnées
et de laisser la Machine Virtuelle Java implémenter les interfaces GeoAPI à la volée, en utilisant la classe `java.lang.reflect.Proxy`.
-Pour plus de détails voir la javadoc de la classe `Proxy`, en gardant à l’esprit que le nom {{< abbr title="International Organization for Standardization" text="ISO" >}}/{{< abbr title="Open Geospatial Consortium" text="OGC" >}} d’une `java.lang.Class` ou
+Pour plus de détails voir la javadoc de la classe `Proxy`, en gardant à l’esprit que le nom {{% ISO %}}/{{% OGC %}} d’une `java.lang.Class` ou
`java.lang.reflect.Method` peut être obtenu comme suit :
{{< highlight java >}}
diff --git a/source/site-management.md b/source/site-management.md
deleted file mode 100644
index 111fd71..0000000
--- a/source/site-management.md
+++ /dev/null
@@ -1,137 +0,0 @@
----
-title: Site management
----
-
-This page explains how the Apache SIS web site is created and how to update the site.
-The intended audiences are SIS release managers and SIS web site maintainers.
-
-{{< toc >}}
-
-# Directory layout {#directory-layout}
-
-The source files for the Apache SIS web site can be fetched from Subversion using the following command:
-
-{{< highlight bash >}}
-git clone https://github.com/apache/sis-site
-{{< / highlight >}}
-
-The directory layout is as below, omitting version numbers in file names.
-The `*` character stands for an arbitrary amount of files having the given extension.
-
-{{< highlight text >}}
-sis-site
-├─ source
-│ └─ *.mdtext
-├─ static
-│ ├─ css
-│ │ ├─ bootstrap.min.css
-│ │ └─ sis.css
-│ ├─ img
-│ │ └─ *.png
-│ ├─ js
-│ │ ├─ bootstrap.js
-│ │ └─ jquery.js
-└─ templates
- ├─ single_narrative.html
- └─ skeleton.html
-{{< / highlight >}}
-
-All files with the `.mdtext` extension use the Markdown format, which is described there:
-
-* [General markup syntax][markdown]
-* [Extension to the syntax][extension]
-
-New `.mdtext` files can be created using the [site-management.mdtext][template] file as a template.
-Thee files can be modified in any text editor and committed with the usual Git commands.
-The site must be built manually by executing the `hugo` comment from the project root directory.
-The web site will be written in the `target/content/` sub-directory.
-Copying those files in the `asf-staging` branch will make them visible in the _staging_ area at
-[https://sis.staged.apache.org/](https://sis.staged.apache.org/).
-Once a staging site has been approved, it can be published by merging the `asf-staging` branch
-to the `asf-site` branch.
-
-# Content {#content}
-
-All `.mdtext` files should start as below (replace the `<...>` block by the corresponding content):
-
-{{< highlight markdown >}}
-Title: <put the page title here>
-Notice: <copy the notice from an existing page>
-{{< / highlight >}}
-
-The title will appear both in the browser window title bar, and as a header at the beginning of the generated HTML page.
-The notice should be followed by a short abstract of the page content (typically a single paragraph),
-then a _Table Of Content_ to be automatically generated:
-
-{{< highlight markdown >}}
-[TOC]
-{{< / highlight >}}
-
-The first header appears after the table of content.
-For each header, and anchor should be specified using the `{#...}` syntax.
-Do not rely on automatically generated anchors, since they may not be stable if some text in the header is modified.
-Example:
-
-{{< highlight markdown >}}
-My first header in my page {#firstHeader}
-============================================
-{{< / highlight >}}
-
-# Style sheets
-
-The following table lists the style sheets used by Apache SIS.
-The Maven and Javadoc style sheets are mentioned for completeness, but are not located on the web site repository.
-They are rather located together with the SIS library source code.
-
-Page set | File | Purpose | Remark
----------- | ------------------------------------ | ------------------ | ------------------------------------------------------------
-Web site | `content/css/bootstrap.min.css` | Main appearance | Generated from the [Twitter's Bootstrap project][bootstrap].
-Web site | `http://www.apache.org/css/code.css` | Code highlighting | Located on the foundation-wide Apache server.
-Web site | `content/css/sis.css` | SIS-specific style | Overwrite `bootstrap.min.css`, edited manually.
-Maven site | `src/site/resources/css/site.css` | Maven site | Overwrite `maven-base.css`, edited manually.
-Javadoc | `src/main/javadoc/stylesheet.css` | Javadoc appearance | Copy of javadoc output, edited manually.
-
-## Updating bootstrap {#bootstrap}
-
-If the `bootstrap.min.css` file needs to be updated, then visit the [Bootstrap][bootstrap] web site
-and select the following options:
-
-* Scaffolding
- + Body type and links
- + Grid system
- + Layouts
-* Components
- + Navs, tabs, and pills
- + Navbar
-* Miscellaneous
- + Wells
-* Base CSS
- + Code and pre
-* JS Components
- + Dropdowns
-
-If additional options are needed, then select the **minimal** amount of new options.
-Do not select an option that _may_ be used; select only the options that are actually going to be used.
-Then:
-
-* Update this page for listing the new options.
-* Download the `bootstrap.zip` file and unzip in the `content` directory, overwriting the existing files.
-* Delete `css/bootstrap.css`, since it is not used.
-* Add the following comment in `css/bootstrap.min.css`, just below the copyright header:
-
-`bootstrap.min.css`:
-
-{{< highlight css >}}
-/*
- * This file is automatically generated - DO NOT EDIT.
- * See http://sis.apache.org/site-management.html
- */
-{{< / highlight >}}
-
-[cms]: http://www.apache.org/dev/cmsref.html
-[cms-admin]: https://cms.apache.org/sis/
-[bootstrap]: http://twitter.github.io/bootstrap/customize.html
-[markdown]: http://daringfireball.net/projects/markdown/syntax
-[extension]: http://michelf.ca/projects/php-markdown/extra
-[template]: http://svn.apache.org/repos/asf/sis/site/trunk/content/site-management.mdtext
-[buildbot]: http://ci.apache.org/builders/sis-site-staging
diff --git a/source/source.md b/source/source.md
index 4753a70..26a080f 100644
--- a/source/source.md
+++ b/source/source.md
@@ -183,7 +183,7 @@ git checkout geoapi-4.0
{{< / highlight >}}
Note that those `geoapi-xxx` branches may disappear or be replaced by something else
-after {{< abbr title="Open Geospatial Consortium" text="OGC" >}} releases the corresponding GeoAPI versions.
+after {{% OGC %}} releases the corresponding GeoAPI versions.
# Opening Apache SIS in NetBeans {#netbeans}
diff --git a/static/css/bootstrap.min.css b/static/css/bootstrap.min.css
deleted file mode 100644
index eaf99a6..0000000
--- a/static/css/bootstrap.min.css
+++ /dev/null
@@ -1,264 +0,0 @@
-/*!
- * Bootstrap v2.3.2
- *
- * Copyright 2012 Twitter, Inc
- * Licensed under the Apache License v2.0
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
- */
-/*
- * This file is automatically generated - DO NOT EDIT.
- * See http://sis.apache.org/site-management.html
- */
-.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
-.clearfix:after{clear:both;}
-.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
-.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
-body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333333;background-color:#ffffff;}
-a{color:#0088cc;text-decoration:none;}
-a:hover,a:focus{color:#005580;text-decoration:underline;}
-.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
-.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);}
-.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px;}
-.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
-.row:after{clear:both;}
-[class*="span"]{float:left;min-height:1px;margin-left:20px;}
-.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
-.span12{width:940px;}
-.span11{width:860px;}
-.span10{width:780px;}
-.span9{width:700px;}
-.span8{width:620px;}
-.span7{width:540px;}
-.span6{width:460px;}
-.span5{width:380px;}
-.span4{width:300px;}
-.span3{width:220px;}
-.span2{width:140px;}
-.span1{width:60px;}
-.offset12{margin-left:980px;}
-.offset11{margin-left:900px;}
-.offset10{margin-left:820px;}
-.offset9{margin-left:740px;}
-.offset8{margin-left:660px;}
-.offset7{margin-left:580px;}
-.offset6{margin-left:500px;}
-.offset5{margin-left:420px;}
-.offset4{margin-left:340px;}
-.offset3{margin-left:260px;}
-.offset2{margin-left:180px;}
-.offset1{margin-left:100px;}
-.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
-.row-fluid:after{clear:both;}
-.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;}
-.row-fluid [class*="span"]:first-child{margin-left:0;}
-.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;}
-.row-fluid .span12{width:100%;*width:99.94680851063829%;}
-.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;}
-.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}
-.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;}
-.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}
-.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;}
-.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}
-.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;}
-.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}
-.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;}
-.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}
-.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;}
-.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;}
-.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;}
-.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;}
-.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;}
-.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;}
-.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;}
-.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;}
-.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;}
-.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;}
-.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;}
-.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;}
-.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;}
-.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;}
-.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;}
-.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;}
-.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;}
-.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;}
-.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;}
-.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;}
-.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;}
-.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;}
-.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;}
-.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;}
-.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;}
-[class*="span"].hide,.row-fluid [class*="span"].hide{display:none;}
-[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right;}
-.container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";line-height:0;}
-.container:after{clear:both;}
-.container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;}
-.container-fluid:after{clear:both;}
-code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
-code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap;}
-pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}pre.prettyprint{margin-bottom:20px;}
-pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0;}
-.pre-scrollable{max-height:340px;overflow-y:scroll;}
-.nav{margin-left:0;margin-bottom:20px;list-style:none;}
-.nav>li>a{display:block;}
-.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee;}
-.nav>li>a>img{max-width:none;}
-.nav>.pull-right{float:right;}
-.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;}
-.nav li+.nav-header{margin-top:9px;}
-.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;}
-.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
-.nav-list>li>a{padding:3px 15px;}
-.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;}
-.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px;}
-.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
-.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;}
-.nav-tabs:after,.nav-pills:after{clear:both;}
-.nav-tabs>li,.nav-pills>li{float:left;}
-.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;}
-.nav-tabs{border-bottom:1px solid #ddd;}
-.nav-tabs>li{margin-bottom:-1px;}
-.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #dddddd;}
-.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
-.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
-.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#ffffff;background-color:#0088cc;}
-.nav-stacked>li{float:none;}
-.nav-stacked>li>a{margin-right:0;}
-.nav-tabs.nav-stacked{border-bottom:0;}
-.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
-.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
-.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
-.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{border-color:#ddd;z-index:2;}
-.nav-pills.nav-stacked>li>a{margin-bottom:3px;}
-.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;}
-.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
-.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
-.nav .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;}
-.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580;}
-.nav-tabs .dropdown-toggle .caret{margin-top:8px;}
-.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff;}
-.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
-.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer;}
-.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#ffffff;background-color:#999999;border-color:#999999;}
-.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
-.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999999;}
-.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0;}
-.tabbable:after{clear:both;}
-.tab-content{overflow:auto;}
-.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;}
-.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
-.tab-content>.active,.pill-content>.active{display:block;}
-.tabs-below>.nav-tabs{border-top:1px solid #ddd;}
-.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;}
-.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-bottom-color:transparent;border-top-color:#ddd;}
-.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd;}
-.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;}
-.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
-.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
-.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
-.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
-.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
-.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
-.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
-.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
-.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
-.nav>.disabled>a{color:#999999;}
-.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;background-color:transparent;cursor:default;}
-.navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2;}
-.navbar-inner{min-height:40px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top, #ffffff, #f2f2f2);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));background-image:-webkit-linear-gradient(top, #ffffff, #f2f2f2);background-image:-o-linear-gradient(top, #ffffff, #f2f2f2);background-image:linear-gradient(to bottom, #ffffff, #f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gra [...]
-.navbar-inner:after{clear:both;}
-.navbar .container{width:auto;}
-.nav-collapse.collapse{height:auto;overflow:visible;}
-.navbar .brand{float:left;display:block;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777777;text-shadow:0 1px 0 #ffffff;}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none;}
-.navbar-text{margin-bottom:0;line-height:40px;color:#777777;}
-.navbar-link{color:#777777;}.navbar-link:hover,.navbar-link:focus{color:#333333;}
-.navbar .divider-vertical{height:40px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #ffffff;}
-.navbar .btn,.navbar .btn-group{margin-top:5px;}
-.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0;}
-.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;}
-.navbar-form:after{clear:both;}
-.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;}
-.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0;}
-.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;}
-.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;}
-.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0;}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
-.navbar-static-top{position:static;margin-bottom:0;}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
-.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;}
-.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;}
-.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0;}
-.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
-.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
-.navbar-fixed-top{top:0;}
-.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1);}
-.navbar-fixed-bottom{bottom:0;}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1);}
-.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;}
-.navbar .nav.pull-right{float:right;margin-right:0;}
-.navbar .nav>li{float:left;}
-.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777777;text-decoration:none;text-shadow:0 1px 0 #ffffff;}
-.navbar .nav .dropdown-toggle .caret{margin-top:8px;}
-.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333333;text-decoration:none;}
-.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);-moz-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);}
-.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#ededed;background-image:-moz-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));background-image:-webkit-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-o-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:linear-gradient(to bottom, #f2f2f [...]
-.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;}
-.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
-.btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
-.navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
-.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;}
-.navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;}
-.navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;}
-.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333333;border-bottom-color:#333333;}
-.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:#e5e5e5;color:#555555;}
-.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777777;border-bottom-color:#777777;}
-.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
-.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{left:auto;right:0;}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{left:auto;right:12px;}
-.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{left:auto;right:13px;}
-.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
-.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top, #222222, #111111);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));background-image:-webkit-linear-gradient(top, #222222, #111111);background-image:-o-linear-gradient(top, #222222, #111111);background-image:linear-gradient(to bottom, #222222, #111111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endC [...]
-.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999999;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#ffffff;}
-.navbar-inverse .brand{color:#999999;}
-.navbar-inverse .navbar-text{color:#999999;}
-.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#ffffff;}
-.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#ffffff;background-color:#111111;}
-.navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#ffffff;}
-.navbar-inverse .divider-vertical{border-left-color:#111111;border-right-color:#222222;}
-.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{background-color:#111111;color:#ffffff;}
-.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
-.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999999;border-bottom-color:#999999;}
-.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
-.navbar-inverse .navbar-search .search-query{color:#ffffff;background-color:#515151;border-color:#111111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;}
-.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
-.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
-.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;}
-.navbar-inverse .btn-navbar{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top, #151515, #040404);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));background-image:-webkit-linear-gradient(top, #151515, #040404);background-image:-o-linear-gradient(top, #151515, #040404);background-image:linear-gradient(to bottom, #151515, #040404);background-repeat:repeat-x;filter:progid:DXImageTransfo [...]
-.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000000 \9;}
-.dropup,.dropdown{position:relative;}
-.dropdown-toggle{*margin-bottom:-3px;}
-.dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
-.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";}
-.dropdown .caret{margin-top:8px;margin-left:2px;}
-.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-ba [...]
-.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
-.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333333;white-space:nowrap;}
-.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{text-decoration:none;color:#ffffff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3) [...]
-.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);backgr [...]
-.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999;}
-.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default;}
-.open{*z-index:1000;}.open>.dropdown-menu{display:block;}
-.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;}
-.pull-right>.dropdown-menu{right:0;left:auto;}
-.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"";}
-.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
-.dropdown-submenu{position:relative;}
-.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}
-.dropdown-submenu:hover>.dropdown-menu{display:block;}
-.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0;}
-.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;}
-.dropdown-submenu:hover>a:after{border-left-color:#ffffff;}
-.dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
-.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px;}
-.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
-.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
-.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
-.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
diff --git a/static/css/sis.css b/static/css/sis.css
index 8d58ac5..cd9eaa0 100644
--- a/static/css/sis.css
+++ b/static/css/sis.css
@@ -3,60 +3,59 @@
* http://www.apache.org/licenses/LICENSE-2.0
*/
body {
- padding-top: 60px;
- padding-bottom: 40px;
+ padding-top: 3.5rem;
+ padding-bottom: 1.5rem;
}
-div.apache-con {
- text-align: center;
- margin-bottom: 15px;
-}
-div.apache-con img {
- width: 187px;
- height: 48px;
+img.apache-con {
+ width: auto;
+ height: 2.5rem;
}
img.sis-logo {
- width: 72px;
- height: 72px;
- margin-top: 9px;
- margin-right: 24px;
+ width: auto;
+ height: 4rem;
+ margin-right: 2rem;
}
p.page-title {
- font-size: 30px;
+ font-size: 2.5rem;
font-weight: bolder;
text-align: left;
- font-family: Verdana,Helvetica,Arial,sans-serif;
- padding-bottom: 15px;
-}
-h1 {
- margin-top: 64px;
- margin-bottom: 16px;
- height: 26px;
- font-size: 28px;
- padding: 8px 4px 4px 8px;
- background: url(../img/h1.png) repeat-x;
- border: 1px solid rgb(192, 192, 192);
-}
-h2 {
- margin-top: 40px;
-}
-p {
+ margin-top: 2rem;
+ padding-bottom: 0.75rem;
+}
+main h1 {
+ margin-top: 3rem;
+ margin-bottom: 2rem;
+ border-bottom: 2px solid rgb(192, 192, 192);
+}
+main h2 {
+ margin-top: 2rem;
+}
+main p {
text-align: justify;
}
+main a {
+ text-decoration: none;
+ color: #1f618d;
+}
pre, code {
/* Avoid Monaco font, since box (or tree) symbols do not render well. */
font-family: Menlo,Consolas,"Courier New",monospace;
}
-pre {
+main pre {
/* Shall be small enough for avoiding space between box (or tree) symbols. */
- line-height: 1.25
+ line-height: 1.25;
+ border-left: 0.25rem solid gray;
+ padding-left: 1rem;
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
}
-code {
+main code {
color: inherit;
background-color: inherit;
border: none;
padding: 2px 2px;
}
-table {
+main table {
background-color: #F4F8FF;
border-color: Black;
border-style: solid;
@@ -66,21 +65,25 @@ table {
padding: 0;
width: auto;
}
-table tr th {
+main table tr th {
background-color: #B9DCFF;
border-bottom-color: Black;
border-bottom-style: solid;
border-bottom-width: 1px;
padding: 3px;
}
-table tr td {
+main table tr td {
padding: 0px 9px;
vertical-align: text-top;
}
-.sidebar-nav {
- padding: 9px 0;
-}
.footer {
+ padding-top: 1rem;
font-size: smaller;
color: gray;
}
+.footer p {
+ text-align: center;
+}
+.footer a {
+ color: gray;
+}
diff --git a/static/js/bootstrap.min.js b/static/js/bootstrap.min.js
deleted file mode 100644
index 95c5ac5..0000000
--- a/static/js/bootstrap.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
-* Bootstrap.js by @fat & @mdo
-* Copyright 2012 Twitter, Inc.
-* http://www.apache.org/licenses/LICENSE-2.0.txt
-*/
-!function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=funct [...]
\ No newline at end of file
diff --git a/static/js/jquery-1.9.1.min.js b/static/js/jquery-1.9.1.min.js
deleted file mode 100644
index 006e953..0000000
--- a/static/js/jquery-1.9.1.min.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license
-//@ sourceMappingURL=jquery.min.map
-*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|tru [...]
-return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:fu [...]
-}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b. [...]
\ No newline at end of file
diff --git a/templates/single_narrative.html b/templates/single_narrative.html
deleted file mode 100644
index 19d6b98..0000000
--- a/templates/single_narrative.html
+++ /dev/null
@@ -1 +0,0 @@
-{% extends "skeleton.html" %}
diff --git a/templates/skeleton.html b/templates/skeleton.html
deleted file mode 100644
index 6c1555a..0000000
--- a/templates/skeleton.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <title>{% block title %}{{ headers.title }}{% endblock %}</title>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <link rel="stylesheet" type="text/css" media="screen" href="css/bootstrap.min.css">
- <link rel="stylesheet" type="text/css" media="screen" href="http://www.apache.org/css/code.css">
- <link rel="stylesheet" type="text/css" media="screen" href="css/sis.css">
-
- {% if headers.atom %}
- <link rel="alternate" href="{{ headers.atom.url }}"
- type="application/atom+xml" title="{{ headers.atom.title }}"/>
- {% endif %}
-
- {% if headers.base %}<base href="{{ headers.base }}"/>{% endif %}
- {% if headers.notice %}<!-- {{ headers.notice }} -->{% endif %}
- </head>
-
- <body>
- <div class="navbar navbar-inverse navbar-fixed-top">
- <div class="navbar-inner">
- <div class="container">
- <a class="brand" href="/index.html"> Apache SIS™</a>
- <div class="nav-collapse">
- <ul class="nav">
- <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown">About<b class="caret"></b></a>
- <ul class="dropdown-menu">
- <li><a href="http://www.apache.org/licenses/">License</a></li>
- <li><a href="mail-lists.html">Mailing Lists</a></li>
- <li><a href="team-list.html">Project Team</a></li>
- </ul>
- </li>
- <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown">Project Documentation<b class="caret"></b></a>
- <ul class="dropdown-menu">
- <li><a href="book/index.html">Developer Guide</a></li>
- <li><a href="apidocs/index.html">Online Javadoc</a></li>
- <li><a href="downloads.html">Downloads</a></li>
- <li><a href="source.html">Checkout Sources</a></li>
- <li><a href="epsg.html">EPSG Database</a></li>
- <li><a href="faq.html">FAQ</a></li>
- <li><a href="https://issues.apache.org/jira/browse/SIS">Issue Tracker</a></li>
- </ul>
- </li>
- <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
- <ul class="dropdown-menu">
- <li><a href="http://www.apache.org">The Foundation</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html">Donate</a></li>
- <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
- <li><a href="http://www.apache.org/security/">Security</a></li>
- </ul>
- </li>
- </ul>
- </div><!-- /.nav-collapse -->
- </div><!-- /.container -->
- </div><!-- /.navbar-inner -->
- </div>
-
- <div class="container-fluid">
- <div class="row-fluid">
- <div class="span2">
- <div class="apache-con">
- <a href="https://www.apache.org/events/current-event.html">
- <img src="https://www.apache.org/events/current-event-234x60.png" alt="ApacheCon"/>
- </a>
- </div>
- <div class="well sidebar-nav">
- <ul class="nav nav-list">
- <li><a href="index.html">Home</a></li>
- <li><a href="http://www.apache.org/licenses/">License</a></li>
- <li><a href="mail-lists.html">Mailing Lists</a></li>
- <li><a href="team-list.html">Project Team</a></li>
- <li class="nav-header">Project Documentation</li>
- <li><a href="book/index.html">Developer Guide</a></li>
- <li><a href="apidocs/index.html">Online Javadoc</a></li>
- <li><a href="downloads.html">Downloads</a></li>
- <li><a href="source.html">Checkout Sources</a></li>
- <li><a href="epsg.html">EPSG Database</a></li>
- <li><a href="faq.html">FAQ</a></li>
- <li><a href="https://issues.apache.org/jira/browse/SIS">Issue Tracker</a></li>
- <li class="nav-header">ASF</li>
- <li><a href="http://www.apache.org">The Foundation</a></li>
- <li><a href="http://www.apache.org/foundation/sponsorship.html">Donate</a></li>
- <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
- <li><a href="http://www.apache.org/security/">Security</a></li>
- </ul>
- </div><!--/.well -->
- </div><!--/span-->
- <div class="span10">
- <section id="content" class="row">
- <article class="span12">
- <img src="img/logo.png" class="sis-logo" align="left"/>
- <p class="page-title">{% block tagline %}{{ headers.title }}{% endblock %}</p>
- {% block content %}{{ content|markdown }}{% endblock %}
- </article>
- </section>
- </div><!--/span-->
- </div><!--/row-fluid-->
- </div><!--/container-fluid-->
-
- <footer class="footer">
- <div class="container">
- <p>Copyright © 2013-2019 The Apache Software Foundation, Licensed under the
- <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.<br />
- Apache SIS, Apache, the Apache feather logo are trademarks of The Apache Software Foundation.</p>
- </div>
- </footer>
-
- <script src="js/jquery-1.9.1.min.js"></script>
- <script src="js/bootstrap.min.js"></script>
-
- <!-- for marking links as active in the navbar-menu -->
- <script type="text/javascript">
- var pathname = this.location.pathname;
- pathname = pathname.substring(1, pathname.length);
- var link = $('a[href="' + pathname + '"]');
- if (link != undefined)
- link.parents('li,ul').addClass('active');
- </script>
-
-</body>
-</html>
[sis-site] 02/03: Update roles for Alexis and Bruno.
Posted by de...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/sis-site.git
commit 1db660f710fd048dfa4f309acf7ec62d6c12b0e9
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Fri Oct 1 14:13:14 2021 +0200
Update roles for Alexis and Bruno.
---
source/team-list.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/source/team-list.md b/source/team-list.md
index 92c2285..e1d4e1e 100644
--- a/source/team-list.md
+++ b/source/team-list.md
@@ -7,6 +7,7 @@ title: Apache SIS team
The Project Management Committee (PMC) is the group of people with formal oversight of the project.
* Adam Estrada
+* Alexis Manin
* Andrew Hart
* Charitha Madusanka
* Gregory D. Reddin
@@ -29,7 +30,7 @@ The Project Management Committee (PMC) is the group of people with formal oversi
Committers are peoples with write access to the source code repository.
All PMC members are implicitly committers.
-* Alexis Manin
+* Bruno Kinoshita
* Christina Hough
* Rémi Maréchal