mirror of
https://github.com/privacyguides/privacyguides.org.git
synced 2025-07-01 17:22:39 +00:00
update(blog)!: Proton Wallet review (#2750)
This commit is contained in:
19
theme/assets/img/cryptocurrency/proton-wallet.svg
Normal file
19
theme/assets/img/cryptocurrency/proton-wallet.svg
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g transform="matrix(4.57144,0,0,4.57144,0,-18.942)">
|
||||
<path d="M0.004,27.272C0.004,28.904 1.327,30.226 2.958,30.226L25.046,30.226C26.677,30.226 28,28.904 28,27.272L28,17.818C28,11.291 22.709,6 16.182,6L2.958,6C1.327,6 0.004,7.323 0.004,8.954L0.004,18.263L5.84,18.263C7.945,18.263 9.651,20.086 9.651,22.335C9.651,24.583 7.945,26.406 5.84,26.406L0.004,26.406L0.004,27.272Z" style="fill:url(#_Linear1);fill-rule:nonzero;"/>
|
||||
<path d="M5.546,20.181C6.743,20.181 7.713,21.151 7.713,22.348C7.713,23.544 6.743,24.514 5.546,24.514C4.35,24.514 3.38,23.544 3.38,22.348C3.38,21.151 4.35,20.181 5.546,20.181Z" style="fill:url(#_Linear2);fill-rule:nonzero;"/>
|
||||
<path d="M0,27.333C0,28.964 1.323,30.287 2.954,30.287L22.091,30.287L22.091,18.863C22.091,13.968 18.123,10 13.228,10L0,10L0,18.263L5.84,18.263C7.945,18.263 9.651,20.086 9.651,22.335C9.651,24.583 7.945,26.406 5.84,26.406L0,26.406L0,27.333Z" style="fill:rgb(109,74,255);fill-rule:nonzero;"/>
|
||||
<path d="M0,27.333C0,28.964 1.323,30.287 2.954,30.287L22.091,30.287L22.091,18.863C22.091,13.968 18.123,10 13.228,10L0,10L0,18.263L5.84,18.263C7.945,18.263 9.651,20.086 9.651,22.335C9.651,24.583 7.945,26.406 5.84,26.406L0,26.406L0,27.333Z" style="fill:url(#_Linear3);fill-rule:nonzero;"/>
|
||||
<path d="M5.546,20.181C6.743,20.181 7.713,21.151 7.713,22.348C7.713,23.544 6.743,24.514 5.546,24.514C4.35,24.514 3.38,23.544 3.38,22.348C3.38,21.151 4.35,20.181 5.546,20.181Z" style="fill:rgb(109,74,255);fill-rule:nonzero;"/>
|
||||
<path d="M5.546,20.181C6.743,20.181 7.713,21.151 7.713,22.348C7.713,23.544 6.743,24.514 5.546,24.514C4.35,24.514 3.38,23.544 3.38,22.348C3.38,21.151 4.35,20.181 5.546,20.181Z" style="fill:url(#_Linear4);fill-rule:nonzero;"/>
|
||||
<path d="M8.625,25.114C7.929,25.909 6.939,26.406 5.84,26.406L0,26.406L0,27.272C0,28.903 1.323,30.226 2.954,30.226L4.19,30.226L8.698,25.105L8.625,25.114Z" style="fill:rgb(255,187,147);fill-rule:nonzero;"/>
|
||||
</g>
|
||||
<defs>
|
||||
<linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(34.6373,13.4926,-13.4926,34.6373,-3.51386,8.81943)"><stop offset="0" style="stop-color:rgb(149,122,253);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(255,198,198);stop-opacity:1"/></linearGradient>
|
||||
<linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(34.6373,13.4926,-13.4926,34.6373,-3.51386,8.81943)"><stop offset="0" style="stop-color:rgb(149,122,253);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(255,198,198);stop-opacity:1"/></linearGradient>
|
||||
<linearGradient id="_Linear3" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-10.7436,21.8612,-21.8612,-10.7436,20.8426,13.1146)"><stop offset="0" style="stop-color:rgb(250,82,142);stop-opacity:0"/><stop offset="0.15" style="stop-color:rgb(250,82,142);stop-opacity:0"/><stop offset="0.72" style="stop-color:rgb(255,128,101);stop-opacity:0.9"/><stop offset="1" style="stop-color:rgb(255,165,31);stop-opacity:0.9"/></linearGradient>
|
||||
<linearGradient id="_Linear4" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-10.7436,21.8612,-21.8612,-10.7436,20.8426,13.1146)"><stop offset="0" style="stop-color:rgb(250,82,142);stop-opacity:0"/><stop offset="0.15" style="stop-color:rgb(250,82,142);stop-opacity:0"/><stop offset="0.72" style="stop-color:rgb(255,128,101);stop-opacity:0.9"/><stop offset="1" style="stop-color:rgb(255,165,31);stop-opacity:0.9"/></linearGradient>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 3.9 KiB |
@ -522,3 +522,8 @@ path[d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-
|
||||
width: 100%;
|
||||
padding: 1em !important;
|
||||
}
|
||||
|
||||
.pg-proconlist {
|
||||
list-style-type: disc;
|
||||
padding-inline-start: 1em;
|
||||
}
|
||||
|
314
theme/blog-post.html
Normal file
314
theme/blog-post.html
Normal file
@ -0,0 +1,314 @@
|
||||
<!--
|
||||
Copyright (c) 2024 Jonah Aragon <jonah@triplebit.net>
|
||||
Copyright (c) 2016-2024 Martin Donath <martin.donath@squidfunk.com>
|
||||
|
||||
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 NON-INFRINGEMENT. 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.
|
||||
-->
|
||||
|
||||
{% extends "main.html" %}
|
||||
|
||||
{% import "partials/nav-item.html" as item with context %}
|
||||
|
||||
<!-- Page content -->
|
||||
{% block container %}
|
||||
<div class="md-content md-content--post" data-md-component="content" itemscope itemtype="https://schema.org/Article">
|
||||
<meta itemprop="headline" content="{{ page.title | striptags }}" />
|
||||
<meta itemprop="isAccessibleForFree" content="True" />
|
||||
<meta itemprop="isFamilyFriendly" content="True" />
|
||||
{% if config.theme.language == "en" %}
|
||||
<meta itemprop="inLanguage" content="en-US" />
|
||||
{% endif %}
|
||||
<span itemprop="publisher" itemscope itemtype="https://schema.org/Organization">
|
||||
<meta itemprop="name" content="Privacy Guides" />
|
||||
<meta itemprop="url" content="https://www.privacyguides.org/" />
|
||||
<meta itemprop="sameAs" content="https://mastodon.neat.computer/@privacyguides" />
|
||||
<meta itemprop="sameAs" content="https://twitter.com/privacy_guides" />
|
||||
<meta itemprop="sameAs" content="https://github.com/privacyguides" />
|
||||
<span itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
|
||||
<meta itemprop="url" content="https://www.privacyguides.org/en/assets/brand/logos/png/square/pg-yellow.png" />
|
||||
<meta itemprop="width" content="512" />
|
||||
<meta itemprop="height" content="512" />
|
||||
</span>
|
||||
</span>
|
||||
<link itemprop="publishingPrinciples" href="https://www.privacyguides.org/en/about/criteria/" />
|
||||
|
||||
<!-- Sidebar -->
|
||||
<div
|
||||
class="md-sidebar md-sidebar--post"
|
||||
data-md-component="sidebar"
|
||||
data-md-type="navigation"
|
||||
>
|
||||
<div class="md-sidebar__scrollwrap">
|
||||
<div class="md-sidebar__inner md-post">
|
||||
<nav class="md-nav md-nav--primary">
|
||||
|
||||
<!-- Back to overview link -->
|
||||
<div class="md-post__back">
|
||||
<div class="md-nav__title md-nav__container">
|
||||
<a href="{{ page.parent.url | url }}" class=" md-nav__link">
|
||||
{% include ".icons/material/arrow-left.svg" %}
|
||||
<span class="md-ellipsis">
|
||||
{{ lang.t("blog.index") }}
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Post authors -->
|
||||
{% if page.authors %}
|
||||
<div class="md-post__authors md-typeset">
|
||||
{% for author in page.authors %}
|
||||
<div class="md-profile md-post__profile" itemprop="author" itemscope itemtype="https://schema.org/{{ author.type | default('Person') }}">
|
||||
<span class="md-author md-author--long">
|
||||
<img src="{{ author.avatar | url }}" alt="{{ author.name }}" />
|
||||
</span>
|
||||
<span class="md-profile__description">
|
||||
<strong>
|
||||
{% if author.url %}
|
||||
<a itemprop="url" href="{{ author.url | url }}"><span itemprop="name">{{ author.name }}</span></a>
|
||||
{% else %}
|
||||
<span itemprop="name">{{ author.name }}</span>
|
||||
{% endif %}
|
||||
</strong>
|
||||
<br />
|
||||
<span {% if author.type is not defined -%}itemprop="jobTitle"{%- endif -%}>{{ author.description }}</span>
|
||||
</span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<!-- Post metadata -->
|
||||
<ul class="md-post__meta md-nav__list">
|
||||
<li class="md-nav__item md-nav__item--section">
|
||||
<div class="md-post__title">
|
||||
<span class="md-ellipsis">
|
||||
{{ lang.t("blog.meta") }}
|
||||
</span>
|
||||
</div>
|
||||
<nav class="md-nav">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<!-- Post date -->
|
||||
<li class="md-nav__item">
|
||||
<div class="md-nav__link" title="Date published">
|
||||
{% include ".icons/material/calendar.svg" %}
|
||||
<time
|
||||
datetime="{{ page.config.date.created }}"
|
||||
class="md-ellipsis"
|
||||
itemprop="datePublished"
|
||||
>
|
||||
{{- page.config.date.created | date -}}
|
||||
</time>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<!-- Post date updated -->
|
||||
{% if page.config.date.updated %}
|
||||
<li class="md-nav__item">
|
||||
<div class="md-nav__link" title="Date last updated">
|
||||
{% include ".icons/material/calendar-clock.svg" %}
|
||||
<time
|
||||
datetime="{{ page.config.date.updated }}"
|
||||
class="md-ellipsis"
|
||||
itemprop="dateModified"
|
||||
>
|
||||
{{- page.config.date.updated | date -}}
|
||||
</time>
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<!-- Post categories -->
|
||||
{% if page.categories %}
|
||||
<li class="md-nav__item">
|
||||
<div class="md-nav__link">
|
||||
{% include ".icons/material/bookshelf.svg" %}
|
||||
<span class="md-ellipsis">
|
||||
{{ lang.t("blog.categories.in") }}
|
||||
{% for category in page.categories %}
|
||||
<a href="{{ category.url | url }}">
|
||||
{{- category.title -}}
|
||||
</a>
|
||||
{%- if loop.revindex > 1 %}, {% endif -%}
|
||||
{% endfor -%}
|
||||
</span>
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<!-- Post readtime -->
|
||||
{% if page.config.readtime %}
|
||||
{% set time = page.config.readtime %}
|
||||
<li class="md-nav__item">
|
||||
<div class="md-nav__link">
|
||||
{% include ".icons/material/clock-outline.svg" %}
|
||||
<span class="md-ellipsis" itemprop="timeRequired">
|
||||
{% if time == 1 %}
|
||||
{{ lang.t("readtime.one") }}
|
||||
{% else %}
|
||||
{{ lang.t("readtime.other") | replace("#", time) }}
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<!-- Related links -->
|
||||
{% if page.config.links %}
|
||||
<ul class="md-post__meta md-nav__list">
|
||||
<li class="md-nav__item md-nav__item--section">
|
||||
<div class="md-post__title">
|
||||
<span class="md-ellipsis">
|
||||
{{ lang.t("blog.references") }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<!-- Render related links -->
|
||||
<nav class="md-nav">
|
||||
<ul class="md-nav__list">
|
||||
{% for nav_item in page.config.links %}
|
||||
{% set path = "__ref_" ~ loop.index %}
|
||||
{{ item.render(nav_item, path, 1) }}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
<!-- Product review information -->
|
||||
{% if page.meta.review %}
|
||||
<ul class="md-post__meta md-nav__list" itemprop="about" itemscope itemtype="https://schema.org/{{ page.meta.review.type }}">
|
||||
<meta itemprop="applicationCategory" content="{{ page.meta.review.category }}" />
|
||||
<meta itemprop="applicationSubCategory" content="{{ page.meta.review.subcategory }}" />
|
||||
<li class="md-nav__item md-nav__item--section">
|
||||
<div class="md-post__title">
|
||||
<span class="md-ellipsis">
|
||||
<span itemprop="name">{{ page.meta.review.name }}</span> summary
|
||||
</span>
|
||||
<meta itemprop="alternateName" content="{{ page.meta.review.alternateName }}" />
|
||||
</div>
|
||||
<div class="md-nav">
|
||||
<ul class="md-nav__list" itemprop="review" itemscope itemtype="https://schema.org/Review">
|
||||
<li class="md-nav__item">
|
||||
<span itemprop="reviewRating" itemscope itemtype="https://schema.org/Rating">
|
||||
<meta itemprop="bestRating" content="5" />
|
||||
<meta itemprop="worstRating" content="0.5" />
|
||||
<span class="md-nav__link" itemprop="ratingValue" content="{{ page.meta.review.rating }}" title="Rating: {{ page.meta.review.rating }} / 5">
|
||||
{% for i in range(1, 6) %}
|
||||
{% if i <= page.meta.review.rating %}
|
||||
{% include ".icons/material/star.svg" %}
|
||||
{% else %}
|
||||
{% if i - 0.5 == page.meta.review.rating %}
|
||||
{% include ".icons/material/star-half-full.svg" %}
|
||||
{% else %}
|
||||
{% include ".icons/material/star-outline.svg" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</span>
|
||||
</span>
|
||||
{% if page.authors %}
|
||||
<span itemprop="author" itemscope itemtype="https://schema.org/Person">
|
||||
{% set reviewAuthor = page.authors[0] %}
|
||||
<meta itemprop="name" content="{{ reviewAuthor.name }}" />
|
||||
<meta itemprop="url" content="{{ reviewAuthor.url | url }}" />
|
||||
</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<span class="md-nav__link">
|
||||
<span itemprop="positiveNotes" itemscope itemtype="https://schema.org/ItemList">
|
||||
<strong itemprop="name">Pros:</strong>
|
||||
<span>
|
||||
<ul class="pg-proconlist">
|
||||
{% for pro in page.meta.review.pros %}
|
||||
<li itemprop="itemListElement">{{ pro }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<span class="md-nav__link">
|
||||
<span itemprop="negativeNotes" itemscope itemtype="https://schema.org/ItemList">
|
||||
<strong itemprop="name">Cons:</strong>
|
||||
<span>
|
||||
<ul class="pg-proconlist">
|
||||
{% for con in page.meta.review.cons %}
|
||||
<li itemprop="itemListElement">{{ con }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</span>
|
||||
</span>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="md-nav__list">
|
||||
<li class="md-nav__item">
|
||||
<span class="md-nav__link">
|
||||
<span itemprop="offers" itemscope itemtype="https://schema.org/Offer">
|
||||
<strong>Price:</strong>
|
||||
{% if page.meta.review.price == 0 %}
|
||||
<span itemprop="price" content="0">Free</span>
|
||||
{% else %}
|
||||
<span itemprop="priceCurrency" content="USD">$</span><span itemprop="price" content="{{ page.meta.review.price }}">{{ page.meta.review.price }}</span>
|
||||
{% endif %}
|
||||
{% if page.meta.review.period %}
|
||||
/ {{ page.meta.review.period }}
|
||||
{% endif %}
|
||||
</span>
|
||||
</span>
|
||||
</li>
|
||||
<li class="md-nav__item">
|
||||
<span class="md-nav__link">
|
||||
<a itemprop="url" href="{{ page.meta.review.website }}"><em>{{ page.meta.review.website.rpartition("//")[-1].partition("/")[0] }}</em></a>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<!-- Table of contents, if integrated -->
|
||||
{% if "toc.integrate" in features %}
|
||||
{% include "partials/toc.html" %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Page content -->
|
||||
<article class="md-content__inner md-typeset">
|
||||
{% block content %}
|
||||
{% include "partials/content.html" %}
|
||||
{% endblock %}
|
||||
</article>
|
||||
</div>
|
||||
{% endblock %}
|
@ -8,6 +8,16 @@ definitions:
|
||||
- &page_description >-
|
||||
{{ page.meta.get("description", config.site_description) or "" }}
|
||||
|
||||
- &page_logo >-
|
||||
{% if page.meta.preview and page.meta.preview.logo %}
|
||||
{{- page.meta.preview.logo -}}
|
||||
{% endif %}
|
||||
|
||||
- &page_icon >-
|
||||
{%- if not page.meta.preview or not page.meta.preview.logo -%}
|
||||
material/book-open-page-variant
|
||||
{%- endif -%}
|
||||
|
||||
- &logo >-
|
||||
theme/assets/brand/logos/svg/logo/privacy-guides-logo-notext-colorbg.svg
|
||||
|
||||
@ -72,11 +82,19 @@ layers:
|
||||
- background:
|
||||
color: "#FFD06F"
|
||||
|
||||
- size: { width: 512, height: 512 }
|
||||
offset: { x: 600, y: 59 }
|
||||
background:
|
||||
image: *page_logo
|
||||
|
||||
- background:
|
||||
color: "#FFD06F99"
|
||||
|
||||
# Page icon
|
||||
- size: { width: 630, height: 630 }
|
||||
offset: { x: 570, y: 0 }
|
||||
icon:
|
||||
value: material/book-open-page-variant
|
||||
value: *page_icon
|
||||
color: "#00000033"
|
||||
|
||||
# Logo
|
||||
|
@ -26,8 +26,6 @@
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
{% if page.meta and page.meta.description %}
|
||||
<meta name="description" content="{{ page.meta.description }}">
|
||||
{% elif config.site_description %}
|
||||
<meta name="description" content="{{ config.site_description }}">
|
||||
{% endif %}
|
||||
{% if page.meta and page.meta.author %}
|
||||
<meta name="author" content="{{ page.meta.author }}">
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
{% if page and page.meta and page.meta.cover %}
|
||||
<div class="cover center-cropped">
|
||||
<img src="{{ 'assets/img/cover/' | url }}{{ page.meta.cover }}" alt="">
|
||||
<img itemprop="image" src="{{ 'assets/img/cover/' | url }}{{ page.meta.cover }}" alt="">
|
||||
</div>
|
||||
<h1>{{ page.title | d(config.site_name, true)}}</h1>
|
||||
{% endif %}
|
||||
@ -40,7 +40,9 @@
|
||||
{% endif %}
|
||||
|
||||
<!-- Page content -->
|
||||
<div itemprop="articleBody">
|
||||
{{ page.content }}
|
||||
</div>
|
||||
|
||||
<!-- Source file information -->
|
||||
{% include "partials/source-file.html" %}
|
||||
|
Reference in New Issue
Block a user