diff --git a/.eleventy.js b/.eleventy.js index cc5d9f1..94d671c 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -1,9 +1,11 @@ const pluginSyntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight"); const inclusiveLangPlugin = require("@11ty/eleventy-plugin-inclusive-language"); +const navigationPlugin = require("@11ty/eleventy-navigation"); module.exports = function(eleventyConfig) { eleventyConfig.addPlugin(pluginSyntaxHighlight); eleventyConfig.addPlugin(inclusiveLangPlugin); + eleventyConfig.addPlugin(navigationPlugin); let markdownIt = require("markdown-it"); let markdownItAnchor = require("markdown-it-anchor"); diff --git a/NEWS b/NEWS index 8d3a521..6b1d23a 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,7 @@ -1.5.10.dev0 +1.5.10 * #347: Add hooks that run for the "extract" action: "before_extract" and "after_extract". * #350: Fix traceback when a configuration directory is non-readable due to directory permissions. + * Add documentation navigation links on left side of all documentation pages. * Clarify documentation on configuration overrides, specifically the portion about list syntax: http://torsion.org/borgmatic/docs/how-to/make-per-application-backups/#configuration-overrides * Clarify documentation overview of monitoring options: diff --git a/README.md b/README.md index 1f7c3a9..65a857b 100644 --- a/README.md +++ b/README.md @@ -71,26 +71,14 @@ borgmatic is powered by [Borg Backup](https://www.borgbackup.org/). rsync.net      -## How-to guides +## Getting started - * [Set up backups with borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/) ⬅ *Start here!* - * [Make per-application backups](https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/) - * [Make backups redundant](https://torsion.org/borgmatic/docs/how-to/make-backups-redundant/) - * [Deal with very large backups](https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/) - * [Inspect your backups](https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/) - * [Monitor your backups](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/) - * [Extract a backup](https://torsion.org/borgmatic/docs/how-to/extract-a-backup/) - * [Backup your databases](https://torsion.org/borgmatic/docs/how-to/backup-your-databases/) - * [Add preparation and cleanup steps to backups](https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/) - * [Backup to a removable drive or an intermittent server](https://torsion.org/borgmatic/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server/) - * [Upgrade borgmatic](https://torsion.org/borgmatic/docs/how-to/upgrade/) - * [Develop on borgmatic](https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/) +Your first step is to [install and configure +borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/). - -## Reference guides - - * [borgmatic configuration reference](https://torsion.org/borgmatic/docs/reference/configuration/) - * [borgmatic command-line reference](https://torsion.org/borgmatic/docs/reference/command-line/) +For additional documentation, check out the links above for borgmatic how-to and +reference guides. ## Hosting providers diff --git a/docs/Dockerfile b/docs/Dockerfile index 42bfade..56857ed 100644 --- a/docs/Dockerfile +++ b/docs/Dockerfile @@ -16,6 +16,7 @@ WORKDIR /source RUN npm install @11ty/eleventy \ @11ty/eleventy-plugin-syntaxhighlight \ @11ty/eleventy-plugin-inclusive-language \ + @11ty/eleventy-navigation \ markdown-it \ markdown-it-anchor \ markdown-it-replace-link diff --git a/docs/_includes/components/lists.css b/docs/_includes/components/lists.css index 202e711..d8bdc99 100644 --- a/docs/_includes/components/lists.css +++ b/docs/_includes/components/lists.css @@ -1,8 +1,7 @@ /* Buzzwords */ @keyframes rainbow { 0% { background-position: 0% 50%; } - 50% { background-position: 100% 50%; } - 100% { background-position: 0% 50%; } + 100% { background-position: 100% 50%; } } .buzzword-list, .inlinelist { @@ -25,6 +24,7 @@ margin: 4px 4px 4px 0; transition: .15s linear outline; } + .inlinelist .inlinelist-item.active { background-color: #222; color: #fff; @@ -36,6 +36,38 @@ } .inlinelist .inlinelist-item code { background-color: transparent; + font-size: 80%; + margin-left: 6px; + padding-left: 6px; + display: inline-block; + position: relative; +} +@media (max-width: 26.8125em) { /* 429px */ + .inlinelist .inlinelist-item { + overflow: hidden; + } + .inlinelist .inlinelist-item code { + float: right; + line-height: 1.75; + } +} +@media (min-width: 26.875em) { /* 430px */ + .inlinelist .inlinelist-item code { + float: none; + } + .inlinelist .inlinelist-item code:before { + content: " "; + border-left: 1px solid rgba(255,255,255,.8); + position: absolute; + left: -2px; + top: -2px; + bottom: 2px; + } + @media (prefers-color-scheme: dark) { + .inlinelist .inlinelist-item code:before { + border-left-color: rgba(0,0,0,.8); + } + } } a.buzzword { text-decoration: underline; @@ -59,44 +91,74 @@ a.buzzword { .buzzword { background-color: #f7f7f7; } +@media (prefers-color-scheme: dark) { + .buzzword-list li, + .buzzword { + background-color: #080808; + } +} .inlinelist .inlinelist-item { background-color: #e9e9e9; } +@media (prefers-color-scheme: dark) { + .inlinelist .inlinelist-item { + background-color: #000; + } + .inlinelist .inlinelist-item a { + color: #fff; + } + .inlinelist .inlinelist-item code { + color: inherit; + } +} .inlinelist .inlinelist-item:hover, .inlinelist .inlinelist-item:focus, .buzzword-list li:hover, .buzzword-list li:focus, .buzzword:hover, -.buzzword:focus { +.buzzword:focus, +.rainbow-active:hover, +.rainbow-active:focus { position: relative; background-image: linear-gradient(238deg, #ff0000, #ff8000, #ffff00, #80ff00, #00ff00, #00ff80, #00ffff, #0080ff, #0000ff, #8000ff, #ff0080); background-size: 1200% 1200%; + background-position: 2% 80%; color: #fff; text-shadow: 0 0 2px rgba(0,0,0,.9); - animation: rainbow 1.6s infinite; + animation: rainbow 4s ease-out alternate infinite; +} +.rainbow-active-noanim { + animation: none !important; } .inlinelist .inlinelist-item:hover a, .inlinelist .inlinelist-item:focus a, .buzzword-list li:hover a, .buzzword-list li:focus a, a.buzzword:hover, -a.buzzword:focus { +a.buzzword:focus, +a.rainbow-active:hover, +a.rainbow-active:focus { color: #fff; text-decoration: none; } -/* -I wish there were a PE friendly way to do this but media queries don’t work work with @supports -@media (prefers-reduced-motion: no-preference) { +@media (prefers-reduced-motion: reduce) { + .inlinelist .inlinelist-item:hover, + .inlinelist .inlinelist-item:focus, + .buzzword-list li:hover, + .buzzword-list li:focus, .buzzword:hover, - .buzzword:focus { - animation: rainbow 1s infinite; + .buzzword:focus, + .rainbow-active:hover, + .rainbow-active:focus { + animation: none; } -}*/ +} + .buzzword-list li:hover:after, .buzzword-list li:focus:after, .buzzword:hover:after, .buzzword:focus:after { - font-family: system-ui, sans-serif; + font-family: system-ui, -apple-system, sans-serif; content: "Buzzword alert!!!"; position: absolute; left: 0; @@ -123,4 +185,94 @@ main h2 a.buzzword, main h3 a.buzzword, main p a.buzzword { text-decoration: underline; -} \ No newline at end of file +} + +/* Small viewport */ +@media (max-width: 26.8125em) { /* 429px */ + .inlinelist .inlinelist-item { + display: block; + width: auto; + padding: 0; + line-height: 1.4; + } + .inlinelist .inlinelist-item > a { + display: block; + padding: .2em .5em; + } +} +@media (min-width: 26.875em) { /* 430px */ + .inlinelist .inlinelist-item > a { + display: inline-block; + white-space: nowrap; + } +} + +.numberflag { + display: inline-flex; + align-items: center; + justify-content: center; + background-color: #dff7ff; + border-radius: 50%; + width: 1.75em; + height: 1.75em; + font-weight: 600; +} +@media (prefers-color-scheme: dark) { + .numberflag { + background-color: #00bcd4; + color: #222; + } +} +h1 .numberflag, +h2 .numberflag, +h3 .numberflag, +h4 .numberflag, +h5 .numberflag { + width: 1.25em; + height: 1.25em; +} +h2 .numberflag { + position: relative; + margin-right: 0.25em; /* 10px /40 */ +} +h2 .numberflag:after { + content: " "; + position: absolute; + bottom: -1px; + left: 0; + height: 1px; + background-color: #fff; + width: calc(100% + 0.4em); /* 16px /40 */ +} +@media (prefers-color-scheme: dark) { + h2 .numberflag:after { + background-color: #222; + } +} + +/* Super featured list on home page */ +.list-superfeatured .avatar { + width: calc(30px + 5vw); + height: calc(30px + 5vw); + max-width: 60px; + max-height: 60px; + margin-left: 0; +} +@media (max-width: 26.8125em) { /* 429px */ + .list-superfeatured .inlinelist-item > a { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } +} +@media (min-width: 26.875em) { /* 430px */ + .list-superfeatured .inlinelist-item { + font-size: 110%; + } +} + +/* Only top level */ +.inlinelist-no-nest ul, +.inlinelist-no-nest ol { + display: none; +} diff --git a/docs/_includes/components/minilink.css b/docs/_includes/components/minilink.css index 916a4de..395b3b9 100644 --- a/docs/_includes/components/minilink.css +++ b/docs/_includes/components/minilink.css @@ -10,7 +10,20 @@ font-weight: 500; margin: 0 0.4285714285714em 0.07142857142857em 0; /* 0 6px 1px 0 /14 */ line-height: 1.285714285714; /* 18px /14 */ - font-family: system-ui, sans-serif; + font-family: system-ui, -apple-system, sans-serif; +} +@media (prefers-color-scheme: dark) { + .minilink { + background-color: #222; + /* + !important to override .elv-callout a + see _includes/components/callout.css + */ + color: #fff !important; + } +} +table .minilink { + margin-top: 6px; } .minilink[href] { box-shadow: 0 1px 1px 0 rgba(0,0,0,.5); @@ -19,6 +32,12 @@ .minilink[href]:focus { background-color: #bbb; } +@media (prefers-color-scheme: dark) { + .minilink[href]:hover, + .minilink[href]:focus { + background-color: #444; + } +} pre + .minilink { color: #fff; border-radius: 0 0 0.2857142857143em 0.2857142857143em; /* 4px /14 */ @@ -35,6 +54,54 @@ p.minilink { margin-left: 2em; margin-bottom: 2em; } +h1 .minilink, +h2 .minilink, +h3 .minilink, +h4 .minilink { + font-size: 0.9375rem; /* 15px /16 */ + vertical-align: middle; + margin-left: 1em; +} +h3 .minilink, +h4 .minilink { + font-size: 0.8125rem; /* 13px /16 */ +} .minilink + pre[class*=language-] { clear: both; -} \ No newline at end of file +} + +.minilink-addedin { + text-transform: none; + box-shadow: 0 0 0 1px rgba(0,0,0,0.3); +} +@media (prefers-color-scheme: dark) { + .minilink-addedin { + box-shadow: 0 0 0 1px rgba(255,255,255,0.3); + } +} +.minilink-addedin:not(:first-child) { + margin-left: .5em; +} +.minilink-addedin.minilink-inline { + margin: 0 4px; + background-color: #fff; +} + +.minilink-lower { + text-transform: none; + background-color: transparent; +} +.minilink-lower[href] { + box-shadow: 0 0 0 1px rgba(0,0,0,0.5); +} +.minilink-lower[href]:hover, +.minilink-lower[href]:focus { + background-color: #eee; +} + +.minilink > .minilink { + margin: -.125em .375em -.125em -.375em; + box-shadow: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} diff --git a/docs/_includes/components/toc.css b/docs/_includes/components/toc.css index c70a08b..6fa4252 100644 --- a/docs/_includes/components/toc.css +++ b/docs/_includes/components/toc.css @@ -1,63 +1,111 @@ .elv-toc { font-size: 1rem; /* Reset */ } +.elv-toc details { + --details-force-closed: (max-width: 63.9375em); /* 1023px */ +} +.elv-toc details > summary { + font-size: 1.375rem; /* 22px /16 */ + margin-bottom: .5em; +} @media (min-width: 64em) { /* 1024px */ .elv-toc { position: absolute; - left: -17rem; + left: 3rem; width: 16rem; + z-index: 1; + } + .elv-toc details > summary { + margin-top: 0; + } + .js .elv-toc details > summary { + display: none; } } - .elv-toc-list { + display: flex; + flex-wrap: wrap; + justify-content: space-between; padding-left: 0; padding-right: 0; + margin: 0 0 2.5em; list-style: none; } +.elv-toc-list li { + font-size: 0.9375em; /* 15px /16 */ + line-height: 1.466666666667; /* 22px /15 */ +} /* Nested lists */ .elv-toc-list ul { - padding: 0; - display: none; - margin-bottom: 1.5em; + padding: 0 0 .75em 0; + margin: 0; list-style: none; } -.elv-toc-list ul li { - padding-left: 0.875em; /* 14px /16 */ + +/* Menus nested 2 or more deep */ +.elv-toc-list ul ul { + padding-bottom: 0; + padding-left: 0.625rem; /* 10px /16 */ } -@media (min-width: 64em) and (min-height: 48em) { /* 1024 x 768px */ - .elv-toc-list ul { - display: block; - } +/* Hide inactive menus 3 or more deep */ +.elv-toc-list ul ul > li:not(.elv-toc-active) > ul > li:not(.elv-toc-active) { + display: none; } /* List items */ +.elv-toc summary, +.elv-toc-list a { + padding: .15em .25em; +} +.elv-toc-list a { + display: block; +} .elv-toc-list a:not(:hover) { text-decoration: none; } .elv-toc-list li { - padding-top: 0; - padding-bottom: 0; - margin: .1em 0 .5em; + margin: 0; + padding: 0; +} +.elv-toc-list > li { + flex-grow: 1; + flex-basis: 14.375rem; /* 230px /16 */ } /* Top level links */ .elv-toc-list > li > a { - font-weight: 400; - font-size: 1.0625em; /* 17px /16 */ color: #222; + font-weight: 600; + border-bottom: 1px solid #ddd; + margin-bottom: 0.25em; /* 4px /16 */ +} +@media (prefers-color-scheme: dark) { + .elv-toc-list > li > a { + color: #fff; + border-color: #444; + } } /* Active links */ .elv-toc-list li.elv-toc-active > a { - font-weight: 700; - text-decoration: underline; + background-color: #dff7ff; } -.elv-toc-active > a:after { - content: " ⬅"; - line-height: .5; +@media (prefers-color-scheme: dark) { + .elv-toc-list li.elv-toc-active > a { + background-color: #353535; + } } +.elv-toc-list ul .elv-toc-active > a:after { + content: ""; +} + /* Show only active nested lists */ .elv-toc-list ul.elv-toc-active, .elv-toc-list li.elv-toc-active > ul { display: block; -} \ No newline at end of file +} + +/* Footer catgory navigation */ +.elv-cat-list-active { + font-weight: 600; +} diff --git a/docs/_includes/index.css b/docs/_includes/index.css index 7393f7e..40bf5d6 100644 --- a/docs/_includes/index.css +++ b/docs/_includes/index.css @@ -234,6 +234,9 @@ pre + .note { max-width: 42rem; clear: both; } +header.elv-layout { + padding: 0 1rem; +} footer.elv-layout { margin-bottom: 5em; } @@ -242,7 +245,7 @@ footer.elv-layout { } @media (min-width: 64em) { /* 1024px */ .elv-layout-toc { - margin-left: 18rem; + padding-left: 15rem; max-width: 60rem; margin-right: 1rem; position: relative; @@ -254,7 +257,6 @@ footer.elv-layout { /* Header */ .elv-header { - color: #222; position: relative; } .elv-header-default { @@ -262,6 +264,13 @@ footer.elv-layout { flex-direction: column; justify-content: center; align-items: center; + padding-top: 0; +} +.elv-header-c { + width: 100%; +} +.elv-header-docs .elv-header-c { + padding: 1rem 0; } .elv-header-docs:before, .elv-header-docs:after { @@ -272,53 +281,89 @@ footer.elv-layout { clear: both; } /* Header Hero */ -.elv-hero img { - max-width: 80vw; - max-height: 60vh; +.elv-hero { + background-color: #222; } +@media (prefers-color-scheme: dark) { + .elv-hero { + background-color: #292929; + } +} +.elv-hero img, +.elv-hero svg { + width: 42.95774646vh; + height: 60vh; +} +.elv-hero:hover img, +.elv-hero:hover svg { + background-color: inherit; +} +.elv-header-default .elv-hero { + display: flex; + justify-content: center; + width: calc(100% + 2rem); + margin-left: -1rem; + margin-right: -1rem; +} +.elv-hero:hover { + background-color: #333; +} + .elv-header-docs .elv-hero { float: left; - margin-right: 1.5em; + margin-right: .5em; } -.elv-header-docs .elv-hero img { +.elv-header-default .elv-hero img, +.elv-header-default .elv-hero svg { + position: relative; + background-color: transparent; + z-index: 1; +} +.elv-header-docs .elv-hero img, +.elv-header-docs .elv-hero svg { + width: auto; height: 3em; } -@media (min-width: 37.5em) { /* 600px */ - .elv-header-docs .elv-hero img { +@media (min-width: 43.75em) { /* 700px */ + .elv-header-docs .elv-hero { + margin-right: 1em; + } + .elv-header-docs .elv-hero img, + .elv-header-docs .elv-hero svg { width: 4.303125em; /* 68.85px /16 */ height: 6em; } } /* Header Possum */ +.elv-possum-anchor { + display: block; +} .elv-possum { - display: none; position: absolute; - right: 1em; - top: 1em; - width: 16vmin; + right: .5rem; + top: 1rem; + transition: .3s opacity ease-out; } -@media (min-width: 31.25em) { /* 500px */ - .elv-possum { - display: block; - } +.elv-header-docs .elv-possum { + width: 15vw; + max-width: 6.25rem; /* 100px /16 */ } - -/* Header Heading */ -.elv-hed { - font-size: 3em; - margin-top: 1.5em; - margin-bottom: .25em; - text-align: center; - text-transform: none; +.elv-header-default { + overflow: hidden; } -.elv-header-docs .elv-hed { - font-size: 2.3em; - margin: 0; - text-align: left; +.elv-header-default .elv-possum { + pointer-events: none; + width: auto; + height: calc((60vh - 2rem) / 1.6); + top: 36%; + left: 1vw; + right: auto; + animation-duration: 180s; + animation-name: balloonFloat; } -@media (min-width: 37.5em) { /* 600px */ - .elv-header-docs .elv-hed { - font-size: 3em; +@media (prefers-reduced-motion: reduce) { + .elv-header-default .elv-possum { + display: none; } } diff --git a/docs/_includes/layouts/main.njk b/docs/_includes/layouts/main.njk index fc320ea..e1d839a 100644 --- a/docs/_includes/layouts/main.njk +++ b/docs/_includes/layouts/main.njk @@ -6,9 +6,27 @@ headerClass: elv-header-default {% include "header.njk" %}
-
- {{ content | safe }} +
+
+ {% set navPages = collections.all | eleventyNavigation %} + {% macro renderNavListItem(entry) -%} + + {{ entry.title }} + {%- if entry.children.length -%} +
    + {%- for child in entry.children %}{{ renderNavListItem(child) }}{% endfor -%} +
