Verified Commit e2c8e653 authored by Tom Riedl's avatar Tom Riedl

馃攳 #24 Added meta code

parent 9d4456da
Pipeline #238085007 passed with stages
in 5 minutes and 36 seconds
......@@ -102,6 +102,56 @@ export const config = /*#__PURE__*/configuration({
async function PostProcessHtml(filepath: string): Promise<void>
{
function applySeoAttributes(html: string, tags: Array<string>): string
{
let result: string = html;
// Tags
const keywordsTag: RegExpMatchArray | null = html.match(/<meta name="keywords" content="(.*?)">/gm);
if (tags.length && keywordsTag && keywordsTag.length)
{
result = result.replace(keywordsTag[0], `<meta name="keywords" content="${tags.join(",")}">`);
}
const titleCode: RegExpMatchArray | null = result.match(/<title>(.*?)<\/title>/);
if (titleCode && titleCode.length)
{
const title: string = titleCode[1].trim();
result = result.replace('<link ', `<meta property="og:title" content="${title}"><link `);
}
const typeCode: RegExpMatchArray | null = result.match(/<code>##Type##:(.*?)<\/code>/);
if (typeCode && typeCode.length)
{
const type: string = typeCode[1].trim();
result = result.replace('<link ', `<meta property="og:type" content="${type}"><link `);
result = result.replace(typeCode[0], "");
}
const localeCode: RegExpMatchArray | null = result.match(/<code>##Locale##:(.*?)<\/code>/);
if (localeCode && localeCode.length >= 2)
{
const locale: string = localeCode[1].trim();
result = result.replace(` lang="de"`, ` lang="${locale.substr(0, 2)}"`);
result = result.replace(localeCode[0], "");
result = result.replace('<link ', `<meta property="og:locale" content="${locale.replace("-", "_")}"><link `);
}
const descriptionCode: RegExpMatchArray | null = result.match(/<code>##Description##:(.*?)<\/code>/);
const descriptionTag: RegExpMatchArray | null = html.match(/<meta name="description" content="(.*?)">/);
if (descriptionCode && descriptionCode.length >= 2 && descriptionTag && descriptionTag.length)
{
const description: string = descriptionCode[1].trim();
result = result.replace(descriptionTag[0], `<meta name="description" content="${description}">`);
result = result.replace(descriptionCode[0], "");
result = result.replace('<link ', `<meta property="og:description" content="${description}"><link `);
}
result = result.replace('<link ', `<meta property="og:site_name" content="${config.page.title.base}"><link `);
return result;
}
fse.readFile(filepath, "utf8", function (error: any, data: any)
{
if (error)
......@@ -154,10 +204,11 @@ export const config = /*#__PURE__*/configuration({
// Replace tags
const tagsCode: RegExpMatchArray | null = result.match(/<code>##Tags##:(.*?)<\/code>/gm);
let tagList: Array<string> = [];
for (const codeBlock of tagsCode || [])
{
const tags: string = codeBlock.replace("<code>##Tags##:", "").replace("</code>", "").replace(",", " ").trim();
const tagList: Array<string> = tags.toLowerCase().split(" ");
tagList = tags.toLowerCase().split(" ");
const replacementTags: Array<string> = [];
for (const rawTag of tagList)
{
......@@ -168,6 +219,8 @@ export const config = /*#__PURE__*/configuration({
result = result.replace(codeBlock, replacement);
}
result = applySeoAttributes(result, tagList);
// Extract first image to add it to og:image
const imageUrls: Array<string> | undefined = result.match(/<img [^>]*src="[^"]*"[^>]*>/gm)?.map((x: string) => x.replace(/.*src="([^"]*)".*/, '$1'));
const coverImage: string = imageUrls && imageUrls.length ? imageUrls[0] : "";
......@@ -176,6 +229,12 @@ export const config = /*#__PURE__*/configuration({
result = result.replace('<link ', `<meta property="og:image" content="${coverImage}"><link `);
}
// Remove empty tags
result = result.replace(/<p><\/p>/g, "");
result = result.replace(/<p>\n<\/p>/g, "");
result = result.replace(/<p>\n\n<\/p>/g, "");
result = result.replace(/<link href="" rel="stylesheet">/g, "");
fse.writeFile(filepath, result, "utf8", function (error: any)
{
if (error) return console.error(error);
......
......@@ -86,6 +86,7 @@
"rsen",
"rueckverguetung",
"rxcbja",
"satoshi",
"stackshare",
"tigen",
"tomriedl",
......@@ -93,5 +94,11 @@
"txqmnh",
"vertesten",
"zhkrin"
]
],
"files.exclude": {
"**/*.jpeg": true,
"**/*.jpg": true,
"**/*.png": true,
"tag/**": true
}
}
\ No newline at end of file
# Changelog
`##Description##: Alle 脛nderungen der Website tomriedl.com`
`##Type##: article`
`##Locale##: de-DE`
Hier siehst du alle 脛nderungen der Website.<br />
Die Quelltexte des Projekts liegen unter <https://gitlab.com/TomRiedl/tomriedl.com>.
Offene Issues ansehen oder neue eintragen kannst du unter <https://gitlab.com/TomRiedl/tomriedl.com/-/issues>
`##Tags##: changelog`
\ No newline at end of file
# Datenschutzerkl盲rung
`##Description##: Datenschutzerkl盲rung von tomriedl.com`
`##Type##: article`
`##Locale##: de-DE`
## Datenschutz
Ich nehme den Schutz deiner pers枚nlichen Daten sehr ernst. Ich behandle deine personenbezogenen Daten vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerkl盲rung.
......@@ -52,4 +56,6 @@ Liste der Unterauftragsverarbeiter nach Art. 28 Abs. 1 DSGVO.
| Nummer | Firma | Kontakt | Leistung |
| --- | --- | --- | --- |
| 1 | CyanCor GmbH | Innstr. 71, 83022 Rosenheim, Germany<br /><https://cyancor.com/> | - Archivierung der tomriedl.com-E-Mails nach der gesetzlichen Archivierungspflicht<br />-Website-Backup |
| 2 | Serverprofis GmbH | Mondstr. 2-4, 85622 Feldkirchen, Germany<br /><https://service.serverprofis.net/aff.php?aff=846> | - Hosting der Website<br />- Hosting der E-Mails |
\ No newline at end of file
| 2 | Serverprofis GmbH | Mondstr. 2-4, 85622 Feldkirchen, Germany<br /><https://service.serverprofis.net/aff.php?aff=846> | - Hosting der Website<br />- Hosting der E-Mails |
`##Tags##: datenschutzerkl盲rung dsgvo gdpr`
\ No newline at end of file
# Impressum
`##Description##: Impressum von tomriedl.com`
`##Type##: article`
`##Locale##: de-DE`
- Thomas Riedl<br />Sch眉tzenstr. 23<br />83024 Rosenheim<br />Germany<br />
- Telefon: +49 8031 208 220 1<br />Kein Telefonsupport, bei Fragen zu Kryptow盲hrungen, Trading etc. biete ich keine Hilfe 眉ber Telefon<br />
- Kontakt 眉ber Telegram: [t.me/tomriedl_group](https://t.me/tomriedl_group)
......@@ -12,4 +16,6 @@ for(var rxcbja=["aw","ZQ","aQ","LQ","bw","aQ","Lg","PA","dw","aA","PA","Ig","ZQ"
var email = "";
for(var i=0;i<zhkrin.length;i++) {email += atob(zhkrin[i]+"==")};
document.getElementById("contactEmail").innerHTML = email;
</script>
\ No newline at end of file
</script>
`##Tags##: impressum`
\ No newline at end of file
# Abk眉rzungen, Definitionen und Begriffe der Kryptowelt
`##Description##: Beschreibung h盲ufig verwendeter Begriffe aus der Welt der Kryptow盲hrungen`
`##Type##: article`
`##Locale##: de-DE`
Wie jeder andere Fachbereich hat auch die Kryptowelt ihre eigenen Bezeichnungen. Die wichtigsten sind hier aufgelistet.
Sollte etwas fehlen, teile es mir gerne auf [GitLab](https://gitlab.com/TomRiedl/tomriedl.com/-/issues/new) oder [Telegram](https://t.me/tomriedl_group) mit.
......@@ -47,9 +51,12 @@ Sollte etwas fehlen, teile es mir gerne auf [GitLab](https://gitlab.com/TomRiedl
| <h4 id="minting">Minting</h4> | Pr盲gen | Das Erzeugen von Coins/Tokens ohne den Einsatz von Ressourcen. Der Begriff entstammt dem Pr盲gen von M眉nzen. |
| <h4 id="nanoeth">Nanoeth</h4> | - | Siehe [Gwei](#gwei). |
| <h4 id="node">Node</h4> | Knoten | Ein Knoten eines Netzwerkes. Meist ein Verbindungspunkt f眉r die Daten眉bertragung, Speicherung oder der Validierung von Transaktionen. |
| <h4 id="orderbuch">Orderbuch</h4> | - | Verzeichnis aller Kauf- und Verkaufsorders eines Handelspaares einer B枚rse. |
| <h4 id="otc">OTC</h4> | Over the Counter | Handel von Aktien/Kryptow盲hrungen/Assets au脽erhalb der [Orderb眉cher](#orderbuch) von B枚rsen. |
| <h4 id="pow">PoW</h4> | Proof of Work | Nachweis, meist in Form von CPU-Arbeit f眉r die Echtheit einer Sache (z.B. einer Transaktion). Ein m枚gliches Mittel gegen Spam. |
| <h4 id="roi">ROI</h4> | Return on Investment | Betriebswirtschaftliche Kennzahl zur Messung der Rendite. |
| <h4 id="safu">SAFU</h4> | Secure Asset Fund for Users | Eine Notfallreserve um User bei Hacks oder Verlusten Assets zur眉ckzuzahlen. Ein [Backronym](https://de.wikipedia.org/wiki/Backronym) das durch das Video [Funds Are Safu von Bizonacci](https://www.youtube.com/watch?v=DelF6zEHXpE) nach den [Twitter-Posts "Funds are safe"](https://twitter.com/cz_binance) von [Binance](BINANCE_URL)-CEO entstand. |
| <h4 id="satoshi">Satoshi</h4> | - | Kleinste Bitcoin-Einheit. 1 Satoshi entspricht 0.00000001 [BTC](#btc) |
| <h4 id="smart-contract">Smart Contract</h4> | "Intelligenter" Vertrag | Ein Smart Contract ist ein Vertrag, der 眉ber Protokolle und Schnittstellen digital bedient werden kann. [Smart Contract auf Wikipedia](https://de.wikipedia.org/wiki/Smart_Contract) |
| <h4 id="stablecoin">Stablecoin</h4> | - | Kryptow盲hrungen, die den Wert einer bestimmten W盲hrung abbilden und immer konstant halten. Beispiel: 1 USDT entspricht immer $1.00 |
| <h4 id="testnet">Testnet</h4> | Test-Netzwerk | Ein Blockchain-Netzwerk zu Testzwecken, welche zur Entwicklung und der Vertestung einer Blockchain verwendet wird. |
......
# Liquid Earn - Lending Plattform
`##Description##: Bei Liquid Zinsen auf die Kryptow盲hrungen erhalten`
`##Type##: article`
`##Locale##: de-DE`
![Liquid f眉hrt Lending ein - Liquid Earn](liquid-earn.jpg)
Die Kryptob枚rse [Liquid](LIQUID_URL) (alter Name "Quoinex") f眉hrt demn盲chst **Liquid Earn** ein. Hierbei partnern sie mit der Lending-Plattform [Celsius](CELSIUS_URL) aus England. Bei Celsius kann man sich mittlerweile als deutscher B眉rger nicht mehr registrieren, man hatte also keine M枚glichkeit mehr von dem Zinssystem von Celsius zu profitieren. Nun ist das 眉ber Liquid dennoch m枚glich.
......
# Telegram
`##Description##: N眉tzliche Telegram-Channels und Telegram-Gruppen`
`##Type##: article`
`##Locale##: de-DE`
## Offizielle Telegram-Gruppe und Channel
- [Allgemeine Telegram-Gruppe: https://t.me/tomriedl_group](https://t.me/tomriedl_group)
- [Channel zur Homepage: https://t.me/tomriedl_news](https://t.me/tomriedl_news)
## Empfohlene Channels
- Crypto Ticker: <https://t.me/crypto_ticker>
- Bullion Ticker: <https://t.me/bullion_ticker>
\ No newline at end of file
- Bullion Ticker: <https://t.me/bullion_ticker>
```##Tags##: telegram channel gruppe group kanal```
# 脺ber Tom Riedl
`##Description##: Informationen 眉ber Tom Riedl`
`##Type##: article`
`##Locale##: de-DE`
![Tom Riedl](tom-riedl.png)
馃彔 Rosenheim<br />
......
# Anleitung f眉r neues Bitfinex Affiliate/Referral-System
`##Description##: Affiliate Link erstellen, Erkl盲rung Referral-System`
`##Type##: article`
`##Locale##: de-DE`
![Anleitung f眉r neues Bitfinex Affiliate/Referral-System](/wp-content/uploads/2019/10/bitfinex-affiliate-programm-anleitung.png)
Seit 眉ber einem Jahr war das [Affiliate-System von Bitfinex](BITFINEX_URL) deaktiviert und wurde nun als neues System 2019-10-17 um 12:00 Uhr neu freigegeben.
......
# Binance Referral Code 鈥 Affiliate Link, wo finde ich ihn?
`##Description##: 20% Kommission erhalten, Binance Referral Link/Affiliate Code erstellen`
`##Type##: article`
`##Locale##: de-DE`
![Binance Referral Code Affiliate Link erzeugen](/wp-content/uploads/2017/12/binance-referral-code.png)
Bei [Binance](BINANCE_URL) erh盲lt man 20% Kommission aller eingeladenen Personen. 脛hnlich wie bei [Bitfinex](BITFINEX_URL) ([Anleitung](/version1/anleitung-fuer-neues-bitfinex-affiliate-referral-system/)) erh盲lt man die Verg眉tung in der jeweiligen W盲hrung, in der die geworbene Personen gehandelt hat. Es ist m枚glich, einen R眉ckverg眉tungssatz f眉r den geworbenen festzulegen.
......
# Bitcoin Expresskauf mit Fidor und Bitcoin.de
`##Description##: Bitcoin schnell und unkompliziert 眉ber bitcoin.de und Fidor kaufen`
`##Type##: article`
`##Locale##: de-DE`
![Bitcoin Expresskauf mit Fidor und Bitcoin.de](/wp-content/uploads/2017/10/bitcoin.de-1000.png)
Bitcoins k枚nnen auf verschiedenen Wegen erworben werden, sehr schnell geht das jedoch mit dem neuen [Express-Kauf von bitcoin.de](https://www.bitcoin.de/de/r/b3dhpd) 眉ber [Fidor](https://banking.fidor.de/register?ibid=22253282). Fidor ist eine Online-Bank mit kostenlosem Bankkonto und vielen n眉tzlichen Werkzeugen, u.a. einer vollst盲ndigen Banking-API. 脺ber diese Banking-API wird der Bitcoinkauf von [bitcoin.de](https://www.bitcoin.de/de/r/b3dhpd) abgewickelt. Ab 14.02.2018 wird hierbei allerdings eine Transaktionsgeb眉hr von 0.5% des Transaktionsvolumens erhoben.
......
# Bitfinex Invitation Code (Einladungscode)
`##Description##: Bitfinex Ref-Link f眉r verg眉nstigte Geb眉hren`
`##Type##: article`
`##Locale##: de-DE`
![bitfinex referral affiliate einladungscode](/wp-content/uploads/2017/12/bitfinex-invitation-code-1.png)
Verwende f眉r die Registrierung folgenden Link f眉r eine R眉ckverg眉tung von 6%:<br /><BITFINEX_URL><br /><br />
......
# Coinlend-App
`##Description##: Beschreibung der Coinlend-App f眉r Android und iOS`
`##Type##: article`
`##Locale##: de-DE`
![coinlend app](/wp-content/uploads/2018/07/coinlend-app.jpg)
Die deutschen Entwickler aus Mannheim haben mit [coinlend](COINLEND_URL) das zinsbringende Verleihen von Kryptow盲hrungen zu einem effizienten und komfortablen Service gemacht.
......
# EOSfinex: Neue dezentrale B枚rse von Bitfinex
`##Description##: Ank眉ndigung der dezentralen Kryptob枚rse EOSfinex`
`##Type##: article`
`##Locale##: de-DE`
![EOSfinex: Neue dezentrale B枚rse von Bitfinex](/wp-content/uploads/2018/02/eosfinex-1.png)
Bitfinex hat am 12. Februar 2018 [angek眉ndigt](https://medium.com/bitfinex/announcing-eosfinex-69eea273369f), dass sie an der dezentrale Kryptob枚rse [EOSfinex](https://www.eosfinex.com/) arbeiten. Dabei nutzen sie die Technologie EOS. EOS ([Homepage](https://eos.io/), [Whitepaper](https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md), [Quelltexte](https://github.com/eosio)) ist eine Open Source Smart Contract Plattform, auf dessen Basis dezentrale Anwendungen entwickelt werden k枚nnen.
......
# ICO-Teilnahme am Beispiel von DragonChain
`##Description##: Anleitung und Beschreibung einer ICO-Teilnahme`
`##Type##: article`
`##Locale##: de-DE`
![ICO-Teilnahme am Beispiel von DragonChain](/wp-content/uploads/2017/10/dragonchain-cover.png)
[ICOs (Initial Coin Offerings)](/krypto/abkuerzungen-definitionen-und-begriffe-der-kryptowelt/) sind eine interessante und oft auch lukrative M枚glichkeit der Spekulation.
......
# IOTA 鈥 Erste Hilfe, Fragen und Antworten (FAQ)
`##Description##: H盲ufige Fragen und Antworten zu IOTA`
`##Type##: article`
`##Locale##: de-DE`
![IOTA 鈥 Erste Hilfe, Fragen und Antworten (FAQ)](/wp-content/uploads/2017/12/iota-faq.png)
Auf dieser Seite findest du Antworten und Hilfe zu bestimmten Fehlern der IOTA Wallet oder ganz allgemein zu IOTA. Solltest du einen Fehler oder eine Frage vermissen, dann [erstelle hierzu einfach ein Issue](https://gitlab.com/TomRiedl/tomriedl.com/-/issues) oder schreibe in der [Telegram-Gruppe](/telegram/).
......
# IOTA Seed erzeugen / IOTA-Seed-Generator
`##Description##: Eine sichere Seed f眉r IOTA erstellen`
`##Type##: article`
`##Locale##: de-DE`
![IOTA Seed-Generator](/wp-content/uploads/2017/06/iota-seed-generator.png)
Die IOTA-Seed muss 81 Zeichen lang sein und darf nur die Zeichen A-Z und die Ziffer 9 enthalten.
......
# IOTA Snapshots
`##Description##: Was sind IOTA-Snapshots und was ist hierf眉r zu tun`
`##Type##: article`
`##Locale##: de-DE`
![IOTA Snapshots](/wp-content/uploads/2018/02/iota-snapshots.png)
`Ver枚ffentlicht 2018-02-04, Autor: Tom Riedl`
......
# IOTA Trading auf Bitfinex
`##Description##: IOTA auf Bitfinex erwerben`
`##Type##: article`
`##Locale##: de-DE`
![IOTA Trading auf Bitfinex](/wp-content/uploads/2017/06/iota-trading-announcement.jpeg)
Ab morgen, den 13. Juni 2017 kann endlich IOTA auf [Bitfinex](BITFINEX_URL) gehandelt werden. Der Start ist 15:00 Uhr lokale Zeit (13:00 UTC).
......
# Kryptow盲hrungen gegen Zinsen verleihen 鈥 Coinlend Anleitung/Tutorial
`##Description##: Zinsen f眉r Krypto-Assets erhalten, eine Anleitung`
`##Type##: article`
`##Locale##: de-DE`
![Kryptow盲hrungen gegen Zinsen verleihen 鈥 Coinlend Anleitung Tutorial](/wp-content/uploads/2017/08/StockSnap_G3YOGRBLF3.jpg)
Wer sich Kryptow盲hrungen zur眉cklegt, f眉r den Fall, dass sie sp盲ter mehr wert sind, l盲sst diese meist in einem Wallet liegen. Besser ist es nat眉rlich, wenn man hierf眉r Zinsen bekommt.
......@@ -30,4 +34,4 @@ Um weitere W盲hrungen f眉r das Trading zu aktivieren, m眉ssen diese in Bitfinex
[Weitere Artikel zu coinlend](/tag/coinlend/)
```##Tags##: coinlend lending verleih kryptow盲hrung bitfinex poloniex```
```##Tags##: anleitung tutorial coinlend lending verleih kryptow盲hrung bitfinex poloniex```
# Risiken beim Spekulieren mit Kryptow盲hrungen
`##Description##: Eine 脺bersicht von m枚glichen Risiken beim Spekulieren mit Kryptow盲hrungen`
`##Type##: article`
`##Locale##: de-DE`
![Risiken beim Spekulieren mit Kryptow盲hrungen](/wp-content/uploads/2017/12/AvalancheDanger.jpg)
Das Spekulieren mit Kryptow盲hrungen ist mit hohen Risiken verbunden. Die wichtigsten sind:
......
# Spamreduzierung durch Catch-All E-Mails f眉r alle Mitarbeiter
`##Description##: Konzept zur Spam-Reduzierung durch Catch-All E-Mails`
`##Type##: article`
`##Locale##: de-DE`
![Spamreduzierung durch Catch-All E-Mails f眉r alle Mitarbeiter](/wp-content/uploads/2014/09/20H1.jpg)
## Problemstellung
......
# Telegram-Account mit zweistufiger Best盲tigung absichern (Two-Step-Verification)
`##Description##: Eine Anleitung um Telegram zus盲tzlich mit einem Passwort abzusichern`
`##Type##: article`
`##Locale##: de-DE`
![Telegram-Account mit zweistufiger Best盲tigung absichern (Two-Step-Verification)](/wp-content/uploads/2018/04/telegram-zwei-wege-authentifizierung.png)
Erstellt man einen Telegram-Account ist dieser zuerst nur 眉ber die eigenen Handynummer gesichert. Gelangt jemand in den Besitz des Handys kann dieser ohne gro脽en Aufwand den Telegram-Account auf einem anderen Ger盲t neu verbinden. Hierzu muss das Mobilger盲t oftmals nicht entsperrt werden, da die Nachrichten oder SMS direkt auf dem Lock-Screen angezeigt werden.
......@@ -29,4 +33,4 @@ Hier findest du Anleitungen f眉r Telegram, Telegram X, sowie Telegram Desktop.
4. Zweimal dein Passwort eingeben, optional ein Kennwort-Hinweis und deine E-Mail. Anschlie脽end auf **Speichern** klicken.<br />![Telegram Desktop Two-Factor-Authentication aktivieren](/wp-content/uploads/2018/04/telegram-desktop-two-factor-04-300x225.png)
5. E-Mail 枚ffnen und Best盲tigungslink anklicken.<br />![Telegram Best盲tigungsemail Zweistufige Best盲tigung](/wp-content/uploads/2018/04/telegram-x-mobile-two-factor-07-300x120.png)
```##Tags##: telegram tfa 2fa sicherheit```
```##Tags##: telegram tfa 2fa totp sicherheit```
# Telegram Tipps und Tricks
`##Description##: Tipps und Tricks f眉r Telegram`
`##Type##: article`
`##Locale##: de-DE`
![Telegram Tipps und Tricks](/wp-content/uploads/2018/06/telegram-tipps-und-tricks.png)
[Telegram](https://telegram.org/) ist einer der besten Messenger, die es derzeit gibt. Neben den sehr stabilen Apps bietet Telegram end-to-end verschl眉sselte Chats, Gruppen, Channels, Bots, verschl眉sselte Telefonanrufe, eine Client-Library und API f眉r Entwickler, Apps f眉r [Android](https://play.google.com/store/apps/details?id=org.telegram.messenger), [iOS](https://itunes.apple.com/app/telegram-messenger/id686449807) und [WindowsPhone](https://www.microsoft.com/de-de/p/telegram-messenger/9wzdncrdzhs0), sowie eine [Web-Version](https://web.telegram.org/) und Clients f眉r [Windows](https://desktop.telegram.org/), [Linux](https://desktop.telegram.org/) und [MacOS](https://macos.telegram.org/). Telegram ist [DSGVO-konform](https://telegram.org/faq#q-what-about-gdpr).
......
# Two-Factor Authentication / Multi-Factor Authentication (TFA, 2FA, MFA, TOTP)
`##Description##: Was ist und wie funktioniert eine Authentifizierung 眉ber mehrere Faktoren`
`##Type##: article`
`##Locale##: de-DE`
![Two-Factor Authentication / Multi-Factor Authentication (TFA, 2FA, MFA, TOTP)](/wp-content/uploads/2017/12/tfa.jpg)
Die Two-Factor Authentication (TFA, 2FA) oder Zwei-Faktor-Authentifizierung ist eine Form der Multi-Factor Authentication (MFA), bei der zwei der drei Faktoren verwendet werden.<br />
......
# Neue Website - Warum und wie
`##Description##: Eine technische 脺bersicht, wie die Website tomriedl.com erzeugt wurde`
`##Type##: article`
`##Locale##: de-DE`
<img src="/logo-200.png" style="float:left;margin-right:1em;width:100px;height:100px;" alt="Tom Riedl Logo klein" />
Die alte Version war mit WordPress aufgesetzt. In Zeiten von Progressive Web Apps (PWA), Headless-CMS und REST-APIs geh枚rt WordPress wohl eher zu einem Relikt vergangener Zeiten. Den Umbau hatte ich also schon lange vor und habe ihn nun endlich umgesetzt. Wie die aktuelle Website aufgesetzt ist, erkl盲re ich in diesem Artikel.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment