Compare commits

..

21 Commits

Author SHA1 Message Date
c7937a241a Manual cleanup 2019-08-03 21:07:11 -07:00
543099e914 Move build.sh into bin/ 2019-08-03 20:54:44 -07:00
869833c79b Add .nvmrc 2019-08-03 20:42:39 -07:00
271cee8bca Update package.json 2019-08-03 20:34:35 -07:00
3e63b62881 Update Travis config to run format check 2019-08-03 20:18:33 -07:00
d01b88520a Update README.md 2019-08-03 19:23:57 -07:00
4c44a3c510 Add CI format check script 2019-08-03 19:21:17 -07:00
81a0fd91c2 Update README.md building instructions for consistency 2019-08-03 16:06:25 -07:00
0183c0f4f5 Trust minor version bumps for js-beautify 2019-08-03 16:01:06 -07:00
491d2f9eb0 Cleanup 2019-08-03 15:56:43 -07:00
2a96893aca Cleanup merge conflicts and update package script 2019-08-03 15:48:42 -07:00
635152fbb1 Cleanup merge conflicts 2019-08-03 15:45:38 -07:00
e18870916a Merge remote-tracking branch 'origin/master' into add-beautify 2019-08-03 15:37:39 -07:00
ecc215531e Revert "Test Travis matrix config"
This reverts commit 69125a052f.
2019-08-03 14:33:29 -07:00
af9ea5c286 Trigger CI 2019-08-03 14:30:14 -07:00
69125a052f Test Travis matrix config 2019-08-03 14:28:17 -07:00
dd35fd643a Remove pre-push Husky rule; unneeded 2019-08-03 14:13:01 -07:00
38d5f9254f Remove space rule due to using tabs 2019-08-03 14:12:07 -07:00
c9f9cf255b Update package.json 2019-08-03 13:58:01 -07:00
9b4f84d96c Update Husky scripts 2019-08-03 13:48:20 -07:00
de91049200 Add NPM + Beautify 2019-08-03 13:21:13 -07:00
95 changed files with 3871 additions and 2110 deletions

View File

@ -1,21 +0,0 @@
---
name: "🇦🇶 Translation Issue"
about: Report any issue with a translated site.
title: "🇦🇶 Translated Site Issue | "
labels: 🌐 website issue, 🇦🇶 translations
---
## Site Affected
**Domain:**
<!-- Add an x to the box below if true [x] -->
- [ ] This site is listed as a translated version of the site in the privacytools.io navbar.
## Description
<!--
## Screenshots
Please add screenshots if applicable
-->

95
.gitignore vendored
View File

@ -3,3 +3,98 @@ Gemfile
Gemfile.lock Gemfile.lock
.sass-cache/ .sass-cache/
.DS_Store .DS_Store
# Created by https://www.gitignore.io/api/node
# Edit at https://www.gitignore.io/?templates=node
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# next.js build output
.next
# nuxt.js build output
.nuxt
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# End of https://www.gitignore.io/api/node

6
.jsbeautifyrc Normal file
View File

@ -0,0 +1,6 @@
{
"html": {
"indent_with_tabs": true,
"indent_handlebars": true
}
}

3
.lintstagedrc Normal file
View File

@ -0,0 +1,3 @@
{
"*.html": "bin/html-beautify-check.sh"
}

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
v12.7.0

View File

@ -1,11 +1,19 @@
language: ruby matrix:
rvm: include:
- 2.4.1 - language: ruby
rvm: 2.4.1
# Assume bundler is being used, therefore # Assume bundler is being used, therefore
# the `install` step will run `bundle install` by default. # the `install` step will run `bundle install` by default.
script: ./build.sh script: ./bin/build.sh
sudo: false # route your build to the container-based infrastructure for a faster build sudo: false # route your build to the container-based infrastructure for a faster build
cache: bundler # caching bundler gem packages will speed up build cache: bundler # caching bundler gem packages will speed up build
- language: node_js
node_js: v12.7.0
branches:
only:
- master
script: npm run format-test:html

View File

@ -14,4 +14,3 @@ gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
# Performance-booster for watching directories on Windows # Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.0" if Gem.win_platform? gem "wdm", "~> 0.1.0" if Gem.win_platform?
gem 'jekyll-multiple-languages-plugin'

View File