+ {%- endif -%} + + {%- endmacro %} - {% include 'components/suggestion-form.html' %} -
+ + + + + {{ content | safe }} + + {% include 'components/suggestion-form.html' %}
diff --git a/docs/how-to/add-preparation-and-cleanup-steps-to-backups.md b/docs/how-to/add-preparation-and-cleanup-steps-to-backups.md index 41872ab..0e10e76 100644 --- a/docs/how-to/add-preparation-and-cleanup-steps-to-backups.md +++ b/docs/how-to/add-preparation-and-cleanup-steps-to-backups.md @@ -1,5 +1,9 @@ --- title: How to add preparation and cleanup steps to backups +eleventyNavigation: + key: Add preparation and cleanup steps + parent: How-to guides + order: 8 --- ## Preparation and cleanup hooks @@ -73,11 +77,3 @@ with the user permissions of borgmatic itself. So to prevent potential shell injection or privilege escalation, do not forget to set secure permissions on borgmatic configuration files (`chmod 0600`) and scripts (`chmod 0700`) invoked by hooks. - - -## Related documentation - - * [Set up backups with borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/) - * [Backup your databases](https://torsion.org/borgmatic/docs/how-to/backup-your-databases/) - * [Inspect your backups](https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/) - * [Monitor your backups](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/) diff --git a/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server.md b/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server.md index e2e5a17..90f096b 100644 --- a/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server.md +++ b/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server.md @@ -1,5 +1,9 @@ --- title: How to backup to a removable drive or an intermittent server +eleventyNavigation: + key: Backup to a removable drive or server + parent: How-to guides + order: 9 --- ## Occasional backups @@ -98,11 +102,3 @@ There are some caveats you should be aware of with this feature. * The soft failure feature also works for `before_prune`, `after_prune`, `before_check`, and `after_check` hooks. But it is not implemented for `before_everything` or `after_everything`. - -## Related documentation - - * [Set up backups with borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/) - * [Make per-application backups](https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/) - * [Make backups redundant](https://torsion.org/borgmatic/docs/how-to/make-backups-redundant/) - * [Add preparation and cleanup steps to backups](https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/) - * [Monitor your backups](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/) diff --git a/docs/how-to/backup-your-databases.md b/docs/how-to/backup-your-databases.md index d7a22a7..8733c90 100644 --- a/docs/how-to/backup-your-databases.md +++ b/docs/how-to/backup-your-databases.md @@ -1,5 +1,9 @@ --- title: How to backup your databases +eleventyNavigation: + key: Backup your databases + parent: How-to guides + order: 7 --- ## Database dump hooks @@ -217,11 +221,3 @@ hooks: See Limitations above about `read_special`. You may need to exclude certain paths with named pipes, block devices, or character devices on which borgmatic is hanging. - - -## Related documentation - - * [Set up backups with borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/) - * [Add preparation and cleanup steps to backups](https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/) - * [Inspect your backups](https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/) - * [Extract a backup](https://torsion.org/borgmatic/docs/how-to/extract-a-backup/) diff --git a/docs/how-to/deal-with-very-large-backups.md b/docs/how-to/deal-with-very-large-backups.md index 4076c38..014a687 100644 --- a/docs/how-to/deal-with-very-large-backups.md +++ b/docs/how-to/deal-with-very-large-backups.md @@ -1,5 +1,9 @@ --- title: How to deal with very large backups +eleventyNavigation: + key: Deal with very large backups + parent: How-to guides + order: 3 --- ## Biggish data @@ -120,8 +124,3 @@ the following to the `~/.ssh/config` file on the client: This should make the client keep the connection alive while validating backups. - - -## Related documentation - - * [Set up backups with borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/) diff --git a/docs/how-to/develop-on-borgmatic.md b/docs/how-to/develop-on-borgmatic.md index 9e9fee7..461c6cb 100644 --- a/docs/how-to/develop-on-borgmatic.md +++ b/docs/how-to/develop-on-borgmatic.md @@ -1,5 +1,9 @@ --- title: How to develop on borgmatic +eleventyNavigation: + key: Develop on borgmatic + parent: How-to guides + order: 11 --- ## Source code @@ -139,7 +143,3 @@ http://localhost:8080 to view the documentation with your changes. To close the documentation server, ctrl-C the script. Note that it does not currently auto-reload, so you'll need to stop it and re-run it for any additional documentation changes to take effect. - -## Related documentation - - * [Inspect your backups](https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/) diff --git a/docs/how-to/extract-a-backup.md b/docs/how-to/extract-a-backup.md index bc0bb23..c0b2f58 100644 --- a/docs/how-to/extract-a-backup.md +++ b/docs/how-to/extract-a-backup.md @@ -1,5 +1,9 @@ --- title: How to extract a backup +eleventyNavigation: + key: Extract a backup + parent: How-to guides + order: 6 --- ## Extract @@ -132,11 +136,3 @@ When you're all done exploring your files, unmount your mount point. No ```bash borgmatic umount --mount-point /mnt ``` - - -## Related documentation - - * [Set up backups with borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/) - * [Inspect your backups](https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/) - * [Monitor your backups](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/) - * [Backup your databases](https://torsion.org/borgmatic/docs/how-to/backup-your-databases/) diff --git a/docs/how-to/index.md b/docs/how-to/index.md new file mode 100644 index 0000000..0807b4c --- /dev/null +++ b/docs/how-to/index.md @@ -0,0 +1,5 @@ +--- +eleventyNavigation: + key: How-to guides +permalink: false +--- diff --git a/docs/how-to/inspect-your-backups.md b/docs/how-to/inspect-your-backups.md index d960303..be3ae56 100644 --- a/docs/how-to/inspect-your-backups.md +++ b/docs/how-to/inspect-your-backups.md @@ -1,5 +1,9 @@ --- title: How to inspect your backups +eleventyNavigation: + key: Inspect your backups + parent: How-to guides + order: 4 --- ## Backup progress @@ -98,11 +102,3 @@ Note that if you use the `--log-file` flag, you are responsible for rotating the log file so it doesn't grow too large, for example with [logrotate](https://wiki.archlinux.org/index.php/Logrotate). Also, there is a `--log-file-verbosity` flag to customize the log file's log level. - - -## Related documentation - - * [Set up backups with borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/) - * [Monitor your backups](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/) - * [Add preparation and cleanup steps to backups](https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/) - * [Develop on borgmatic](https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/) diff --git a/docs/how-to/make-backups-redundant.md b/docs/how-to/make-backups-redundant.md index b001e32..d4c3441 100644 --- a/docs/how-to/make-backups-redundant.md +++ b/docs/how-to/make-backups-redundant.md @@ -1,5 +1,9 @@ --- title: How to make backups redundant +eleventyNavigation: + key: Make backups redundant + parent: How-to guides + order: 2 --- ## Multiple repositories @@ -38,10 +42,3 @@ potentially across providers. See [Borg repository URLs documentation](https://borgbackup.readthedocs.io/en/stable/usage/general.html#repository-urls) for more information on how to specify local and remote repository paths. - - -## Related documentation - - * [Set up backups with borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/) - * [Make per-application backups](https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/) - * [Backup to a removable drive or an intermittent server](https://torsion.org/borgmatic/docs/how-to/backup-to-a-removable-drive-or-an-intermittent-server/) diff --git a/docs/how-to/make-per-application-backups.md b/docs/how-to/make-per-application-backups.md index b0c257b..486c799 100644 --- a/docs/how-to/make-per-application-backups.md +++ b/docs/how-to/make-per-application-backups.md @@ -1,5 +1,9 @@ --- title: How to make per-application backups +eleventyNavigation: + key: Make per-application backups + parent: How-to guides + order: 1 --- ## Multiple backup configurations @@ -161,9 +165,3 @@ indentation and a leading dash.) Be sure to quote your overrides if they contain spaces or other characters that your shell may interpret. - - -## Related documentation - - * [Set up backups with borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/) - * [Make backups redundant](https://torsion.org/borgmatic/docs/how-to/make-backups-redundant/) diff --git a/docs/how-to/monitor-your-backups.md b/docs/how-to/monitor-your-backups.md index 66caae1..d63a9b7 100644 --- a/docs/how-to/monitor-your-backups.md +++ b/docs/how-to/monitor-your-backups.md @@ -1,5 +1,9 @@ --- title: How to monitor your backups +eleventyNavigation: + key: Monitor your backups + parent: How-to guides + order: 5 --- ## Monitoring and alerting @@ -309,12 +313,3 @@ automated scripts. Here's an example: ```bash borgmatic info --archive latest ``` - - -## Related documentation - - * [Set up backups with borgmatic](https://torsion.org/borgmatic/docs/how-to/set-up-backups/) - * [Inspect your backups](https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/) - * [Add preparation and cleanup steps to backups](https://torsion.org/borgmatic/docs/how-to/add-preparation-and-cleanup-steps-to-backups/) - * [Extract a backup](https://torsion.org/borgmatic/docs/how-to/extract-a-backup/) - * [Develop on borgmatic](https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/) diff --git a/docs/how-to/set-up-backups.md b/docs/how-to/set-up-backups.md index a3bf1b7..4c30bc2 100644 --- a/docs/how-to/set-up-backups.md +++ b/docs/how-to/set-up-backups.md @@ -1,5 +1,9 @@ --- -title: How to set up backups with borgmatic +title: How to set up backups +eleventyNavigation: + key: Set up backups + parent: How-to guides + order: 0 --- ## Installation @@ -65,8 +69,7 @@ sudo pip3 install --upgrade borgmatic The main downside of a global install is that borgmatic is less cleanly separated from the rest of your Python software, and there's the theoretical possibility of libary conflicts. But if you're okay with that, for instance -on a relatively dedicated system, then a global install can work out just -fine. +on a relatively dedicated system, then a global install can work out fine. ### Other ways to install @@ -312,15 +315,3 @@ YAML library. If so, not to worry. borgmatic should install and function correctly even without the C YAML library. And borgmatic won't be any faster with the C library present, so you don't need to go out of your way to install it. - - -## Related documentation - - * [Make per-application backups](https://torsion.org/borgmatic/docs/how-to/make-per-application-backups/) - * [Make backups redundant](https://torsion.org/borgmatic/docs/how-to/make-backups-redundant/) - * [Deal with very large backups](https://torsion.org/borgmatic/docs/how-to/deal-with-very-large-backups/) - * [Inspect your backups](https://torsion.org/borgmatic/docs/how-to/inspect-your-backups/) - * [Monitor your backups](https://torsion.org/borgmatic/docs/how-to/monitor-your-backups/) - * [Upgrade borgmatic](https://torsion.org/borgmatic/docs/how-to/upgrade/) - * [borgmatic configuration reference](https://torsion.org/borgmatic/docs/reference/configuration/) - * [borgmatic command-line reference](https://torsion.org/borgmatic/docs/reference/command-line/) diff --git a/docs/how-to/upgrade.md b/docs/how-to/upgrade.md index b99dea9..867fe26 100644 --- a/docs/how-to/upgrade.md +++ b/docs/how-to/upgrade.md @@ -1,5 +1,9 @@ --- title: How to upgrade borgmatic +eleventyNavigation: + key: Upgrade borgmatic + parent: How-to guides + order: 10 --- ## Upgrading @@ -111,8 +115,3 @@ sudo pip3 install --user borgmatic That's it! borgmatic will continue using your /etc/borgmatic configuration files. - - -## Related documentation - - * [Develop on borgmatic](https://torsion.org/borgmatic/docs/how-to/develop-on-borgmatic/) diff --git a/docs/reference/command-line.md b/docs/reference/command-line.md index eca09d3..293b824 100644 --- a/docs/reference/command-line.md +++ b/docs/reference/command-line.md @@ -1,5 +1,9 @@ --- -title: borgmatic command-line reference +title: Command-line reference +eleventyNavigation: + key: Command-line reference + parent: Reference guides + order: 1 --- ## borgmatic options diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md index 550c0f6..69880c6 100644 --- a/docs/reference/configuration.md +++ b/docs/reference/configuration.md @@ -1,5 +1,9 @@ --- -title: borgmatic configuration reference +title: Configuration reference +eleventyNavigation: + key: Configuration reference + parent: Reference guides + order: 0 --- ## Configuration file diff --git a/docs/reference/index.md b/docs/reference/index.md new file mode 100644 index 0000000..c0d39b5 --- /dev/null +++ b/docs/reference/index.md @@ -0,0 +1,5 @@ +--- +eleventyNavigation: + key: Reference guides +permalink: false +--- diff --git a/setup.py b/setup.py index 3ce0678..bf10778 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import find_packages, setup -VERSION = '1.5.10.dev0' +VERSION = '1.5.10' setup(