git: 7fe378266a - main - Fix problems with links and CSS in offline mode

Sergio Carlavilla Delgado <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.doc
Message-ID <[email protected]>
The branch main has been updated by carlavilla:

URL: https://cgit.FreeBSD.org/doc/commit/?id=7fe378266af5031be31ccc562b6e0580dc18d51a

commit 7fe378266af5031be31ccc562b6e0580dc18d51a
Author:     Sergio Carlavilla Delgado <[email protected]>
AuthorDate: 2022-01-29 21:02:15 +0000
Commit:     Sergio Carlavilla Delgado <[email protected]>
CommitDate: 2022-01-29 21:02:15 +0000

    Fix problems with links and CSS in offline mode
    
    Reported by:    dbaio@
---
 documentation/config/offline/config.toml           | 13 ++--
 .../themes/beastie/layouts/books/list.html         | 42 ++++++------
 .../themes/beastie/layouts/books/single.html       | 42 ++++++------
 .../themes/beastie/layouts/partials/menu.html      | 23 +++++--
 .../beastie/layouts/partials/site-footer.html      | 14 ++--
 .../themes/beastie/layouts/partials/site-head.html | 79 ++++++++++++----------
 .../beastie/layouts/partials/site-header.html      | 16 +++--
 7 files changed, 132 insertions(+), 97 deletions(-)

diff --git a/documentation/config/offline/config.toml b/documentation/config/offline/config.toml
index f359e2ad7e..653ef5b279 100644
--- a/documentation/config/offline/config.toml
+++ b/documentation/config/offline/config.toml
@@ -1,6 +1,6 @@
 # FreeBSD documentation
 
-baseURL = "localhost"
+baseURL = ""
 title = "FreeBSD Documentation Portal"
 copyright = "BSD 2-clause 'Simplified' License"
 defaultContentLanguage = "en"
@@ -11,6 +11,7 @@ disableKinds = [ "taxonomy", "term", "RSS", "sitemap", "robotsTXT", "404" ]
 authors = [ "[email protected]" ]
 ignoreFiles = [ "chapter.adoc$", "contrib-386bsd.adoc$", "contrib-additional.adoc$", "contrib-committers.adoc$", "contrib-corealumni.adoc$", "contrib-develalumni.adoc$", "contrib-develinmemoriam.adoc$", "contrib-portmgralumni.adoc$", "books.adoc$", "\\.po$" ]
 enableRobotsTXT = true
+relativeURLs = true
 
 [params]
   websiteURL = "https://www.FreeBSD.org"
@@ -29,11 +30,11 @@ enableRobotsTXT = true
     urls = [".*"]
 
 [markup.asciidocExt]
-    extensions = ["man-macro", "inter-document-references-macro", "cross-document-references-macro", "sectnumoffset-treeprocessor", "packages-macro", "git-macro"]
-    [markup.asciidocExt.attributes]
-      env-beastie = true
-      isOnline = false
-      skip-front-matter = true
+  extensions = ["man-macro", "inter-document-references-macro", "cross-document-references-macro", "sectnumoffset-treeprocessor", "packages-macro", "git-macro"]
+  [markup.asciidocExt.attributes]
+    env-beastie = true
+    isOnline = false
+    skip-front-matter = true
 
 [outputs]
 home = [ "HTML" ]
diff --git a/documentation/themes/beastie/layouts/books/list.html b/documentation/themes/beastie/layouts/books/list.html
index 7b0998acce..d4df934989 100644
--- a/documentation/themes/beastie/layouts/books/list.html
+++ b/documentation/themes/beastie/layouts/books/list.html
@@ -41,15 +41,17 @@
       <h3>{{ i18n "toc" }}</h3>
       {{ .TableOfContents }}
     </div>
-    {{ if .Params.add_split_page_link }}
-    <div>
-      [ <a href="../">{{ i18n "split-html" }}</a> / {{ i18n "single-html" }} ]
-    </div>
+    {{ if $.Site.Params.isOnline }}
+      {{ if .Params.add_split_page_link }}
+      <div>
+        [ <a href="../">{{ i18n "split-html" }}</a> / {{ i18n "single-html" }} ]
+      </div>
+      {{ end }}
+      {{ if .Params.add_single_page_link }}
+      <div>
+        [ {{ i18n "split-html" }} / <a href="book/">{{ i18n "single-html" }}</a> ]
+      </div>
     {{ end }}
