Compare commits

...

400 Commits

Author SHA1 Message Date
Inex Code b5a2be808c Merge pull request 'Clone the theme files' (#141) from nevfy/selfprivacy.org:theme-clone into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#141
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-06-05 14:38:34 +03:00
nevfy 73f867a323 Merge remote-tracking branch 'upstream/master' into theme-clone 2024-06-02 03:19:21 +03:00
nevfy ae2bd408b1 fix(dl): margins too big 2024-06-02 03:17:45 +03:00
nevfy ed910b7427 fix: build 2024-06-02 03:17:45 +03:00
def 2c4ffebc79 Update content/ru/docs/Services/email/_index.md 2024-06-02 03:17:45 +03:00
dettlaff d2a54c1b48 docs: add eng version 2024-06-02 03:17:45 +03:00
dettlaff 91b264dbb4 docs: update email roundcube 2024-06-02 03:17:45 +03:00
Inex Code 6f3f776eae Merge pull request 'update english nextcloud docs' (#142) from def/update_email into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#142
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-05-31 15:17:58 +03:00
def 6eaf7bbdcc Update content/ru/docs/Services/email/_index.md 2024-05-30 03:00:30 +03:00
dettlaff 09c30379af docs: add eng version 2024-05-30 03:58:13 +04:00
nevfy c9af34da46 Merge branch 'master' into theme-clone 2024-05-30 02:40:55 +03:00
dettlaff d49a5eb100 docs: update email roundcube 2024-05-14 01:38:25 +04:00
nevfy 4e2db568c9 Fix typos in FAQ (#138)
continuous-integration/drone/push Build is failing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#138
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: nevfy <nevfy@noreply.git.selfprivacy.org>
Co-committed-by: nevfy <nevfy@noreply.git.selfprivacy.org>
2024-05-12 20:02:06 +03:00
nevfy a3eb6fa9d1 fix: margins too small blog 2024-05-09 19:41:03 +03:00
nevfy 55df8d6f26 fix: remove td-navbar and td-breadcrumb overrrides 2024-05-09 19:38:30 +03:00
nevfy ae97ac93d3 fix(docs): margins too small 2024-05-09 16:37:31 +03:00
Inex Code c1d211e971 Reapply "Merge branch 'master' into set-img-size"
continuous-integration/drone/push Build is passing Details
This reverts commit 5abf9a38f7.
2024-05-01 15:27:11 +03:00
Inex Code 5abf9a38f7 Revert "Merge branch 'master' into set-img-size"
continuous-integration/drone/push Build is passing Details
This reverts commit a0c32c0b4f, reversing
changes made to c46e9bb2ac.
2024-05-01 15:25:31 +03:00
Inex Code 24a86fbea9 Merge pull request 'Add placeholder to broken images' (#126) from nevfy/selfprivacy.org:set-img-size into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#126
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-05-01 15:22:11 +03:00
Inex Code a0c32c0b4f Merge branch 'master' into set-img-size 2024-05-01 15:21:43 +03:00
nevfy c46e9bb2ac fix: rename folder 2024-04-29 17:34:19 +03:00
nevfy 46223ee8b1 fix: privacy policy 2024-04-29 17:20:22 +03:00
nevfy c6ee71fb49 Merge branch 'master' of https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org into set-img-size 2024-04-28 01:33:41 +03:00
nevfy a8fe258fe5 Merge branch 'set-img-size' of https://git.selfprivacy.org/nevfy/selfprivacy.org into set-img-size 2024-04-28 01:30:43 +03:00
nevfy 53b1e00ac5 fix: bad merge 2024-04-28 01:25:47 +03:00
nevfy e82b38b504 Merge branch 'master' into set-img-size 2024-04-27 15:59:17 +03:00
nevfy 7a2ce768b2 fix: center blocks on smaller screens
continuous-integration/drone/push Build is passing Details
2024-04-27 01:06:31 +03:00
nevfy c951c3592a fix: enable windows download
continuous-integration/drone/push Build is passing Details
2024-04-26 02:14:11 +03:00
nevfy 2c7edd87ae fix: update bs 2024-04-26 01:15:39 +03:00
nevfy fe51efc049 Merge branch 'master' into theme-clone 2024-04-23 22:14:21 +03:00
nevfy 9be32325d0 fix(bs): download
continuous-integration/drone/push Build is passing Details
2024-04-22 21:13:55 +03:00
nevfy 298a50ca24 fix: optimize svg 2024-04-22 21:13:55 +03:00
nevfy 51a2ccd995 fix(bs): upgrade to new defaults 2024-04-22 21:13:55 +03:00
nevfy e61c1cd8c5 fix(bs): lang selector 2024-04-22 21:13:55 +03:00
nevfy e31b2da345 fix(bs): upgrade carousel 2024-04-22 21:13:55 +03:00
nevfy a6fcff6e75 feat: upgrade theme 2024-04-22 21:13:55 +03:00
nevfy 88bdaccccc Remove unused files (#131)
continuous-integration/drone/push Build is passing Details
- Illustrations load from the `content` folders, not from `assets`
- Screenshots load from `static/images`, not from `assets`
- `justimg` shortcode is not used anywhere

`assets/images` and `justimg.html` can be deleted.

Reviewed-on: SelfPrivacy/selfprivacy.org#131
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: nevfy <yaver4.0.0.0@gmail.com>
Co-committed-by: nevfy <yaver4.0.0.0@gmail.com>
2024-04-22 21:11:58 +03:00
nevfy 70e6f662d3 feat: vendor modules 2024-04-22 02:04:16 +03:00
dettlaff de9c84858e def/update_nextcloud (#127)
continuous-integration/drone/push Build is passing Details
Co-authored-by: Inex Code <inex.code@selfprivacy.org>
Reviewed-on: SelfPrivacy/selfprivacy.org#127
Co-authored-by: dettlaff <dettlaff@riseup.net>
Co-committed-by: dettlaff <dettlaff@riseup.net>
2024-04-19 12:24:46 +03:00
def cc8f9be86a Merge pull request 'Remove .gitmodules' (#123) from nevfy/selfprivacy.org:rem-git-mod into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#123
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-04-19 00:13:12 +03:00
nevfy 06f5fb9d94 Merge branch 'master' into rem-git-mod 2024-04-19 00:04:29 +03:00
nevfy f5b80082ed Update layout (#102)
continuous-integration/drone/push Build is passing Details
This merge request solves following issues with the current layout:
- **h1 header not instantly visible on the first screen on mobile:** changed the order so it appears before the screenshot gallery
- **alternation of text and images looking weird in vertical mobile layout:** removed the alternation on mobile
- **services and advantages being spread too wide on desktop:** added space on the sides
- **advantages having repetitive layout, supporters repeating the look of services:** added variety with sliding effect and alternating background color, removed card-like background

Reviewed-on: SelfPrivacy/selfprivacy.org#102
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: nevfy <yaver4.0.0.0@gmail.com>
Co-committed-by: nevfy <yaver4.0.0.0@gmail.com>
2024-04-18 21:41:36 +03:00
nevfy 586da8051f Merge branch 'master' into rem-git-mod 2024-04-18 20:13:05 +03:00
nevfy e5fd469f96 Merge branch 'master' into set-img-size 2024-04-17 16:32:55 +03:00
Inex Code 19a0b0f0ca fix: relrefs with spaces
continuous-integration/drone/push Build is passing Details
2024-04-17 16:31:55 +03:00
nevfy e0b9f8fe9b fix: remove justimg shortcode 2024-04-16 23:45:07 +03:00
nevfy d76c3ba051 fix: remove unused wrapper 2024-04-14 00:59:18 +03:00
nevfy b8e58cba1f fix: svg placeholder style 2024-04-12 02:19:53 +03:00
def b6086d8fd7 Merge pull request 'Change TOC order in docs' (#124) from nevfy/selfprivacy.org:fix-docs-order into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#124
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-04-11 16:48:12 +03:00
nevfy ecc8f46e2b fix: change broken img look 2024-04-11 07:01:47 +03:00
def c9effcdf25 Merge pull request 'docs: upd get started ru' (#122) from def/update_get_started_ru into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#122
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-04-10 18:19:03 +03:00
nevfy 294d527e52 fix(ru): reorder toc 2024-04-08 05:32:18 +03:00
nevfy 0548dcd424 fix(docs): reorder toc 2024-04-08 04:41:59 +03:00
nevfy a22f5eebbb fix: remove .gitmodules 2024-04-08 02:58:03 +03:00
dettlaff 3a283216ce style: md fix 2024-04-05 04:19:29 +04:00
dettlaff 371c2df508 docs: delete old materials 2024-04-05 04:18:53 +04:00
dettlaff f3052613fd docs: add imgproc to pics 2024-04-05 04:17:23 +04:00
dettlaff 160e8d9e12 style: fix md 2024-04-05 00:12:24 +04:00
dettlaff a87a83dcbc docs: fix from reviewer 2024-04-05 00:10:20 +04:00
dettlaff f338f54806 docs: fix numbers 2024-04-02 04:32:05 +04:00
dettlaff c4a7292114 docs: upd providers ru 2024-04-02 04:28:24 +04:00
dettlaff 209ed687cd docs: update about porkbun 2024-04-01 13:23:55 +04:00
dettlaff aba7c4a5fa docs: upd get started 2024-03-30 06:53:52 +04:00
dettlaff a09ceb89b1 docs: update architecture en (#115)
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#115
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: dettlaff <dettlaff@riseup.net>
Co-committed-by: dettlaff <dettlaff@riseup.net>
2024-03-28 15:37:59 +02:00
Inex Code de5ff5053d docs(en): 0.11.0 changelog
continuous-integration/drone/push Build is passing Details
2024-03-14 20:24:39 +03:00
Inex Code 8ef581a4ef docs(en): Add info on how to get admin rights in pleroma
continuous-integration/drone/push Build is passing Details
2024-03-03 18:05:23 +02:00
Inex Code 94cf2caf44 fix(en): example in the wrong language
continuous-integration/drone/push Build is passing Details
2024-03-01 15:32:40 +02:00
dettlaff 13d6ea9618 docs: upd eng backups (#73)
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#73
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: dettlaff <dettlaff@riseup.net>
Co-committed-by: dettlaff <dettlaff@riseup.net>
2024-03-01 02:41:45 +02:00
Inex Code 27954e1efa docs(en): DNS provider migration guide
continuous-integration/drone/push Build is passing Details
2024-02-29 01:51:07 +03:00
Inex Code 7908938b3f docs(ru): Fix provider name in migration article
continuous-integration/drone/push Build is passing Details
2024-02-29 01:22:17 +03:00
Inex Code e05437d43e docs(ru): Adapt DNS migration steps to the Nix flakes
continuous-integration/drone/push Build is passing Details
2024-02-29 01:19:01 +03:00
def ee47208a6e docs: update architecture ru (#114)
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#114
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2024-02-27 16:29:02 +02:00
Inex Code 174bcb1d4e Merge pull request 'Fix tab borders in docs' (#107) from nevfy/selfprivacy.org:fix-tabs into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#107
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-02-12 15:18:52 +02:00
nevfy 8345296280 fix: bad merge 2024-02-09 21:19:13 +04:00
nevfy 27ac23f9ac Merge remote-tracking branch 'upstream/master' into fix-tabs 2024-02-09 05:15:02 +04:00
nevfy 9a3115468d fix: resolve conflict 2024-02-09 05:11:02 +04:00
Inex Code 3145d57511 fix: Link to fdroid
continuous-integration/drone/push Build is passing Details
2024-02-08 15:39:50 +03:00
Inex Code 20317f6f20 Merge pull request 'Refactor CSS' (#108) from nevfy/selfprivacy.org:refactor-css into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#108
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-02-08 13:25:36 +02:00
nevfy 2e7be902a3 Merge remote-tracking branch 'upstream/master' into refactor-css 2024-02-07 19:07:21 +04:00
nevfy 77513ad94c Merge remote-tracking branch 'upstream/master' into fix-tabs 2024-02-06 19:46:11 +04:00
nevfy 23d317a711 fix: tabs blocked by h3 2024-02-06 19:43:01 +04:00
def e93cb64dba docs: update screensots ru and eng (#112)
continuous-integration/drone/push Build is passing Details
Co-authored-by: dettlaff <dettlaff@riseup.net>
Co-authored-by: nevfy <yaver4.0.0.0@gmail.com>
Reviewed-on: SelfPrivacy/selfprivacy.org#112
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2024-02-06 15:48:11 +02:00
Inex Code ab9497cee6 Merge pull request 'Remove taxonomies' (#113) from nevfy/selfprivacy.org:remove-taxonomies into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#113
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-02-06 15:44:59 +02:00
nevfy 73bbf27bc4 fix: remove taxonomies from site config 2024-02-06 03:24:29 +04:00
nevfy 7c1778778a fix: remove categories from files 2024-02-06 03:22:17 +04:00
nevfy 21508896dd fix: remove shadow from header items 2024-02-05 22:35:23 +04:00
nevfy 1dd43956f2 fix: tab style 2024-02-05 22:28:43 +04:00
nevfy 9ab590cf1c Merge remote-tracking branch 'upstream/master' into fix-tabs 2024-02-05 21:38:18 +04:00
Inex Code e297584513 Merge pull request 'Remove h1 from pages that already have it' (#106) from nevfy/selfprivacy.org:remove-h1 into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#106
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-02-05 10:08:39 +02:00
Inex Code f420718b96 Merge pull request 'Change navigation hover appearance' (#105) from nevfy/selfprivacy.org:docs-hover into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#105
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-02-05 10:06:05 +02:00
nevfy 34d991ff50 fix: more nesting 2024-02-04 23:35:17 +04:00
nevfy 4f786bf803 fix: add variables 2024-02-04 23:25:23 +04:00
nevfy 2c556abba0 fix: more sass nesting 2024-02-04 23:16:04 +04:00
nevfy 7e257894f2 fix: use sass nesting 2024-02-04 23:09:40 +04:00
nevfy 9077451d1e feat: move docsy overrides to a separate file 2024-02-04 22:51:21 +04:00
nevfy 24155de39c fix: tab hover 2024-02-04 22:25:41 +04:00
nevfy bb21516e55 fix: tabs border (#100) 2024-02-04 22:09:33 +04:00
nevfy 9c7746b2b0 fix: articles should only have one h1 2024-02-04 21:31:22 +04:00
nevfy 664b2c8898 fix: sidebar link active state 2024-02-04 19:29:23 +04:00
nevfy 041e682cd7 fix: hover anim 2024-02-04 19:24:20 +04:00
nevfy b48564a58d fix: footer hover 2024-02-04 19:09:59 +04:00
nevfy be1e35cef5 fix: header link hover 2024-02-04 18:44:58 +04:00
nevfy 3e2c596d5a fix: hide categories title 2024-02-04 18:39:37 +04:00
nevfy 5fc5905bc3 fix: hide another duplicate header 2024-02-04 18:16:49 +04:00
nevfy 4e1eab2139 fix: change hover color and bg 2024-02-04 18:11:15 +04:00
Inex Code 8382708a2b docs(en): Update roadmap
continuous-integration/drone/push Build is passing Details
2024-01-31 14:33:51 +04:00
Inex Code 082e0c37be Merge pull request 'Hide single-level breadcrumbs in docs' (#98) from nevfy/selfprivacy.org:docs-bread into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#98
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-30 18:08:44 +02:00
nevfy 07ec6cc0e3 Merge remote-tracking branch 'upstream/master' into docs-bread 2024-01-30 19:54:31 +04:00
nevfy 4414a392c2 fix: preserve top margin 2024-01-30 19:53:36 +04:00
Inex Code 160be568c6 Merge pull request 'Fix coming soon label wrap' (#96) from nevfy/selfprivacy.org:footer-disabled-links into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#96
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-30 17:29:20 +02:00
nevfy b640093184 Merge remote-tracking branch 'upstream/master' into footer-disabled-links 2024-01-30 13:57:53 +04:00
nevfy 53e4a3e752 fix: coming soon wrap 2024-01-30 13:56:05 +04:00
Inex Code 1ebc49337b Merge pull request 'Add icons to the footer downloads' (#95) from nevfy/selfprivacy.org:add-icons into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#95
2024-01-29 19:04:02 +02:00
nevfy 1d3856542a fix: bad merge 2024-01-29 20:56:12 +04:00
nevfy 73e4b2716d fix: add icons to the footer dl section 2024-01-29 20:27:00 +04:00
nevfy 93c646bca6 fix: set empty alt for illustrations to be ignored by screenreaders 2024-01-29 20:26:02 +04:00
Inex Code 4f507f35c6 Merge pull request 'Remove bullets from checklists' (#85) from nevfy/selfprivacy.org:remove-bullets-from-checklists into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#85
2024-01-29 17:50:42 +02:00
nevfy 0f3d6743f6 Merge remote-tracking branch 'upstream/master' into remove-bullets-from-checklists 2024-01-29 19:49:03 +04:00
Inex Code 42ebc180b9 Merge pull request 'Change bg color and nav' (#81) from nevfy/selfprivacy.org:color-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#81
2024-01-29 17:45:38 +02:00
nevfy ba10c7c41d Merge remote-tracking branch 'upstream/master' into color-fix 2024-01-29 19:41:22 +04:00
Inex Code c5ae4ecdad Merge pull request 'Change language dropdown appearance' (#84) from nevfy/selfprivacy.org:lang-picker into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#84
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-29 17:38:55 +02:00
nevfy 4e1e91ed60 Merge remote-tracking branch 'upstream/master' into lang-picker 2024-01-29 19:37:57 +04:00
nevfy 0de6c75a4d Merge remote-tracking branch 'upstream/master' into lang-picker 2024-01-29 19:33:07 +04:00
Inex Code be0e968260 Merge pull request 'Change TOC links font weight in docs' (#89) from nevfy/selfprivacy.org:fix-docs-nav into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#89
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-29 17:31:13 +02:00
nevfy 4aa30d0236 Merge remote-tracking branch 'upstream/master' into remove-bullets-from-checklists 2024-01-29 19:28:38 +04:00
nevfy ae05642570 Merge remote-tracking branch 'upstream/master' into fix-docs-nav 2024-01-29 19:26:04 +04:00
Inex Code f2fe4df542 Merge pull request 'Remove alt-text from decorative images in services section' (#94) from nevfy/selfprivacy.org:alt-text into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#94
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-29 17:22:01 +02:00
nevfy 6bfe043230 Merge remote-tracking branch 'upstream/master' into alt-text 2024-01-29 19:08:24 +04:00
Inex Code 7a97d4fe68 Merge pull request 'fix(ru): Fix blog title' (#93) from fix-blog-link into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#93
2024-01-29 15:10:10 +02:00
Inex Code 5bc756be98 fix(ru): Fix blog title 2024-01-29 17:07:06 +04:00
nevfy 8bf4f3ef7f fix: hide single-level breadcrumbs 2024-01-29 15:44:23 +04:00
Inex Code 4ec630c07c Merge pull request 'Remove U+0441 CYRILLIC SMALL LETTER ES from folder name' (#87) from nevfy/selfprivacy.org:U+0441 into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#87
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-29 11:03:56 +02:00
Inex Code ce1c0b27d0 Merge pull request 'Disable currently unavailable download options in footer' (#83) from nevfy/selfprivacy.org:upd-footer-links into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#83
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-29 10:55:46 +02:00
nevfy 4d3d5449c4 fix: TOC links font weight 2024-01-29 02:54:14 +04:00
nevfy e6d09a43fb fix: remove cyrillic from folder name 2024-01-29 02:12:04 +04:00
nevfy 57d3df5a48 fix: remove bullets from checklists 2024-01-29 01:30:18 +04:00
nevfy 5471c290a4 fix: inherit shadow from service cards 2024-01-28 23:45:18 +04:00
nevfy c4163bc099 fix: remove dropdown white margin 2024-01-28 23:45:18 +04:00
nevfy 2cc1653fea fix: lang dropdown position 2024-01-28 23:45:18 +04:00
nevfy 8ebe0f50c7 fix: disable unreleased 2024-01-28 23:14:43 +04:00
nevfy 531a1de5a2 fix: add ios link 2024-01-28 23:14:43 +04:00
nevfy 70cedfd5e8 fix: remove alt text from services 2024-01-28 18:10:22 +04:00
Inex Code 82b429f9b4 Merge pull request 'fix: right toc' (#82) from nevfy/selfprivacy.org:doc-sidebar into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#82
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-28 05:11:54 +02:00
nevfy a6b51c2799 fix: right toc 2024-01-28 00:50:15 +04:00
nevfy 428cfb3544 fix: change margin units to rem 2024-01-27 01:12:36 +04:00
nevfy 6577407f36 fix: remove vh and vw 2024-01-27 01:12:36 +04:00
nevfy 68506bf550 fix: nav items margin on smaller screens 2024-01-27 01:12:36 +04:00
nevfy ff4f5c2634 fix(ru): remove docsy sections 2024-01-27 01:12:36 +04:00
nevfy e24346b93c change nav hover and active states 2024-01-27 01:12:36 +04:00
nevfy 9834547483 fix bg color 2024-01-27 01:12:36 +04:00
nevfy b2c5f3eb73 change template sections to html sections 2024-01-27 01:12:36 +04:00
nevfy 8a4539cd21 fix text contrast 2024-01-27 01:12:36 +04:00
nevfy dc9953f3a6 remove dot from h1 2024-01-27 01:12:36 +04:00
nevfy 9b0c45de8c fix: disable windows dl btn 2024-01-27 01:12:36 +04:00
nevfy a8fa6191e1 fix: enable google play button 2024-01-27 01:12:36 +04:00
nevfy 62281d370f fix(en): typos 2024-01-27 01:12:36 +04:00
nevfy 419bf3de08 add missed parenthesis in markdown link 2024-01-27 01:12:36 +04:00
nevfy a1a8aaae02 remove old wiki link 2024-01-27 01:12:36 +04:00
Inex Code 14d7717a1f Merge pull request 'fix: enable google play button' (#80) from nevfy/selfprivacy.org:dl-layout-fix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#80
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-24 13:39:55 +02:00
nevfy 4bed98bde2 fix: disable windows dl btn 2024-01-24 15:27:51 +04:00
nevfy 6088aab57d fix: enable google play button 2024-01-24 15:20:26 +04:00
Inex Code 9b9e15817f Merge pull request 'fix typos' (#79) from nevfy/selfprivacy.org:fix-typos into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#79
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-24 12:56:52 +02:00
nevfy d7db00e05b fix(en): typos 2024-01-24 13:50:42 +04:00
Inex Code 51040340b9 Merge pull request 'Remove old developers wiki link from footer' (#78) from nevfy/selfprivacy.org:update_links into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#78
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2024-01-23 19:48:54 +02:00
nevfy 1317084d52 remove old wiki link 2024-01-23 21:44:51 +04:00
nevfy 422c34dd0c add missed parenthesis in markdown link 2024-01-23 19:16:25 +04:00
Inex Code 696266368f Merge pull request 'docs(en): Release 0.10.0' (#77) from release-0-10-0 into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#77
2024-01-19 18:26:35 +02:00
Inex Code 0bc8663f6f docs(en): Release 0.10.0 2024-01-19 18:54:22 +03:00
Inex Code 25e8b80224 Merge pull request 'fix: SSH key creation on windows' (#76) from fix-ssh-windows into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#76
2024-01-19 14:24:48 +02:00
Inex Code 69fbfacc4f fix: SSH key creation on windows 2024-01-19 15:24:20 +03:00
def 2391f502f8 Merge pull request 'docs: update screenshots' (#74) from update_screensots3 into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#74
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-12-06 14:37:37 +02:00
def 3c83186584 Merge branch 'master' into update_screensots3 2023-12-06 14:37:30 +02:00
def f80061497e Merge pull request 'docs: add how to change dns to desec' (#62) from change_dns into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#62
Reviewed-by: NaiJi  <naiji@noreply.git.selfprivacy.org>
2023-12-05 14:18:04 +02:00
dettlaff c1d964c774 docs: fix from review 2023-12-04 02:02:29 +04:00
dettlaff c7307d81a3 docs: update screenshots 2023-11-25 21:13:58 +04:00
def b0194f0165 docs: fix from review 2023-11-25 18:49:41 +02:00
def f0dd4ca4ba Merge branch 'master' into change_dns 2023-11-08 21:13:27 +02:00
dettlaff 33ebbaaae6 docs: update ru typos 2023-11-08 23:12:33 +04:00
dettlaff 039a5545c6 docs: update ru version of change dns 2023-11-08 23:05:40 +04:00
dettlaff 6898cbf417 docs: add how to get token 2023-11-08 22:58:22 +04:00
dettlaff e1b85cb652 docs: update ru change dns 2023-11-08 22:48:38 +04:00
def a1bb99fef5 Merge pull request 'docs: add email block problems' (#65) from email_block into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#65
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-06 15:28:54 +02:00
Inex Code e9c6b4fe6f docs: fix issues with email article 2023-11-06 14:57:50 +03:00
dettlaff 0313da6007 Merge branch 'email_block' of git.selfprivacy.org:SelfPrivacy/selfprivacy.org into email_block 2023-11-03 21:39:09 +04:00
dettlaff d6d4157ba9 docs: update eng version email blocking 2023-11-03 21:38:40 +04:00
def 74b6874e28 Merge branch 'master' into email_block 2023-11-03 19:31:16 +02:00
dettlaff 2aef4be2b1 docs: update email problems 2023-11-03 21:30:17 +04:00
dettlaff 5fafa85c1f docs: update change dns 2023-11-02 16:37:15 +04:00
def af7f01bf06 Merge pull request 'docs: update backups' (#69) from update_backups into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#69
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-01 13:13:14 +02:00
def 255888da0b Merge pull request 'docs: nextcloud faq' (#64) from nextcloud_faq into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#64
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-11-01 12:55:58 +02:00
dettlaff ef0966c952 docs: delete false string 2023-11-01 14:54:57 +04:00
def 9188884f1a docs: add semicolon to ru version 2023-10-31 11:45:39 +02:00
def 3787392987 docs: update ru backups 2023-10-31 11:43:55 +02:00
dettlaff 5b759a766e Merge branch 'master' into nextcloud_faq 2023-10-26 17:25:39 +04:00
def 469bd73e6b docs: fix ru faq nextcloud 2023-10-26 16:13:14 +03:00
def 9b4a5e1807 docs: fix ru typo 2023-10-26 15:58:04 +03:00
def c4dca4c277 docs: fix header 2023-10-26 15:54:03 +03:00
def 212b818dae docs: add eng version for nextcloud faq 2023-10-26 15:53:33 +03:00
def bd66f3f0d6 docs: update nexcloud faq, fix typos 2023-10-26 15:03:45 +03:00
def 510c4f84f0 Merge pull request 'docs: add reset paswd nextcloud' (#63) from reset_paswd_nextcloud into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#63
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-26 14:54:47 +03:00
def c05532f2d8 Merge branch 'master' into email_block 2023-10-26 14:53:51 +03:00
def bbe4f6b512 docs: add eng version of email block 2023-10-26 14:53:35 +03:00
def 1499c96700 docs: fix ru version of email block 2023-10-26 14:47:25 +03:00
def 7625b98fb9 Merge branch 'master' into reset_paswd_nextcloud 2023-10-26 14:43:46 +03:00
def 451d0e9f4f docs: add eng version of reset passwd 2023-10-26 14:42:40 +03:00
def b6bffc33c3 docs: fix links, typos 2023-10-26 14:33:41 +03:00
def 3ac3b3ab5c Merge pull request 'add ru version for backups' (#56) from backups_ru into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#56
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-26 14:15:49 +03:00
def 746b3d5bb2 docs: add email block problems 2023-10-26 02:26:40 +03:00
def 402e51ffdd docs: nextcloud faq 2023-10-26 02:16:54 +03:00
def 0450c46a59 docs: add reset paswd nextcloud 2023-10-26 02:04:01 +03:00
def 4de10746b7 Merge branch 'master' into backups_ru 2023-10-24 22:50:00 +03:00
def 188d7024e2 docs: fix missclick 2023-10-24 22:48:51 +03:00
def 6ab5ae43f9 docs: fixed set to zero 2023-10-24 22:47:11 +03:00
def e4df4279b6 docs: fixed the name of the buttons 2023-10-24 22:40:06 +03:00
dettlaff bd68df06a9 docs: change dns config 2023-10-21 19:10:21 +04:00
dettlaff 4608697b8d docs: add how to change dns 2023-10-21 06:43:23 +04:00
Inex Code 761ecee8f0 Merge pull request 'docs: add redirect' (#59) from add_redirect into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#59
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-10-09 23:06:29 +03:00
def 4d52dc5677 docs: add redirect 2023-10-09 22:56:15 +03:00
def 0e2f08a6bd docs(ru): Plug for roadmap (#58)
continuous-integration/drone/push Build is passing Details
Co-authored-by: dettlaff <dettlaff@riseup.net>
Reviewed-on: SelfPrivacy/selfprivacy.org#58
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2023-10-06 17:38:32 +03:00
Inex Code 1e9bcceb4d Merge pull request 'docs(en): add roadmap' (#57) from roadmap into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#57
2023-10-05 19:16:20 +03:00
Inex Code b88d1b6a30 docs(en): add roadmap 2023-10-05 19:15:21 +03:00
def 10ae941674 Merge branch 'master' into backups_ru 2023-10-05 13:37:46 +03:00
dettlaff c9a3b84cdd docs: fix ru backups 2023-10-05 14:37:27 +04:00
dettlaff d3efb90d92 docs: fix ru backups 2023-10-05 14:35:01 +04:00
Inex Code 5e11f9153d fix(en): fix the colour of the alert to be red color :)
continuous-integration/drone/push Build is passing Details
2023-10-03 13:39:23 +03:00
dettlaff 621d67c4e3 docs: fix title 2023-10-03 00:59:22 +04:00
dettlaff dadeee35a3 Merge branch 'backups_ru' of git.selfprivacy.org:SelfPrivacy/selfprivacy.org into backups_ru 2023-10-03 00:02:24 +04:00
dettlaff 0c5f1b4722 docs: backups add ru version 2023-10-03 00:02:05 +04:00
def c818a380b6 Merge branch 'master' into backups_ru 2023-10-02 22:51:19 +03:00
dettlaff 9ee3774fbb Merge branch 'backup-docs' of git.selfprivacy.org:SelfPrivacy/selfprivacy.org into backup-docs 2023-10-02 22:54:43 +04:00
def e75647de9b docs: add jitsi (#48)
continuous-integration/drone/push Build is passing Details
Co-authored-by: dettlaff <dettlaff@riseup.net>
Reviewed-on: SelfPrivacy/selfprivacy.org#48
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2023-10-01 15:06:05 +03:00
Inex Code 77234831aa Merge pull request 'docs: update faq' (#51) from upd_faq into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#51
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-29 16:32:41 +03:00
Inex Code 4afc163c10 Merge pull request 'add documentation for backups' (#43) from backup-docs into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#43
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-27 11:58:47 +03:00
Inex Code b8b1e5be25 docs(en): Remove TODO from backups article 2023-09-27 11:58:36 +03:00
NaiJi ✨ 490e3221f8 docs: Upload screenshots for Backups article
- part 2
2023-09-27 11:58:36 +03:00
NaiJi ✨ 0d10c2472a docs: Upload screenshots for Backups article
- part 1
2023-09-27 11:58:36 +03:00
dettlaff f5118b3899 docs: fix typos 2023-09-27 11:58:36 +03:00
Houkime 2ff47840b8 add proto-documentation for backups 2023-09-27 11:58:36 +03:00
Inex Code c2956c9187 Merge pull request 'release-0-9-0' (#50) from release-0-9-0 into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#50
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-22 19:28:14 +03:00
NaiJi ✨ d8b3a01344 docs: fix ru typo 2023-09-22 19:26:23 +03:00
NaiJi ✨ 69f24f01a7 docs: fix ru typo 2023-09-22 19:25:45 +03:00
NaiJi ✨ 7c5e2a1bb1 docs: fix ru 2023-09-22 19:24:48 +03:00
NaiJi ✨ 0cf7a36c4b docs: fix typo 2023-09-22 19:12:47 +03:00
NaiJi ✨ 7120efc267 Update 'content/ru/blog/releases/0.9.0.md' 2023-09-22 19:08:33 +03:00
dettlaff 0042c0e9be docs: fix links 2023-09-20 03:59:40 +04:00
dettlaff f2662c06eb docs: add eng version 2023-09-20 03:55:08 +04:00
dettlaff f40047061d Merge branch 'master' into upd_faq 2023-09-17 15:23:55 +04:00
dettlaff 4abae932ff docs: fix typos 2023-09-17 15:16:24 +04:00
dettlaff 589bf95e49 docs: fix typos 2023-09-17 15:04:49 +04:00
dettlaff 479441013c docs: update faq 2023-09-17 15:01:30 +04:00
dettlaff cf168f5dc3 docs: add ru version 2023-09-13 13:57:54 +04:00
Inex Code df90b1f74b docs(en): Stub of 0.9.0 release notes 2023-09-10 15:49:56 +03:00
def 97b1337718 Merge pull request 'docs: add warnings about gitea' (#47) from warning into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#47
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-06 17:11:44 +03:00
def 3c01c19da8 Merge branch 'master' into warning 2023-09-06 16:50:08 +03:00
dettlaff 350b6cf651 docs: add warnings 2023-09-06 04:50:55 +04:00
Inex Code 10a8e3de13 Merge pull request 'add tabs to ssh how to, fix md, typos' (#46) from add_tabs_to_ssh_how_to into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#46
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-09-04 14:16:04 +03:00
dettlaff eb85a8a78b fix: what we use as an email server 2023-09-01 19:59:26 +04:00
dettlaff ddb61426a8 fix: typos, hyphens 2023-09-01 19:42:08 +04:00
dettlaff 2dbb2260be refactor: add what we use as email in server 2023-08-30 21:50:07 +04:00
dettlaff 14e9557499 refactor: add tabs to ssh how to 2023-08-30 21:42:51 +04:00
dettlaff 70409504fa fix: image strange html code 2023-08-30 21:17:25 +04:00
def 9cebb747b5 fix: THE typos 2023-08-30 20:01:06 +03:00
def 57a75b9887 Merge branch 'master' into mdfix 2023-08-30 19:53:46 +03:00
def 2f206c1838 docs: add desec to suggested DNS providers (#42)
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#42
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2023-08-30 19:51:26 +03:00
def 78f81cf3f3 fix(en): title of the "how to contribute" page (#41)
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#41
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2023-08-30 14:51:41 +03:00
dettlaff cf6c695b14 Merge branch 'master' of git.selfprivacy.org:SelfPrivacy/selfprivacy.org 2023-08-30 13:30:13 +04:00
dettlaff 10eac0022c fix: md 2023-08-30 13:28:46 +04:00
Inex Code c23a5b25e8 fix: incosistent naming
continuous-integration/drone/push Build is passing Details
2023-08-25 14:13:26 +03:00
Houkime 58b0bb1253 add proto-documentation for backups 2023-08-04 12:44:48 +03:00
Inex Code e992458a52 Merge pull request 'Add "Supported by" block' (#44) from inex/support_orgs into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#44
2023-08-04 11:16:42 +03:00
Inex Code 336944a1d9 docs: Add "supported by" block 2023-08-03 14:41:34 +03:00
Inex Code fe50e2c39c chroe: deprecations in hugo config 2023-08-03 13:44:47 +03:00
Inex Code f3109a138e Merge pull request 'fix: edit links' (#39) from fix-links into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#39
Reviewed-by: def <dettlaff@riseup.net>
2023-07-29 00:04:25 +03:00
Inex Code 9f13d3b79a fix: edit links 2023-07-29 00:03:31 +03:00
Inex Code 63eb7781c6 Merge pull request 'fix site md + fix contr' (#40) from add_contr into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#40
2023-06-16 02:13:53 +03:00
def 357ed85e59 Merge branch 'master' into add_contr 2023-06-15 05:43:46 +03:00
def a7fb58f7d2 delete dublicate 2023-06-15 05:43:14 +03:00
Inex Code eaa8070a27 fix: ident using spaces 2023-06-14 13:08:35 +03:00
dettlaff 5b092045bb remove tabs 2023-06-14 05:24:57 +04:00
Inex Code 8cc50ffa7d Merge pull request 'Add contributing' (#37) from add_contr into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#37
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-06-12 15:43:12 +03:00
Inex Code 1e90d46f9b Merge pull request 'add howto desec token' (#35) from newdns into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#35
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-06-12 15:26:53 +03:00
dettlaff d318c813ed add tabs 2023-06-10 05:27:56 +04:00
dettlaff e7d330428e fix missing 2023-06-10 04:45:07 +04:00
def 29b5efff23 fix typos 2023-06-06 04:14:12 +03:00
def ff3800270e add dot-dot 2023-06-02 03:42:54 +03:00
def 3f9b1c699d add eng 2023-06-02 03:40:54 +03:00
def 518f36ceb7 fix typos 2023-05-31 13:57:54 +03:00
def 875df66b86 fix typo 2023-05-30 13:17:37 +03:00
def 0af885c8e0 Add 'content/ru/docs/contributing/_index.md' 2023-05-30 13:08:01 +03:00
Inex Code cb5b2a6661 Merge pull request 'fix arhitecture and some links' (#36) from hotfix into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#36
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-05-25 04:26:07 +03:00
dettlaff 8cd025a159 fix arhitecture and some links 2023-05-21 00:05:18 +04:00
dettlaff 53b7f8a845 add howto desec token 2023-05-19 13:56:21 +04:00
Inex Code 027eeb473c Merge pull request 'finally brought two languages into a single view' (#33) from trtoeng into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#33
2023-05-18 22:47:15 +03:00
dettlaff 789dd9b067 remove emoji in ru team 2023-05-18 07:03:25 +04:00
dettlaff 1ce8511c6b delete dot 2023-05-18 07:01:07 +04:00
dettlaff 26edcbbe92 finally brought two languages into a single view 2023-05-18 06:57:31 +04:00
Inex Code dd6552ed9d Merge pull request 'image hotfix' (#32) from trtoeng into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#32
2023-05-18 00:07:00 +03:00
dettlaff fdea9128d9 image hotfix 2023-05-17 22:55:57 +04:00
Inex Code 76cd469fe9 Merge pull request 'tr to eng' (#29) from trtoeng into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#29
2023-05-17 21:32:03 +03:00
dettlaff d761f7b1b5 fix typos, remove emoji 2023-05-17 21:33:53 +04:00
Inex Code 0bd920deeb Merge pull request 'remove cyou' (#31) from remove_cyou into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#31
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-05-16 18:01:23 +03:00
def 37a58ffdc1 remove cyou ru 2023-05-16 17:59:53 +03:00
def bcef121659 remove cyou from en 2023-05-16 17:58:55 +03:00
Inex Code a2268e619b Merge pull request 'docs(en): Add privacy policy' (#30) from privacy_policy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#30
2023-05-15 12:12:08 +03:00
Inex Code 1effed4354 docs(en): Add privacy policy 2023-05-15 12:10:14 +03:00
dettlaff ed1971e6be update serveces ru 2023-05-12 02:58:39 +04:00
dettlaff a872656331 Merge branch 'master' into trtoeng 2023-05-11 15:02:44 +04:00
dettlaff 262c63f7f3 update services 2023-05-11 14:59:43 +04:00
dettlaff ff316da1e9 translate to eng 2023-05-11 06:06:38 +04:00
def 676256d50b update deltachat.md 2023-05-10 21:28:42 +03:00
def 51992b86d6 refactor: Create a Theory section
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#28
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2023-05-09 23:27:29 +03:00
def d9a99fd49e Update 'content/en/docs/Services/bitwarden.md' 2023-05-04 19:33:38 +03:00
Inex Code 777f0ed110 Merge pull request 'docs(en): Bitwarden admin token guide' (#27) from bitwarden-admin into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#27
2023-05-03 10:56:36 +03:00
Inex Code 5f00aaf65a docs(en): Bitwarden admin token guide 2023-05-03 10:56:10 +03:00
def beae1e27b9 Update 'content/en/docs/Services/bitwarden.md' 2023-05-02 18:46:05 +03:00
def 493bfbecee Update 'content/en/docs/About us/motivation.md' 2023-05-02 16:51:17 +03:00
Const an teen fa9b596227 docs
continuous-integration/drone/push Build is passing Details
Перевод на русский язык двух страниц из раздела How to guides

Co-authored-by: acetone <acetone@i2pmail.org>
Reviewed-on: SelfPrivacy/selfprivacy.org#20
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
Co-authored-by: Const an teen <acetone@disroot.org>
Co-committed-by: Const an teen <acetone@disroot.org>
2023-05-02 16:37:21 +03:00
Inex Code 6bed2c77ba Merge pull request 'Update 'content/ru/docs/FAQ/SelfPrivacy automation.md'' (#26) from def-patch-2 into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#26
2023-05-02 15:18:44 +03:00
Inex Code 056a2a33ea rollback(ru): description of automation explanation 2023-05-02 15:18:35 +03:00
Inex Code 13befaf0d9 docs(en): Fix automation explanation 2023-05-02 15:16:55 +03:00
def 496f1720bf Add 'content/en/docs/FAQ/SelfPrivacy automation.md' 2023-05-02 06:00:29 +03:00
def dc298d295a Update 'content/ru/docs/FAQ/SelfPrivacy automation.md' 2023-05-01 17:04:59 +03:00
def b204467328 Update 'content/ru/docs/FAQ/SelfPrivacy automation.md' 2023-05-01 16:34:12 +03:00
def 81f9b9a7a9 Update 'content/ru/docs/FAQ/SelfPrivacy automation.md' 2023-05-01 16:33:28 +03:00
Inex Code a8171b49c4 Merge pull request 'Update 'content/ru/docs/FAQ/SelfPrivacy automation.md'' (#25) from def-patch-1 into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#25
2023-04-28 18:58:16 +03:00
def 6f8114bfb0 Update 'content/ru/docs/FAQ/SelfPrivacy automation.md' 2023-04-28 16:54:40 +03:00
def 297b127859 Update 'content/ru/docs/FAQ/SelfPrivacy automation.md' (#24)
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#24
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2023-04-28 16:34:02 +03:00
Inex Code f926a1401a Merge pull request 'add to faq "how to get help"' (#22) from docsy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#22
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-04-28 16:10:37 +03:00
Inex Code 63b01b1479 Merge pull request 'automation' (#23) from automation into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#23
Reviewed-by: Inex Code <inex.code@selfprivacy.org>
2023-04-28 16:10:27 +03:00
def 4c782a49cf Update 'content/ru/docs/FAQ/SelfPrivacy automation.md' 2023-04-28 16:07:56 +03:00
def 0e3f0b9c72 Update 'content/ru/docs/FAQ/ SelfPrivacy automation.md' 2023-04-28 16:05:43 +03:00
def a8cba35bf3 Update 'content/ru/docs/FAQ/ SelfPrivacy automation.md' 2023-04-28 16:03:34 +03:00
def baa42d5897 Update 'content/en/docs/FAQ/_index.md' 2023-04-28 14:56:20 +03:00
def 8425522c66 Update 'content/ru/docs/FAQ/ SelfPrivacy automation.md' 2023-04-28 14:08:44 +03:00
def 347d2893f4 Update 'content/ru/docs/FAQ/ SelfPrivacy automation.md' 2023-04-28 13:51:30 +03:00
def d38c676bdf Update 'content/ru/docs/SelfPrivacy automation/ _index.md' 2023-04-27 16:27:44 +03:00
def 00fe417391 Add 'content/ru/docs/How it works/_index.md' 2023-04-27 16:20:47 +03:00
def 8c7e22bdba Update 'content/en/docs/FAQ/_index.md' 2023-04-27 00:47:25 +03:00
def cd1401767c Update 'content/en/docs/FAQ/_index.md' 2023-04-27 00:46:42 +03:00
def 0d9d1b833e docsy (#21)
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#21
Co-authored-by: def <dettlaff@riseup.net>
Co-committed-by: def <dettlaff@riseup.net>
2023-04-24 21:56:41 +03:00
Inex Code f9f136f11a Merge pull request 'docs(en): Add FAQ' (#19) from docsy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#19
2023-04-21 19:41:35 +03:00
Inex Code 1244ac544f docs(en): Add FAQ 2023-04-21 19:39:45 +03:00
Inex Code f8161e5195 Merge pull request 'docs(en): Fix wording of the page warning' (#17) from docsy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#17
2023-03-15 17:15:44 +02:00
Inex Code 786fd65793 docs(en): Fix wording of the page warning 2023-03-15 18:15:30 +03:00
Inex Code ee32ec4f30 Merge pull request 'docsy' (#16) from docsy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#16
2023-03-15 16:58:56 +02:00
Inex Code 67896e9a3c Merge branch 'master' into docsy 2023-03-15 16:58:25 +02:00
Inex Code b8f7020874 docs(en): Add cleanup guide 2023-03-15 17:58:09 +03:00
Inex Code 41c310f733 docs(en): Add the guide on how to access the root SSH shell 2023-03-14 14:52:37 +03:00
Inex Code 01dd95154c docs: Publish the Team page 2023-03-14 14:52:14 +03:00
Inex Code f0d01a4b84 Merge pull request 'docsy' (#15) from docsy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#15
2023-02-14 11:52:21 +02:00
Inex Code 993da8f8b3 Merge branch 'master' into docsy 2023-02-14 11:52:05 +02:00
Inex Code 5c4c9f6f09 revert: APK file is APK file. 2023-02-14 12:51:49 +03:00
Inex Code bb17087fb2 docs: Add release notes for 0.8.0 2023-02-14 12:49:14 +03:00
def 258a675eca docs: update ru 2023-01-28 18:12:03 +04:00
Inex Code dbcb7e79fc Merge pull request 'feat: Add links to contributor chats' (#13) from docsy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#13
2023-01-24 18:48:25 +02:00
Inex Code 3561966635 feat: Add links to contributor chats 2023-01-24 19:48:06 +03:00
Inex Code e7a0dfc87a Merge pull request 'chore: Update screenshots' (#12) from docsy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#12
2023-01-24 18:39:12 +02:00
Inex Code 4e8c63218f chore: Update screenshots 2023-01-24 19:38:29 +03:00
Inex Code b7de57ef99 Merge pull request 'Fixes' (#11) from docsy into master
continuous-integration/drone/push Build is passing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#11
2023-01-24 18:32:06 +02:00
Inex Code 9afc5d29a8 ci: Add installation of postcss-cli 2023-01-24 19:31:24 +03:00
Inex Code 6a152a6e8e fix(ru): Fix numbered list 2023-01-24 19:31:09 +03:00
Inex Code 8bfb70ca35 fix: Self-host jQuery 2023-01-24 19:30:50 +03:00
Inex Code 7996431ece fix: Change branding to SelfPrivacy 2023-01-24 19:30:38 +03:00
Inex Code bf82420df5 Merge pull request 'Switch to docsy' (#10) from docsy into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#10
2023-01-23 23:29:27 +02:00
Inex Code a0754579de docs(ru): Translate footer to russian 2023-01-24 00:27:47 +03:00
Inex Code ce0b2d503a fix(ru): Fix broken layout 2023-01-24 00:27:31 +03:00
def 44622e37c2 Merge branch 'docsy' of git.selfprivacy.org:SelfPrivacy/selfprivacy.org into docsy 2023-01-24 01:09:23 +04:00
def 7631c942b5 docs: update ru 2023-01-24 01:08:11 +04:00
def bfd8674449 docs: fix typo 2023-01-23 19:37:18 +02:00
def 025a81eca4 docs: update ru arhitecture 2023-01-23 20:55:51 +04:00
Inex Code fc308a0924 docs: Add release notes 2023-01-23 17:38:20 +03:00
Inex Code 8ec04fbf06 docs(en): Localize bad passwords 2023-01-20 17:14:38 +03:00
Inex Code b3f962d1e1 fix: Fix landing features 2023-01-20 17:14:15 +03:00
Inex Code ce1dd94703 docs(ru): Translate the getting started 2023-01-20 17:13:45 +03:00
Inex Code fa7dc5db48 docs(ru): Copy over files from en version 2023-01-20 16:17:02 +03:00
Inex Code ac27596b4e docs(en): Small improvements before publication 2023-01-20 16:13:00 +03:00
Inex Code 245cf308a8 docs(en): Mark the team.md as draft 2023-01-20 16:01:08 +03:00
Inex Code 5849212726 docs(en): Rewrite the getting started guide 2023-01-20 15:34:24 +03:00
Inex Code 5708e554a2 docs(en): Add stub notices to services articles 2023-01-20 15:27:13 +03:00
Inex Code c7b66bd8d4 feat: Switch to docsy 2023-01-11 19:53:46 +03:00
Inex Code afa81f7d6f fix: Privacy policy display
continuous-integration/drone/push Build is passing Details
2022-12-31 09:29:25 +03:00
Inex Code 85f08b290f ci: Attempt to fix private key
continuous-integration/drone/push Build is passing Details
2022-12-31 09:23:38 +03:00
Inex Code b405ca00fa Merge pull request 'docs: add basic privacy policy' (#9) from privacy_policy into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#9
2022-12-31 08:15:59 +02:00
Inex Code e461c39102 docs: add basic privacy policy 2022-12-31 09:15:00 +03:00
Inex Code 2cdf4eb88a Merge pull request 'change defaultContentLanguage' (#8) from fix_lang into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#8
2022-12-22 15:29:33 +02:00
def 6a5d414e2e change defaultContentLanguage 2022-12-22 15:26:29 +02:00
Inex Code 1dc4f23029 Merge pull request 'editorial: making description bigger' (#7) from munrocket/selfprivacy.org:fontsize into master
continuous-integration/drone/push Build is failing Details
Reviewed-on: SelfPrivacy/selfprivacy.org#7
2022-12-12 12:06:43 +02:00
munrocket 269217afa0 editorial: fix en grammar 2022-12-10 23:34:20 +04:00
Inex Code 622f43dc1e Merge pull request 'fix: gitea link' (#6) from munrocket/selfprivacy.org:master into master
Reviewed-on: SelfPrivacy/selfprivacy.org#6
2022-12-07 15:51:38 +02:00
munrocket 6ed8fb1f5d editorial: making description bigger 2022-12-06 23:38:20 +04:00
munrocket 22c3d7ed09 fix: gitea link 2022-12-05 02:36:07 +04:00
Inex Code 1fc2fe153d Merge pull request 'fix: gitea link in index' (#5) from def/selfprivacy.org:master into master
Reviewed-on: SelfPrivacy/selfprivacy.org#5
2022-12-04 19:47:59 +02:00
def 096faae647 fix: gitea link in index 2022-12-04 21:42:14 +04:00
Inex Code ce7637b20f Merge pull request 'Add Drone CI pipeline' (#3) from alya/selfprivacy.org:cicd into master
Reviewed-on: SelfPrivacy/selfprivacy.org#3
2022-09-26 20:32:24 +03:00
Alya Sirko 2fc4444f4e add drone pipeline 2022-09-26 20:17:39 +03:00
Alya Sirko 65e4be189e delete useless code 2022-09-26 20:04:04 +03:00
Inex Code d25f1f8839 Merge pull request 'Switch to Hugo' (#2) from alya/selfprivacy.org:hugo into master
Reviewed-on: SelfPrivacy/selfprivacy.org#2
2022-09-26 10:20:34 +03:00
Alya Sirko fe45d17015 update .gitignore 2022-09-26 10:14:44 +03:00
Alya Sirko a1abd4c06f switch to hugo 2022-09-26 10:08:47 +03:00
Inex Code 1d404a006a Merge pull request 'add apk download and our fdroid repo links' (#1) from alya/selfprivacy.org:master into master
Reviewed-on: SelfPrivacy/selfprivacy.org#1
2022-09-04 06:07:13 +03:00
737 changed files with 53649 additions and 2658 deletions

30
.drone.yml Normal file
View File

@ -0,0 +1,30 @@
kind: pipeline
type: exec
name: Build and Deploy
steps:
- name: Prepare
commands:
- eval $(ssh-agent -s)
- ssh-add - <<< "$SSH_PRIVATE_KEY"
- npm install postcss-cli
environment:
SSH_PRIVATE_KEY:
from_secret: SSH_PRIVATE_KEY
- name: Build
commands:
- hugo --gc
- name: Deploy
commands:
- scp -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -r public/* deployer@selfprivacy.org:/var/www/selfprivacy.org
trigger:
event:
- push
branch:
- master
node:
server: builder

7
.gitignore vendored Executable file → Normal file
View File

@ -1,2 +1,5 @@
.idea/ /public
.DS_Store resources/
node_modules/
package-lock.json
.hugo_build.lock

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="general">
<commitTypes>
<entry providerId="37415b03-9388-4c55-b949-8c4526f6934d" order="2" />
<entry providerId="e9ce9acf-f4a6-4b36-b43c-531169556c29" order="2" />
<entry providerId="e9d4e8de-79a0-48b8-b1ba-b4161e2572c0" order="1" />
</commitTypes>
</component>
</project>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

4
.idea/misc.xml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
</project>

9
.idea/modules.xml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/../docs.selfprivacy.org/.idea/docs.selfprivacy.org.iml" filepath="$PROJECT_DIR$/../docs.selfprivacy.org/.idea/docs.selfprivacy.org.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/selfprivacy-docsy.iml" filepath="$PROJECT_DIR$/.idea/selfprivacy-docsy.iml" />
</modules>
</component>
</project>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="docs.selfprivacy.org" />
</component>
</module>

13
.idea/vcs.xml Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CommitMessageInspectionProfile">
<profile version="1.0">
<inspection_tool class="CommitFormat" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="CommitNamingConvention" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/../docs.selfprivacy.org" vcs="Git" />
</component>
</project>

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
lts/*

4
Dockerfile Normal file
View File

@ -0,0 +1,4 @@
FROM klakegg/hugo:ext-alpine
RUN apk add git && \
git config --global --add safe.directory /src

201
LICENSE Normal file
View File

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

138
README.md Normal file
View File

@ -0,0 +1,138 @@
# Docsy Example
[Docsy][] is a [Hugo theme module][] for technical documentation sites, providing easy
site navigation, structure, and more. This **Docsy Example Project** uses the Docsy
theme component as a hugo module and provides a skeleton documentation structure for you to use.
You can clone/copy this project and edit it with your own content, or use it as an example.
In this project, the Docsy theme component is pulled in as a Hugo module, together with other module dependencies:
```bash
$ hugo mod graph
hugo: collected modules in 566 ms
hugo: collected modules in 578 ms
github.com/google/docsy-example github.com/google/docsy@v0.5.1-0.20221017155306-99eacb09ffb0
github.com/google/docsy-example github.com/google/docsy/dependencies@v0.5.1-0.20221014161617-be5da07ecff1
github.com/google/docsy/dependencies@v0.5.1-0.20221014161617-be5da07ecff1 github.com/twbs/bootstrap@v4.6.2+incompatible
github.com/google/docsy/dependencies@v0.5.1-0.20221014161617-be5da07ecff1 github.com/FortAwesome/Font-Awesome@v0.0.0-20220831210243-d3a7818c253f
```
You can find detailed theme instructions in the [Docsy user guide][].
This Docsy Example Project is hosted on [Netlify][] at [example.docsy.dev][].
You can view deploy logs from the [deploy section of the project's Netlify
dashboard][deploys], or this [alternate dashboard][].
This is not an officially supported Google product. This project is currently maintained.
## Using the Docsy Example Project as a template
A simple way to get started is to use this project as a template, which gives you a site project that is set up and ready to use. To do this:
1. Click **Use this template**.
2. Select a name for your new project and click **Create repository from template**.
3. Make your own local working copy of your new repo using git clone, replacing https://github.com/me/example.git with your repos web URL:
```bash
git clone --depth 1 https://github.com/me/example.git
```
You can now edit your own versions of the sites source files.
If you want to do SCSS edits and want to publish these, you need to install `PostCSS`
```bash
npm install
```
## Running the website locally
Building and running the site locally requires a recent `extended` version of [Hugo](https://gohugo.io).
You can find out more about how to install Hugo for your environment in our
[Getting started](https://www.docsy.dev/docs/getting-started/#prerequisites-and-installation) guide.
Once you've made your working copy of the site repo, from the repo root folder, run:
```
hugo server
```
## Running a container locally
You can run docsy-example inside a [Docker](https://docs.docker.com/)
container, the container runs with a volume bound to the `docsy-example`
folder. This approach doesn't require you to install any dependencies other
than [Docker Desktop](https://www.docker.com/products/docker-desktop) on
Windows and Mac, and [Docker Compose](https://docs.docker.com/compose/install/)
on Linux.
1. Build the docker image
```bash
docker-compose build
```
1. Run the built image
```bash
docker-compose up
```
> NOTE: You can run both commands at once with `docker-compose up --build`.
1. Verify that the service is working.
Open your web browser and type `http://localhost:1313` in your navigation bar,
This opens a local instance of the docsy-example homepage. You can now make
changes to the docsy example and those changes will immediately show up in your
browser after you save.
### Cleanup
To stop Docker Compose, on your terminal window, press **Ctrl + C**.
To remove the produced images run:
```console
docker-compose rm
```
For more information see the [Docker Compose
documentation](https://docs.docker.com/compose/gettingstarted/).
## Troubleshooting
As you run the website locally, you may run into the following error:
```
➜ hugo server
INFO 2021/01/21 21:07:55 Using config file:
Building sites … INFO 2021/01/21 21:07:55 syncing static files to /
Built in 288 ms
Error: Error building site: TOCSS: failed to transform "scss/main.scss" (text/x-scss): resource "scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68" not found in file cache
```
This error occurs if you have not installed the extended version of Hugo.
See this [section](https://www.docsy.dev/docs/get-started/docsy-as-module/installation-prerequisites/#install-hugo) of the user guide for instructions on how to install Hugo.
Or you may encounter the following error:
```
➜ hugo server
Error: failed to download modules: binary with name "go" not found
```
This error occurs if you have not installed the `go` programming language on your system.
See this [section](https://www.docsy.dev/docs/get-started/docsy-as-module/installation-prerequisites/#install-go-language) of the user guide for instructions on how to install `go`.
[alternate dashboard]: https://app.netlify.com/sites/goldydocs/deploys
[deploys]: https://app.netlify.com/sites/docsy-example/deploys
[Docsy user guide]: https://docsy.dev/docs
[Docsy]: https://github.com/google/docsy
[example.docsy.dev]: https://example.docsy.dev
[Hugo theme module]: https://gohugo.io/hugo-modules/use-modules/#use-a-module-for-a-theme
[Netlify]: https://netlify.com

View File

@ -0,0 +1,153 @@
// animating icons
// --------------------------
.#{$fa-css-prefix}-beat {
animation-name: #{$fa-css-prefix}-beat;
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, ease-in-out);
}
.#{$fa-css-prefix}-bounce {
animation-name: #{$fa-css-prefix}-bounce;
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(0.280, 0.840, 0.420, 1));
}
.#{$fa-css-prefix}-fade {
animation-name: #{$fa-css-prefix}-fade;
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(.4,0,.6,1));
}
.#{$fa-css-prefix}-beat-fade {
animation-name: #{$fa-css-prefix}-beat-fade;
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, cubic-bezier(.4,0,.6,1));
}
.#{$fa-css-prefix}-flip {
animation-name: #{$fa-css-prefix}-flip;
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, ease-in-out);
}
.#{$fa-css-prefix}-shake {
animation-name: #{$fa-css-prefix}-shake;
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, linear);
}
.#{$fa-css-prefix}-spin {
animation-name: #{$fa-css-prefix}-spin;
animation-delay: var(--#{$fa-css-prefix}-animation-delay, 0s);
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 2s);
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, linear);
}
.#{$fa-css-prefix}-spin-reverse {
--#{$fa-css-prefix}-animation-direction: reverse;
}
.#{$fa-css-prefix}-pulse,
.#{$fa-css-prefix}-spin-pulse {
animation-name: #{$fa-css-prefix}-spin;
animation-direction: var(--#{$fa-css-prefix}-animation-direction, normal);
animation-duration: var(--#{$fa-css-prefix}-animation-duration, 1s);
animation-iteration-count: var(--#{$fa-css-prefix}-animation-iteration-count, infinite);
animation-timing-function: var(--#{$fa-css-prefix}-animation-timing, steps(8));
}
// if agent or operating system prefers reduced motion, disable animations
// see: https://www.smashingmagazine.com/2020/09/design-reduced-motion-sensitivities/
// see: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion
@media (prefers-reduced-motion: reduce) {
.#{$fa-css-prefix}-beat,
.#{$fa-css-prefix}-bounce,
.#{$fa-css-prefix}-fade,
.#{$fa-css-prefix}-beat-fade,
.#{$fa-css-prefix}-flip,
.#{$fa-css-prefix}-pulse,
.#{$fa-css-prefix}-shake,
.#{$fa-css-prefix}-spin,
.#{$fa-css-prefix}-spin-pulse {
animation-delay: -1ms;
animation-duration: 1ms;
animation-iteration-count: 1;
transition-delay: 0s;
transition-duration: 0s;
}
}
@keyframes #{$fa-css-prefix}-beat {
0%, 90% { transform: scale(1); }
45% { transform: scale(var(--#{$fa-css-prefix}-beat-scale, 1.25)); }
}
@keyframes #{$fa-css-prefix}-bounce {
0% { transform: scale(1,1) translateY(0); }
10% { transform: scale(var(--#{$fa-css-prefix}-bounce-start-scale-x, 1.1),var(--#{$fa-css-prefix}-bounce-start-scale-y, 0.9)) translateY(0); }
30% { transform: scale(var(--#{$fa-css-prefix}-bounce-jump-scale-x, 0.9),var(--#{$fa-css-prefix}-bounce-jump-scale-y, 1.1)) translateY(var(--#{$fa-css-prefix}-bounce-height, -0.5em)); }
50% { transform: scale(var(--#{$fa-css-prefix}-bounce-land-scale-x, 1.05),var(--#{$fa-css-prefix}-bounce-land-scale-y, 0.95)) translateY(0); }
57% { transform: scale(1,1) translateY(var(--#{$fa-css-prefix}-bounce-rebound, -0.125em)); }
64% { transform: scale(1,1) translateY(0); }
100% { transform: scale(1,1) translateY(0); }
}
@keyframes #{$fa-css-prefix}-fade {
50% { opacity: var(--#{$fa-css-prefix}-fade-opacity, 0.4); }
}
@keyframes #{$fa-css-prefix}-beat-fade {
0%, 100% {
opacity: var(--#{$fa-css-prefix}-beat-fade-opacity, 0.4);
transform: scale(1);
}
50% {
opacity: 1;
transform: scale(var(--#{$fa-css-prefix}-beat-fade-scale, 1.125));
}
}
@keyframes #{$fa-css-prefix}-flip {
50% {
transform: rotate3d(var(--#{$fa-css-prefix}-flip-x, 0), var(--#{$fa-css-prefix}-flip-y, 1), var(--#{$fa-css-prefix}-flip-z, 0), var(--#{$fa-css-prefix}-flip-angle, -180deg));
}
}
@keyframes #{$fa-css-prefix}-shake {
0% { transform: rotate(-15deg); }
4% { transform: rotate(15deg); }
8%, 24% { transform: rotate(-18deg); }
12%, 28% { transform: rotate(18deg); }
16% { transform: rotate(-22deg); }
20% { transform: rotate(22deg); }
32% { transform: rotate(-12deg); }
36% { transform: rotate(12deg); }
40%, 100% { transform: rotate(0deg); }
}
@keyframes #{$fa-css-prefix}-spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}

View File

@ -0,0 +1,20 @@
// bordered + pulled icons
// -------------------------
.#{$fa-css-prefix}-border {
border-color: var(--#{$fa-css-prefix}-border-color, #{$fa-border-color});
border-radius: var(--#{$fa-css-prefix}-border-radius, #{$fa-border-radius});
border-style: var(--#{$fa-css-prefix}-border-style, #{$fa-border-style});
border-width: var(--#{$fa-css-prefix}-border-width, #{$fa-border-width});
padding: var(--#{$fa-css-prefix}-border-padding, #{$fa-border-padding});
}
.#{$fa-css-prefix}-pull-left {
float: left;
margin-right: var(--#{$fa-css-prefix}-pull-margin, #{$fa-pull-margin});
}
.#{$fa-css-prefix}-pull-right {
float: right;
margin-left: var(--#{$fa-css-prefix}-pull-margin, #{$fa-pull-margin});
}

View File

@ -0,0 +1,43 @@
// base icon class definition
// -------------------------
.#{$fa-css-prefix} {
font-family: var(--#{$fa-css-prefix}-style-family, '#{$fa-style-family}');
font-weight: var(--#{$fa-css-prefix}-style, #{$fa-style});
}
.#{$fa-css-prefix},
.#{$fa-css-prefix}-classic,
.#{$fa-css-prefix}-sharp,
.fas,
.#{$fa-css-prefix}-solid,
.far,
.#{$fa-css-prefix}-regular,
.fab,
.#{$fa-css-prefix}-brands {
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
display: var(--#{$fa-css-prefix}-display, #{$fa-display});
font-style: normal;
font-variant: normal;
line-height: 1;
text-rendering: auto;
}
.fas,
.#{$fa-css-prefix}-classic,
.#{$fa-css-prefix}-solid,
.far,
.#{$fa-css-prefix}-regular {
font-family: 'Font Awesome 6 Free';
}
.fab,
.#{$fa-css-prefix}-brands {
font-family: 'Font Awesome 6 Brands';
}
%fa-icon {
@include fa-icon;
}

View File

@ -0,0 +1,7 @@
// fixed-width icons
// -------------------------
.#{$fa-css-prefix}-fw {
text-align: center;
width: $fa-fw-width;
}

View File

@ -0,0 +1,57 @@
// functions
// --------------------------
// fa-content: convenience function used to set content property
@function fa-content($fa-var) {
@return unquote("\"#{ $fa-var }\"");
}
// fa-divide: Originally obtained from the Bootstrap https://github.com/twbs/bootstrap
//
// Licensed under: The MIT License (MIT)
//
// Copyright (c) 2011-2021 Twitter, Inc.
// Copyright (c) 2011-2021 The Bootstrap Authors
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
@function fa-divide($dividend, $divisor, $precision: 10) {
$sign: if($dividend > 0 and $divisor > 0, 1, -1);
$dividend: abs($dividend);
$divisor: abs($divisor);
$quotient: 0;
$remainder: $dividend;
@if $dividend == 0 {
@return 0;
}
@if $divisor == 0 {
@error "Cannot divide by 0";
}
@if $divisor == 1 {
@return $dividend;
}
@while $remainder >= $divisor {
$quotient: $quotient + 1;
$remainder: $remainder - $divisor;
}
@if $remainder > 0 and $precision > 0 {
$remainder: fa-divide($remainder * 10, $divisor, $precision - 1) * .1;
}
@return ($quotient + $remainder) * $sign;
}

View File

@ -0,0 +1,10 @@
// specific icon class definition
// -------------------------
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
@each $name, $icon in $fa-icons {
.#{$fa-css-prefix}-#{$name}::before { content: unquote("\"#{ $icon }\""); }
}

View File

@ -0,0 +1,18 @@
// icons in a list
// -------------------------
.#{$fa-css-prefix}-ul {
list-style-type: none;
margin-left: var(--#{$fa-css-prefix}-li-margin, #{$fa-li-margin});
padding-left: 0;
> li { position: relative; }
}
.#{$fa-css-prefix}-li {
left: calc(var(--#{$fa-css-prefix}-li-width, #{$fa-li-width}) * -1);
position: absolute;
text-align: center;
width: var(--#{$fa-css-prefix}-li-width, #{$fa-li-width});
line-height: inherit;
}

View File

@ -0,0 +1,75 @@
// mixins
// --------------------------
// base rendering for an icon
@mixin fa-icon {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
display: inline-block;
font-style: normal;
font-variant: normal;
font-weight: normal;
line-height: 1;
}
// sets relative font-sizing and alignment (in _sizing)
@mixin fa-size ($font-size) {
font-size: fa-divide($font-size, $fa-size-scale-base) * 1em; // converts step in sizing scale into an em-based value that's relative to the scale's base
line-height: fa-divide(1, $font-size) * 1em; // sets the line-height of the icon back to that of it's parent
vertical-align: (fa-divide(6, $font-size) - fa-divide(3, 8)) * 1em; // vertically centers the icon taking into account the surrounding text's descender
}
// only display content to screen readers
// see: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
// see: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
@mixin fa-sr-only() {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
// use in conjunction with .sr-only to only display content when it's focused
@mixin fa-sr-only-focusable() {
&:not(:focus) {
@include fa-sr-only();
}
}
// sets a specific icon family to use alongside style + icon mixins
// convenience mixins for declaring pseudo-elements by CSS variable,
// including all style-specific font properties, and both the ::before
// and ::after elements in the duotone case.
@mixin fa-icon-solid($fa-var) {
@extend %fa-icon;
@extend .fa-solid;
&::before {
content: unquote("\"#{ $fa-var }\"");
}
}
@mixin fa-icon-regular($fa-var) {
@extend %fa-icon;
@extend .fa-regular;
&::before {
content: unquote("\"#{ $fa-var }\"");
}
}
@mixin fa-icon-brands($fa-var) {
@extend %fa-icon;
@extend .fa-brands;
&::before {
content: unquote("\"#{ $fa-var }\"");
}
}

View File

@ -0,0 +1,31 @@
// rotating + flipping icons
// -------------------------
.#{$fa-css-prefix}-rotate-90 {
transform: rotate(90deg);
}
.#{$fa-css-prefix}-rotate-180 {
transform: rotate(180deg);
}
.#{$fa-css-prefix}-rotate-270 {
transform: rotate(270deg);
}
.#{$fa-css-prefix}-flip-horizontal {
transform: scale(-1, 1);
}
.#{$fa-css-prefix}-flip-vertical {
transform: scale(1, -1);
}
.#{$fa-css-prefix}-flip-both,
.#{$fa-css-prefix}-flip-horizontal.#{$fa-css-prefix}-flip-vertical {
transform: scale(-1, -1);
}
.#{$fa-css-prefix}-rotate-by {
transform: rotate(var(--#{$fa-css-prefix}-rotate-angle, none));
}

View File

@ -0,0 +1,14 @@
// screen-reader utilities
// -------------------------
// only display content to screen readers
.sr-only,
.#{$fa-css-prefix}-sr-only {
@include fa-sr-only;
}
// use in conjunction with .sr-only to only display content when it's focused
.sr-only-focusable,
.#{$fa-css-prefix}-sr-only-focusable {
@include fa-sr-only-focusable;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,16 @@
// sizing icons
// -------------------------
// literal magnification scale
@for $i from 1 through 10 {
.#{$fa-css-prefix}-#{$i}x {
font-size: $i * 1em;
}
}
// step-based scale (with alignment)
@each $size, $value in $fa-sizes {
.#{$fa-css-prefix}-#{$size} {
@include fa-size($value);
}
}

View File

@ -0,0 +1,32 @@
// stacking icons
// -------------------------
.#{$fa-css-prefix}-stack {
display: inline-block;
height: 2em;
line-height: 2em;
position: relative;
vertical-align: $fa-stack-vertical-align;
width: $fa-stack-width;
}
.#{$fa-css-prefix}-stack-1x,
.#{$fa-css-prefix}-stack-2x {
left: 0;
position: absolute;
text-align: center;
width: 100%;
z-index: var(--#{$fa-css-prefix}-stack-z-index, #{$fa-stack-z-index});
}
.#{$fa-css-prefix}-stack-1x {
line-height: inherit;
}
.#{$fa-css-prefix}-stack-2x {
font-size: 2em;
}
.#{$fa-css-prefix}-inverse {
color: var(--#{$fa-css-prefix}-inverse, #{$fa-inverse});
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,30 @@
/*!
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2023 Fonticons, Inc.
*/
@import 'functions';
@import 'variables';
:root, :host {
--#{$fa-css-prefix}-style-family-brands: 'Font Awesome 6 Brands';
--#{$fa-css-prefix}-font-brands: normal 400 1em/1 'Font Awesome 6 Brands';
}
@font-face {
font-family: 'Font Awesome 6 Brands';
font-style: normal;
font-weight: 400;
font-display: $fa-font-display;
src: url('#{$fa-font-path}/fa-brands-400.woff2') format('woff2'),
url('#{$fa-font-path}/fa-brands-400.ttf') format('truetype');
}
.fab,
.#{$fa-css-prefix}-brands {
font-weight: 400;
}
@each $name, $icon in $fa-brand-icons {
.#{$fa-css-prefix}-#{$name}:before { content: unquote("\"#{ $icon }\""); }
}

View File

@ -0,0 +1,21 @@
/*!
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2023 Fonticons, Inc.
*/
// Font Awesome core compile (Web Fonts-based)
// -------------------------
@import 'functions';
@import 'variables';
@import 'mixins';
@import 'core';
@import 'sizing';
@import 'fixed-width';
@import 'list';
@import 'bordered-pulled';
@import 'animated';
@import 'rotated-flipped';
@import 'stacked';
@import 'icons';
@import 'screen-reader';

View File

@ -0,0 +1,26 @@
/*!
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2023 Fonticons, Inc.
*/
@import 'functions';
@import 'variables';
:root, :host {
--#{$fa-css-prefix}-style-family-classic: '#{ $fa-style-family }';
--#{$fa-css-prefix}-font-regular: normal 400 1em/1 '#{ $fa-style-family }';
}
@font-face {
font-family: 'Font Awesome 6 Free';
font-style: normal;
font-weight: 400;
font-display: $fa-font-display;
src: url('#{$fa-font-path}/fa-regular-400.woff2') format('woff2'),
url('#{$fa-font-path}/fa-regular-400.ttf') format('truetype');
}
.far,
.#{$fa-css-prefix}-regular {
font-weight: 400;
}

View File

@ -0,0 +1,26 @@
/*!
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2023 Fonticons, Inc.
*/
@import 'functions';
@import 'variables';
:root, :host {
--#{$fa-css-prefix}-style-family-classic: '#{ $fa-style-family }';
--#{$fa-css-prefix}-font-solid: normal 900 1em/1 '#{ $fa-style-family }';
}
@font-face {
font-family: 'Font Awesome 6 Free';
font-style: normal;
font-weight: 900;
font-display: $fa-font-display;
src: url('#{$fa-font-path}/fa-solid-900.woff2') format('woff2'),
url('#{$fa-font-path}/fa-solid-900.ttf') format('truetype');
}
.fas,
.#{$fa-css-prefix}-solid {
font-weight: 900;
}

View File

@ -0,0 +1,11 @@
/*!
* Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2023 Fonticons, Inc.
*/
// V4 shims compile (Web Fonts-based)
// -------------------------
@import 'functions';
@import 'variables';
@import 'shims';

Binary file not shown.

View File

@ -0,0 +1,5 @@
This `_vendor` folder exists to work around a known bug in Gos module
management. For details, see <https://github.com/golang/go/issues/37397>.
DO NOT EDIT or manually override the files in this folder. They are
automatically synchronized at installation time.

View File

@ -0,0 +1,354 @@
// stylelint-disable property-blacklist, scss/dollar-variable-default
// SCSS RFS mixin
//
// Automated responsive values for font sizes, paddings, margins and much more
//
// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)
// Configuration
// Base value
$rfs-base-value: 1.25rem !default;
$rfs-unit: rem !default;
@if $rfs-unit != rem and $rfs-unit != px {
@error "`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.";
}
// Breakpoint at where values start decreasing if screen width is smaller
$rfs-breakpoint: 1200px !default;
$rfs-breakpoint-unit: px !default;
@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {
@error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
}
// Resize values based on screen height and width
$rfs-two-dimensional: false !default;
// Factor of decrease
$rfs-factor: 10 !default;
@if type-of($rfs-factor) != number or $rfs-factor <= 1 {
@error "`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.";
}
// Mode. Possibilities: "min-media-query", "max-media-query"
$rfs-mode: min-media-query !default;
// Generate enable or disable classes. Possibilities: false, "enable" or "disable"
$rfs-class: false !default;
// 1 rem = $rfs-rem-value px
$rfs-rem-value: 16 !default;
// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
$rfs-safari-iframe-resize-bug-fix: false !default;
// Disable RFS by setting $enable-rfs to false
$enable-rfs: true !default;
// Cache $rfs-base-value unit
$rfs-base-value-unit: unit($rfs-base-value);
@function divide($dividend, $divisor, $precision: 10) {
$sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
$dividend: abs($dividend);
$divisor: abs($divisor);
@if $dividend == 0 {
@return 0;
}
@if $divisor == 0 {
@error "Cannot divide by 0";
}
$remainder: $dividend;
$result: 0;
$factor: 10;
@while ($remainder > 0 and $precision >= 0) {
$quotient: 0;
@while ($remainder >= $divisor) {
$remainder: $remainder - $divisor;
$quotient: $quotient + 1;
}
$result: $result * 10 + $quotient;
$factor: $factor * .1;
$remainder: $remainder * 10;
$precision: $precision - 1;
@if ($precision < 0 and $remainder >= $divisor * 5) {
$result: $result + 1;
}
}
$result: $result * $factor * $sign;
$dividend-unit: unit($dividend);
$divisor-unit: unit($divisor);
$unit-map: (
"px": 1px,
"rem": 1rem,
"em": 1em,
"%": 1%
);
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
$result: $result * map-get($unit-map, $dividend-unit);
}
@return $result;
}
// Remove px-unit from $rfs-base-value for calculations
@if $rfs-base-value-unit == px {
$rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);
}
@else if $rfs-base-value-unit == rem {
$rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));
}
// Cache $rfs-breakpoint unit to prevent multiple calls
$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
// Remove unit from $rfs-breakpoint for calculations
@if $rfs-breakpoint-unit-cache == px {
$rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);
}
@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == "em" {
$rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));
}
// Calculate the media query value
$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});
$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);
$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);
// Internal mixin used to determine which media query needs to be used
@mixin _rfs-media-query {
@if $rfs-two-dimensional {
@if $rfs-mode == max-media-query {
@media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
@content;
}
}
@else {
@media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {
@content;
}
}
}
@else {
@media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {
@content;
}
}
}
// Internal mixin that adds disable classes to the selector if needed.
@mixin _rfs-rule {
@if $rfs-class == disable and $rfs-mode == max-media-query {
// Adding an extra class increases specificity, which prevents the media query to override the property
&,
.disable-rfs &,
&.disable-rfs {
@content;
}
}
@else if $rfs-class == enable and $rfs-mode == min-media-query {
.enable-rfs &,
&.enable-rfs {
@content;
}
}
@else {
@content;
}
}
// Internal mixin that adds enable classes to the selector if needed.
@mixin _rfs-media-query-rule {
@if $rfs-class == enable {
@if $rfs-mode == min-media-query {
@content;
}
@include _rfs-media-query {
.enable-rfs &,
&.enable-rfs {
@content;
}
}
}
@else {
@if $rfs-class == disable and $rfs-mode == min-media-query {
.disable-rfs &,
&.disable-rfs {
@content;
}
}
@include _rfs-media-query {
@content;
}
}
}
// Helper function to get the formatted non-responsive value
@function rfs-value($values) {
// Convert to list
$values: if(type-of($values) != list, ($values,), $values);
$val: '';
// Loop over each value and calculate value
@each $value in $values {
@if $value == 0 {
$val: $val + ' 0';
}
@else {
// Cache $value unit
$unit: if(type-of($value) == "number", unit($value), false);
@if $unit == px {
// Convert to rem if needed
$val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);
}
@else if $unit == rem {
// Convert to px if needed
$val: $val + ' ' + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);
}
@else {
// If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
$val: $val + ' ' + $value;
}
}
}
// Remove first space
@return unquote(str-slice($val, 2));
}
// Helper function to get the responsive value calculated by RFS
@function rfs-fluid-value($values) {
// Convert to list
$values: if(type-of($values) != list, ($values,), $values);
$val: '';
// Loop over each value and calculate value
@each $value in $values {
@if $value == 0 {
$val: $val + ' 0';
}
@else {
// Cache $value unit
$unit: if(type-of($value) == "number", unit($value), false);
// If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
@if not $unit or $unit != px and $unit != rem {
$val: $val + ' ' + $value;
}
@else {
// Remove unit from $value for calculations
$value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));
// Only add the media query if the value is greater than the minimum value
@if abs($value) <= $rfs-base-value or not $enable-rfs {
$val: $val + ' ' + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);
}
@else {
// Calculate the minimum value
$value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);
// Calculate difference between $value and the minimum value
$value-diff: abs($value) - $value-min;
// Base value formatting
$min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);
// Use negative value if needed
$min-width: if($value < 0, -$min-width, $min-width);
// Use `vmin` if two-dimensional is enabled
$variable-unit: if($rfs-two-dimensional, vmin, vw);
// Calculate the variable width between 0 and $rfs-breakpoint
$variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};
// Return the calculated value
$val: $val + ' calc(' + $min-width + if($value < 0, ' - ', ' + ') + $variable-width + ')';
}
}
}
}
// Remove first space
@return unquote(str-slice($val, 2));
}
// RFS mixin
@mixin rfs($values, $property: font-size) {
@if $values != null {
$val: rfs-value($values);
$fluidVal: rfs-fluid-value($values);
// Do not print the media query if responsive & non-responsive values are the same
@if $val == $fluidVal {
#{$property}: $val;
}
@else {
@include _rfs-rule {
#{$property}: if($rfs-mode == max-media-query, $val, $fluidVal);
// Include safari iframe resize fix if needed
min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);
}
@include _rfs-media-query-rule {
#{$property}: if($rfs-mode == max-media-query, $fluidVal, $val);
}
}
}
}
// Shorthand helper mixins
@mixin font-size($value) {
@include rfs($value);
}
@mixin padding($value) {
@include rfs($value, padding);
}
@mixin padding-top($value) {
@include rfs($value, padding-top);
}
@mixin padding-right($value) {
@include rfs($value, padding-right);
}
@mixin padding-bottom($value) {
@include rfs($value, padding-bottom);
}
@mixin padding-left($value) {
@include rfs($value, padding-left);
}
@mixin margin($value) {
@include rfs($value, margin);
}
@mixin margin-top($value) {
@include rfs($value, margin-top);
}
@mixin margin-right($value) {
@include rfs($value, margin-right);
}
@mixin margin-bottom($value) {
@include rfs($value, margin-bottom);
}
@mixin margin-left($value) {
@include rfs($value, margin-left);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -0,0 +1,237 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve">
<g>
<path style="fill:#FFFFFF;" d="M116.8525,421.9722c-5.7041,0-10.3442-4.3127-10.3442-9.6129V88.183
c0-5.3002,4.6401-9.6117,10.3442-9.6117H320.858c3.0347,0,9.3959,0.5498,11.7506,2.6302l0.3545,0.3442l58.905,63.2912
c2.3101,2.491,2.9202,8.4928,2.9202,11.3184v256.2039c0,5.3002-4.6407,9.6129-10.3436,9.6129H116.8525z"/>
<g>
<g>
<g>
<path style="fill:#767676;" d="M384.4445,423.2066H116.852c-6.3839,0-11.5786-4.8658-11.5786-10.8474V88.1831
c0-5.9804,5.1947-10.8461,11.5786-10.8461h204.0062c0.377,0,9.2786,0.0329,12.568,2.9389l0.3947,0.3833l58.9508,63.337
c3.2135,3.4652,3.2514,11.7924,3.2514,12.1593v256.2036C396.0231,418.3408,390.8284,423.2066,384.4445,423.2066z
M116.5079,411.9189c0.0848,0.0278,0.1999,0.0531,0.3441,0.0531h267.5925c0.1442,0,0.2581-0.0253,0.3441-0.0531V156.1556
c-0.0076-0.9033-0.3593-3.7347-0.7034-5.0037l-57.6527-61.9416c-1.4651-0.3176-4.4533-0.6389-5.5742-0.6389H116.852
c-0.143,0-0.2594,0.024-0.3441,0.0531V411.9189z M383.9612,150.7699L383.9612,150.7699L383.9612,150.7699z M327.0321,89.371
v0.0013V89.371z"/>
</g>
</g>
</g>
<g>
<g>
<path style="fill:#5B7FC0;" d="M189.0874,210.1754l0.0012-0.0012c7.7751,0.0012,15.0295,4.1862,18.932,10.9234
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3304-6.4032,15.4604
c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032c-5.8394,0-11.328-2.2733-15.458-6.4032s-6.4032-9.6186-6.4056-15.4628
c0.0012-6.025,2.454-11.4897,6.4116-15.4473C177.5953,212.627,183.0601,210.1742,189.0874,210.1754z M197.0804,232.033
c0.0012-1.4042-0.3687-2.7868-1.063-3.9887c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993
c0,2.1356,0.832,4.1431,2.3427,5.6539c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
S197.0816,234.1722,197.0804,232.033z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.0898,210.176c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613c0-6.0285,2.4516-11.4921,6.4116-15.452
C177.5977,212.6276,183.0612,210.176,189.0898,210.176z M197.0839,232.0372c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,236.239,197.0839,234.2399,197.0839,232.0372z"/>
<g>
<defs>
<path id="SVGID_1_" d="M194.7376,237.6875c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.999,7.9942-7.9942c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.0839,234.2399,196.1861,236.239,194.7376,237.6875z"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_2_);fill:#FFFFFF;" d="M190.0704,225.0237c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354c-1.7447-1.4674-2.8575-3.663-2.8588-6.116
c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C193.7885,225.7247,191.9774,225.0237,190.0704,225.0237z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_2_);fill:#020202;" d="M190.0704,225.0237
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354
c-1.7447-1.4674-2.8575-3.663-2.8588-6.116c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C193.7885,225.7247,191.9774,225.0237,190.0704,225.0237z"/>
</g>
<g>
<defs>
<path id="SVGID_3_" d="M189.0898,210.176c7.7763,0,15.0283,4.1826,18.926,10.9151c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462
c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613
c0-6.0285,2.4516-11.4921,6.4116-15.452C177.5977,212.6276,183.0612,210.176,189.0898,210.176z M197.0839,232.0372
c0-1.4078-0.3711-2.7892-1.0702-3.9959c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,236.239,197.0839,234.2399,197.0839,232.0372z"/>
</defs>
<clipPath id="SVGID_4_">
<use xlink:href="#SVGID_3_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_4_);fill:#5B7FC0;" d="M172.6595,215.6045c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8612c12.0547,0.0024,21.8636-9.797,21.8613-21.8612
c0.0024-3.8475-1.0151-7.6326-2.9353-10.9462c-3.8977-6.7324-11.1497-10.9151-18.926-10.9151
C182.0806,209.1953,176.6171,211.647,172.6595,215.6045z"/>
</g>
</g>
<rect x="198.8952" y="225.1043" style="fill:#5B7FC0;" width="122.6266" height="13.8671"/>
</g>
<g>
<path style="fill:#D95140;" d="M189.0874,155.7611l0.0012-0.0012c7.7751,0.0012,15.0295,4.1862,18.932,10.9234
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3304-6.4032,15.4604c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032
c-5.8394,0-11.328-2.2733-15.458-6.4032s-6.4032-9.6186-6.4056-15.4628c0.0012-6.0249,2.454-11.4897,6.4116-15.4473
C177.5953,158.2128,183.0601,155.7599,189.0874,155.7611z M197.0804,177.6188c0.0012-1.4042-0.3687-2.7868-1.063-3.9887
c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993c0,2.1356,0.832,4.1431,2.3427,5.6539
c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
C196.2508,181.7667,197.0816,179.758,197.0804,177.6188z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.0898,155.7617c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613c0-6.0285,2.4516-11.4921,6.4116-15.452
C177.5977,158.2134,183.0612,155.7617,189.0898,155.7617z M197.0839,177.623c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,181.8248,197.0839,179.8256,197.0839,177.623z"/>
<g>
<defs>
<path id="SVGID_5_" d="M194.7376,183.2733c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.9989,7.9942-7.9942c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.0839,179.8256,196.1861,181.8248,194.7376,183.2733z"/>
</defs>
<clipPath id="SVGID_6_">
<use xlink:href="#SVGID_5_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_6_);fill:#FFFFFF;" d="M190.0704,170.6095c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354c-1.7447-1.4674-2.8575-3.663-2.8588-6.116c0.0024-4.4125,3.5936-7.999,7.9942-7.9942
c2.3802-0.0001,4.616,1.0833,6.1218,2.8788C193.7885,171.3104,191.9774,170.6095,190.0704,170.6095z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_6_);fill:#020202;" d="M190.0704,170.6095
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942c0.0011,1.9546,0.7088,3.7452,1.8782,5.1354
c-1.7447-1.4674-2.8575-3.663-2.8588-6.116c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C193.7885,171.3104,191.9774,170.6095,190.0704,170.6095z"/>
</g>
<g>
<defs>
<path id="SVGID_7_" d="M189.0898,155.7617c7.7763,0,15.0283,4.1826,18.926,10.9151c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462
c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613c-12.0547,0.0024-21.8636-9.8066-21.8612-21.8613
c0-6.0285,2.4516-11.4921,6.4116-15.452C177.5977,158.2134,183.0612,155.7617,189.0898,155.7617z M197.0839,177.623
c0-1.4078-0.3711-2.7892-1.0702-3.9959c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,181.8248,197.0839,179.8256,197.0839,177.623z"/>
</defs>
<clipPath id="SVGID_8_">
<use xlink:href="#SVGID_7_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_8_);fill:#D95140;" d="M172.6595,161.1903c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8613c12.0547,0.0024,21.8636-9.797,21.8613-21.8613
c0.0024-3.8474-1.0151-7.6326-2.9353-10.9462c-3.8977-6.7324-11.1497-10.9151-18.926-10.9151
C182.0806,154.7811,176.6171,157.2327,172.6595,161.1903z"/>
</g>
<rect x="198.8952" y="170.69" style="fill:#D95140;" width="122.6266" height="13.8671"/>
</g>
<g>
<g>
<path style="fill:#56A55C;" d="M189.5379,264.6147l0.0012-0.0012c7.7751,0.0012,15.0294,4.1862,18.932,10.9235
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3304-6.4032,15.4604
c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032c-5.8394,0-11.3281-2.2733-15.458-6.4032c-4.13-4.13-6.4032-9.6186-6.4056-15.4628
c0.0012-6.0249,2.454-11.4897,6.4116-15.4472C178.0458,267.0663,183.5105,264.6135,189.5379,264.6147z M197.5309,286.4723
c0.0012-1.4042-0.3687-2.7868-1.063-3.9887c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993
c0,2.1356,0.832,4.1431,2.3427,5.6538c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
C196.7013,290.6202,197.5321,288.6115,197.5309,286.4723z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.5403,264.6153c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8613c0-6.0285,2.4516-11.492,6.4116-15.452
C178.0482,267.0669,183.5117,264.6153,189.5403,264.6153z M197.5344,286.4765c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.6366,290.6783,197.5344,288.6792,197.5344,286.4765z"/>
<g>
<defs>
<path id="SVGID_9_" d="M195.1881,292.1268c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.9989,7.9942-7.9941c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.5344,288.6792,196.6366,290.6783,195.1881,292.1268z"/>
</defs>
<clipPath id="SVGID_10_">
<use xlink:href="#SVGID_9_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_10_);fill:#FFFFFF;" d="M190.5209,279.463c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941
c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354c-1.7446-1.4674-2.8575-3.6631-2.8588-6.1161
c0.0024-4.4125,3.5936-7.999,7.9942-7.9941c2.3802-0.0001,4.616,1.0833,6.1218,2.8788
C194.239,280.164,192.4279,279.463,190.5209,279.463z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_10_);fill:#020202;" d="M190.5209,279.463
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354
c-1.7446-1.4674-2.8575-3.6631-2.8588-6.1161c0.0024-4.4125,3.5936-7.999,7.9942-7.9941
c2.3802-0.0001,4.616,1.0833,6.1218,2.8788C194.239,280.164,192.4279,279.463,190.5209,279.463z"/>
</g>
<g>
<defs>
<path id="SVGID_11_" d="M189.5403,264.6153c7.7763,0,15.0283,4.1826,18.926,10.9151
c1.9201,3.3135,2.9377,7.0987,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8613
c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8613c0-6.0285,2.4516-11.492,6.4116-15.452
C178.0482,267.0669,183.5117,264.6153,189.5403,264.6153z M197.5344,286.4765c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9941
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.6366,290.6783,197.5344,288.6792,197.5344,286.4765z"/>
</defs>
<clipPath id="SVGID_12_">
<use xlink:href="#SVGID_11_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_12_);fill:#56A55C;" d="M173.11,270.0439c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8613c12.0547,0.0024,21.8636-9.797,21.8613-21.8613
c0.0024-3.8474-1.0151-7.6326-2.9353-10.9462c-3.8977-6.7325-11.1497-10.9151-18.926-10.9151
C182.5311,263.6346,177.0676,266.0863,173.11,270.0439z"/>
</g>
</g>
<rect x="199.3456" y="279.5436" style="fill:#56A55C;" width="122.6266" height="13.8671"/>
</g>
<g>
<g>
<path style="fill:#F1BC42;" d="M189.0874,318.7208l0.0012-0.0012c7.7751,0.0012,15.0295,4.1862,18.932,10.9234
c1.9177,3.3159,2.9305,7.1011,2.9293,10.9378c0,5.8394-2.2733,11.3305-6.4032,15.4604
c-4.1288,4.1288-9.6186,6.4032-15.458,6.4032c-5.8394,0-11.328-2.2733-15.458-6.4032c-4.13-4.1299-6.4032-9.6186-6.4056-15.4628
c0.0012-6.025,2.454-11.4897,6.4116-15.4472C177.5953,321.1724,183.0601,318.7196,189.0874,318.7208z M197.0804,340.5784
c0.0012-1.4042-0.3687-2.7868-1.063-3.9887c-1.4293-2.4684-4.0833-3.9995-6.9299-4.0019c-4.4077,0.0024-7.993,3.5877-7.993,7.993
c0,2.1356,0.832,4.1431,2.3427,5.6539c1.5083,1.5083,3.5159,2.3403,5.6503,2.3415c2.1356,0,4.1443-0.8308,5.6539-2.3403
S197.0816,342.7176,197.0804,340.5784z"/>
<path style="opacity:0.3;fill:#FFFFFF;" d="M189.0898,318.7214c7.7763,0,15.0283,4.1826,18.926,10.915
c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462c0.0024,12.0643-9.8065,21.8636-21.8613,21.8612
c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8612c0-6.0285,2.4516-11.4921,6.4116-15.452
C177.5977,321.173,183.0612,318.7214,189.0898,318.7214z M197.0839,340.5826c0-1.4078-0.3711-2.7892-1.0702-3.9959
c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,344.7844,197.0839,342.7853,197.0839,340.5826z"/>
<g>
<defs>
<path id="SVGID_13_" d="M194.7376,346.2329c-1.4461,1.4461-3.4452,2.3439-5.6479,2.3439
c-4.4077-0.0024-7.9918-3.5865-7.9942-7.9942c0.0024-4.4125,3.5937-7.999,7.9942-7.9942c2.8443,0,5.497,1.5323,6.924,3.9983
c0.6991,1.2067,1.0702,2.5881,1.0702,3.9959C197.0839,342.7853,196.1861,344.7844,194.7376,346.2329z"/>
</defs>
<clipPath id="SVGID_14_">
<use xlink:href="#SVGID_13_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_14_);fill:#FFFFFF;" d="M190.0704,333.5691c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354c-1.7447-1.4674-2.8575-3.6631-2.8588-6.1161
c0.0024-4.4125,3.5936-7.999,7.9942-7.9942c2.3802-0.0001,4.616,1.0834,6.1218,2.8788
C193.7885,334.2701,191.9774,333.5691,190.0704,333.5691z"/>
<path style="opacity:0.13;clip-path:url(#SVGID_14_);fill:#020202;" d="M190.0704,333.5691
c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942c0.0011,1.9547,0.7088,3.7452,1.8782,5.1354
c-1.7447-1.4674-2.8575-3.6631-2.8588-6.1161c0.0024-4.4125,3.5936-7.999,7.9942-7.9942
c2.3802-0.0001,4.616,1.0834,6.1218,2.8788C193.7885,334.2701,191.9774,333.5691,190.0704,333.5691z"/>
</g>
<g>
<defs>
<path id="SVGID_15_" d="M189.0898,318.7214c7.7763,0,15.0283,4.1826,18.926,10.915c1.9201,3.3136,2.9377,7.0988,2.9353,10.9462
c0.0024,12.0643-9.8065,21.8636-21.8613,21.8612c-12.0547,0.0024-21.8636-9.8065-21.8612-21.8612
c0-6.0285,2.4516-11.4921,6.4116-15.452C177.5977,321.173,183.0612,318.7214,189.0898,318.7214z M197.0839,340.5826
c0-1.4078-0.3711-2.7892-1.0702-3.9959c-1.4269-2.466-4.0797-3.9983-6.924-3.9983c-4.4005-0.0048-7.9918,3.5817-7.9942,7.9942
c0.0024,4.4077,3.5865,7.9918,7.9942,7.9942c2.2027,0,4.2018-0.8978,5.6479-2.3439
C196.1861,344.7844,197.0839,342.7853,197.0839,340.5826z"/>
</defs>
<clipPath id="SVGID_16_">
<use xlink:href="#SVGID_15_" style="overflow:visible;"/>
</clipPath>
<path style="clip-path:url(#SVGID_16_);fill:#F1BC42;" d="M172.6595,324.15c-3.96,3.96-6.4116,9.4235-6.4116,15.452
c-0.0024,12.0547,9.8066,21.8636,21.8613,21.8612c12.0547,0.0024,21.8636-9.797,21.8613-21.8612
c0.0024-3.8474-1.0151-7.6327-2.9353-10.9462c-3.8977-6.7324-11.1497-10.9151-18.926-10.9151
C182.0806,317.7407,176.6171,320.1924,172.6595,324.15z"/>
</g>
</g>
<rect x="198.8952" y="333.6497" style="fill:#F1BC42;" width="122.6266" height="13.8671"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,65 @@
/*
* Copyright 2018 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
(function($) {
'use strict';
$(function() {
$('[data-bs-toggle="tooltip"]').tooltip();
$('[data-bs-toggle="popover"]').popover();
$('.popover-dismiss').popover({
trigger: 'focus'
})
});
function bottomPos(element) {
return element.offset().top + element.outerHeight();
}
// Bootstrap Fixed Header
$(function() {
var promo = $(".js-td-cover");
if (!promo.length) {
return
}
var promoOffset = bottomPos(promo);
var navbarOffset = $('.js-navbar-scroll').offset().top;
var threshold = Math.ceil($('.js-navbar-scroll').outerHeight());
if ((promoOffset - navbarOffset) < threshold) {
$('.js-navbar-scroll').addClass('navbar-bg-onscroll');
}
$(window).on('scroll', function() {
var navtop = $('.js-navbar-scroll').offset().top - $(window).scrollTop();
var promoOffset = bottomPos($('.js-td-cover'));
var navbarOffset = $('.js-navbar-scroll').offset().top;
if ((promoOffset - navbarOffset) < threshold) {
$('.js-navbar-scroll').addClass('navbar-bg-onscroll');
} else {
$('.js-navbar-scroll').removeClass('navbar-bg-onscroll');
$('.js-navbar-scroll').addClass('navbar-bg-onscroll--fade');
}
});
});
}(jQuery));

View File

@ -0,0 +1,47 @@
let codeListings = document.querySelectorAll('.highlight > pre');
for (let index = 0; index < codeListings.length; index++) {
const codeSample = codeListings[index].querySelector('code');
const copyButton = document.createElement('button');
const buttonAttributes = {
type: 'button',
title: 'Copy to clipboard',
'data-bs-toggle': 'tooltip',
'data-bs-placement': 'top',
'data-bs-container': 'body',
};
Object.keys(buttonAttributes).forEach((key) => {
copyButton.setAttribute(key, buttonAttributes[key]);
});
copyButton.classList.add(
'fas',
'fa-copy',
'btn',
'btn-dark',
'btn-sm',
'td-click-to-copy'
);
const tooltip = new bootstrap.Tooltip(copyButton);
copyButton.onclick = () => {
copyCode(codeSample);
copyButton.setAttribute('data-bs-original-title', 'Copied!');
tooltip.show();
};
copyButton.onmouseout = () => {
copyButton.setAttribute('data-bs-original-title', 'Copy to clipboard');
tooltip.hide();
};
const buttonDiv = document.createElement('div');
buttonDiv.classList.add('click-to-copy');
buttonDiv.append(copyButton);
codeListings[index].insertBefore(buttonDiv, codeSample);
}
const copyCode = (codeSample) => {
navigator.clipboard.writeText(codeSample.textContent.trim() + '\n');
};

View File

@ -0,0 +1,106 @@
{{with .Site.Params.drawio}}
{{if .enable }}
(function () {
var shade;
var iframe;
var insertFrame = function () {
shade = document.createElement('div');
shade.classList.add('drawioframe');
iframe = document.createElement('iframe');
shade.appendChild(iframe);
document.body.appendChild(shade);
}
var closeFrame = function () {
if (shade) {
document.body.removeChild(shade);
shade = undefined;
iframe = undefined;
}
}
var imghandler = function (img, imgdata) {
var url = {{ .drawio_server | default "https://embed.diagrams.net/" | jsonify }};
url += '?embed=1&ui=atlas&spin=1&modified=unsavedChanges&proto=json&saveAndEdit=1&noSaveBtn=1';
var wrapper = document.createElement('div');
wrapper.classList.add('drawio');
img.parentNode.insertBefore(wrapper, img);
wrapper.appendChild(img);
var btn = document.createElement('button');
btn.classList.add('drawiobtn');
btn.insertAdjacentHTML('beforeend', '<i class="fas fa-edit"></i>');
wrapper.appendChild(btn);
btn.addEventListener('click', function (evt) {
if (iframe) return;
insertFrame();
var handler = function (evt) {
var wind = iframe.contentWindow;
if (evt.data.length > 0 && evt.source == wind) {
var msg = JSON.parse(evt.data);
if (msg.event == 'init') {
wind.postMessage(JSON.stringify({action: 'load', xml: imgdata}), '*');
} else if (msg.event == 'save') {
var fmt = imgdata.indexOf('data:image/png') == 0 ? 'xmlpng' : 'xmlsvg';
wind.postMessage(JSON.stringify({action: 'export', format: fmt}), '*');
} else if (msg.event == 'export') {
const fn = img.src.replace(/^.*?([^/]+)$/, '$1');
const dl = document.createElement('a');
dl.setAttribute('href', msg.data);
dl.setAttribute('download', fn);
document.body.appendChild(dl);
dl.click();
dl.parentNode.removeChild(dl);
}
if (msg.event == 'exit' || msg.event == 'export') {
window.removeEventListener('message', handler);
closeFrame();
}
}
};
window.addEventListener('message', handler);
iframe.setAttribute('src', url);
});
};
document.addEventListener('DOMContentLoaded', function () {
// find all the png and svg images that may have embedded xml diagrams
for (const el of document.getElementsByTagName('img')) {
const img = el;
const src = img.getAttribute('src');
if (!src.endsWith('.svg') && !src.endsWith('.png')) {
continue;
}
const xhr = new XMLHttpRequest();
xhr.responseType = 'blob';
xhr.open("GET", src);
xhr.addEventListener("load", function () {
const fr = new FileReader();
fr.addEventListener('load', function () {
if (fr.result.indexOf('mxfile') != -1) {
const fr = new FileReader();
fr.addEventListener('load', function () {
const imgdata = fr.result;
imghandler(img, imgdata);
});
fr.readAsDataURL(xhr.response);
}
});
fr.readAsBinaryString(xhr.response);
});
xhr.send();
};
});
}());
{{end}}
{{end}}

View File

@ -0,0 +1,19 @@
{{ with .Site.Params.markmap }}
{{ if .enable }}
(function($) {
var needMarkmap = false;
$('.language-markmap').parent().replaceWith(function() {
needMarkmap = true;
return $('<div class="markmap">').text($(this).text());
});
const { markmap } = window;
if(needMarkmap) {
markmap.autoLoader.renderAll();
}
})(jQuery);
{{ end }}
{{ end }}

View File

@ -0,0 +1,183 @@
// Adapted from code by Matt Walters https://www.mattwalters.net/posts/2018-03-28-hugo-and-lunr/
(function ($) {
'use strict';
$(document).ready(function () {
const $searchInput = $('.td-search input');
//
// Register handler
//
$searchInput.on('change', (event) => {
render($(event.target));
// Hide keyboard on mobile browser
$searchInput.blur();
});
// Prevent reloading page by enter key on sidebar search.
$searchInput.closest('form').on('submit', () => {
return false;
});
//
// Lunr
//
let idx = null; // Lunr index
const resultDetails = new Map(); // Will hold the data for the search results (titles and summaries)
// Set up for an Ajax call to request the JSON data file that is created by Hugo's build process
$.ajax($searchInput.data('offline-search-index-json-src')).then((data) => {
idx = lunr(function () {
this.ref('ref');
// If you added more searchable fields to the search index, list them here.
// Here you can specify searchable fields to the search index - e.g. individual toxonomies for you project
// With "boost" you can add weighting for specific (default weighting without boost: 1)
this.field('title', { boost: 5 });
this.field('categories', { boost: 3 });
this.field('tags', { boost: 3 });
// this.field('projects', { boost: 3 }); // example for an individual toxonomy called projects
this.field('description', { boost: 2 });
this.field('body');
data.forEach((doc) => {
this.add(doc);
resultDetails.set(doc.ref, {
title: doc.title,
excerpt: doc.excerpt,
});
});
});
$searchInput.trigger('change');
});
const render = ($targetSearchInput) => {
//
// Dispose existing popover
//
{
let popover = bootstrap.Popover.getInstance($targetSearchInput[0]);
if (popover !== null) {
popover.dispose();
}
}
//
// Search
//
if (idx === null) {
return;
}
const searchQuery = $targetSearchInput.val();
if (searchQuery === '') {
return;
}
const results = idx
.query((q) => {
const tokens = lunr.tokenizer(searchQuery.toLowerCase());
tokens.forEach((token) => {
const queryString = token.toString();
q.term(queryString, {
boost: 100,
});
q.term(queryString, {
wildcard:
lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING,
boost: 10,
});
q.term(queryString, {
editDistance: 2,
});
});
})
.slice(0, $targetSearchInput.data('offline-search-max-results'));
//
// Make result html
//
const $html = $('<div>');
$html.append(
$('<div>')
.css({
display: 'flex',
justifyContent: 'space-between',
marginBottom: '1em',
})
.append(
$('<span>').text('Search results').css({ fontWeight: 'bold' })
)
.append(
$('<span>').addClass('td-offline-search-results__close-button')
)
);
const $searchResultBody = $('<div>').css({
maxHeight: `calc(100vh - ${
$targetSearchInput.offset().top - $(window).scrollTop() + 180
}px)`,
overflowY: 'auto',
});
$html.append($searchResultBody);
if (results.length === 0) {
$searchResultBody.append(
$('<p>').text(`No results found for query "${searchQuery}"`)
);
} else {
results.forEach((r) => {
const doc = resultDetails.get(r.ref);
const href =
$searchInput.data('offline-search-base-href') +
r.ref.replace(/^\//, '');
const $entry = $('<div>').addClass('mt-4');
$entry.append(
$('<small>').addClass('d-block text-muted').text(r.ref)
);
$entry.append(
$('<a>')
.addClass('d-block')
.css({
fontSize: '1.2rem',
})
.attr('href', href)
.text(doc.title)
);
$entry.append($('<p>').text(doc.excerpt));
$searchResultBody.append($entry);
});
}
$targetSearchInput.one('shown.bs.popover', () => {
$('.td-offline-search-results__close-button').on('click', () => {
$targetSearchInput.val('');
$targetSearchInput.trigger('change');
});
});
const popover = new bootstrap.Popover($targetSearchInput, {
content: $html[0],
html: true,
customClass: 'td-offline-search-results',
placement: 'bottom',
});
popover.show();
};
});
})(jQuery);

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,39 @@
/*
Copyright 2018 Google LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
(function ($) {
'use strict';
var Search = {
init: function () {
$(document).ready(function () {
$(document).on('keypress', '.td-search input', function (e) {
if (e.keyCode !== 13) {
return;
}
var query = $(this).val();
var searchPage = '{{ "search/" | absURL }}?q=' + query;
document.location = searchPage;
return false;
});
});
},
};
Search.init();
})(jQuery);

View File

@ -0,0 +1,18 @@
{{- $.Scratch.Add "offline-search-index" slice -}}
{{- range where .Site.AllPages ".Params.exclude_search" "!=" true -}}
{{- /* We have to apply `htmlUnescape` again after `truncate` because `truncate` applies `html.EscapeString` if the argument is not HTML. */ -}}
{{- /* Individual taxonomies can be added in the next line by add '"taxonomy-name" (.Params.taxonomy-name | default "")' to the dict (as seen for categories and tags). */ -}}
{{- $.Scratch.Add
"offline-search-index"
(dict
"ref" .RelPermalink
"title" .Title
"categories" (.Params.categories | default "")
"tags" (.Params.tags | default "")
"description" (.Description | default "")
"body" (.Plain | htmlUnescape)
"excerpt" ((.Description | default .Plain) | htmlUnescape | truncate (.Site.Params.offlineSearchSummaryLength | default 70) | htmlUnescape)
)
-}}
{{- end -}}
{{- $.Scratch.Get "offline-search-index" | jsonify -}}

View File

@ -0,0 +1,20 @@
// Style alert boxes.
.alert {
font-weight: $font-weight-medium;
background: $white;
color: inherit;
border-radius: 0;
@each $color, $value in $theme-colors {
&-#{$color} {
& .alert-heading {
color: $value;
}
border-style: solid;
border-color: $value;
border-width: 0 0 0 4px;
}
}
}

View File

@ -0,0 +1,29 @@
.td-blog {
.td-rss-button {
@extend .btn;
@extend .btn-info;
@extend .btn-lg;
border-radius: 2rem;
float: right;
display: none;
@extend .d-lg-block;
}
&-posts-list {
@extend .list-unstyled;
margin-top: map-get($spacers, 4) !important;
&__item {
display: flex;
align-items: flex-start;
margin-bottom: map-get($spacers, 4) !important;
&__body {
flex: 1;
}
}
}
}

View File

@ -0,0 +1,118 @@
// Boxes on the home page and similar: .td-box
// box-variant creates the main style for a colored section
@mixin box-variant($parent, $color-name, $color-value) {
$text-color: color-contrast($color-value);
$link-color: mix($blue, $text-color, lightness($color-value));
$link-hover-color: if(
color-contrast($link-color) == $color-contrast-light,
shade-color($link-color, $link-shade-percentage),
tint-color($link-color, $link-shade-percentage)
);
#{$parent} {
&--#{$color-name} {
color: $text-color;
background-color: #{$color-value};
.td-arrow-down {
&::before {
left: 50%;
margin-left: -30px;
bottom: -25px;
border: {
style: solid;
width: 25px 30px 0 30px;
color: #{$color-value} transparent transparent transparent;
}
z-index: 3;
position: absolute;
content: "";
}
}
}
}
// Improve contrast for the links in paragraphs.
@include link-variant(
"#{$parent}--#{$color-name} p > a, #{$parent}--#{$color-name} span > a",
$link-color,
$link-hover-color,
false
);
}
// Common min-height modifiers used for boxes.
@mixin td-box-height-modifiers($parent) {
#{$parent} {
&--height-min {
min-height: 300px;
}
&--height-med {
min-height: 400px;
}
&--height-max {
min-height: 500px;
}
&--height-full {
min-height: 100vh;
}
@include media-breakpoint-up(md) {
&--height-min {
min-height: 450px;
}
&--height-med {
min-height: 500px;
}
&--height-max {
min-height: 650px;
}
}
}
}
@include td-box-height-modifiers(".td-box");
// Styling for section boxes
.td-box {
.row {
padding-left: 5vw;
padding-right: 5vw;
}
table {
@extend .td-table;
}
}
// Styling for community page link boxes
.td-box.linkbox {
padding: 5vh 5vw;
}
// This allows "painting by numbers"
@for $i from 1 through length($td-box-colors) {
$c: nth($td-box-colors, $i);
$name: $i - 1;
@include box-variant(".td-box", $name, $c);
}
// Same as above with all the theme color names.
@each $color, $value in $colors {
@include box-variant(".td-box", $color, $value);
}
@each $color, $value in $theme-colors {
@include box-variant(".td-box", $color, $value);
}
@each $color, $value in $grays {
@include box-variant(".td-box", $color, $value);
}

View File

@ -0,0 +1,13 @@
// Breadcrumb
.td-breadcrumbs {
@media print {
display: none !important;
}
.breadcrumb {
background: inherit;
padding-left: 0;
padding-top: 0;
}
}

View File

@ -0,0 +1,86 @@
// Code formatting.
.td-content {
// Highlighted code.
.highlight {
@extend .card;
margin: 2rem 0;
padding: 0;
position: relative;
.click-to-copy {
display: block;
text-align: right;
}
pre {
margin: 0;
padding: 1rem;
border-radius: inherit;
// Default click-to-copy button
button.td-click-to-copy {
position: absolute;
color: $gray-400;
border-radius: 3px;
border-width: 0;
background-color: inherit;
box-shadow: 1px 1px $gray-400;
right: 4px;
top: 2px;
&:hover {
color: $dark;
background-color: $gray-400;
}
&:active {
color: $dark;
background-color: $gray-400;
transform: translateY(2px);
}
}
}
}
// Inline code
p code,
li > code,
table code {
color: inherit;
padding: 0.2em 0.4em;
margin: 0;
font-size: 85%;
word-break: normal;
background-color: rgba($black, 0.05);
border-radius: $border-radius;
br {
display: none;
}
}
// Code blocks
pre {
word-wrap: normal;
background-color: $gray-100;
padding: $spacer;
> code {
background-color: inherit !important;
padding: 0;
margin: 0;
font-size: 100%;
word-break: normal;
white-space: pre;
border: 0;
}
}
pre.mermaid {
background-color: inherit;
font-size: 0;
padding: 0;
}
}

View File

@ -0,0 +1,45 @@
// Add some local palette classes so you can do -bg-warning -text-warning etc. Even -bg-1 if you want to paint by numbers.
@mixin palette-variant($color-name, $color-value) {
$text-color: color-contrast($color-value);
$link-color: mix($blue, $text-color, lightness($color-value));
$link-hover-color: rgba($link-color, 0.5) !default;
.-bg-#{$color-name} {
color: $text-color;
background-color: $color-value;
}
// Make links in paragraphs stand out more.
@include link-variant(
".-bg-#{$color-name} p:not(.p-initial) > a",
$link-color,
$link-hover-color,
false
);
.-text-#{$color-name} {
color: $color-value;
}
}
@each $color, $value in $colors {
@include palette-variant($color, $value);
}
@each $color, $value in $theme-colors {
@include palette-variant($color, $value);
}
@each $color, $value in $grays {
@include palette-variant($color, $value);
}
// This allows "painting by numbers", i.e. picking colors by a shortcode Ordinal.
@for $i from 1 through length($td-box-colors) {
$value: nth($td-box-colors, $i);
$name: $i - 1;
$text-color: color-contrast($value);
@include palette-variant($name, $value);
}

View File

@ -0,0 +1,120 @@
//
// Style Markdown content
//
.td-content {
order: 1;
p,
li,
td {
font-weight: $font-weight-body-text;
}
> h1 {
font-weight: $font-weight-bold;
margin-bottom: 1rem;
}
> h2 {
margin-bottom: 1rem;
}
> h2:not(:first-child) {
margin-top: 3rem;
}
> h2 + h3 {
margin-top: 1rem;
}
> h3,
> h4,
> h5,
> h6 {
margin-bottom: 1rem;
margin-top: 2rem;
}
img {
@extend .img-fluid;
}
table {
@extend .td-table;
}
blockquote {
padding: 0 0 0 1rem;
margin-bottom: $spacer;
color: $gray-600;
border-left: 6px solid $secondary;
}
ul li,
ol li {
margin-bottom: 0.25rem;
}
strong {
font-weight: $font-weight-bold;
}
.footnotes,
> .alert,
> .highlight,
> .lead,
> .td-table,
> blockquote,
> dl dd,
> h1,
> h2,
> ol,
> p,
> pre,
> ul {
@extend .td-max-width-on-larger-screens;
}
.alert:not(:first-child) {
margin-top: 2 * $spacer;
margin-bottom: 2 * $spacer;
}
.lead {
margin-bottom: 1.5rem;
}
}
.td-title {
margin-top: 1rem;
margin-bottom: 0.5rem;
@include media-breakpoint-up(sm) {
font-size: 3rem;
}
}
.td-heading-self-link {
&:before {
content: '#';
}
font-size: 90%;
padding-left: 0.25em;
text-decoration: none;
visibility: hidden;
// Always visible on touch devices and small screens
@media (hover: none) and (pointer: coarse),
(max-width: map-get($grid-breakpoints, sm)) {
visibility: visible;
}
}
@for $i from 1 through 6 {
h#{$i}:hover > .td-heading-self-link {
visibility: visible;
}
}

View File

@ -0,0 +1,39 @@
div.drawio {
display: inline-block;
position: relative;
button {
@extend .btn;
@extend .btn-outline-primary;
position: absolute;
bottom: 5px;
right: 5px;
padding: 0.4em 0.5em;
font-size: 0.8em;
display: none;
}
&:hover button {
display: inline;
}
}
div.drawioframe {
position: fixed;
height: 100%;
width: 100%;
top: 0;
left: 0px;
z-index: 1000;
background: #000b;
border: 0;
iframe {
position: absolute;
height: 90%;
width: 90%;
top: 5%;
left: 5%;
z-index: 1010;
}
}

View File

@ -0,0 +1,34 @@
// The outer page container i.e. common styles for any page.
.td-outer {
display: flex;
flex-direction: column;
min-height: 100vh;
}
// The outer page container for the default base template.
.td-default {
main {
> section:first-of-type {
@include media-breakpoint-up(md) {
padding-top: 8rem;
}
}
section {
@extend .td-block-padding;
}
}
}
.td-main {
flex-grow: 1;
}
.td-404 main,
.td-main main {
padding-top: 1.5rem;
padding-bottom: 2rem;
@include media-breakpoint-up(md) {
padding-top: 5.5rem;
}
}

View File

@ -0,0 +1,224 @@
//
// Main navbar
//
.td-navbar-cover {
@include media-breakpoint-up(md) {
background: transparent !important;
.nav-link {
text-shadow: 1px 1px 2px $dark;
}
}
&.navbar-bg-onscroll .nav-link {
text-shadow: none;
}
}
.navbar-bg-onscroll {
background: $primary !important;
opacity: inherit;
}
.td-navbar {
@extend .navbar;
@extend .navbar-expand;
background: $dark;
min-height: 5rem;
margin: 0;
z-index: 15;
.navbar-brand {
text-transform: none;
&__name {
font-weight: $font-weight-bold;
}
svg {
display: inline-block;
margin: 0 10px;
height: 30px;
}
}
.navbar-nav {
padding-top: $spacer * 0.5;
white-space: nowrap;
padding-bottom: 0 !important;
}
.nav-link {
text-transform: none;
color: $secondary !important;
font-weight: $font-weight-bold;
border-radius: 5px;
padding: .5rem 1.5rem !important;
margin-top: unset !important;
&:hover {
background-color: #61616144;
transition: background-color 0.2s ease-in-out;
}
&.nav-link.active {
background-color: #616161;
}
}
// For .td-search__input styling, see _search.scss
.dropdown {
min-width: 100px;
}
@include media-breakpoint-up(md) {
position: fixed;
top: 0;
width: 100%;
.nav-item {
padding-inline-end: $spacer * 0.5;
}
.navbar-nav {
padding-top: 0 !important;
}
}
@include media-breakpoint-down(lg) {
.td-navbar-nav-scroll {
max-width: 100%;
overflow: hidden;
font-size: 0.9rem;
}
.navbar-brand {
margin-right: 0;
}
.navbar-nav {
padding-bottom: 2rem;
overflow-x: auto;
}
}
}
// Icons
#main_navbar {
li i {
padding-right: 0.5em;
&:before {
display: inline-block;
text-align: center;
min-width: 1em;
}
}
.alert {
background-color: inherit;
padding: 0;
color: $secondary;
border: 0;
font-weight: inherit;
&:before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: $font-awesome-font-name;
font-weight: 900;
content: "\f0d9";
padding-left: 0.5em;
padding-right: 0.5em;
}
}
}
// Foldable sidebar menu
nav.foldable-nav {
&#td-section-nav {
position: relative;
}
&#td-section-nav label {
margin-bottom: 0;
width: 100%;
}
.td-sidebar-nav__section,
.with-child ul {
list-style: none;
padding: 0;
margin: 0;
}
.ul-1 > li {
padding-left: 1.5em;
}
ul.foldable {
display: none;
}
input:checked ~ ul.foldable {
display: block;
}
input[type="checkbox"] {
display: none;
}
.with-child,
.without-child {
position: relative;
padding-left: 1.5em;
}
.ul-1 .with-child > label:before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: $font-awesome-font-name;
font-weight: 900;
content: "\f0da";
position: absolute;
left: 0.1em;
padding-left: 0.4em;
padding-right: 0.4em;
font-size: 1em;
color: $gray-900;
transition: all 0.5s;
&:hover {
transform: rotate(90deg);
}
}
.ul-1 .with-child > input:checked ~ label:before {
color: $primary;
transform: rotate(90deg);
transition: transform 0.5s;
}
.with-child ul {
margin-top: 0.1em;
}
}
@media (hover: hover) and (pointer: fine) {
nav.foldable-nav {
.ul-1 .with-child > label:hover:before {
color: $primary;
transition: color 0.3s;
}
.ul-1 .with-child > input:checked ~ label:hover:before {
color: $primary;
transition: color 0.3s;
}
}
}

View File

@ -0,0 +1,25 @@
.pageinfo {
font-weight: $font-weight-medium;
background: $gray-100;
color: inherit;
border-radius: 0;
margin: 2rem;
padding: 1.5rem;
padding-bottom: 0.5rem;
@each $color, $value in $theme-colors {
&-#{$color} {
border-style: solid;
border-color: $value;
}
}
}
.td-page-meta {
&__lastmod {
@extend .text-muted;
@extend .border-top;
margin-top: map-get($spacers, 5) !important;
padding-top: map-get($spacers, 3) !important;
}
}

View File

@ -0,0 +1,122 @@
// Search
.td-search {
background: transparent;
position: relative;
width: 100%;
// Search icon
&__icon {
// Vertically center the content.
display: flex;
align-items: center;
height: 100%;
// Position this on the left of the input.
position: absolute;
left: 0.75em;
// Click-through to the underlying input.
pointer-events: none;
&:before {
@extend .fa;
content: fa-content($fa-var-search);
}
// Styling adjustments for the navbar
@at-root {
.td-navbar & {
color: $navbar-dark-color;
}
}
}
// Search input element
&__input {
width: 100%;
text-indent: 1.25em;
&:not(:focus) {
background: transparent;
}
&.form-control:focus {
border-color: tint-color($primary, 95%);
box-shadow: 0 0 0 2px tint-color($primary, 40%);
color: inherit;
}
// Styling adjustments for the navbar
@at-root {
.td-navbar & {
border: none;
color: $navbar-dark-color;
@include placeholder {
color: $navbar-dark-color;
}
}
}
}
// Hide icon on focus
&:focus-within {
.td-search__icon {
display: none;
}
.td-search-input {
text-indent: 0px;
}
}
&:not(:focus-within) {
color: $input-placeholder-color;
}
}
.td-sidebar .td-search--algolia {
display: block;
padding: 0 0.5rem;
> button {
margin: 0;
width: 100%;
}
}
// Offline search
.td-search--offline {
&:focus-within {
// Don't hide the search icon on focus: this gives better UX when user
// explores content of search-results popup and focus is lost.
.td-search__icon {
display: flex;
color: $input-placeholder-color;
}
}
}
.td-offline-search-results {
max-width: 90%;
.card {
margin-bottom: $spacer * 0.5;
.card-header {
font-weight: bold;
}
}
&__close-button {
// cursor: pointer;
float: right;
&:after {
@extend .fas;
content: fa-content($fa-var-times);
}
}
}

View File

@ -0,0 +1,61 @@
//
// Right side toc
//
.td-sidebar-toc {
@include link-decoration;
border-left: 1px solid $border-color;
@supports (position: sticky) {
position: sticky;
top: 4rem;
height: calc(100vh - 4rem);
overflow-y: auto;
}
order: 2;
padding-top: 0.75rem;
padding-bottom: 1.5rem;
vertical-align: top;
.td-page-meta a {
display: block;
font-weight: $font-weight-medium;
}
}
.td-toc {
a {
display: block;
font-weight: $font-weight-light;
padding-bottom: 0.25rem;
}
li {
list-style: none;
display: block;
}
li li {
margin-left: 0.5rem;
}
#TableOfContents {
// Hugo's ToC is a mouthful, this can be used to style the top level h2 entries.
> ul > li > ul > li > a {
}
a {
color: $gray-600;
&:focus,
&:hover {
color: initial;
}
}
}
ul {
padding-left: 0;
}
}

View File

@ -0,0 +1,180 @@
//
// Left side navigation
//
.td-sidebar-nav {
$_max-height: calc(100vh - 8.5rem);
padding-right: 0.5rem;
margin-right: -15px;
margin-left: -15px;
@include media-breakpoint-up(md) {
@supports (position: sticky) {
max-height: $_max-height;
overflow-y: auto;
}
}
// Adjust height and padding when sidebar_search_disable is true, but only for
// >= `lg` views, because on tablet (`md`) and mobile (<= `sm`), the search
// box is displayed regardless of the value of sidebar_search_disable:
&.td-sidebar-nav--search-disabled {
@include media-breakpoint-up(lg) {
// There's no search box so add top padding
// and adjust max-height:
padding-top: 1rem;
@supports (position: sticky) {
max-height: calc(#{$_max-height} + 4.5rem);
}
}
}
@include media-breakpoint-up(md) {
display: block !important;
}
&__section {
li {
list-style: none;
}
&.ul-0, ul {
padding: 0;
margin: 0;
}
@include media-breakpoint-up(md) {
& .ul-1 ul {
padding-left: 1.5em;
}
}
padding-left: 0;
}
&__section-title {
display: block;
font-weight: $font-weight-medium;
.active {
font-weight: $font-weight-bold;
}
a {
color: $gray-900;
}
}
.td-sidebar-link {
display: block;
padding-bottom: 0.375rem;
&__page {
color: $gray-700;
font-weight: $font-weight-light;
}
}
a {
&:focus,
&:hover {
color: $link-color;
}
&.active {
font-weight: $font-weight-bold;
}
}
.dropdown {
a {
color: $gray-700;
}
.nav-link {
padding: 0 0 1rem;
}
}
& > .td-sidebar-nav__section {
padding-left: 1.5rem;
}
li i {
// Layout of icons
padding-right: 0.5em;
&:before {
display: inline-block;
text-align: center;
min-width: 1em;
}
}
.td-sidebar-link.tree-root {
font-weight: $font-weight-bold;
color: $td-sidebar-tree-root-color;
border-bottom: 1px $td-sidebar-tree-root-color solid;
margin-bottom: 1rem;
}
}
.td-sidebar {
@include link-decoration;
@include media-breakpoint-up(md) {
padding-top: 4rem;
background-color: $td-sidebar-bg-color;
padding-right: 1rem;
border-right: 1px solid $td-sidebar-border-color;
}
padding-bottom: 1rem;
&__toggle {
line-height: 1;
color: $gray-900;
margin: 1rem;
}
&__search {
padding: 1rem 0;
}
&__inner {
order: 0;
@include media-breakpoint-up(md) {
@supports (position: sticky) {
position: sticky;
top: 4rem;
z-index: 10;
height: calc(100vh - 5rem);
}
}
@include media-breakpoint-up(xl) {
flex: 0 1 320px;
}
.td-search-box {
width: 100%;
}
}
#content-desktop {
display: block;
}
#content-mobile {
display: none;
}
@include media-breakpoint-down(lg) {
#content-desktop {
display: none;
}
#content-mobile {
display: block;
}
}
}

View File

@ -0,0 +1,7 @@
/*
Nothing defined here. The Hugo project that uses this theme can override Bootstrap by adding a file to:
assets/scss/_styles_project.scss
*/

View File

@ -0,0 +1,3 @@
.swagger-ui .info .title small pre {
background: #7d8492;
}

View File

@ -0,0 +1,9 @@
.td-table:not(.td-initial) {
@extend .table;
@extend .table-striped;
@extend .table-responsive;
// The following is needed for tables to be responsive.
// For details, see the https://docsy.dev/docs/adding-content/lookandfeel/#tables
display: block;
}

View File

@ -0,0 +1,344 @@
// Taxonomies - e.g. Tags, Categories, ...
.taxonomy-terms-article {
width: 100%;
clear: both;
font-size: 0.8rem;
.taxonomy-title {
display: inline;
font-size: 1.25em;
height: 1em;
line-height: 1em;
margin-right: 0.5em;
padding: 0;
}
}
.taxonomy-terms-cloud {
width: 100%;
clear: both;
font-size: 0.8rem;
.taxonomy-title {
display: inline-block;
width: 100%;
font-size: 1rem;
font-weight: 700;
color: $primary;
border-bottom: 1px $primary solid;
margin-bottom: 1em;
padding-bottom: 0.375rem;
margin-top: 1em;
}
}
.taxonomy-terms-page {
max-width: 800px;
margin: auto;
h1 {
margin-bottom: 1em;
}
.taxonomy-terms-cloud {
font-size: 1em;
li {
display: block;
}
}
.taxo-text-tags {
li + li::before {
content: none;
}
}
.taxo-fruits {
.taxonomy-count,
.taxonomy-label {
display: inherit;
font-size: 1rem;
margin: 0;
padding: 0;
padding-right: 0.5em;
}
.taxonomy-count::before {
content: "(";
}
.taxonomy-count::after {
content: ")";
}
}
}
.taxonomy-terms {
list-style: none;
margin: 0;
overflow: hidden;
padding: 0;
display: inline;
li {
// https://stackoverflow.com/questions/3247358/how-do-i-wrap-text-with-no-whitespace-inside-a-td
display: inline;
overflow-wrap: break-word;
word-wrap: break-word;
-ms-word-break: break-all;
word-break: break-all;
word-break: break-word;
-ms-hyphens: auto;
-moz-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
}
}
.taxonomy-count {
font-size: 0.8em;
line-height: 1.25em;
display: inline-block;
padding-left: 0.6em;
padding-right: 0.6em;
margin-left: 0.6em;
text-align: center;
border-radius: 1em;
background-color: $white;
}
.taxonomy-term {
background: $gray-200;
border-width: 0;
border-radius: 0 3px 3px 0;
color: $gray-600;
display: inline-block;
font-size: 1em;
line-height: 1.5em;
min-height: 1.5em;
max-width: 100%;
padding: 0 0.5em 0 1em;
position: relative;
margin: 0 0.5em 0.2em 0;
text-decoration: none;
-webkit-transition: color 0.2s;
-webkit-clip-path: polygon(100% 0, 100% 100%, 0.8em 100%, 0 50%, 0.8em 0);
clip-path: polygon(100% 0, 100% 100%, 0.8em 100%, 0 50%, 0.8em 0);
&:hover {
background-color: $primary;
color: $white;
.taxonomy-count {
color: $dark !important;
}
}
&:hover::before {
background: $primary;
}
}
// Example for simple tags layout
.taxo-text-tags {
.taxonomy-term {
background: none;
border-width: 0;
border-radius: 0;
color: $gray-600;
font-size: 1em;
line-height: 1.5em;
min-height: 1.5em;
max-width: 100%;
padding: 0;
position: relative;
margin: 0;
text-decoration: none;
-webkit-clip-path: none;
clip-path: none;
&:hover {
background: none;
color: $link-color;
.taxonomy-count {
color: $dark !important;
}
}
&:hover::before {
background: none;
}
}
li + li::before {
content: "|";
color: $gray-600;
margin-right: 0.2em;
}
.taxonomy-count {
font-size: 1em;
line-height: 1.25em;
display: inline-block;
padding: 0;
margin: 0;
text-align: center;
border-radius: 0;
background: none;
vertical-align: super;
font-size: 0.75em;
}
.taxonomy-term:hover .taxonomy-count {
color: $link-color !important;
}
}
// Example for icon tags
.taxo-fruits {
.taxonomy-term[data-taxonomy-term]::before {
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: $font-awesome-font-name;
// font-weight: 900;
padding-right: 0.5em;
font-size: 2em;
min-width: 1.5em;
display: inline-block;
}
.taxonomy-term[data-taxonomy-term="apple"]::before {
content: "\f5d1";
color: red;
}
.taxonomy-term[data-taxonomy-term="carrot"]::before {
content: "\f787";
color: orange;
}
.taxonomy-term[data-taxonomy-term="lemon"]::before {
content: "\f094";
color: limegreen;
}
.taxonomy-term[data-taxonomy-term="pepper"]::before {
content: "\f816";
color: darkred;
}
.taxonomy-term {
background: none;
border-width: 0;
border-radius: 0;
color: $gray-600;
font-size: 1em;
line-height: 2.5em;
max-width: 100%;
padding: 0;
position: relative;
margin: 0;
text-decoration: none;
-webkit-clip-path: none;
clip-path: none;
&:hover {
background: none;
color: $link-color;
.taxonomy-count {
color: $dark !important;
}
}
&:hover::before {
background: none;
text-shadow: 0 0 3px $gray-900;
}
}
.taxonomy-count,
.taxonomy-label {
display: none;
}
&.taxonomy-terms-article {
margin-bottom: 1rem;
.taxonomy-title {
display: none;
}
}
}
.taxonomy-taxonomy-page {
max-width: 800px;
margin: auto;
h1 {
margin-bottom: 1em;
}
}
.article-meta {
margin-bottom: 1.5rem;
}
.article-teaser.article-type-docs h3 a:before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: $font-awesome-font-name;
content: "\f02d";
padding-right: 0.5em;
}
.article-teaser.article-type-blog h3 a:before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: $font-awesome-font-name;
content: "\f781";
padding-right: 0.5em;
}
.all-taxonomy-terms {
font-weight: 500;
line-height: 1.2;
font-size: 1.5rem;
&:before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: $font-awesome-font-name;
content: "\f122";
padding-right: 0.5em;
}
}
.article-teaser {
&.card {
padding: 1em;
margin-bottom: 1.5em;
}
.breadcrumb {
margin-bottom: 0em;
font-size: 0.85rem;
}
.article-meta {
margin-bottom: 0em;
}
}

View File

@ -0,0 +1,92 @@
// Bootstrap options
$enable-gradients: true !default;
$enable-shadows: true !default;
// Theme colors
// TODO: consider moving all of these theme-color definitions into the User
// Guide SCSS, or declare theme here, but namespaced:
$primary: #30638e !default;
$secondary: #ffa630 !default;
$success: #3772ff !default;
$info: #c0e0de !default;
$warning: #ed6a5a !default;
$danger: #ed6a5a !default;
$light: #d3f3ee !default; // TODO: consider using BS value
$dark: #403f4c !default; // TODO: consider using BS value
$code-color: shade-color($secondary, 40%) !default;
// UI element colors
$border-color: $gray-300 !default;
$td-sidebar-tree-root-color: $primary !default;
$td-sidebar-bg-color: rgba($primary, 0.03) !default;
$td-sidebar-border-color: $border-color !default;
// Background colors for the sections on home page etc. It is a paint by number
// system, starting at 0, where the number is taken from the shortcode's ordinal
// if not provided by the user. These colors are all part of the theme palette,
// but the mix is fairly random to create variation. This can be overridden by
// the project if needed.
$td-box-colors: $dark, $primary, $secondary, $info, $white, $gray-600, $success,
$warning, $dark, $danger, $primary, $secondary, $info !default;
$link-color: $blue-500 !default;
$link-shade-percentage: 30% !default;
// Fonts
$td-enable-google-fonts: true !default;
$google_font_name: "Open Sans" !default;
$google_font_family: "Open+Sans:300,300i,400,400i,700,700i" !default;
$web-font-path: "https://fonts.googleapis.com/css?family=#{$google_font_family}&display=swap";
$font-awesome-font-name: "Font Awesome 6 Free" !default;
$td-fonts-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
"Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
"Segoe UI Symbol";
@if $td-enable-google-fonts {
$td-fonts-serif: join("#{$google_font_name}", $td-fonts-serif);
}
$font-family-sans-serif: $td-fonts-serif !default; // TODO: consider moving into UG SCSS or namespace the var (td-)
$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas,
"Liberation Mono", "Courier New", monospace !default; // TODO: consider moving into UG SCSS or namespace the var (td-)
$font-family-base: $font-family-sans-serif !default; // TODO: consider moving into UG SCSS or namespace the var (td-)
// Font weights
$font-weight-medium: 500 !default; // TODO: move into var forward file after upgrading BS to v5.3+
$font-weight-body-text: $font-weight-normal !default;
// Heading sizes
$h3-font-size: $font-size-base * 1.5 !default; // TODO: consider using BS default (* 1.75), or moving into UG SCSS
$h4-font-size: $font-size-base * 1.35 !default; // TODO: consider using BS default (* 1.5), or moving into UG SCSS
$h5-font-size: $font-size-base * 1.15 !default; // TODO: consider using BS default (* 1.25), or moving into UG SCSS
// Space
$td-block-space-top-base: 4 * $spacer !default;
$td-block-space-bottom-base: 4 * $spacer !default;
// Pagination
$pagination-color: $gray-600 !default; // TODO: consider using BS default
$pagination-disabled-color: $gray-300 !default; // TODO: consider using BS default
// Navbar
$navbar-dark-color: rgba($white, 0.75) !default; // TODO: consider moving into UG SCSS
$navbar-dark-hover-color: rgba($white, 0.5) !default; // TODO: consider moving into UG SCSS
// Footer
$list-inline-padding: $spacer;

View File

@ -0,0 +1,21 @@
// Forward declarations of variables used by _variables.scss and
// _variables_project.scss.
//
// TODO(@chalin): autogenerate the content of this file
// Bootstrap SASS variables:
$white: #fff !default;
$gray-300: #dee2e6 !default;
$gray-600: #6c757d !default;
$black: #000 !default;
$blue: #0d6efd !default;
$blue-500: $blue !default;
$font-size-base: 1rem !default;
$font-weight-normal: 400 !default;
$font-weight-bold: 700 !default;
$spacer: 1rem !default;

View File

@ -0,0 +1,7 @@
/*
Nothing defined here. The Hugo project that uses this theme can override theme variables by adding a file to:
assets/scss/_variables_project.scss
*/

View File

@ -0,0 +1,7 @@
@import "cover";
.td-bg-arrow {
&-wrapper {
position: relative;
}
}

View File

@ -0,0 +1,25 @@
// A cover block is a full size cover with a fixed background for smaller screens.
@include td-box-height-modifiers(".td-cover-block");
.td-cover-logo {
margin-right: 0.5em;
}
.td-cover-block {
position: relative;
padding-top: 5rem;
padding-bottom: 5rem;
background: {
repeat: no-repeat;
position: 50% 0;
size: cover;
}
& > .byline {
@extend .small;
position: absolute;
bottom: 2px;
right: 4px;
}
}

View File

@ -0,0 +1,114 @@
@import "../vendor/bootstrap/scss/functions";
@import "_variables_forward";
@import "variables_project";
@import "variables";
@import "support/mixins";
@import "../vendor/bootstrap/scss/bootstrap";
@import "support/bootstrap_vers_test";
@import "../vendor/Font-Awesome/scss/fontawesome.scss";
@import "../vendor/Font-Awesome/scss/solid.scss";
@import "../vendor/Font-Awesome/scss/brands.scss";
@import "support/utilities";
@import "colors";
@import "table";
@import "boxes";
@import "blog";
@import "code";
@import "nav";
@import "sidebar-tree";
@import "sidebar-toc";
@import "breadcrumb";
@import "alerts";
@import "content";
@import "search";
@import "main-container";
@import "blocks/blocks";
@import "section-index";
@import "pageinfo";
@import "taxonomy";
@import "drawio";
@import "shortcodes";
@import "swagger";
@if $td-enable-google-fonts {
@import url($web-font-path);
}
.td-footer {
@extend .td-box--dark;
min-height: 150px;
padding-top: map-get($spacers, 5);
@include media-breakpoint-down(lg) {
min-height: 200px;
}
/* &__left { } */
&__center {
@extend .small;
text-align: center;
}
&__right {
text-align: right;
}
&__about {
font-size: initial;
}
&__links {
&-list {
@extend .list-inline;
margin-bottom: 0;
}
&-item {
@extend .list-inline-item;
@extend .h3;
a {
color: inherit !important;
}
}
}
&__authors,
&__all_rights_reserved {
padding-left: map-get($spacers, 1);
}
&__all_rights_reserved {
display: none;
}
}
// Adjust anchors vs the fixed menu.
@include media-breakpoint-up(md) {
.td-offset-anchor:target {
display: block;
position: relative;
top: -4rem;
visibility: hidden;
}
h2[id]:before,
h3[id]:before,
h4[id]:before,
h5[id]:before {
display: block;
content: " ";
margin-top: -5rem;
height: 5rem;
visibility: hidden;
}
}
@import "styles_project";

View File

@ -0,0 +1,55 @@
body:lang(fa),
body:lang(ar),
body:lang(az),
body:lang(dv),
body:lang(he),
body:lang(ku),
body:lang(ur) {
@import "spacing";
direction: rtl;
text-align: right;
.dropdown-menu {
text-align: right;
}
.text-right {
text-align: left !important;
}
pre {
text-align: left;
direction: ltr;
}
.td-rss-button {
left: 1rem !important;
right: auto !important;
}
}
body:lang(fa) {
@import url("https://cdn.jsdelivr.net/gh/rastikerdar/vazir-font@v27.0.1/dist/font-face.css");
font-family: "Vazir", "Open Sans", -apple-system, BlinkMacSystemFont,
"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol";
}
body:lang(he) {
@if $td-enable-google-fonts {
@import url("https://fonts.googleapis.com/css2?family=Rubik:wght@300;400;500;600;700&display=swap");
}
font-family: "Rubik", "Open Sans", -apple-system, BlinkMacSystemFont,
"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol";
}
body:lang(ar) {
@if $td-enable-google-fonts {
@import url("https://fonts.googleapis.com/css2?family=Tajawal:wght@300;400;500;700&display=swap");
}
font-family: "Tajawal", "Open Sans", -apple-system, BlinkMacSystemFont,
"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji",
"Segoe UI Emoji", "Segoe UI Symbol";
}

View File

@ -0,0 +1,87 @@
@each $breakpoint in map-keys($grid-breakpoints) {
@include media-breakpoint-up($breakpoint) {
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
@each $prop, $abbrev in (margin: m, padding: p) {
@each $size, $length in $spacers {
.#{$abbrev}#{$infix}-#{$size} {
#{$prop}: $length !important;
}
.#{$abbrev}t#{$infix}-#{$size},
.#{$abbrev}y#{$infix}-#{$size} {
#{$prop}-top: $length !important;
}
.#{$abbrev}r#{$infix}-#{$size},
.#{$abbrev}x#{$infix}-#{$size} {
#{$prop}-inline-end: $length !important;
}
.#{$abbrev}b#{$infix}-#{$size},
.#{$abbrev}y#{$infix}-#{$size} {
#{$prop}-bottom: $length !important;
}
.#{$abbrev}l#{$infix}-#{$size},
.#{$abbrev}x#{$infix}-#{$size} {
#{$prop}-inline-start: $length !important;
}
}
}
// Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)
@each $size, $length in $spacers {
@if $size !=0 {
.m#{$infix}-n#{$size} {
margin: -$length !important;
}
.mt#{$infix}-n#{$size},
.my#{$infix}-n#{$size} {
margin-top: -$length !important;
}
.mr#{$infix}-n#{$size},
.mx#{$infix}-n#{$size} {
margin-right: -$length !important;
}
.mb#{$infix}-n#{$size},
.my#{$infix}-n#{$size} {
margin-bottom: -$length !important;
}
.ml#{$infix}-n#{$size},
.mx#{$infix}-n#{$size} {
margin-left: -$length !important;
}
}
}
// Some special margin utils
.m#{$infix}-auto {
margin: auto !important;
}
.mt#{$infix}-auto,
.my#{$infix}-auto {
margin-top: auto !important;
}
.mr#{$infix}-auto,
.mx#{$infix}-auto {
margin-right: auto !important;
}
.mb#{$infix}-auto,
.my#{$infix}-auto {
margin-bottom: auto !important;
}
.ml#{$infix}-auto,
.mx#{$infix}-auto {
margin-left: auto !important;
}
}
}

View File

@ -0,0 +1,17 @@
.section-index {
.entry {
padding: 0.75rem;
}
h5 {
margin-bottom: 0;
a {
font-weight: 700;
}
}
p {
margin-top: 0;
}
}

View File

@ -0,0 +1,2 @@
@import "shortcodes/tabbed-pane.scss";
@import "shortcodes/cards-pane.scss";

View File

@ -0,0 +1,26 @@
.td-card-group.card-group {
@extend .td-max-width-on-larger-screens;
}
.td-card {
&.card {
@extend .td-max-width-on-larger-screens;
.highlight {
border: none;
margin: 0;
}
}
.card-body {
&.code {
background-color: #f8f9fa;
padding: 0 0 0 1ex;
}
pre {
margin: 0;
padding: 0 1rem 1rem 1rem;
}
}
}

View File

@ -0,0 +1,43 @@
// Only constrain max-width for top-level tabbed panes not, e.g., those in lists.
.td-content > .tab-content .tab-pane {
@extend .td-max-width-on-larger-screens;
}
.tab-content {
.tab-pane {
.highlight {
margin: 0;
border: none;
max-width: 100%;
}
margin-top: 0rem;
margin-bottom: 1.5rem;
border-left: 1px solid rgba(0, 0, 0, 0.125);
border-right: 1px solid rgba(0, 0, 0, 0.125);
border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}
}
.tab-body {
font-weight: $font-weight-medium;
background: $gray-100;
color: inherit;
border-radius: 0;
padding: 1.5rem;
> :last-child {
margin-bottom: 0;
}
> .highlight:only-child {
margin: -1.5rem;
max-width: calc(100% + 3rem);
}
@each $color, $value in $theme-colors {
&-#{$color} {
border-style: solid;
border-color: $value;
}
}
}

View File

@ -0,0 +1,8 @@
$enable-important-utilities: null !default;
@if $enable-important-utilities == null {
@error "\
Docsy requires Bootstrap v5, but the v5 variable \
$enable-important-utilities isn't defined. \
Did you forget to update Docsy dependencies?\
";
}

View File

@ -0,0 +1,55 @@
// Mixins
@mixin link-decoration($base: none, $focus_or_hover: initial) {
a {
text-decoration: $base;
&:focus,
&:hover {
text-decoration: $focus_or_hover;
}
}
.btn-link {
text-decoration: $base;
}
}
@mixin link-variant($parent, $color, $hover-color, $underline: false) {
#{$parent} {
color: $color;
&:hover {
color: $hover-color;
}
@if $underline {
text-decoration: underline;
}
}
}
@mixin optional-at-root($sel) {
@at-root #{if(not &, $sel, selector-append(&, $sel))} {
@content;
}
}
// placeholder allows styling of the placeholder used in search input etc.
@mixin placeholder {
@include optional-at-root("::-webkit-input-placeholder") {
@content;
}
@include optional-at-root(":-moz-placeholder") {
@content;
}
@include optional-at-root("::-moz-placeholder") {
@content;
}
@include optional-at-root(":-ms-input-placeholder") {
@content;
}
}

View File

@ -0,0 +1,52 @@
// Common utility classes
.td-border-top {
border: none;
border-top: 1px solid #eee;
}
.td-border-none {
border: none;
}
.td-block-padding {
padding-top: $td-block-space-top-base;
padding-bottom: $td-block-space-bottom-base;
@include media-breakpoint-up(md) {
padding-top: $td-block-space-top-base * 1.25;
padding-bottom: $td-block-space-bottom-base * 1.25;
}
}
.td-overlay {
position: relative;
&::after {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
&--dark::after {
background-color: rgba($dark, 0.3);
}
&--light::after {
background-color: rgba($light, 0.3);
}
&__inner {
position: relative;
z-index: 1;
}
}
.td-max-width-on-larger-screens {
@include media-breakpoint-up(lg) {
max-width: 80%;
}
}

View File

@ -0,0 +1,16 @@
---
title: "Long Page Title"
linkTitle: "Short Nav Title"
weight: 100
description: >-
Page description for heading and indexes.
---
## Heading
Edit this template to create your new page.
* Give it a good name, ending in `.md` - e.g. `getting-started.md`
* Edit the "front matter" section at the top of the page (weight controls how its ordered amongst other pages in the same directory; lowest number first).
* Add a good commit message at the bottom of the page (<80 characters; use the extended description field for more detail).
* Create a new branch so you can preview your new file and request a review via Pull Request.

View File

@ -0,0 +1,2 @@
This folder was added in order to work around a known bug in Gos module management.
For details, please refer to: https://github.com/golang/go/issues/37397

View File

@ -0,0 +1,3 @@
This file belongs to bootstrap framework:
https://raw.githubusercontent.com/twbs/bootstrap/v4.6.1/scss/vendor/_rfs.scss

View File

@ -0,0 +1,228 @@
// stylelint-disable property-blacklist, scss/dollar-variable-default
// SCSS RFS mixin
//
// Automated responsive font sizes
//
// Licensed under MIT (https://github.com/twbs/rfs/blob/v8.x/LICENSE)
// Configuration
// Base font size
$rfs-base-font-size: 1.25rem !default;
$rfs-font-size-unit: rem !default;
@if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {
@error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";
}
// Breakpoint at where font-size starts decreasing if screen width is smaller
$rfs-breakpoint: 1200px !default;
$rfs-breakpoint-unit: px !default;
@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {
@error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
}
// Resize font size based on screen height and width
$rfs-two-dimensional: false !default;
// Factor of decrease
$rfs-factor: 10 !default;
@if type-of($rfs-factor) != "number" or $rfs-factor <= 1 {
@error "`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.";
}
// Generate enable or disable classes. Possibilities: false, "enable" or "disable"
$rfs-class: false !default;
// 1 rem = $rfs-rem-value px
$rfs-rem-value: 16 !default;
// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14
$rfs-safari-iframe-resize-bug-fix: false !default;
// Disable RFS by setting $enable-responsive-font-sizes to false
$enable-responsive-font-sizes: true !default;
// Cache $rfs-base-font-size unit
$rfs-base-font-size-unit: unit($rfs-base-font-size);
@function divide($dividend, $divisor, $precision: 10) {
$sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
$dividend: abs($dividend);
$divisor: abs($divisor);
@if $dividend == 0 {
@return 0;
}
@if $divisor == 0 {
@error "Cannot divide by 0";
}
$remainder: $dividend;
$result: 0;
$factor: 10;
@while ($remainder > 0 and $precision >= 0) {
$quotient: 0;
@while ($remainder >= $divisor) {
$remainder: $remainder - $divisor;
$quotient: $quotient + 1;
}
$result: $result * 10 + $quotient;
$factor: $factor * .1;
$remainder: $remainder * 10;
$precision: $precision - 1;
@if ($precision < 0 and $remainder >= $divisor * 5) {
$result: $result + 1;
}
}
$result: $result * $factor * $sign;
$dividend-unit: unit($dividend);
$divisor-unit: unit($divisor);
$unit-map: (
"px": 1px,
"rem": 1rem,
"em": 1em,
"%": 1%
);
@if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
$result: $result * map-get($unit-map, $dividend-unit);
}
@return $result;
}
// Remove px-unit from $rfs-base-font-size for calculations
@if $rfs-base-font-size-unit == "px" {
$rfs-base-font-size: divide($rfs-base-font-size, $rfs-base-font-size * 0 + 1);
}
@else if $rfs-base-font-size-unit == "rem" {
$rfs-base-font-size: divide($rfs-base-font-size, divide($rfs-base-font-size * 0 + 1, $rfs-rem-value));
}
// Cache $rfs-breakpoint unit to prevent multiple calls
$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
// Remove unit from $rfs-breakpoint for calculations
@if $rfs-breakpoint-unit-cache == "px" {
$rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);
}
@else if $rfs-breakpoint-unit-cache == "rem" or $rfs-breakpoint-unit-cache == "em" {
$rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));
}
// Internal mixin that adds disable classes to the selector if needed.
@mixin _rfs-disable-class {
@if $rfs-class == "disable" {
// Adding an extra class increases specificity, which prevents the media query to override the font size
&,
.disable-responsive-font-size &,
&.disable-responsive-font-size {
@content;
}
}
@else {
@content;
}
}
// Internal mixin that adds enable classes to the selector if needed.
@mixin _rfs-enable-class {
@if $rfs-class == "enable" {
.enable-responsive-font-size &,
&.enable-responsive-font-size {
@content;
}
}
@else {
@content;
}
}
// Internal mixin used to determine which media query needs to be used
@mixin _rfs-media-query($mq-value) {
@if $rfs-two-dimensional {
@media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {
@content;
}
}
@else {
@media (max-width: #{$mq-value}) {
@content;
}
}
}
// Responsive font size mixin
@mixin rfs($fs, $important: false) {
// Cache $fs unit
$fs-unit: if(type-of($fs) == "number", unit($fs), false);
// Add !important suffix if needed
$rfs-suffix: if($important, " !important", "");
// If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value
@if not $fs-unit or $fs-unit != "" and $fs-unit != "px" and $fs-unit != "rem" or $fs == 0 {
font-size: #{$fs}#{$rfs-suffix};
}
@else {
// Remove unit from $fs for calculations
@if $fs-unit == "px" {
$fs: divide($fs, $fs * 0 + 1);
}
@else if $fs-unit == "rem" {
$fs: divide($fs, divide($fs * 0 + 1, $rfs-rem-value));
}
// Set default font size
$rfs-static: if($rfs-font-size-unit == rem, #{divide($fs, $rfs-rem-value)}rem, #{$fs}px);
// Only add the media query if the font size is bigger than the minimum font size
@if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {
font-size: #{$rfs-static}#{$rfs-suffix};
}
@else {
// Calculate the minimum font size for $fs
$fs-min: $rfs-base-font-size + divide($fs - $rfs-base-font-size, $rfs-factor);
// Calculate difference between $fs and the minimum font size
$fs-diff: $fs - $fs-min;
// Base font-size formatting
$min-width: if($rfs-font-size-unit == rem, #{divide($fs-min, $rfs-rem-value)}rem, #{$fs-min}px);
// Use `vmin` if two-dimensional is enabled
$variable-unit: if($rfs-two-dimensional, vmin, vw);
// Calculate the variable width between 0 and $rfs-breakpoint
$variable-width: #{divide($fs-diff * 100, $rfs-breakpoint)}#{$variable-unit};
// Set the calculated font-size
$rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};
// Breakpoint formatting
$mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});
@include _rfs-disable-class {
font-size: #{$rfs-static}#{$rfs-suffix};
}
@include _rfs-media-query($mq-value) {
@include _rfs-enable-class {
font-size: $rfs-fluid;
}
// Include safari iframe resize fix if needed
min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);
}
}
}
}
// The font-size & responsive-font-size mixins use RFS to rescale the font size
@mixin font-size($fs, $important: false) {
@include rfs($fs, $important);
}
@mixin responsive-font-size($fs, $important: false) {
@include rfs($fs, $important);
}

View File

@ -0,0 +1,42 @@
[module]
_merge = "deep"
# work around https://github.com/golang/go/issues/37397
[[module.mounts]]
source = "assets/bootstrap/scss/_vendor"
target = "assets/vendor/bootstrap/scss/vendor"
# mount asserts directory
[[module.mounts]]
source = "assets"
target = "assets"
# mount i18n directory
[[module.mounts]]
source = "i18n"
target = "i18n"
# mount layouts directory
[[module.mounts]]
source = "layouts"
target = "layouts"
# mount static directory
[[module.mounts]]
source = "static"
target = "static"
# Dependencies are brought in as modules
# and mount points are declared
[[module.imports]]
path = "github.com/twbs/bootstrap"
disable = false
[[module.imports.mounts]]
source = "scss"
target = "assets/vendor/bootstrap/scss"
[[module.imports.mounts]]
source = "dist/js"
target = "assets/vendor/bootstrap/dist/js"
[[module.imports]]
path = "github.com/FortAwesome/Font-Awesome"
disable = false
[[module.imports.mounts]]
source = "scss"
target = "assets/vendor/Font-Awesome/scss"
[[module.imports.mounts]]
source = "webfonts"
target = "static/webfonts"

View File

@ -0,0 +1,63 @@
# Docsy config
#
# cSpell:ignore docsy fortawesome fontawesome webfonts
params:
time_format_blog: Monday, January 02, 2006
time_format_default: January 2, 2006
rss_sections: [blog]
outputFormats:
PRINT:
baseName: index
isHTML: true
mediaType: text/html
path: _print
permalinkable: false
module:
hugoVersion:
extended: true
min: 0.110.0
mounts:
- source: assets
target: assets
- source: node_modules/bootstrap
target: assets/vendor/bootstrap
- source: node_modules/@fortawesome/fontawesome-free
target: assets/vendor/Font-Awesome
- source: i18n
target: i18n
- source: layouts
target: layouts
- source: static
target: static
- source: node_modules/@fortawesome/fontawesome-free/webfonts
target: static/webfonts
# Mounts for projects using Docsy as an NPM package. The source path prefix
# "../.." moves out of themes/docsy so that Docsy can find its dependencies.
- source: ../../node_modules/bootstrap
target: assets/vendor/bootstrap
- source: ../../node_modules/@fortawesome/fontawesome-free
target: assets/vendor/Font-Awesome
- source: ../../node_modules/@fortawesome/fontawesome-free/webfonts
target: static/webfonts
# Mounts for module installations,
# needed to work around a known bug in Gos module management.
- source: assets/_vendor/bootstrap/scss/
target: assets/vendor/bootstrap/scss/vendor
imports:
- path: github.com/twbs/bootstrap
disable: false
mounts:
- source: scss
target: assets/vendor/bootstrap/scss
- source: dist/js
target: assets/vendor/bootstrap/dist/js
- path: github.com/FortAwesome/Font-Awesome
disable: false
mounts:
- source: scss
target: assets/vendor/Font-Awesome/scss
- source: webfonts
target: static/webfonts

View File

@ -0,0 +1,80 @@
# UI strings. Buttons and similar.
[ui_pager_prev]
other = "السابق"
[ui_pager_next]
other = "التالي"
[ui_read_more]
other = "إقرأ المزيد"
[ui_search]
other = "ابحث في هذا الموقع"
# Used in sentences such as "Posted in News"
[ui_in]
other = "في"
# Used in sentences such as "All Tags"
[ui_all]
other = "كل"
# Footer text
[footer_all_rights_reserved]
other = "كافة الحقوق محفوظة"
[footer_privacy_policy]
other = "سياسة الخصوصية"
# Post (blog, articles etc.)
[post_byline_by]
other = "الكاتب"
[post_created]
other = "منشئة"
[post_last_mod]
other = "اخر تعديل"
[post_edit_this]
other = "عدل هذه الصفحة"
[post_view_this]
other = "أنظر مصدر الصفحة"
[post_create_child_page]
other = " أنشئ صفحة فرعية"
[post_create_issue]
other = "أنشئ مسألة حول الوثائق"
[post_create_project_issue]
other = "أنشئ مسألة حول المشروع"
[post_posts_in]
other = "منشور في"
[post_reading_time]
other = "دقيقة للقراءة"
[post_less_than_a_minute_read]
other = "أقل من دقيقة"
# Print support
[print_printable_section]
other = "هذا العرض يتضمن عدة صفحات للطباعة ضمن هذا القسم."
[print_click_to_print]
other = "اضغط هنا للطباعة"
[print_show_regular]
other = "العودة للعرض العادي"
[print_entire_section]
other = "اطبع القسم كاملا"
# Community
[community_join]
other = "انضم الي مجتمع {{ .Site.Title }}"
[community_introduce]
other = "{{ .Site.Title }} هو مشروع مفتوح المصدر يمكن لأي شخص في المجتمع استخدامه وتحسينه والاستمتاع به. يسعدنا أن تنضم إلينا! إليك بعض الطرق للمشاركة و معرفة ما يحدث."
[community_learn]
other = "تعلم وتواصل"
[community_using]
other = "تستخدام أو تريد استخدام {{ .Site.Title }}؟ اكتشف المزيد هنا:"
[community_develop]
other = "طور و ساهم"
[community_contribute]
other = "إذا كنت ترغب في المشاركة بشكل أكبر من خلال المساهمة في {{ .Site.Title }}, انضم إلينا هنا:"
[community_how_to]
other = "يمكنك معرفة كيفية المساهمة في {{ .Site.Title }} من خلال"
[community_guideline]
other = "إرشادات المساهمة"

View File

@ -0,0 +1,77 @@
# UI strings. Buttons and similar.
[ui_pager_prev]
other = "Предишен"
[ui_pager_next]
other = "Следващ"
[ui_read_more]
other = "Прочети повече"
[ui_search]
other = "Търси в тази страница…"
# Used in sentences such as "Posted in News"
[ui_in]
other = "в"
# Footer text
[footer_all_rights_reserved]
other = "Всички права запазени!"
[footer_privacy_policy]
other = "Политика за поверителност"
# Post (blog, articles etc.)
[post_byline_by]
other = "От"
[post_created]
other = "Създаден"
[post_last_mod]
other = "Последна промяна"
[post_edit_this]
other = "Промени тази страница"
[post_create_child_page]
other = "Създай дъщерна страница"
[post_create_issue]
other = "Създаване на издаване на документ"
[post_create_project_issue]
other = "Създаване на издаване на проект"
[post_posts_in]
other = "Публикувано в"
[post_reading_time]
other = "minute read"
[post_less_than_a_minute_read]
other = "less than a minute"
# Print support
[print_printable_section]
other = "Изглед за печат на този раздел, в режим много страници"
[print_click_to_print]
other = "Натисни тук за отпечатване"
[print_show_regular]
other = "Върнете се към обичайния изглед на тази страница"
[print_entire_section]
other = "Отпечатайте цялата секция"
# Community
[community_join]
other = "Join the {{ .Site.Title }} community"
[community_introduce]
other = "{{ .Site.Title }} is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! Here's a few ways to find out what's happening and get involved."
[community_learn]
other = "Learn and Connect"
[community_using]
other = "Using or want to use {{ .Site.Title }}? Find out more here:"
[community_develop]
other = "Develop and Contribute"
[community_contribute]
other = "If you want to get more involved by contributing to {{ .Site.Title }}, join us here:"
[community_how_to]
other = "You can find out how to contribute to {{ .Site.Title }} in our"
[community_guideline]
other = "Contribution Guidelines"

View File

@ -0,0 +1,81 @@
# ইউআই স্ট্রিং বাটন এবং অনুরূপ।
[ui_pager_prev]
other = "পূর্ববর্তী"
[ui_pager_next]
other = "পরবর্তী"
[ui_read_more]
other = "আরও পড়ুন"
[ui_search]
other = "এই সাইটে খোঁজ করুন…"
# "পোস্ট করা নিউজ" এর মতো বাক্যে ব্যবহৃত
[ui_in]
other = "মধ্যে"
# Used in sentences such as "All Tags"
[ui_all]
other = "সব"
# পাদচরণ
[footer_all_rights_reserved]
other = "সমস্ত অধিকার সংরক্ষিত"
[footer_privacy_policy]
other = "গোপনীয়তা নীতি"
# পোস্ট (ব্লগ, নিবন্ধ ইত্যাদি)
[post_byline_by]
other = "দ্বারা"
[post_created]
other = "তৈরি"
[post_last_mod]
other = "সর্বশেষ পরিবর্তিত"
[post_edit_this]
other = "এই পৃষ্ঠাটি সম্পাদনা করুন"
[post_view_this]
other = "পৃষ্ঠার উৎস দেখুন"
[post_create_child_page]
other = "শাখা পৃষ্ঠা তৈরি করুন"
[post_create_issue]
other = "ডকুমেন্টেশন ইস্যু তৈরি করুন"
[post_create_project_issue]
other = "প্রকল্পের সমস্যা তৈরি করুন"
[post_posts_in]
other = "পোস্ট"
[post_reading_time]
other = "পড়তে এক মিনিট"
[post_less_than_a_minute_read]
other = "পড়তে এক মিনিটেরও কম সময় লাগবে"
# মুদ্রণ সমর্থন
[print_printable_section]
other = "এটি এই বিভাগটির বহু পৃষ্ঠার মুদ্রণযোগ্য দর্শন।"
[print_click_to_print]
other = "মুদ্রণ করতে এখানে ক্লিক করুন"
[print_show_regular]
other = "এই পৃষ্ঠার নিয়মিত দৃশ্যে ফিরে আসুন"
[print_entire_section]
other = "পুরো বিভাগ মুদ্রণ করুন"
# Community
[community_join]
other = "যোগদান করুন {{ .Site.Title }} সম্প্রদায়ে"
[community_introduce]
other = "{{ .Site.Title }} হল একটি ওপেন সোর্স প্রকল্প যা সম্প্রদায়ের যে কেউ ব্যবহার করতে, উন্নতি করতে এবং উপভোগ করতে পারে৷ আমরা আপনাকে আমাদের সাথে দেখতে আনন্দিত হবে! এখানে আমাদের সাথে যোগ দেওয়ার কিছু উপায় রয়েছে, কী ঘটছে তা জানুন এবং জড়িত হন৷"
[community_learn]
other = "শিখুন এবং যোগদান করুন"
[community_using]
other = "ইতিমধ্যে {{ .Site.Title }} ব্যবহার করছেন বা ব্যবহার করতে চান? ? এখানে আরো জানুন:"
[community_develop]
other = "বিকাশ এবং অবদান"
[community_contribute]
other = "আপনি যদি {{ .Site.Title }} এ অবদান রেখে আরও জড়িত হতে চান, তবে এখানে আমাদের সাথে যোগ দিন:"
[community_how_to]
other = "আপনি আমাদের এ এই নথিগুলিতে কীভাবে অবদান রাখবেন তা খুঁজে পেতে পারেন"
[community_guideline]
other = "অবদান নির্দেশিকা"

View File

@ -0,0 +1,91 @@
# UI strings. Buttons and similar.
[ui_pager_prev]
other = "Zurück"
[ui_pager_next]
other = "Weiter"
[ui_read_more]
other = "Weiterlesen"
[ui_search]
other = "Diese Seite durchsuchen…"
# Used in sentences such as "Posted in News"
[ui_in]
other = "in"
# Used in sentences such as "All Tags"
[ui_all]
other = "alle"
# Footer text
[footer_all_rights_reserved]
other = "Alle Rechte vorbehalten"
[footer_privacy_policy]
other = "Datenschutzrichtlinie"
# Post (blog, articles etc.)
[post_byline_by]
other = "Von"
[post_created]
other = "Erstellt"
[post_last_mod]
other = "Zuletzt geändert"
[post_edit_this]
other = "Diese Seite bearbeiten"
[post_view_this]
other = "Quellcode dieser Seite ansehen"
[post_create_child_page]
other = "Unterseite anlegen"
[post_create_issue]
other = "Problem zu dieser Seite melden"
[post_create_project_issue]
other = "Problem melden"
[post_posts_in]
other = "Einträge in"
[post_reading_time]
other = "Minuten Lesezeit"
[post_less_than_a_minute_read]
other = "weniger als eine Minute"
# Print support
[print_printable_section]
other = "Das ist eine für den Ausdruck optimierte Ansicht des gesamten Kapitels inkl. Unterseiten."
[print_click_to_print]
other = "Druckvorgang starten"
[print_show_regular]
other = "Zur Standardansicht zurückkehren"
[print_entire_section]
other = "Kapitel inkl. Unterseiten drucken"
# Community
[community_join]
other = "Werde Teil der {{ .Site.Title }} Community"
[community_introduce]
other = "{{ .Site.Title }} ist ein Open Source Projekt das jedes Mitglied der Community nutzen, verbessern und genießen kann. Wir würden uns freuen, wenn Du Dich an unserem Projekt beteiligst! Nachfolgend werden einige Wege beschrieben um herauszufinden, was gerade in unserem Projekt los ist und wie Du dich aktiv beteiligen kannst."
[community_learn]
other = "Lerne und verbinde"
[community_using]
other = "Anwenden oder Anwendung eruieren {{ .Site.Title }}, Weitere Infos findest Du hier:"
[community_develop]
other = "Entwickeln und einen Beitrag leisten"
[community_contribute]
other = "Wenn Du aktiv beteiligen und einen Beitrag zu {{ .Site.Title }} leisten möchtest, kannst Du hier mitmachen:"
[community_how_to]
other = "Wie Du selbst zu {{ .Site.Title }} beitragen kannst, kannst Du nachlesen in unseren"
[community_guideline]
other = "Richtlinien für Beiträge"
# Feedback
[feedback_title]
other = "Rückmeldung"
[feedback_question]
other = "War diese Seite hilfreich?"
[feedback_positive]
other = "Ja"
[feedback_negative]
other = "Nein"

View File

@ -0,0 +1,90 @@
# UI strings. Buttons and similar.
[ui_pager_prev]
other = "Previous"
[ui_pager_next]
other = "Next"
[ui_read_more]
other = "Read more"
[ui_search]
other = "Search this site…"
# Used in sentences such as "Posted in News"
[ui_in]
other = "in"
# Used in sentences such as "All Tags"
[ui_all]
other = "all"
# Footer text
[footer_all_rights_reserved]
other = "All Rights Reserved"
[footer_privacy_policy]
other = "Privacy Policy"
# Post (blog, articles etc.)
[post_byline_by]
other = "By"
[post_created]
other = "Created"
[post_last_mod]
other = "Last modified"
[post_edit_this]
other = "Edit this page"
[post_view_this]
other = "View page source"
[post_create_child_page]
other = "Create child page"
[post_create_issue]
other = "Create documentation issue"
[post_create_project_issue]
other = "Create project issue"
[post_posts_in]
other = "Posts in"
[post_reading_time]
other = "minute read"
[post_less_than_a_minute_read]
other = "less than a minute"
# Print support
[print_printable_section]
other = "This is the multi-page printable view of this section."
[print_click_to_print]
other = "Click here to print"
[print_show_regular]
other = "Return to the regular view of this page"
[print_entire_section]
other = "Print entire section"
# Community
[community_join]
other = "Join the {{ .Site.Title }} community"
[community_introduce]
other = "{{ .Site.Title }} is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! Here's a few ways to find out what's happening and get involved."
[community_learn]
other = "Learn and Connect"
[community_using]
other = "Using or want to use {{ .Site.Title }}? Find out more here:"
[community_develop]
other = "Develop and Contribute"
[community_contribute]
other = "If you want to get more involved by contributing to {{ .Site.Title }}, join us here:"
[community_how_to]
other = "You can find out how to contribute to {{ .Site.Title }} in our"
[community_guideline]
other = "Contribution Guidelines"
# Feedback
[feedback_title]
other = "Feedback"
[feedback_question]
other = "Was this page helpful?"
[feedback_positive]
other = "Yes"
[feedback_negative]
other = "No"

View File

@ -0,0 +1,81 @@
# UI strings. Botones y similares.
[ui_pager_prev]
other = "Previo"
[ui_pager_next]
other = "Siguiente"
[ui_read_more]
other = "Continuar leyendo"
[ui_search]
other = "Buscar"
# Used in sentences such as "Posted in News"
[ui_in]
other = "en"
# Used in sentences such as "All Tags"
[ui_all]
other = "todos"
# Footer text
[footer_all_rights_reserved]
other = "Derechos reservados"
[footer_privacy_policy]
other = "Política de privacidad"
# Post (blog, articles etc.)
[post_byline_by]
other = "Por"
[post_created]
other = "Creado"
[post_last_mod]
other = "Última modificación"
[post_edit_this]
other = "Editar esta página"
[post_view_this]
other = "Ver código de la página"
[post_create_child_page]
other = "Crear página nueva"
[post_create_issue]
other = "Notificar una incidencia con la documentanción"
[post_create_project_issue]
other = "Notificar una incidencia en un proyecto"
[post_posts_in]
other = "Publicaciones en"
[post_reading_time]
other = "minutos de lectura"
[post_less_than_a_minute_read]
other = "menos de un minuto"
# Print support
[print_printable_section]
other = "Versión imprimible multipagina."
[print_click_to_print]
other = "Haga click aquí para imprimir"
[print_show_regular]
other = "Volver a la vista normal de esta página"
[print_entire_section]
other = "Imprimir la sección entera"
# Community
[community_join]
other = "Únete a la comunidad {{ .Site.Title }}"
[community_introduce]
other = "{{ .Site.Title }} es un proyecto de código abierto que cualquiera en la comunidad puede usar, mejorar y disfrutar. ¡Nos encantaría que te unas a nosotros! Aquí hay algunas maneras de averiguar lo que está sucediendo y participar."
[community_learn]
other = "Aprende y Conéctate"
[community_using]
other = "¿Usas o quieres usar {{ .Site.Title }}? Encuentra más información aquí:"
[community_develop]
other = "Desarrollar y Contribuir"
[community_contribute]
other = "Si deseas involucrarte más contribuyendo a {{ .Site.Title }}, únete a nosotros aquí:"
[community_how_to]
other = "Puedes averiguar cómo contribuir a {{ .Site.Title }} en nuestras"
[community_guideline]
other = "Guias de Contribución"

View File

@ -0,0 +1,66 @@
# Translation into Estonian
# UI strings. Buttons and similar.
[ui_pager_prev]
other = "Eelmine"
[ui_pager_next]
other = "Järgmine"
[ui_read_more]
other = "Loe lähemalt"
[ui_search]
other = "Otsi lehelt…"
# Used in sentences such as "Posted in News"
[ui_in]
other = "kohas" # not perfect. In Estonian this idea is represented by a suffix, not a separate word.
# Footer text
[footer_all_rights_reserved]
other = "Kõik õigused kaitstud"
[footer_privacy_policy]
other = "Privaatsuspoliitika"
# Post (blog, articles etc.)
[post_byline_by]
other = "järgi" # not perfect. In Estonian this idea is represented by a suffix, not a separate word.
[post_created]
other = "Loodud"
[post_last_mod]
other = "Viimati muudetud"
[post_edit_this]
other = "Täienda lehte"
[post_create_child_page]
other = "Loo alamleht"
[post_create_issue]
other = "Tõstata dokumentatsiooni kohta ülesanne" # perhaps there is a better translation for "issue"...
[post_create_project_issue]
other = "Tõstata projekti kohta ülesanne"
[post_posts_in]
other = "Postitused" # in Estonian this "in" should be the suffix of the next word, cannot include it to that phrase.
[post_reading_time]
other = "minute read"
[post_less_than_a_minute_read]
other = "less than a minute"
# Community
[community_join]
other = "Join the {{ .Site.Title }} community"
[community_introduce]
other = "{{ .Site.Title }} is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! Here's a few ways to find out what's happening and get involved."
[community_learn]
other = "Learn and Connect"
[community_using]
other = "Using or want to use {{ .Site.Title }}? Find out more here:"
[community_develop]
other = "Develop and Contribute"
[community_contribute]
other = "If you want to get more involved by contributing to {{ .Site.Title }}, join us here:"
[community_how_to]
other = "You can find out how to contribute to {{ .Site.Title }} in our"
[community_guideline]
other = "Contribution Guidelines"

View File

@ -0,0 +1,78 @@
# UI strings. Buttons and similar.
[ui_pager_prev]
other = "قبلی"
[ui_pager_next]
other = "بعدی"
[ui_read_more]
other = "بیشتر بخوانید"
[ui_search]
other = "در این سایت جستجو کنید..."
# Used in sentences such as "Posted in News"
[ui_in]
other = "در"
# Footer text
[footer_all_rights_reserved]
other = "تمام حقوق محفوظ است."
[footer_privacy_policy]
other = "سیاست حفظ حریم خصوصی"
# Post (blog, articles etc.)
[post_byline_by]
other = "توسط"
[post_created]
other = "ساخته شده"
[post_last_mod]
other = "آخرین تغییرات"
[post_edit_this]
other = "این صفحه را ویرایش کنید"
[post_create_child_page]
other = "ایجاد زیر صفحه در این صفحه"
[post_create_issue]
other = "ساخت ایشو"
[post_create_project_issue]
other = "ساخت ایشو برای پوسته"
[post_posts_in]
other = "نوشته ها در"
[post_reading_time]
other = "دقیقه برای خواندن"
[post_less_than_a_minute_read]
other = "کمتر از یک دقیقه"
# Print support
[print_printable_section]
other = "این حالت نمایش چند صفحه ای قابل پرینت این قسمت می‌باشد."
[print_click_to_print]
other = "برای پرینت کلیک کنید."
[print_show_regular]
other = "بازگشت به حالت نمایش عادی این قسمت"
[print_entire_section]
other = "پرینت کامل قسمت"
# Community
[community_join]
other = "Join the {{ .Site.Title }} community"
[community_introduce]
other = "{{ .Site.Title }} is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! Here's a few ways to find out what's happening and get involved."
[community_learn]
other = "Learn and Connect"
[community_using]
other = "Using or want to use {{ .Site.Title }}? Find out more here:"
[community_develop]
other = "Develop and Contribute"
[community_contribute]
other = "If you want to get more involved by contributing to {{ .Site.Title }}, join us here:"
[community_how_to]
other = "You can find out how to contribute to {{ .Site.Title }} in our"
[community_guideline]
other = "Contribution Guidelines"

View File

@ -0,0 +1,81 @@
# UI strings. Buttons and similar.
[ui_pager_prev]
other = "Edellinen"
[ui_pager_next]
other = "Seuraava"
[ui_read_more]
other = "Lue lisää"
[ui_search]
other = "Hae sivustolta..."
# Used in sentences such as "Posted in News"
[ui_in]
other = ""
# Used in sentences such as "All Tags"
[ui_all]
other = "kaikki"
# Footer text
[footer_all_rights_reserved]
other = "(C)"
[footer_privacy_policy]
other = "Tietosuojalauseke"
# Post (blog, articles etc.)
[post_byline_by]
other = "Kirjoittanut"
[post_created]
other = "Luonut"
[post_last_mod]
other = "Viimeksi muokattu"
[post_edit_this]
other = "Muokkaa sivua"
[post_view_this]
other = "Katso lähdekoodi"
[post_create_child_page]
other = "Luo alisivu"
[post_create_issue]
other = "Luo dokumentaation vikailmoitus"
[post_create_project_issue]
other = "Luo projektin vikailmoitus"
[post_posts_in]
other = "Kirjoituksia"
[post_reading_time]
other = "minuutin teksti"
[post_less_than_a_minute_read]
other = "alle minuutin"
# Print support
[print_printable_section]
other = "Tämä on monen sivun tulostettava näkymä osiosta"
[print_click_to_print]
other = "Paina tulostaaksesi"
[print_show_regular]
other = "Palaa tavalliseen näkymään"
[print_entire_section]
other = "Tulosta koko osio"
# Community
[community_join]
other = "Liity {{ .Site.Title }}-yhteisöön"
[community_introduce]
other = "{{ .Site.Title }} on avoimen lähdekoodin projekti, josta jokainen saa nauttia käyttämällä ja kehittämällä sitä. Olisi mahtavaa jos tulisit mukaan! Tässä pari tapaa osallistua."
[community_learn]
other = "Opi ja kohtaa muita"
[community_using]
other = "Käytätkö tai haluatko käyttää {{ .Site.Title }}:a? Lisätietoa täällä:"
[community_develop]
other = "Kehitä ja osallistu"
[community_contribute]
other = "Jos haluat auttaa kehittämään {{ .Site.Title }}:a, liity tänne:"
[community_how_to]
other = "Voit oppia kehittämään {{ .Site.Title }}:a meidän"
[community_guideline]
other = "osallistumisohjeissamme"

Some files were not shown because too many files have changed in this diff Show More