diff --git a/_includes/authors_url b/_includes/authors_url
index d73172b4..4261788e 100644
--- a/_includes/authors_url
+++ b/_includes/authors_url
@@ -1,16 +1,16 @@
{% assign list = {{include.list}} %}
{% for author in site.data.authors %}
-{% if author[1].tag == "founder" %}{% assign dir = "project_founders" %}{% endif %}
-{% if author[1].tag == "team" %}{% assign dir = "team" %}{% endif %}
-{% if author[1].tag == "previous" %}{% assign dir = "previous_developers" %}{% endif %}
+ {% if author[1].tag == "founder" %}{% assign dir = "project_founders" %}{% endif %}
+ {% if author[1].tag == "team" %}{% assign dir = "team" %}{% endif %}
+ {% if author[1].tag == "previous" %}{% assign dir = "previous_developers" %}{% endif %}
-{% capture author_url %}about/{{dir}}/#{{author[1].name}}{% endcapture %}
-{% capture url %}{{author[1].name}}{% endcapture %}
+ {% capture author_url %}about/{{dir}}/#{{author[1].name}}{% endcapture %}
+ {% capture url %}{{author[1].name}}{% endcapture %}
-{% capture list_url %}{{ list | replace: author[1].name , url }}{% endcapture %}
+ {% capture list_url %}{{ list | replace: author[1].name , url }}{% endcapture %}
-{% assign list = {{list_url}} %}
+ {% assign list = {{list_url}} %}
{% endfor %}
diff --git a/_includes/ref b/_includes/ref
index 3254963a..30ed22c1 100644
--- a/_includes/ref
+++ b/_includes/ref
@@ -1,2 +1,19 @@
-{% assign c = {{include.class}} %}{% assign s = {{include.struct}} %}{% assign n = {{include.namespace}} %}
-{% if c %}{% if n %}{{c}}{% else %}`{{c}}`{% endif %}{% endif %}{% if s %}{% if n %}`{{s}}`{% else %}`{{s}}`{% endif %}{% endif %}
+{%- assign c = {{include.class}} -%}
+{%- assign s = {{include.struct}} -%}
+{%- assign n = {{include.namespace}} -%}
+
+{%- if c -%}
+ {%- if n -%}
+ {{c}}
+ {%- else -%}
+ `{{c}}`
+ {%- endif -%}
+{%- endif -%}
+
+{%- if s -%}
+ {%- if n -%}
+ `{{s}}`
+ {%- else -%}
+ `{{s}}`
+ {%- endif -%}
+{%- endif -%}
\ No newline at end of file
diff --git a/_includes/root_stable_dir b/_includes/root_stable_dir
new file mode 100644
index 00000000..23ec947d
--- /dev/null
+++ b/_includes/root_stable_dir
@@ -0,0 +1,13 @@
+{%- assign sorted = site.releases | reverse -%}
+{%- for release in sorted -%}
+ {%- if release.state == "latest" -%}
+ {%- assign content = release.content -%}
+ {%- assign pieces = content | split: '| [' -%}
+ {%- assign str = content -%}
+ {%- assign a = str | split: '.tar.gz">' -%}
+ {%- assign b = a[2] | split: '' -%}
+ {%- assign c = b[0] | split: '.' -%}
+ {%- assign d = c[3] | split: '-' -%}
+ {{d[2]}}-{{d[1]}}-{{d[3]}}.{{c[4]}}-opt
+ {%- endif -%}
+{%- endfor -%}
\ No newline at end of file
diff --git a/_includes/root_stable_os b/_includes/root_stable_os
new file mode 100644
index 00000000..6b08a336
--- /dev/null
+++ b/_includes/root_stable_os
@@ -0,0 +1,13 @@
+{%- assign sorted = site.releases | reverse -%}
+{%- for release in sorted -%}
+ {%- if release.state == "latest" -%}
+ {%- assign content = release.content -%}
+ {%- assign pieces = content | split: '| [' -%}
+ {%- assign str = content -%}
+ {%- assign a = str | split: '.tar.gz">' -%}
+ {%- assign b = a[2] | split: '' -%}
+ {%- assign c = b[0] | split: '.' -%}
+ {%- assign d = c[3] | split: '-' -%}
+ {{d[1] | capitalize }}
+ {%- endif -%}
+{%- endfor -%}
\ No newline at end of file
diff --git a/_includes/root_stable_sample b/_includes/root_stable_sample
new file mode 100644
index 00000000..013a48e4
--- /dev/null
+++ b/_includes/root_stable_sample
@@ -0,0 +1,11 @@
+{%- assign sorted = site.releases | reverse -%}
+{%- for release in sorted -%}
+ {%- if release.state == "latest" -%}
+ {%- assign content = release.content -%}
+ {%- assign pieces = content | split: '| [' -%}
+ {%- assign str = content -%}
+ {%- assign a = str | split: '.tar.gz">' -%}
+ {%- assign b = a[2] | split: '' -%}
+ {{ b[0] }}
+ {%- endif -%}
+{%- endfor -%}
\ No newline at end of file
diff --git a/_includes/root_stable_version b/_includes/root_stable_version
index d351fa6f..163a61ac 100644
--- a/_includes/root_stable_version
+++ b/_includes/root_stable_version
@@ -1 +1,6 @@
-{% assign sorted = site.releases | reverse %}{% for release in sorted %}{% if release.state == "latest" %}{{release.version}}{% endif %}{% endfor %}
+{%- assign sorted = site.releases | reverse -%}
+{%- for release in sorted -%}
+ {%- if release.state == "latest" -%}
+ {{release.version}}
+ {%- endif -%}
+{%- endfor -%}
\ No newline at end of file
diff --git a/_includes/root_stable_version_dash b/_includes/root_stable_version_dash
new file mode 100644
index 00000000..36f20411
--- /dev/null
+++ b/_includes/root_stable_version_dash
@@ -0,0 +1,6 @@
+{%- assign sorted = site.releases | reverse -%}
+{%- for release in sorted -%}
+ {%- if release.state == "latest" -%}
+ {{ release.version | replace: ".","-" | replace: "/","-" }}
+ {%- endif -%}
+{%- endfor -%}
\ No newline at end of file
diff --git a/_includes/root_stable_version_date b/_includes/root_stable_version_date
new file mode 100644
index 00000000..50bf0c27
--- /dev/null
+++ b/_includes/root_stable_version_date
@@ -0,0 +1,6 @@
+{%- assign sorted = site.releases | reverse -%}
+{%- for release in sorted -%}
+ {%- if release.state == "latest" -%}
+ {{release.release_date | date: "%b %d %Y"}}
+ {%- endif -%}
+{%- endfor -%}
\ No newline at end of file
diff --git a/_includes/root_stable_version_dot b/_includes/root_stable_version_dot
new file mode 100644
index 00000000..39b1f18b
--- /dev/null
+++ b/_includes/root_stable_version_dot
@@ -0,0 +1,6 @@
+{%- assign sorted = site.releases | reverse -%}
+{%- for release in sorted -%}
+ {%- if release.state == "latest" -%}
+ {{ release.version | replace: "/","." }}
+ {%- endif -%}
+{%- endfor -%}
\ No newline at end of file
diff --git a/_includes/root_stable_version_relative_url b/_includes/root_stable_version_relative_url
index 82160036..d56cc6e9 100644
--- a/_includes/root_stable_version_relative_url
+++ b/_includes/root_stable_version_relative_url
@@ -1 +1,6 @@
-{% assign sorted = site.releases | reverse %}{% for release in sorted %}{% if release.state == "latest" %}{{ release.url | relative_url }}{% endif %}{% endfor %}
+{%- assign sorted = site.releases | reverse -%}
+{%- for release in sorted -%}
+ {%- if release.state == "latest" -%}
+ {{ release.url | relative_url }}
+ {%- endif -%}
+{%- endfor -%}
diff --git a/_includes/root_stable_version_short b/_includes/root_stable_version_short
index 715710be..d4ac6139 100644
--- a/_includes/root_stable_version_short
+++ b/_includes/root_stable_version_short
@@ -1 +1,6 @@
-{% assign sorted = site.releases | reverse %}{% for release in sorted %}{% if release.state == "latest" %}{{release.version | replace:".","" | truncate: 3, "" }}{% endif %}{% endfor %}
+{%- assign sorted = site.releases | reverse -%}
+ {%- for release in sorted -%}
+ {%- if release.state == "latest" -%}
+ {{release.version | replace:".","" | truncate: 3, "" }}
+ {%- endif -%}
+{%- endfor -%}
\ No newline at end of file
diff --git a/_includes/root_stable_version_url b/_includes/root_stable_version_url
deleted file mode 100644
index 07e7ea01..00000000
--- a/_includes/root_stable_version_url
+++ /dev/null
@@ -1 +0,0 @@
-{% assign sorted = site.releases | reverse %}{% for release in sorted %}{% if release.state == "latest" %}{{ release.url }}{% endif %}{% endfor %}
diff --git a/install/index.md b/install/index.md
index de09868b..afb8ad29 100644
--- a/install/index.md
+++ b/install/index.md
@@ -24,11 +24,11 @@ The steps to install a pre-compiled binary are simple:
1. Unpack the archive
1. Add the ROOT libraries and executables to your environment by sourcing the appropriate `thisroot.*` script. These setup scripts can be found in the ROOT binary release, in the `bin` directory.
-For example, on Ubuntu 20, a user could execute the following bash commands to install ROOT v6.24/02, after installing all [required dependencies]({{'/install/dependencies' | relative_url}}):
+For example, on {% include root_stable_os %}, a user could execute the following bash commands to install ROOT v{% include root_stable_version %}, after installing all [required dependencies]({{'/install/dependencies' | relative_url}}):
```bash
-$ wget https://root.cern/download/root_v6.24.02.Linux-ubuntu20-x86_64-gcc9.3.tar.gz
-$ tar -xzvf root_v6.24.02.Linux-ubuntu20-x86_64-gcc9.3.tar.gz
+$ wget https://root.cern/download/{% include root_stable_sample %}
+$ tar -xzvf {% include root_stable_sample %}
$ source root/bin/thisroot.sh # also available: thisroot.{csh,fish,bat}
```
@@ -51,10 +51,10 @@ C:\Users\username>c:\root\bin\thisroot.bat
C:\Users\username>root
------------------------------------------------------------------
- | Welcome to ROOT 6.25/01 https://root.cern |
+ | Welcome to ROOT {% include root_stable_version %} https://root.cern |
| (c) 1995-2021, The ROOT Team; conception: R. Brun, F. Rademakers |
- | Built for win32 on Sep 20 2021, 11:34:39 |
- | From heads/master@v6-25-01-1903-g6928212418 |
+ | Built for win32 on {% include root_stable_version_date %}, 11:34:39 |
+ | From tags/{% include root_stable_version_dash %}@{% include root_stable_version_dash %} |
| With MSVC 19.29.30133.0 |
| Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
------------------------------------------------------------------
@@ -230,10 +230,10 @@ ROOT installations with minimal external dependencies are available for Fedora,
/cvmfs/sft.cern.ch/lcg/app/releases/ROOT//
```
-For example, to set up ROOT 6.24/02 on a CentOS7 machine, just run:
+For example, to set up ROOT {% include root_stable_version %} on a {% include root_stable_os %} machine, just run:
```
-source /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.24.02/x86_64-centos7-gcc48-opt/bin/thisroot.sh
+source /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/{% include root_stable_version_dot %}/{% include root_stable_dir %}/bin/thisroot.sh
```
Make sure you use your system's default compiler, just like this ROOT build.
@@ -247,10 +247,10 @@ ROOT, Geant4 and many other packages with all their dependencies are available a
```
LCG views are available for CentOS7, CentOS8 and the latest MacOS and Ubuntu releases.
-For example, on CERN LXPLUS, you can set up a full environment that contains ROOT 6.24/00 with:
+For example, on CERN LXPLUS, you can set up a full environment that contains ROOT {% include root_stable_version %} with:
```
-source /cvmfs/sft.cern.ch/lcg/views/LCG_100/x86_64-centos7-gcc10-opt/setup.sh
+source /cvmfs/sft.cern.ch/lcg/views/LCG_100/{% include root_stable_dir %}/setup.sh
```
To check what ROOT version is contained in an LCG release, you can visit [lcginfo.cern.ch](http://lcginfo.cern.ch/){:target="\_blank"}.
diff --git a/manual/cling/index.md b/manual/cling/index.md
index 1766dc93..45421842 100644
--- a/manual/cling/index.md
+++ b/manual/cling/index.md
@@ -21,10 +21,10 @@ Start up a ROOT session by typing `root` at the system prompt.
{% highlight C++ %}
$ root
------------------------------------------------------------------
- | Welcome to ROOT 6.27/01 https://root.cern |
+ | Welcome to ROOT {% include root_stable_version %} https://root.cern |
| (c) 1995-2022, The ROOT Team; conception: R. Brun, F. Rademakers |
- | Built for linuxx8664gcc on Apr 07 2022, 13:00:54 |
- | From heads/master@v6-25-01-3805-ge505630f86 |
+ | Built for linuxx8664gcc on {% include root_stable_version_date %}, 13:00:54 |
+ | From tags/{% include root_stable_version_dash %}@{% include root_stable_version_dash %} |
| With c++ (Ubuntu 8.4.0-1ubuntu1~18.04) 8.4.0 |
| Try '.help'/'.?', '.demo', '.license', '.credits', '.quit'/'.q' |
------------------------------------------------------------------
@@ -587,7 +587,7 @@ gROOT->ProcessLine(".L MyScript.C++")
To change the compilation output directory in order not to pollute your source directory,
see [TSystem::SetBuildDir](https://root.cern/doc/master/classTSystem.html#ae8790897e77f60ff37876b944f9f0091).
-
+
### Setting the Include Path
diff --git a/manual/first_steps_with_root/index.md b/manual/first_steps_with_root/index.md
index 225d569f..d6493a5c 100644
--- a/manual/first_steps_with_root/index.md
+++ b/manual/first_steps_with_root/index.md
@@ -26,10 +26,10 @@ and the ROOT prompt is displayed:
```
------------------------------------------------------------------
- | Welcome to ROOT 6.27/01 https://root.cern |
+ | Welcome to ROOT {% include root_stable_version %} https://root.cern |
| (c) 1995-2022, The ROOT Team; conception: R. Brun, F. Rademakers |
- | Built for linuxx8664gcc on Apr 07 2022, 13:00:54 |
- | From heads/master@v6-25-01-3805-ge505630f86 |
+ | Built for linuxx8664gcc on {% include root_stable_version_date %}, 13:00:54 |
+ | From tags/{% include root_stable_version_dash %}@{% include root_stable_version_dash %} |
| With c++ (Ubuntu 8.4.0-1ubuntu1~18.04) 8.4.0 |
| Try '.help'/'.?', '.demo', '.license', '.credits', '.quit'/'.q' |
------------------------------------------------------------------
diff --git a/primer/index.md b/primer/index.md
index c5be34cc..26e7c558 100644
--- a/primer/index.md
+++ b/primer/index.md
@@ -345,7 +345,6 @@ file="canvases.root" object="TF1_DoubleSlit"
caption="Output of slits.C with parameters 0.2 and 2."
%}
-
The example first asks for user input, namely the ratio of slit width
over slit distance, and the number of slits. After entering this
information, you should see the graphical output as is shown in Figure [2.1](#f21).
@@ -360,19 +359,18 @@ full interference pattern is given by the product of a function
depending on the ratio of the width and distance of the slits, and a
second one depending on the number of slits. More important for us here
is the definition of the interface of these functions to make them
-usable for the ROOT class {% include ref class="TF1" %}: the first argument is the pointer to
-*x*, the second one points to the array of parameters.
+usable for the ROOT class {% include ref class="TF1" %}:
+the first argument is the pointer to *x*, the second one points to the
+array of parameters.
The main program starts at line 21 with the definition of a function
`slits()` of type `void`. After asking for user input, a ROOT function
is defined using the C-type function given in the beginning. We can now
-use all methods of the {% include ref class="TF1" %} class to control the behaviour of our
-function -- nice, isn't it ?
+use all methods of the {% include ref class="TF1" %} class to control the behaviour of our function -- nice, isn't it ?
If you like, you can easily extend the example to also plot the
interference pattern of a single slit, using function `double single`,
-or of a grid with narrow slits, function `double nslit0`, in {% include ref class="TF1" %}
-instances.
+or of a grid with narrow slits, function `double nslit0`, in {% include ref class="TF1" %} instances.
Here, we used a macro, some sort of lightweight program, that the
interpreter distributed with ROOT, Cling, is able to execute. This is a