-    {{ if .Params.add_single_page_link }}
-    <div>
-      [ {{ i18n "split-html" }} / <a href="book/">{{ i18n "single-html" }}</a> ]
-    </div>
     {{ end }}
     <div class="book-content">
       {{ .Content }}
@@ -61,7 +63,7 @@
         <i class="fa fa-angle-left" aria-hidden="true"></i>
         <div class="container">
           {{ if $.Site.Params.isOnline }}
-          <a href={{ .Params.Prev | absLangURL }} class="direction">{{ i18n "prev" }}</a>
+            <a href={{ .Params.Prev | absLangURL }} class="direction">{{ i18n "prev" }}</a>
           {{ else }}
             {{ $pathSectionsPrev := split .Params.Prev "/" }}
 
@@ -79,25 +81,25 @@
       <div class="home">
         <i class="fa fa-home" aria-hidden="true"></i>
         <div class="container">
-          <a href="../" class="direction">{{ i18n "home" }}</a>
+          {{ if $.Site.Params.isOnline }}
+            <a href="../" class="direction">{{ i18n "home" }}</a>
+          {{ else }}
+            <a href="../index.html" class="direction">{{ i18n "home" }}</a>
+          {{ end }}
         </div>
       </div>
       {{ if .Params.next }}
       <div class="next">
         <div class="container">
           {{ if $.Site.Params.isOnline }}
-          <a href={{ .Params.Next | absLangURL }}  class="direction">{{ i18n "next" }}</a>
+            <a href={{ .Params.Next | absLangURL }}  class="direction">{{ i18n "next" }}</a>
           {{ else }}
-            {{ $pathSectionsNext := split .Params.Next "/" }}
+            {{ $pathSectionsNext := split .Params.next "/" }}
+
             {{if eq (len $pathSectionsNext) 3}}
-              {{ if .Params.isIndex }}
-                {{ $book := index $pathSectionsNext 1 }}
-                {{ $path := index $pathSectionsNext 2 }}
-                <a href=../{{ $book }}/{{ $path }}/index.html>{{ i18n "next" }}</a>
-              {{ else }}
-                {{ $path := index $pathSectionsNext 2 }}
-                <a href=../{{ $path }}/index.html>{{ i18n "next" }}</a>
-              {{ end }}
+              {{ $book := index $pathSectionsNext 1 }}
+              {{ $chapter := index $pathSectionsNext 2 }}
+              <a href=../{{ $book }}/{{ $chapter }}/index.html>{{ i18n "next" }}</a>
             {{ end }}
             {{if eq (len $pathSectionsNext) 2}}
               <a href=../index.html>{{ i18n "next" }}</a>
diff --git a/documentation/themes/beastie/layouts/books/single.html b/documentation/themes/beastie/layouts/books/single.html
index 7b0998acce..d4df934989 100644
--- a/documentation/themes/beastie/layouts/books/single.html
+++ b/documentation/themes/beastie/layouts/books/single.html
@@ -41,15 +41,17 @@
       <h3>{{ i18n "toc" }}</h3>
       {{ .TableOfContents }}
     </div>
-    {{ if .Params.add_split_page_link }}
-    <div>
-      [ <a href="../">{{ i18n "split-html" }}</a> / {{ i18n "single-html" }} ]
-    </div>
+    {{ if $.Site.Params.isOnline }}
+      {{ if .Params.add_split_page_link }}
+      <div>
+        [ <a href="../">{{ i18n "split-html" }}</a> / {{ i18n "single-html" }} ]
+      </div>
+      {{ end }}
+      {{ if .Params.add_single_page_link }}
+      <div>
+        [ {{ i18n "split-html" }} / <a href="book/">{{ i18n "single-html" }}</a> ]
+      </div>
     {{ end }}
-    {{ if .Params.add_single_page_link }}
-    <div>
-      [ {{ i18n "split-html" }} / <a href="book/">{{ i18n "single-html" }}</a> ]
-    </div>
     {{ end }}
     <div class="book-content">
       {{ .Content }}
@@ -61,7 +63,7 @@
         <i class="fa fa-angle-left" aria-hidden="true"></i>
         <div class="container">
           {{ if $.Site.Params.isOnline }}
-          <a href={{ .Params.Prev | absLangURL }} class="direction">{{ i18n "prev" }}</a>
+            <a href={{ .Params.Prev | absLangURL }} class="direction">{{ i18n "prev" }}</a>
           {{ else }}
             {{ $pathSectionsPrev := split .Params.Prev "/" }}
 