@ -1,4 +1,4 @@
[![privacytools](./assets/img/layout/logo.png)](https://www.privacytools.io/) [![privacytools](https://privacytools.io/assets/img/layout/logo.png)](https://www.privacytools.io/)
_Encryption Against Global Mass Surveillance._ _Encryption Against Global Mass Surveillance._
@ -15,9 +15,13 @@ You can submit your suggestions here on GitHub [(Issues)](https://github.com/pri
## Building ## Building
1. Install [Ruby](https://www.ruby-lang.org/en/documentation/installation/) 1. Install [Ruby](https://www.ruby-lang.org/en/documentation/installation/)
1. Install [bundler](https://bundler.io/) by running `gem install bundler`. 1. Run `gem install bundler` to install [bundler](https://bundler.io/).
1. Run `bundle install` to install the required dependencies. 1. Run `bundle install` to install the required Ruby dependencies.
1. Use `bundle exec jekyll build` to build the website. The output can be found in the `_site` directory. Live preview is also possible by running `bundle exec jekyll serve` 1. Install [Node.js](https://nodejs.org/).
1. Run `npm install` to install the required Node dependencies.
1. Use `npm run build` to build the website. The output can be found in the `_site` directory.
1. Use `npm run serve` for a live preview of the website.
1. Use `npm run format:html` to format the HTML source code.
# Support privacytools.io # Support privacytools.io
@ -31,7 +35,6 @@ You can submit your suggestions here on GitHub [(Issues)](https://github.com/pri
# Community Translations # Community Translations
- [繁体中文 / Chinese](https://privacytools.twngo.xyz/) - [GitHub](https://github.com/twngo/privacytools-zh) - [繁体中文 / Chinese](https://privacytools.twngo.xyz/) - [GitHub](https://github.com/twngo/privacytools-zh)
- [Español / Spanish](https://victorhck.gitlab.io/privacytools-es/) - [GitLab](https://gitlab.com/victorhck/privacytools-es) - [Español / Spanish](https://victorhck.gitlab.io/privacytools-es/) - [GitLab](https://gitlab.com/victorhck/privacytools-es)
- [Polski / Polish](https://pl.privacytools.io) - [Gitea](https://git.privacytools.io/pl-privacytoolsIO/pl.privacytools.io)
- [Deutsch / German](https://privacytools.it-sec.rocks/) - [GitHub](https://github.com/Anon215/privacytools.it-sec.rocks) - [Deutsch / German](https://privacytools.it-sec.rocks/) - [GitHub](https://github.com/Anon215/privacytools.it-sec.rocks)
- [Français / French](https://privacytools.dreads-unlock.fr/) - [GitLab](https://gitlab.com/Booteille/privacytools) - [Français / French](https://privacytools.dreads-unlock.fr/) - [GitLab](https://gitlab.com/Booteille/privacytools)
- [Italiano / Italian](https://privacytools-it.github.io/) - [GitHub](https://github.com/privacytools-it/privacytools-it.github.io) - [Italiano / Italian](https://privacytools-it.github.io/) - [GitHub](https://github.com/privacytools-it/privacytools-it.github.io)

View File

@ -5,8 +5,6 @@ sass:
style: compressed style: compressed
plugins: plugins:
- jekyll-sitemap - jekyll-sitemap
- jekyll-multiple-languages-plugin
sitemap: sitemap:
file: "/sitemap.xml" file: "/sitemap.xml"
include: [".well-known"] include: [".well-known"]
languages: ["en", "pl", "fr"]

View File

@ -1,7 +0,0 @@
pages:
home: Home
work: Work
category:
alpha: Alpha
beta: Beta
delta: Delta

View File

@ -1,3 +0,0 @@
pages:
home: HomeFREdited
work: WorkFR

View File

@ -1,3 +0,0 @@
pages:
home: Fantastic
work: WorkPL

View File

@ -17,8 +17,7 @@
{% assign text = label_data[1] %} {% assign text = label_data[1] %}
{% assign tooltip = label_data[2] | default: "" %} {% assign tooltip = label_data[2] | default: "" %}
{% assign help_icon = '<i class="far fa-question-circle"></i>' %} {% assign help_icon = '<i class="far fa-question-circle"></i>' %}
<span class="badge badge-{{color}}" {% if tooltip %} data-toggle="tooltip" title="{{ tooltip }}">{{text}} {{ help_icon <span class="badge badge-{{color}}" {% if tooltip %} data-toggle="tooltip" title="{{ tooltip }}">{{text}} {{ help_icon }}
}}
{% else %} {% else %}
>{{text}} >{{text}}
{% endif %} {% endif %}

View File

@ -19,7 +19,6 @@
<a class="dropdown-item" href="/providers/dns/"><i class="fa fa-tasks fa-fw"></i> DNS</a> <a class="dropdown-item" href="/providers/dns/"><i class="fa fa-tasks fa-fw"></i> DNS</a>
<a class="dropdown-item" href="/providers/email/"><i class="fas fa-mail-bulk fa-fw"></i> Email</a> <a class="dropdown-item" href="/providers/email/"><i class="fas fa-mail-bulk fa-fw"></i> Email</a>
<a class="dropdown-item" href="/providers/hosting/"><i class="fas fa-database fa-fw"></i> Hosting</a> <a class="dropdown-item" href="/providers/hosting/"><i class="fas fa-database fa-fw"></i> Hosting</a>
<a class="dropdown-item" href="/providers/paste/"><i class="fas fa-paste fa-fw"></i> Pastebins</a>
<a class="dropdown-item" href="/providers/search-engines/"><i class="fab fa-searchengin fa-fw"></i> Search Engines</a> <a class="dropdown-item" href="/providers/search-engines/"><i class="fab fa-searchengin fa-fw"></i> Search Engines</a>
<a class="dropdown-item" href="/providers/social-networks/"><i class="fas fa-expand-arrows-alt fa-fw"></i> Social Networks</a> <a class="dropdown-item" href="/providers/social-networks/"><i class="fas fa-expand-arrows-alt fa-fw"></i> Social Networks</a>
<a class="dropdown-item" href="/providers/vpn/"><i class="far fa-eye-slash fa-fw"></i> VPN</a> <a class="dropdown-item" href="/providers/vpn/"><i class="far fa-eye-slash fa-fw"></i> VPN</a>
@ -81,7 +80,6 @@
<div class="dropdown-menu" aria-labelledby="servicesDropdown"> <div class="dropdown-menu" aria-labelledby="servicesDropdown">
<a href="https://privacytools.twngo.xyz/" class="dropdown-item">繁體中文</a> <a href="https://privacytools.twngo.xyz/" class="dropdown-item">繁體中文</a>
<a href="https://victorhck.gitlab.io/privacytools-es/" class="dropdown-item">Español</a> <a href="https://victorhck.gitlab.io/privacytools-es/" class="dropdown-item">Español</a>
<a href="https://pl.privacytools.io/" class="dropdown-item">Polski</a>
<a href="https://www.privacidade.digital/" class="dropdown-item">Português</a> <a href="https://www.privacidade.digital/" class="dropdown-item">Português</a>
<a href="https://privacytools.it-sec.rocks/" class="dropdown-item">Deutsch</a> <a href="https://privacytools.it-sec.rocks/" class="dropdown-item">Deutsch</a>
<a href="https://privacytools-it.github.io/" class="dropdown-item">Italiano</a> <a href="https://privacytools-it.github.io/" class="dropdown-item">Italiano</a>

View File

@ -30,8 +30,14 @@
var u = "https://stats.privacytools.io/"; var u = "https://stats.privacytools.io/";
_paq.push(['setTrackerUrl', u + 'matomo.php']); _paq.push(['setTrackerUrl', u + 'matomo.php']);
_paq.push(['setSiteId', '1']); _paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; var d = document,
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); g = d.createElement('script'),
s = d.getElementsByTagName('script')[0];
g.type = 'text/javascript';
g.async = true;
g.defer = true;
g.src = u + 'matomo.js';
s.parentNode.insertBefore(g, s);
})(); })();
</script> </script>
<noscript><img src="https://stats.privacytools.io/matomo.php?idsite=1&amp;rec=1" style="border:0" alt="" /></noscript> <noscript><img src="https://stats.privacytools.io/matomo.php?idsite=1&amp;rec=1" style="border:0" alt="" /></noscript>

View File

@ -132,7 +132,7 @@
<td><span class="flag-icon flag-icon-no"></span> Norway</td> <td><span class="flag-icon flag-icon-no"></span> Norway</td>
<td data-value="1000">1 GB</td> <td data-value="1000">1 GB</td>
<td data-value="20">$ 19.95</td> <td data-value="20">$ 19.95</td>
<td data-value="1"><span class="label label-primary">Accepted</span></td> <td data-value="1"><span class="label label-primary">Yes</span></td>
<td data-value="0"><span class="label label-primary">No</span></td> <td data-value="0"><span class="label label-primary">No</span></td>
<td data-value="1"><span class="label label-success">Yes</span></td> <td data-value="1"><span class="label label-success">Yes</span></td>
</tr> </tr>
@ -194,7 +194,8 @@
<ul> <ul>
<li><a href="https://www.confidantmail.org/">Confidant Mail</a> - An open-source non-SMTP cryptographic email system optimized for large file attachments. It is a secure and spam-resistant alternative to regular email and online file drop services. It <li><a href="https://www.confidantmail.org/">Confidant Mail</a> - An open-source non-SMTP cryptographic email system optimized for large file attachments. It is a secure and spam-resistant alternative to regular email and online file drop services. It
uses <a href="https://theprivacyguide.org/tutorials/gpg.html">GNU Privacy Guard (GPG)</a> for content encryption and authentication, and TLS 1.2 with ephemeral keys for transport encryption.</li> uses <a href="https://theprivacyguide.org/tutorials/gpg.html">GNU Privacy Guard (GPG)</a> for content encryption and authentication, and TLS 1.2 with ephemeral keys for transport encryption.</li>
</ul> <h3>Become Your Own Email Provider with Mail-in-a-Box</h3> </ul>
<h3>Become Your Own Email Provider with Mail-in-a-Box</h3>
<a href="https://mailinabox.email/"><img src="/assets/img/provider/Mail-in-a-Box.png" width="200" height="70" class="img-fluid float-left" alt="Mail-in-a-Box" style="margin-right:10px;"></a> <a href="https://mailinabox.email/"><img src="/assets/img/provider/Mail-in-a-Box.png" width="200" height="70" class="img-fluid float-left" alt="Mail-in-a-Box" style="margin-right:10px;"></a>
<p>Take it a step further and get control of your email with this easy-to-deploy mail server in a box. Mail-in-a-Box lets you become your own mail service provider in a few easy steps. It's sort of like making your own Gmail, but one you control from top <p>Take it a step further and get control of your email with this easy-to-deploy mail server in a box. Mail-in-a-Box lets you become your own mail service provider in a few easy steps. It's sort of like making your own Gmail, but one you control from top
to bottom. Technically, Mail-in-a-Box turns a fresh cloud computer into a working mail server. But you don't need to be a technology expert to set it up. <strong>More: <a href="https://mailinabox.email/">https://mailinabox.email/</a></strong></p> to bottom. Technically, Mail-in-a-Box turns a fresh cloud computer into a working mail server. But you don't need to be a technology expert to set it up. <strong>More: <a href="https://mailinabox.email/">https://mailinabox.email/</a></strong></p>

View File

@ -4,7 +4,6 @@
<strong>If you are currently using an Instant Messenger like LINE, Telegram, Viber, <a href="https://www.eff.org/deeplinks/2016/10/where-whatsapp-went-wrong-effs-four-biggest-security-concerns">WhatsApp</a>, or plain SMS messages you should pick an alternative here.</strong> <strong>If you are currently using an Instant Messenger like LINE, Telegram, Viber, <a href="https://www.eff.org/deeplinks/2016/10/where-whatsapp-went-wrong-effs-four-biggest-security-concerns">WhatsApp</a>, or plain SMS messages you should pick an alternative here.</strong>
</div> </div>
{% include cardv2.html {% include cardv2.html
title="Signal" title="Signal"
image="/assets/img/tools/Signal.png" image="/assets/img/tools/Signal.png"
@ -20,7 +19,6 @@ windows=""
linux="" linux=""
%} %}
{% include cardv2.html {% include cardv2.html
title="Wire" title="Wire"
image="/assets/img/tools/wire.png" image="/assets/img/tools/wire.png"

View File

@ -2,7 +2,8 @@
<h3>Who is required to hand over the encryption keys to authorities?</h3> <h3>Who is required to hand over the encryption keys to authorities?</h3>
<p>Mandatory <a href="https://en.wikipedia.org/wiki/Key_disclosure_law">key disclosure laws</a> require individuals to turn over encryption keys to law enforcement conducting a criminal investigation. How these laws are implemented (who may be legally compelled to assist) vary from nation to nation, but a warrant is generally required. Defenses against key disclosure laws include steganography and encrypting data in a way that provides plausible deniability.</p> <p><a href="https://en.wikipedia.org/wiki/Steganography">Steganography</a> involves hiding sensitive information (which may be encrypted) inside of ordinary data (for example, encrypting an image file and then hiding it in an audio file). With plausible deniability, data is encrypted in a way that prevents an adversary from being able to prove that the information they are after exists (for example, one password may decrypt benign data and another password, used on the same file, could decrypt sensitive data).</p> <p>Mandatory <a href="https://en.wikipedia.org/wiki/Key_disclosure_law">key disclosure laws</a> require individuals to turn over encryption keys to law enforcement conducting a criminal investigation. How these laws are implemented (who may be legally compelled to assist) vary from nation to nation, but a warrant is generally required. Defenses against key disclosure laws include steganography and encrypting data in a way that provides plausible deniability.</p>
<p><a href="https://en.wikipedia.org/wiki/Steganography">Steganography</a> involves hiding sensitive information (which may be encrypted) inside of ordinary data (for example, encrypting an image file and then hiding it in an audio file). With plausible deniability, data is encrypted in a way that prevents an adversary from being able to prove that the information they are after exists (for example, one password may decrypt benign data and another password, used on the same file, could decrypt sensitive data).</p>
<div class="row mb-2"> <div class="row mb-2">

View File

@ -11,7 +11,7 @@
image="/assets/img/tools/Joplin.png" image="/assets/img/tools/Joplin.png"
url="https://joplinapp.org/" url="https://joplinapp.org/"
footer="OS: Windows, macOS, Linux, iOS, Android, Firefox/Chrome (Web Clipper)." footer="OS: Windows, macOS, Linux, iOS, Android, Firefox/Chrome (Web Clipper)."
description="Joplin is a free, open source, fully featured note taking and to-do application, which can handle a large number of markdown notes organized into notebooks and tags. It offers E2E encryption and can sync through Nextcloud, Dropbox and more. It also offers easy import from Evernote and plain text notes." description="Joplin is a free, open source, fully featured note taking and to-do application, which can handle a large number of markdown notes organized into notebooks and tags. It offers E2EE encryption and can sync through Nextcloud, Dropbox and more. It also offers easy import from Evernote and plain text notes."
%} %}
{% include card.html color="primary" {% include card.html color="primary"

View File

@ -23,6 +23,7 @@
description='KeePass is a free open source password manager, which helps you to manage your passwords in a secure way. All passwords in one database, which is locked with one description='KeePass is a free open source password manager, which helps you to manage your passwords in a secure way. All passwords in one database, which is locked with one
master key or a key file. The databases are encrypted using the best and most secure encryption algorithms currently known: AES and Twofish. See also: <a href="https://keepassxc.org/">KeePassXC</a> with official native cross-platform support for Windows/macOS/Linux.' master key or a key file. The databases are encrypted using the best and most secure encryption algorithms currently known: AES and Twofish. See also: <a href="https://keepassxc.org/">KeePassXC</a> with official native cross-platform support for Windows/macOS/Linux.'
%} %}
{% include card.html color="warning" {% include card.html color="warning"
title="LessPass - Browser" title="LessPass - Browser"
image="/assets/img/tools/LessPass.png" image="/assets/img/tools/LessPass.png"

View File

@ -1,6 +1,7 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
{% include head.html %} {% include head.html %}
<body data-spy="scroll" data-target="#navbar"> <body data-spy="scroll" data-target="#navbar">
<header> <header>
{% include nav.html %} {% include nav.html %}
@ -9,4 +10,5 @@
{{ content }} {{ content }}
{% include scripts.html %} {% include scripts.html %}
</body> </body>
</html> </html>

View File

@ -1,4 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e # halt script on error set -e # halt script on error
bundle exec jekyll build bundle exec jekyll build

13
bin/get-html-ls.js Normal file
View File

@ -0,0 +1,13 @@
const glob = require('glob');
const pattern = '**/*.html';
const options = {
'ignore': [
'_site/**/*.html',
'node_modules/**/*.html'
]
};
glob(pattern, options, (error, files) => {
if (error) throw error;
process.stdout.write(files.join('\n') + '\n');
});

22
bin/html-beautify-check.sh Executable file
View File

@ -0,0 +1,22 @@
#!/usr/bin/env bash
# Runs html-beautify's format check and errors with 0/1 if it needs to be changed.
APPDIR=$(readlink -f $(dirname $(dirname $0)))
TMPDIR=$(mktemp -d)
cd $APPDIR
for line in $*; do
filepath=$(readlink -f $line)
file=${filepath/$APPDIR\//}
mkdir -p $TMPDIR/$(dirname $file)
cp $APPDIR/$file $TMPDIR/$file
done
message=$(find $TMPDIR -type f | xargs node_modules/.bin/html-beautify -r | grep -v unchanged || true)
if [[ $message ]]; then
echo "$message" | sed "s#$TMPDIR##g" | sed "s#\.\.\/##g"
rm -rf $TMPDIR
exit 1
fi
rm -rf $TMPDIR

0
deleteme Normal file
View File

1614
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

28
package.json Normal file
View File

@ -0,0 +1,28 @@
{
"name": "privacytools.io",
"version": "1.0.0",
"devDependencies": {
"glob": "^7.1.4",
"husky": "^3.0.2",
"js-beautify": "^1.10.1",
"lint-staged": "^9.2.1"
},
"scripts": {
"build": "bundle exec jekyll build",
"serve": "bundle exec jekyll serve",
"format:html": "node bin/get-html-ls.js | xargs node_modules/.bin/html-beautify -r",
"format-test:html": "node bin/get-html-ls.js | xargs bash ./bin/html-beautify-check.sh"
},
"husky": {
"hooks": {
"pre-commit": "node_modules/.bin/lint-staged"
}
},
"repository": {
"type": "git",
"url": "git+https://github.com/privacytoolsIO/privacytools.io.git"
},
"bugs": {
"url": "https://github.com/privacytoolsIO/privacytools.io/issues"
}
}

View File

@ -58,6 +58,7 @@ description: "Find a no-logging VPN operator who isn't out to sell or read your
<li><a href="https://write.privacytools.io/my-thoughts-on-security/slicing-onions-part-1-myth-busting-tor">Slicing Onions: Part 1 Myth-busting Tor</a> by blacklight447</li> <li><a href="https://write.privacytools.io/my-thoughts-on-security/slicing-onions-part-1-myth-busting-tor">Slicing Onions: Part 1 Myth-busting Tor</a> by blacklight447</li>
<li><a href="https://write.privacytools.io/my-thoughts-on-security/slicing-onions-part-2-onion-recipes-vpn-not-required">Slicing Onions: Part 2 Onion recipes; VPN not required</a> by blacklight447</li> <li><a href="https://write.privacytools.io/my-thoughts-on-security/slicing-onions-part-2-onion-recipes-vpn-not-required">Slicing Onions: Part 2 Onion recipes; VPN not required</a> by blacklight447</li>
</ol> </ol>
<p> </p>
</div>
</div> </div>
</div> </div>

View File

@ -37,10 +37,7 @@ description: "This Privacy Policy explains what information privacytoolsIO and i
<p>privacytoolsIO uses a self-hosted Matomo install to track visitor data. You can opt out entirely using the form below. This form may not function correctly with <p>privacytoolsIO uses a self-hosted Matomo install to track visitor data. You can opt out entirely using the form below. This form may not function correctly with
an ad blocker enabled.</p> an ad blocker enabled.</p>
<iframe <iframe style="border: 1; height: 120px; width: 100%;" src="https://stats.privacytools.io/index.php?module=CoreAdminHome&action=optOut&language=en&backgroundColor=&fontColor=212529&fontSize=1rem&fontFamily=-apple-system%2CBlinkMacSystemFont%2C%22Segoe%20UI%22%2CRoboto%2C%22Helvetica%20Neue%22%2CArial%2Csans-serif%2C%22Apple%20Color%20Emoji%22%2C%22Segoe%20UI%20Emoji%22%2C%22Segoe%20UI%20Symbol%22%2C%22Noto%20Color%20Emoji%22"></iframe>
style="border: 1; height: 120px; width: 100%;"
src="https://stats.privacytools.io/index.php?module=CoreAdminHome&action=optOut&language=en&backgroundColor=&fontColor=212529&fontSize=1rem&fontFamily=-apple-system%2CBlinkMacSystemFont%2C%22Segoe%20UI%22%2CRoboto%2C%22Helvetica%20Neue%22%2CArial%2Csans-serif%2C%22Apple%20Color%20Emoji%22%2C%22Segoe%20UI%20Emoji%22%2C%22Segoe%20UI%20Symbol%22%2C%22Noto%20Color%20Emoji%22"
></iframe>
<p>privacytoolsIO respects your Do Not Track setting in your browser. Users with Do Not Track enabled will not be tracked by any of our platforms. <p>privacytoolsIO respects your Do Not Track setting in your browser. Users with Do Not Track enabled will not be tracked by any of our platforms.
You are also free to block stats.privacytools.io using whatever method you prefer with no detrimental effects on your experience using our services.</p> You are also free to block stats.privacytools.io using whatever method you prefer with no detrimental effects on your experience using our services.</p>