From 8bd202954d4e2a9019f67ad35b4420c791e2d762 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Weber?= Date: Mon, 18 Sep 2023 20:24:49 +0200 Subject: [PATCH] topbar: make buttons configurable #639 --- exampleSite/content/_index.en.md | 2 +- .../content/basics/migration/_index.en.md | 4 +- .../content/basics/topbar/_index.en.md | 147 +++++++++++++ .../content/basics/topbar/_index.pir.md | 5 + .../content/basics/topbar/topbar-areas.png | Bin 0 -> 13223 bytes .../content/basics/topbar/topbar-closed.png | Bin 0 -> 8776 bytes i18n/ar.toml | 3 + i18n/cs.toml | 3 + i18n/de.toml | 3 + i18n/en.toml | 3 + i18n/es.toml | 3 + i18n/fi.toml | 3 + i18n/fr.toml | 3 + i18n/hi.toml | 3 + i18n/hu.toml | 3 + i18n/id.toml | 3 + i18n/it.toml | 3 + i18n/ja.toml | 3 + i18n/ko.toml | 3 + i18n/nl.toml | 3 + i18n/pir.toml | 3 + i18n/pl.toml | 3 + i18n/pt.toml | 3 + i18n/ru.toml | 3 + i18n/tr.toml | 3 + i18n/vi.toml | 3 + i18n/zh-cn.toml | 3 + i18n/zh-tw.toml | 3 + i18n/zh.toml | 3 + layouts/partials/header.html | 87 +------- layouts/partials/topbar/area/end.html | 15 ++ layouts/partials/topbar/area/more.html | 0 layouts/partials/topbar/area/start.html | 6 + layouts/partials/topbar/button/edit.html | 20 ++ layouts/partials/topbar/button/more.html | 14 ++ layouts/partials/topbar/button/next.html | 33 +++ layouts/partials/topbar/button/prev.html | 35 +++ layouts/partials/topbar/button/print.html | 20 ++ layouts/partials/topbar/button/sidebar.html | 15 ++ layouts/partials/topbar/button/toc.html | 29 +++ layouts/partials/topbar/func/area-button.html | 26 +++ .../func/button.html} | 16 +- static/css/format-print.css | 4 +- static/css/ie.css | 18 +- static/css/theme.css | 68 +++--- static/css/variant.css | 2 +- static/js/theme.js | 204 +++++++++++++++--- 47 files changed, 675 insertions(+), 164 deletions(-) create mode 100644 exampleSite/content/basics/topbar/_index.en.md create mode 100644 exampleSite/content/basics/topbar/_index.pir.md create mode 100644 exampleSite/content/basics/topbar/topbar-areas.png create mode 100644 exampleSite/content/basics/topbar/topbar-closed.png create mode 100644 layouts/partials/topbar/area/end.html create mode 100644 layouts/partials/topbar/area/more.html create mode 100644 layouts/partials/topbar/area/start.html create mode 100644 layouts/partials/topbar/button/edit.html create mode 100644 layouts/partials/topbar/button/more.html create mode 100644 layouts/partials/topbar/button/next.html create mode 100644 layouts/partials/topbar/button/prev.html create mode 100644 layouts/partials/topbar/button/print.html create mode 100644 layouts/partials/topbar/button/sidebar.html create mode 100644 layouts/partials/topbar/button/toc.html create mode 100644 layouts/partials/topbar/func/area-button.html rename layouts/partials/{topbar-button.html => topbar/func/button.html} (59%) diff --git a/exampleSite/content/_index.en.md b/exampleSite/content/_index.en.md index 8ee1dae476..a74db871ad 100644 --- a/exampleSite/content/_index.en.md +++ b/exampleSite/content/_index.en.md @@ -69,7 +69,7 @@ To get support, feel free to open a new [discussion topic](https://github.com/Mc ## Contributions -Feel free to contribute to this documentation by just clicking the {{% button style="transparent" icon="pen" %}}{{% /button %}} button displayed on top right of each page. +Feel free to contribute to this documentation by just clicking the {{% button style="transparent" icon="pen" %}}{{% /button %}} _edit_ button displayed on top right of each page. You are most welcome to contribute bugfixes or new features by making pull requests to the [official repository](https://github.com/McShelby/hugo-theme-relearn). Check the [contribution guidelines]({{%relref "dev/contributing" %}}) first before starting. diff --git a/exampleSite/content/basics/migration/_index.en.md b/exampleSite/content/basics/migration/_index.en.md index fd01f64e39..baeb80f72d 100644 --- a/exampleSite/content/basics/migration/_index.en.md +++ b/exampleSite/content/basics/migration/_index.en.md @@ -20,9 +20,9 @@ This document shows you what's new in the latest release. For a detailed list of ## 5.21.0 (2023-09-03) {#5210} -- {{% badge style="note" title=" " %}}Change{{% /badge %}} We made changes to the menu footer. If you have your `menu-footer.html` [partial overridden]({{%relref "basics/customization" %}}), you may have to review the styling (eg. margins/paddings) in your partial. +- {{% badge style="note" title=" " %}}Change{{% /badge %}} We made changes to the menu footer improve alignment with the menu items in most cases. Care was taken not to break your existing overwritten footer. Anyways, if you have your `menu-footer.html` [partial overridden]({{%relref "basics/customization" %}}), you may want to review the styling (eg. margins/paddings) of your partial. - This change was made to simplify common use cases. Care was taken not to break your existing overwritten footer. +- {{% badge style="info" icon="plus-circle" title=" " %}}New{{% /badge %}} This release comes with an awesome new feature, that allows you to customize your topbar buttons, change behavior, reorder them or define entirely new ones, unique to your installation. See [the documentation]({{%relref "basics/topbar" %}}) for further details. --- diff --git a/exampleSite/content/basics/topbar/_index.en.md b/exampleSite/content/basics/topbar/_index.en.md new file mode 100644 index 0000000000..eb46ba5d80 --- /dev/null +++ b/exampleSite/content/basics/topbar/_index.en.md @@ -0,0 +1,147 @@ ++++ +title = "Topbar Modification" +weight = 27 ++++ + +The theme comes with a reasonably configured topbar. + +![Topbar on mobile devices](topbar-closed.png) + +Nevertheless, your requirements may differ from this configuration. Luckily the theme got you covered as the themebar, its buttons and the functionality behind these buttons is fully configurable by you. + +## Areas + +The default configuration comes with three predefined areas that may contain an arbitrary set of buttons. + +![Topbar with default areas marked](topbar-areas.png) + +- **start**: shown between menu and breadcrumb +- **end**: shown on the opposite breadcrumb side in comparison to the _start_ area +- **more**: shown when pressing the {{% button style="transparent" icon="ellipsis-v" %}}{{% /button %}} _more_ button in the topbar + +While you can not add additional areas in the topbar, you are free to configure addtional buttons that behave like the _more_ button, providing further user defined areas. + +## Buttons + +The theme ships with the following predefined buttons (from left to right in the screenshot) + +- {{% button style="transparent" icon="bars" %}}{{% /button %}} **sidebar**: opens the sidebar flyout if in mobile layout +- {{% button style="transparent" icon="list-alt" %}}{{% /button %}} **toc**: opens the table of contents in an overlay +- {{% button style="transparent" icon="pen" %}}{{% /button %}} **edit**: browses to the editable page if the `editURL` [parameter is set]({{% relref "/basics/configuration/#global-site-parameters" %}}) +- {{% button style="transparent" icon="print" %}}{{% /button %}} **print**: browses to the chapters printable page if [print support]({{% relref "/basics/configuration/#activate-print-support" %}}) was activated +- {{% button style="transparent" icon="chevron-left" %}}{{% /button %}} **prev**: browses to the previous page if there is one +- {{% button style="transparent" icon="chevron-right" %}}{{% /button %}} **next**: browses to the next page if there is one +- {{% button style="transparent" icon="ellipsis-v" %}}{{% /button %}} **more**: opens the overlay for the _more_ area + +Not all buttons are displayed at every given time. This is configurable (see below if interested). + +## Redefining Areas + +Each predefined area and button comes in their own file. By that it is easy for you to overwrite an area file in your installation reusing only the buttons you like. + +Eg. you can redefine the predefined _end_ area by adding the file `layouts/partials/topbar/area/end.html` in your installtion (not in the theme itself) to remove all but the _more_ button. + +````go +{{ partial "topbar/button/more.html" (dict + "page" . +)}} +```` + +## Defining own Buttons + +### Button Types + +The theme distingushies between two types of buttons: + +- **button**: a clickable button that either browses to another site or triggers a user defined script +- **area-button**: the template for the {{% button style="transparent" icon="ellipsis-v" %}}{{% /button %}} _more_ button, to define your own area overlay buttons + +### Button Parameter + +#### Screen Widths and Actions + +Depending on the screen width you can configure how the button should behave. Screen width is divided into three classes: + +- **s**: (controlled by the `onwidths` parameter) mobile layout where the menu sidebar is hidden +- **m**: (controlled by the `onwidthm` parameter) desktop layout with visible sidebar while the content area width still resizes +- **l**: (controlled by the `onwidthl` parameter) desktop layout with visible sidebar once the content area reached its maximum width + +For each width class, you can configure one of the following actions: + +- **show**: the button is displayed in its configured area +- **hide**: the button is hidden +- **area-XXX**: the button is moved from its configured area into the area `XXX`; eg. this is used to move buttons to the _more_ area in the mobile layout + +#### Hiding and Disabling Stuff + +While hiding a button dependend on the screen size can be configured with the above described _hide_ action, you may want to hide the button on certain other conditions aswell. + +For example, the _print_ button in its default configuration should only be displayed if print support was configured. This is done in your button template by checking the conditions first before displaying the button (see `layouts/partials/topbar/button/print.html`). + +Another prefered condition for hiding a button is, if the displayed overlay is empty. This is the case for the _toc_ (see `layouts/partials/topbar/button/toc.html`) aswell as the _more_ button (see `layouts/partials/topbar/button/more.html`) and controlled by the parameter `onempty`. + +This parameter can have one of the following values: + +- **hide**: the button is hidden if the overlay is empty +- **disable**: the button is disabled if the overlay is empty + +If you want to disable a button containing _no overlay_, this can be achieved by an empty `href` parameter. An example can be seen in the _prev_ button (see `layouts/partials/topbar/button/prev.html`) where the URL for the previous site may be empty. + +## Reference + +### Button + +Contains the basic button functionality and is used as a base implementation for all other buttons (`layouts/partials/topbar/func/button.html`). Call this from your own button templates if you want to implement a button with _no overlay_ area. + +#### Parameter + +| Name | Default | Notes | +|-----------------------|-----------------|-------------| +| **page** | _<empty>_ | Mandatory reference to the page. | +| **class** | _<empty>_ | Mandatory unique class name for this button. Displaying two buttons with the same value for **class** is undefined. | +| **href** | _<empty>_ | Either the destination URL for the button or JavaScript code to be executed on click.

- if starting with `javascript:` all following text will be executed in your browser
- every other string will be interpreted as URL

If this parameter is not set, the button will be displayed

- as disabled if no **content** is specified
- according to **onempty** if any **content** is given. | +| **icon** | _<empty>_ | Mandatory [Font Awesome icon name]({{%relref "shortcodes/icon#finding-an-icon" %}}). | +| **onempty** | `disable` | Defines what to do with the button if its content overlay is empty:

- `disable`: The button is displayed in disabled state.
- `hide`: The button is not displayed. The next button will move into the gap. | +| **onwidths** | `show` | The action, that should be executed if the site is displayed in the given width:

- `show`: The button is displayed in its configured area
- `hide`: The button is hidden.
- `area-XXX`: The button is moved from its configured area into the area `XXX`. | +| **onwidthm** | `show` | See above. | +| **onwidthl** | `show` | See above. | +| **title** | _<empty>_ | Arbitrary text for title, displayed in the tooltip. | +| **content** | see notes | Arbitrary HTML to put into the content overlay. This parameter may be empty. In this case no overlay will be generated. | + +### Area-Button + +Contains the basic functionality to display area overlay buttons (`layouts/partials/topbar/func/area-button.html`). Call this from your own button templates if you want to implement a button with an overlay area like the _more_ button. + +| Name | Default | Notes | +|-----------------------|-----------------|-------------| +| **page** | _<empty>_ | Mandatory reference to the page. | +| **area** | _<empty>_ | Mandatory unique area name for this area. Displaying two areas with the same value for **area** is undefined. | +| **icon** | _<empty>_ | Mandatory [Font Awesome icon name]({{%relref "shortcodes/icon#finding-an-icon" %}}). | +| **onempty** | `disable` | Defines what to do with the button if its content overlay is empty:

- `disable`: The button is displayed in disabled state.
- `hide`: The button is not displayed. The next button will move into the gap. | +| **onwidths** | `show` | The action, that should be executed if the site is displayed in the given width:

- `show`: The button is displayed in its configured area
- `hide`: The button is hidden.
- `area-XXX`: The button is moved from its configured area into the area `XXX`. | +| **onwidthm** | `show` | See above. | +| **onwidthl** | `show` | See above. | +| **title** | _<empty>_ | Arbitrary text for title, displayed in the tooltip. | + +### Predefined Buttons + +The predefined buttons by the theme (all other buttons besides the _more_ and _toc_ button in `layouts/partials/topbar/button`). Call these from your own redefined area templates if you want to offer some of the default button behavior. + +| Name | Default | Notes | +|-----------------------|-------------------|-------------| +| **page** | _<empty>_ | Mandatory reference to the page. | +| **onwidths** | _<varying>_ | The action, that should be executed if the site is displayed in the given width:

- `show`: The button is displayed in its configured area
- `hide_<varying>_ is hidden.
- `area-XXX`: The button is moved from its configured area into the area `XXX`. | +| **onwidthm** | _<varying>_ | See above. | +| **onwidthl** | _<varying>_ | See above. | + +### Predefined Overlay-Buttons + +The predefined buttons by the theme that open an overlay (the _more_ and _toc_ button in `layouts/partials/topbar/button`). Call these from your own redefined area templates if you want to offer some of the default area button behavior. + +| Name | Default | Notes | +|-----------------------|-------------------|-------------| +| **page** | _<empty>_ | Mandatory reference to the page. | +| **onempty** | _<varying>_ | Defines what to do with the button if its content overlay is empty:

- `disable`: The button is displayed in disabled state.
- `hide`: The button is not displayed. The next button will move into the gap. | +| **onwidths** | _<varying>_ | The action, that should be executed if the site is displayed in the given width:

- `show`: The button is displayed in its configured area
- `hide`: The button is hidden.
- `area-XXX`: The button is moved from its configured area into the area `XXX`. | +| **onwidthm** | _<varying>_ | See above. | +| **onwidthl** | _<varying>_ | See above. | diff --git a/exampleSite/content/basics/topbar/_index.pir.md b/exampleSite/content/basics/topbar/_index.pir.md new file mode 100644 index 0000000000..6709585eb2 --- /dev/null +++ b/exampleSite/content/basics/topbar/_index.pir.md @@ -0,0 +1,5 @@ ++++ +title = "Topbarrr modificat'n" +weight = 27 ++++ +{{< piratify >}} \ No newline at end of file diff --git a/exampleSite/content/basics/topbar/topbar-areas.png b/exampleSite/content/basics/topbar/topbar-areas.png new file mode 100644 index 0000000000000000000000000000000000000000..ca8fa4cda956599bed1bc3b1275644386dcefa3f GIT binary patch literal 13223 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 literal 0 HcmV?d00001 diff --git a/exampleSite/content/basics/topbar/topbar-closed.png b/exampleSite/content/basics/topbar/topbar-closed.png new file mode 100644 index 0000000000000000000000000000000000000000..631cbecf133272b87a00dc9cbc0b97093f19de3e GIT binary patch literal 8776 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 R0S-_>(0hhjcnycA{|o=4%;Eq5 literal 0 HcmV?d00001 diff --git a/i18n/ar.toml b/i18n/ar.toml index ac2931ec95..c8a24557ca 100644 --- a/i18n/ar.toml +++ b/i18n/ar.toml @@ -37,6 +37,9 @@ other = "حرر" [Print-this-chapter] other = "طباعة الفصل بأكمله" +[More-action] +other = "المزيد" + [Shortcuts-Title] other = "المزيد" diff --git a/i18n/cs.toml b/i18n/cs.toml index 9045e54357..1916959f32 100644 --- a/i18n/cs.toml +++ b/i18n/cs.toml @@ -37,6 +37,9 @@ other = "Upravit" [Print-this-chapter] other = "Vytisknout kapitolu" +[More-action] +other = "Více" + [Shortcuts-Title] other = "Více" diff --git a/i18n/de.toml b/i18n/de.toml index 31cc81bf4e..db67360277 100644 --- a/i18n/de.toml +++ b/i18n/de.toml @@ -37,6 +37,9 @@ other = "Bearbeiten" [Print-this-chapter] other = "Ganzes Kapitel drucken" +[More-action] +other = "Mehr" + [Shortcuts-Title] other = "Mehr" diff --git a/i18n/en.toml b/i18n/en.toml index c983a36dda..5d32322a5a 100644 --- a/i18n/en.toml +++ b/i18n/en.toml @@ -37,6 +37,9 @@ other = "Edit" [Print-this-chapter] other = "Print whole chapter" +[More-action] +other = "More" + [Shortcuts-Title] other = "More" diff --git a/i18n/es.toml b/i18n/es.toml index 85a954d748..78fc2f8360 100644 --- a/i18n/es.toml +++ b/i18n/es.toml @@ -37,6 +37,9 @@ other = "Editar" [Print-this-chapter] other = "Imprimir todo el capítulo" +[More-action] +other = "Más" + [Shortcuts-Title] other = "Más" diff --git a/i18n/fi.toml b/i18n/fi.toml index 9880c96c36..a138dd99ee 100644 --- a/i18n/fi.toml +++ b/i18n/fi.toml @@ -37,6 +37,9 @@ other = "Muokkaa" [Print-this-chapter] other = "Tulosta koko luku" +[More-action] +other = "Lisää" + [Shortcuts-Title] other = "Lisää" diff --git a/i18n/fr.toml b/i18n/fr.toml index c3051d55ec..980d72e4c9 100644 --- a/i18n/fr.toml +++ b/i18n/fr.toml @@ -37,6 +37,9 @@ other = "Éditer" [Print-this-chapter] other = "Imprimer le chapitre entier" +[More-action] +other = "Aller plus loin" + [Shortcuts-Title] other = "Aller plus loin" diff --git a/i18n/hi.toml b/i18n/hi.toml index a145b03605..edd8470a24 100644 --- a/i18n/hi.toml +++ b/i18n/hi.toml @@ -37,6 +37,9 @@ other = "संपादन करना" [Print-this-chapter] other = "पूरा अध्याय मुद्रित करें" +[More-action] +other = "अधिक सामग्री दिखाएं" + [Shortcuts-Title] other = "अधिक सामग्री दिखाएं" diff --git a/i18n/hu.toml b/i18n/hu.toml index 32af4634b6..a29d71f524 100644 --- a/i18n/hu.toml +++ b/i18n/hu.toml @@ -37,6 +37,9 @@ other = "Szerkesztés" [Print-this-chapter] other = "Teljes fejezet nyomtatása" +[More-action] +other = "Egyebek" + [Shortcuts-Title] other = "Egyebek" diff --git a/i18n/id.toml b/i18n/id.toml index f080a794fb..182bdcb249 100644 --- a/i18n/id.toml +++ b/i18n/id.toml @@ -37,6 +37,9 @@ other = "Mengedit" [Print-this-chapter] other = "Mencetak seluruh bab" +[More-action] +other = "Lainnya" + [Shortcuts-Title] other = "Lainnya" diff --git a/i18n/it.toml b/i18n/it.toml index a9940df0ad..5d89c3f2bb 100644 --- a/i18n/it.toml +++ b/i18n/it.toml @@ -37,6 +37,9 @@ other = "Modifica" [Print-this-chapter] other = "Stampa l'intero capitolo" +[More-action] +other = "Altro" + [Shortcuts-Title] other = "Altro" diff --git a/i18n/ja.toml b/i18n/ja.toml index 73c284c657..533c39a160 100644 --- a/i18n/ja.toml +++ b/i18n/ja.toml @@ -37,6 +37,9 @@ other = "編集" [Print-this-chapter] other = "章全体を印刷する" +[More-action] +other = "更に" + [Shortcuts-Title] other = "更に" diff --git a/i18n/ko.toml b/i18n/ko.toml index 59109fd4ad..11ae5ab546 100644 --- a/i18n/ko.toml +++ b/i18n/ko.toml @@ -37,6 +37,9 @@ other = "편집" [Print-this-chapter] other = "전체 장 인쇄" +[More-action] +other = "외부 링크" + [Shortcuts-Title] other = "외부 링크" diff --git a/i18n/nl.toml b/i18n/nl.toml index 64c7f7be90..6579efb28b 100644 --- a/i18n/nl.toml +++ b/i18n/nl.toml @@ -37,6 +37,9 @@ other = "Bewerken" [Print-this-chapter] other = "Het hele hoofdstuk afdrukken" +[More-action] +other = "Snelkoppelingen" + [Shortcuts-Title] other = "Snelkoppelingen" diff --git a/i18n/pir.toml b/i18n/pir.toml index d658d8198f..b35a00ca01 100644 --- a/i18n/pir.toml +++ b/i18n/pir.toml @@ -37,6 +37,9 @@ other = "Edit" [Print-this-chapter] other = "Prrrint whole chapterrr" +[More-action] +other = "Morrre" + [Shortcuts-Title] other = "Morrre" diff --git a/i18n/pl.toml b/i18n/pl.toml index 5bd0104168..bece1d1643 100644 --- a/i18n/pl.toml +++ b/i18n/pl.toml @@ -37,6 +37,9 @@ other = "Edycja" [Print-this-chapter] other = "Drukowanie całego rozdziału" +[More-action] +other = "Więcej" + [Shortcuts-Title] other = "Więcej" diff --git a/i18n/pt.toml b/i18n/pt.toml index bb9f1ee7b1..084ae7fae4 100644 --- a/i18n/pt.toml +++ b/i18n/pt.toml @@ -37,6 +37,9 @@ other = "Editar" [Print-this-chapter] other = "Imprimir capítulo inteiro" +[More-action] +other = "Mais" + [Shortcuts-Title] other = "Mais" diff --git a/i18n/ru.toml b/i18n/ru.toml index 4f5ab9c458..713142705b 100644 --- a/i18n/ru.toml +++ b/i18n/ru.toml @@ -37,6 +37,9 @@ other = "редактировать" [Print-this-chapter] other = "Печать всей главы" +[More-action] +other = "Еще" + [Shortcuts-Title] other = "Еще" diff --git a/i18n/tr.toml b/i18n/tr.toml index 64ad6ca712..69c302828f 100644 --- a/i18n/tr.toml +++ b/i18n/tr.toml @@ -37,6 +37,9 @@ other = "Düzenlemek" [Print-this-chapter] other = "Bölümün tamamını yazdır" +[More-action] +other = "Dahası Var" + [Shortcuts-Title] other = "Dahası Var" diff --git a/i18n/vi.toml b/i18n/vi.toml index 3c370ba486..23e6e4a4f4 100644 --- a/i18n/vi.toml +++ b/i18n/vi.toml @@ -37,6 +37,9 @@ other = "Biên tập" [Print-this-chapter] other = "In toàn bộ chương" +[More-action] +other = "Nội dung khác" + [Shortcuts-Title] other = "Nội dung khác" diff --git a/i18n/zh-cn.toml b/i18n/zh-cn.toml index 8edf1faf52..89cb513206 100644 --- a/i18n/zh-cn.toml +++ b/i18n/zh-cn.toml @@ -37,6 +37,9 @@ other = "编辑" [Print-this-chapter] other = "打印整章" +[More-action] +other = "更多" + [Shortcuts-Title] other = "更多" diff --git a/i18n/zh-tw.toml b/i18n/zh-tw.toml index 018ba1c4eb..9184872d85 100644 --- a/i18n/zh-tw.toml +++ b/i18n/zh-tw.toml @@ -37,6 +37,9 @@ other = "編輯網頁" [Print-this-chapter] other = "列印整章" +[More-action] +other = "更多" + [Shortcuts-Title] other = "更多" diff --git a/i18n/zh.toml b/i18n/zh.toml index 8edf1faf52..89cb513206 100644 --- a/i18n/zh.toml +++ b/i18n/zh.toml @@ -37,6 +37,9 @@ other = "编辑" [Print-this-chapter] other = "打印整章" +[More-action] +other = "更多" + [Shortcuts-Title] other = "更多" diff --git a/layouts/partials/header.html b/layouts/partials/header.html index fb3d4f041a..d12b9e2ba3 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -69,31 +69,10 @@
diff --git a/layouts/partials/topbar/area/end.html b/layouts/partials/topbar/area/end.html new file mode 100644 index 0000000000..6d79cc35b4 --- /dev/null +++ b/layouts/partials/topbar/area/end.html @@ -0,0 +1,15 @@ +{{- partial "topbar/button/edit.html" (dict + "page" . +)}} +{{- partial "topbar/button/print.html" (dict + "page" . +)}} +{{- partial "topbar/button/prev.html" (dict + "page" . +)}} +{{- partial "topbar/button/next.html" (dict + "page" . +)}} +{{- partial "topbar/button/more.html" (dict + "page" . +)}} \ No newline at end of file diff --git a/layouts/partials/topbar/area/more.html b/layouts/partials/topbar/area/more.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/layouts/partials/topbar/area/start.html b/layouts/partials/topbar/area/start.html new file mode 100644 index 0000000000..38c1507c17 --- /dev/null +++ b/layouts/partials/topbar/area/start.html @@ -0,0 +1,6 @@ +{{- partial "topbar/button/sidebar.html" (dict + "page" . +)}} +{{- partial "topbar/button/toc.html" (dict + "page" . +)}} \ No newline at end of file diff --git a/layouts/partials/topbar/button/edit.html b/layouts/partials/topbar/button/edit.html new file mode 100644 index 0000000000..2b61189df0 --- /dev/null +++ b/layouts/partials/topbar/button/edit.html @@ -0,0 +1,20 @@ +{{- $onwidths := cond (isset . "onwidths") .onwidths "area-more" }} +{{- $onwidthm := cond (isset . "onwidthm") .onwidthm "show" }} +{{- $onwidthl := cond (isset . "onwidthl") .onwidthl "show" }} +{{- with .page }} + {{- $format := partial "get-format.hugo" . }} + {{- $outputFormat := partial "output-format.hugo" (dict "page" . "format" $format) }} + {{- $editURL := .Site.Params.editURL | default "" }} + {{- if and (eq $outputFormat "html") $editURL .File }} + {{- partial "topbar/func/button.html" (dict + "page" . + "class" "topbar-button-edit" + "href" (printf "%s%s%s" $editURL (strings.TrimLeft "/" (replace .File.Dir "\\" "/")) .File.LogicalName) + "icon" "pen" + "onwidths" $onwidths + "onwidthm" $onwidthm + "onwidthl" $onwidthl + "title" (printf "%s (CTRL+ALT+w)" (T "Edit-this-page")) + )}} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/layouts/partials/topbar/button/more.html b/layouts/partials/topbar/button/more.html new file mode 100644 index 0000000000..31b9c4ef37 --- /dev/null +++ b/layouts/partials/topbar/button/more.html @@ -0,0 +1,14 @@ +{{- $onempty := cond (isset . "onempty") .onempty "hide" }} +{{- $onwidths := cond (isset . "onwidths") .onwidths "show" }} +{{- $onwidthm := cond (isset . "onwidthm") .onwidthm "show" }} +{{- $onwidthl := cond (isset . "onwidthl") .onwidthl "show" }} +{{- partial "topbar/func/area-button.html" (dict + "page" .page + "area" "more" + "icon" "ellipsis-v" + "onempty" $onempty + "onwidths" $onwidths + "onwidthm" $onwidthm + "onwidthl" $onwidthl + "title" (printf "%s" (T "More-action")) +)}} \ No newline at end of file diff --git a/layouts/partials/topbar/button/next.html b/layouts/partials/topbar/button/next.html new file mode 100644 index 0000000000..ac3eb716c6 --- /dev/null +++ b/layouts/partials/topbar/button/next.html @@ -0,0 +1,33 @@ +{{- $onwidths := cond (isset . "onwidths") .onwidths "show" }} +{{- $onwidthm := cond (isset . "onwidthm") .onwidthm "show" }} +{{- $onwidthl := cond (isset . "onwidthl") .onwidthl "show" }} +{{- with .page }} + {{- $format := partial "get-format.hugo" . }} + {{- $outputFormat := partial "output-format.hugo" (dict "page" . "format" $format) }} + {{- $showPrevNext := (and (not .Params.disableNextPrev) (not .Site.Params.disableNextPrev)) }} + {{- if and (or (eq $outputFormat "html") (eq $outputFormat "searchpage")) $showPrevNext }} + {{- $endarrow := "🡒" }} + {{- if eq (T "Reading-direction" | default "ltr") "rtl" }} + {{- $endarrow = "🡐" }} + {{- end }} + {{- $ispublished := true }} + {{- with .Parent }} + {{- $ispublished = gt (int (len .Permalink)) 0 }} + {{- end }} + {{- $next := "" }} + {{- if or (ne $outputFormat "html") (not (and $ispublished (.Scratch.Get "relearnNextPage"))) }} + {{- else }} + {{- $next = .Scratch.Get "relearnNextPage" }} + {{- end }} + {{- partial "topbar/func/button.html" (dict + "page" . + "class" "topbar-button-next" + "href" (partial "relLangPrettyUglyURL.hugo" (dict "to" $next)) + "icon" "chevron-right" + "onwidths" $onwidths + "onwidthm" $onwidthm + "onwidthl" $onwidthl + "title" (printf "%s (%s)" ($next | default .).Title ($endarrow | safeHTML)) + )}} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/layouts/partials/topbar/button/prev.html b/layouts/partials/topbar/button/prev.html new file mode 100644 index 0000000000..98366c13d0 --- /dev/null +++ b/layouts/partials/topbar/button/prev.html @@ -0,0 +1,35 @@ +{{- $onwidths := cond (isset . "onwidths") .onwidths "show" }} +{{- $onwidthm := cond (isset . "onwidthm") .onwidthm "show" }} +{{- $onwidthl := cond (isset . "onwidthl") .onwidthl "show" }} +{{- with .page }} + {{- $format := partial "get-format.hugo" . }} + {{- $outputFormat := partial "output-format.hugo" (dict "page" . "format" $format) }} + {{- $showPrevNext := (and (not .Params.disableNextPrev) (not .Site.Params.disableNextPrev)) }} + {{- if and (or (eq $outputFormat "html") (eq $outputFormat "searchpage")) $showPrevNext }} + {{- $startarrow := "🡐" }} + {{- if eq (T "Reading-direction" | default "ltr") "rtl" }} + {{- $startarrow = "🡒" }} + {{- end }} + {{- $ispublished := true }} + {{- with .Parent }} + {{- $ispublished = gt (int (len .Permalink)) 0 }} + {{- end }} + {{- $prev := "" }} + {{- if and (eq .RelPermalink .Site.Home.RelPermalink) (eq $outputFormat "html") }} + {{- else if or (ne $outputFormat "html") (not (and $ispublished (.Scratch.Get "relearnPrevPage"))) (eq .Page.Kind "taxonomy") (eq .Page.Kind "term") }} + {{- $prev = .Site.Home }} + {{- else }} + {{- $prev = .Scratch.Get "relearnPrevPage" }} + {{- end}} + {{- partial "topbar/func/button.html" (dict + "page" . + "class" "topbar-button-prev" + "href" (partial "relLangPrettyUglyURL.hugo" (dict "to" $prev)) + "icon" "chevron-left" + "onwidths" $onwidths + "onwidthm" $onwidthm + "onwidthl" $onwidthl + "title" (printf "%s (%s)" ($prev | default .).Title ($startarrow | safeHTML)) + )}} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/layouts/partials/topbar/button/print.html b/layouts/partials/topbar/button/print.html new file mode 100644 index 0000000000..1205c13f07 --- /dev/null +++ b/layouts/partials/topbar/button/print.html @@ -0,0 +1,20 @@ +{{- $onwidths := cond (isset . "onwidths") .onwidths "area-more" }} +{{- $onwidthm := cond (isset . "onwidthm") .onwidthm "show" }} +{{- $onwidthl := cond (isset . "onwidthl") .onwidthl "show" }} +{{- with .page }} + {{- $format := partial "get-format.hugo" . }} + {{- $outputFormat := partial "output-format.hugo" (dict "page" . "format" $format) }} + {{- $printFormat := .OutputFormats.Get "PRINT" }} + {{- if and (eq $outputFormat "html") $printFormat }} + {{- partial "topbar/func/button.html" (dict + "page" . + "class" "topbar-button-print" + "href" $printFormat.RelPermalink + "icon" "print" + "onwidths" $onwidths + "onwidthm" $onwidthm + "onwidthl" $onwidthl + "title" (printf "%s (CTRL+ALT+p)" (T "Print-this-chapter")) + )}} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/layouts/partials/topbar/button/sidebar.html b/layouts/partials/topbar/button/sidebar.html new file mode 100644 index 0000000000..e421a2452a --- /dev/null +++ b/layouts/partials/topbar/button/sidebar.html @@ -0,0 +1,15 @@ +{{- $onwidths := cond (isset . "onwidths") .onwidths "show" }} +{{- $onwidthm := cond (isset . "onwidthm") .onwidthm "hide" }} +{{- $onwidthl := cond (isset . "onwidthl") .onwidthl "hide" }} +{{- with .page }} + {{- partial "topbar/func/button.html" (dict + "page" . + "class" "topbar-button-sidebar" + "href" "javascript:toggleNav()" + "icon" "bars" + "onwidths" $onwidths + "onwidthm" $onwidthm + "onwidthl" $onwidthl + "title" (printf "%s (CTRL+ALT+n)" (T "Navigation-toggle")) + )}} +{{- end }} \ No newline at end of file diff --git a/layouts/partials/topbar/button/toc.html b/layouts/partials/topbar/button/toc.html new file mode 100644 index 0000000000..81836c7b01 --- /dev/null +++ b/layouts/partials/topbar/button/toc.html @@ -0,0 +1,29 @@ +{{- $onempty := cond (isset . "onempty") .onempty "hide" }} +{{- $onwidths := cond (isset . "onwidths") .onwidths "show" }} +{{- $onwidthm := cond (isset . "onwidthm") .onwidthm "show" }} +{{- $onwidthl := cond (isset . "onwidthl") .onwidthl "show" }} +{{- with .page }} + {{- $format := partial "get-format.hugo" . }} + {{- $outputFormat := partial "output-format.hugo" (dict "page" . "format" $format) }} + {{- $defaultDisableToc := .Site.Params.disableToc | default false }} + {{- $currentDisableToc := .Params.disableToc | default $defaultDisableToc }} + {{- if and (eq $outputFormat "html") (not $currentDisableToc) }} + {{- $content := partial "toc-class.html" . }} + {{- $hascontent := not (eq 0 (int (len (trim ($content | plainify) "\n\r\t ")))) }} + {{- if not $hascontent }} + {{- $content = " " }} + {{- end }} + {{- partial "topbar/func/button.html" (dict + "page" . + "class" "topbar-button-toc" + "href" "javascript:toggleTopbarFlyout(this)" + "icon" "list-alt" + "onempty" $onempty + "onwidths" $onwidths + "onwidthm" $onwidthm + "onwidthl" $onwidthl + "title" (printf "%s (CTRL+ALT+t)" (T "Toc-toggle")) + "content" $content + )}} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/layouts/partials/topbar/func/area-button.html b/layouts/partials/topbar/func/area-button.html new file mode 100644 index 0000000000..6f91ed7ebc --- /dev/null +++ b/layouts/partials/topbar/func/area-button.html @@ -0,0 +1,26 @@ +{{- $area := .area }} +{{- $icon := .icon }} +{{- $title := .title }} +{{- $onempty := cond (isset . "onempty") .onempty "disable" }} +{{- $onwidths := cond (isset . "onwidths") .onwidths "show" }} +{{- $onwidthm := cond (isset . "onwidthm") .onwidthm "show" }} +{{- $onwidthl := cond (isset . "onwidthl") .onwidthl "show" }} +{{- with .page }} + {{- $format := partial "get-format.hugo" . }} + {{- $outputFormat := partial "output-format.hugo" (dict "page" . "format" $format) }} + {{- if and (eq $outputFormat "html") }} + {{- $content := printf "\n
%s\n
" $area $area (partial (printf "topbar/area/%s.html" $area) .) | safeHTML }} + {{- partial "topbar/func/button.html" (dict + "page" . + "class" (printf "topbar-button-%s" $area) + "href" "javascript:toggleTopbarFlyout(this)" + "icon" $icon + "onempty" $onempty + "onwidths" $onwidths + "onwidthm" $onwidthm + "onwidthl" $onwidthl + "title" $title + "content" $content + )}} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/layouts/partials/topbar-button.html b/layouts/partials/topbar/func/button.html similarity index 59% rename from layouts/partials/topbar-button.html rename to layouts/partials/topbar/func/button.html index 30bad872de..fbdbea0ca2 100644 --- a/layouts/partials/topbar-button.html +++ b/layouts/partials/topbar/func/button.html @@ -1,6 +1,10 @@ {{- $page := .page }} {{- $class := .class | default "" }} {{- $href := (trim .href " ") | default "" }} +{{- $onempty := cond (isset . "onempty") .onempty "disable" }} +{{- $onwidths := cond (isset . "onwidths") .onwidths "show" }} +{{- $onwidthm := cond (isset . "onwidthm") .onwidthm "show" }} +{{- $onwidthl := cond (isset . "onwidthl") .onwidthl "show" }} {{- $target := .target | default "" }} {{- $type := .type | default "" }} {{- $isDisabled := not $href }} @@ -23,13 +27,13 @@ {{- $icon = printf "fa-fw fas fa-%s" $icon }} {{- end }} {{- $content := .content }} -
+
{{- if $isDisabled }} - + {{- else if $isButton }} -