@@ -79,25 +81,25 @@
       <div class="home">
         <i class="fa fa-home" aria-hidden="true"></i>
         <div class="container">
-          <a href="../" class="direction">{{ i18n "home" }}</a>
+          {{ if $.Site.Params.isOnline }}
+            <a href="../" class="direction">{{ i18n "home" }}</a>
+          {{ else }}
+            <a href="../index.html" class="direction">{{ i18n "home" }}</a>
+          {{ end }}
         </div>
       </div>
       {{ if .Params.next }}
       <div class="next">
         <div class="container">
           {{ if $.Site.Params.isOnline }}
-          <a href={{ .Params.Next | absLangURL }}  class="direction">{{ i18n "next" }}</a>
+            <a href={{ .Params.Next | absLangURL }}  class="direction">{{ i18n "next" }}</a>
           {{ else }}
-            {{ $pathSectionsNext := split .Params.Next "/" }}
+            {{ $pathSectionsNext := split .Params.next "/" }}
+
             {{if eq (len $pathSectionsNext) 3}}
-              {{ if .Params.isIndex }}
-                {{ $book := index $pathSectionsNext 1 }}
-                {{ $path := index $pathSectionsNext 2 }}
-                <a href=../{{ $book }}/{{ $path }}/index.html>{{ i18n "next" }}</a>
-              {{ else }}
-                {{ $path := index $pathSectionsNext 2 }}
-                <a href=../{{ $path }}/index.html>{{ i18n "next" }}</a>
-              {{ end }}
+              {{ $book := index $pathSectionsNext 1 }}
+              {{ $chapter := index $pathSectionsNext 2 }}
+              <a href=../{{ $book }}/{{ $chapter }}/index.html>{{ i18n "next" }}</a>
             {{ end }}
             {{if eq (len $pathSectionsNext) 2}}
               <a href=../index.html>{{ i18n "next" }}</a>
diff --git a/documentation/themes/beastie/layouts/partials/menu.html b/documentation/themes/beastie/layouts/partials/menu.html
index 1d118e85e4..7d82aac764 100644
--- a/documentation/themes/beastie/layouts/partials/menu.html
+++ b/documentation/themes/beastie/layouts/partials/menu.html
@@ -4,19 +4,30 @@
       <li>
         {{ if ne .Page.File.LogicalName "book.adoc" }}
 
-          {{ $finalPath := printf "%s%s" .Page.Permalink "#" }}
           {{ $toc := htmlUnescape .Page.TableOfContents }}
           {{ $toc = replace $toc "<nav id=\"TableOfContents\">" "" }}
           {{ $toc = replace $toc "</nav>" "" }}
 
           <input type="checkbox" id="chapter-{{ md5 .Page }}" class="toggle" {{ if eq .Page.Permalink $.Permalink }} checked {{ end }} />
           <label {{ if gt (len $toc) 0 }} class="icon cursor" {{ end }} for="chapter-{{ md5 .Page }}"><a role="button"></a></label>
-          <a href="{{ .Page.Permalink }}">
-            {{ .Page.Title }}
-          </a>
 
-          {{ $toc = replace $toc "#" $finalPath }}
-          {{ $toc | safeHTML }}
+          {{ if $.Site.Params.isOnline }}
+            {{ $finalPath := printf "%s%s" .Page.Permalink "index.html/#" }}
+            <a href="{{ .Page.Permalink }}">
+              {{ .Page.Title }}
+            </a>
+            {{ $toc = replace $toc "#" $finalPath }}
+            {{ $toc | safeHTML }}
+          {{ else }}
+            {{ $chapterPath := printf "%s%s" .Page.Permalink "index.html" }}
+            <a href="{{$chapterPath}}">
+              {{ .Page.Title }}
+            </a>
+            {{ $chapterPath = replace $chapterPath "index.html" "index.html#" }}
+            {{ $toc = replace $toc "#" $chapterPath }}
+            {{ $toc | safeHTML }}
+          {{ end }}
+
         {{ end }}
       </li>
     {{ end }}
diff --git a/documentation/themes/beastie/layouts/partials/site-footer.html b/documentation/themes/beastie/layouts/partials/site-footer.html
index 3b3303ea96..7e00948dd1 100755
--- a/documentation/themes/beastie/layouts/partials/site-footer.html
+++ b/documentation/themes/beastie/layouts/partials/site-footer.html
@@ -4,12 +4,14 @@
       {{ i18n "freebsd-project" }}
     </h1>
     <div class="options-container">
-      <div class="language-container">
-        <a id="languages" href="{{ "languages" | absLangURL }}">
-          <img src="{{ absLangURL ($.Site.BaseURL ) }}images/language.png" class="language-image" alt="{{ i18n "choose-language" }}">
-          <span>{{ .Site.Language.LanguageName }}</span>
-        </a>
-      </div>
+      {{ if $.Site.Params.isOnline }}
+        <div class="language-container">
+          <a id="languages" href="{{ "languages" | absLangURL }}">
+            <img src="{{ absLangURL ($.Site.BaseURL ) }}images/language.png" class="language-image" alt="{{ i18n "choose-language" }}">
+            <span>{{ .Site.Language.LanguageName }}</span>
+          </a>
+        </div>
+      {{ end }}
       <div class="theme-container">
         <select id="theme-chooser">
           <option value="theme-light">{{ i18n "light" }}</option>
diff --git a/documentation/themes/beastie/layouts/partials/site-head.html b/documentation/themes/beastie/layouts/partials/site-head.html
index df073603e6..a9b1d38026 100644
--- a/documentation/themes/beastie/layouts/partials/site-head.html
+++ b/documentation/themes/beastie/layouts/partials/site-head.html
@@ -8,45 +8,56 @@
 
   <title>{{ with .Params.Title }}{{ . }} | {{ end }} {{ block "title" . }}{{ .Site.Title }}{{ end }}</title>
 
-  <!-- FAVICON -->
-  <link rel="shortcut icon" href="{{ absLangURL ($.Site.BaseURL) }}favicon.ico">
-
   <meta name="theme-color" content="#790000">
   <meta name="color-scheme" content="light dark high-contrast">
-  <!-- END FAVICON -->
 
-  {{- $styles := resources.Get "styles/main.scss" | resources.ToCSS | resources.Minify }}
-  <link rel="stylesheet" href="{{ $styles.Permalink }}">
-  <link rel="stylesheet" href="{{ absLangURL ($.Site.BaseURL) }}css/font-awesome-min.css">
+  {{ if $.Site.Params.isOnline }}
+    <link rel="shortcut icon" href="{{ absLangURL ($.Site.BaseURL) }}favicon.ico">
+
+    {{- $styles := resources.Get "styles/main.scss" | resources.ToCSS | resources.Minify }}
+    <link rel="stylesheet" href="{{ $styles.Permalink }}">
+    <link rel="stylesheet" href="{{ absLangURL ($.Site.BaseURL) }}css/font-awesome-min.css">
+
+    {{- $themeChooser := resources.Get "js/theme-chooser.js" | resources.Minify }}
+    <script defer src="{{ $themeChooser.RelPermalink }}"></script>
+  {{ else }}
+    <link rel="shortcut icon" href="/favicon.ico">
+
+    {{- $styles := resources.Get "styles/main.scss" | resources.ToCSS | resources.Minify }}
+    <link rel="stylesheet" href="{{ $styles.RelPermalink }}">
+    <link rel="stylesheet" href="/css/font-awesome-min.css">
 
-  {{- $themeChooser := resources.Get "js/theme-chooser.js" | resources.Minify }}
-  <script defer src="{{ $themeChooser.RelPermalink }}"></script>
+    {{- $themeChooser := resources.Get "js/theme-chooser.js" | resources.Minify }}
+    <script defer src="{{ $themeChooser.RelPermalink }}"></script>
+  {{ end }}
 
   <!-- SEO -->
-  <meta name="twitter:card" content="summary"/>
-  <meta name="twitter:domain" content="docs.FreeBSD.org"/>
-  <meta name="twitter:site" content="@freebsd"/>
-  <meta name="twitter:url" content="https://twitter.com/freebsd"/>
-  <meta property="og:title" content="{{ if .IsHome }}{{ .Site.Params.Title }}{{ else }}{{ .Title }}{{ end }}" />
-  <meta property="og:description" content="{{ if .IsHome }}{{ .Site.Params.description }}{{ else }}{{ .Description }}{{ end }}" />
-  <meta property="og:type" content="website"/>
-  <meta property="og:image" content="{{ absLangURL ($.Site.BaseURL) }}favicon.ico"/>
-  <meta property="og:image:alt" content="FreeBSD Logo">
-  <meta property="og:locale" content="{{ $.Site.Language.Lang | default "en" }}" />
-  <meta property="og:url" content="{{ .Permalink }}" />
-  <meta property="og:site_name" content="{{ .Site.Title }}" />
-  <script type="application/ld+json">
-    {
-      "@context": "http://schema.org",
-      "@type": "Article",
-      "url": "{{ .Permalink }}",
-      "name": "{{ .Site.Title }}",
-      "headline": "{{ .Site.Title }}",
-      "description": "{{ .Site.Params.description }}"
-    }
-  </script>
-  <!-- END SEO -->
-
-  {{ template "_internal/google_analytics.html" . }}
+  {{ if $.Site.Params.isOnline }}
+    <meta name="twitter:card" content="summary"/>
+    <meta name="twitter:domain" content="docs.FreeBSD.org"/>
+    <meta name="twitter:site" content="@freebsd"/>
+    <meta name="twitter:url" content="https://twitter.com/freebsd"/>
+    <meta property="og:title" content="{{ if .IsHome }}{{ .Site.Params.Title }}{{ else }}{{ .Title }}{{ end }}" />
+    <meta property="og:description" content="{{ if .IsHome }}{{ .Site.Params.description }}{{ else }}{{ .Description }}{{ end }}" />
+    <meta property="og:type" content="website"/>
+    <meta property="og:image" content="{{ absLangURL ($.Site.BaseURL) }}favicon.ico"/>
+    <meta property="og:image:alt" content="FreeBSD Logo">
+    <meta property="og:locale" content="{{ $.Site.Language.Lang | default "en" }}" />
+    <meta property="og:url" content="{{ .Permalink }}" />
+    <meta property="og:site_name" content="{{ .Site.Title }}" />
+    <script type="application/ld+json">
+      {
+        "@context": "http://schema.org",
+        "@type": "Article",
+        "url": "{{ .Permalink }}",
+        "name": "{{ .Site.Title }}",
+        "headline": "{{ .Site.Title }}",
+        "description": "{{ .Site.Params.description }}"
+      }
+    </script>
+    <!-- END SEO -->
+
+    {{ template "_internal/google_analytics.html" . }}
+  {{ end }}
 </head>
 
diff --git a/documentation/themes/beastie/layouts/partials/site-header.html b/documentation/themes/beastie/layouts/partials/site-header.html
index 5e6af7604a..25e98b01fc 100755
--- a/documentation/themes/beastie/layouts/partials/site-header.html
+++ b/documentation/themes/beastie/layouts/partials/site-header.html
@@ -1,15 +1,21 @@
 <header>
   <nav>
     <a href="{{ $.Site.Params.websiteURL }}" class="logo">
-      <img src="{{ absLangURL ($.Site.BaseURL) }}images/freebsd-logo.svg" width="160" height="50" alt="FreeBSD logo" />
+      {{ if $.Site.Params.isOnline }}
+        <img src="{{ absLangURL ($.Site.BaseURL) }}images/freebsd-logo.svg" width="160" height="50" alt="FreeBSD logo" />
+      {{ else }}
+        <img src="/images/freebsd-logo.svg" width="160" height="50" alt="FreeBSD logo" />
+      {{ end }}
     </a>
     <input class="menu-btn" type="checkbox" id="menu-btn" />
     <label class="menu-icon" for="menu-btn"><span class="navicon"></span></label>
     <ul class="menu">
-      <li class="first-element"><a href="{{ .Site.BaseURL | relLangURL }}">{{ i18n "documentation" }}</a></li>
-      <li><a href={{ "books" | absLangURL }}>{{ i18n "books" }}</a></li>
-      <li><a href={{ "articles" | absLangURL }}>{{ i18n "articles" }}</a></li>
-      <!--<li><a href={{ "communit" | absLangURL }}>{{ i18n "community" }}</a></li>-->
+      {{ if $.Site.Params.isOnline }}
+        <li class="first-element"><a href="{{ .Site.BaseURL | relLangURL }}">{{ i18n "documentation" }}</a></li>
+        <li><a href={{ "books" | absLangURL }}>{{ i18n "books" }}</a></li>
+        <li><a href={{ "articles" | absLangURL }}>{{ i18n "articles" }}</a></li>
+        <!--<li><a href={{ "communit" | absLangURL }}>{{ i18n "community" }}</a></li>-->
+      {{ end }}
     </ul>
   </nav>
 </header>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.