Daniel Ledda 2 mesi fa
parent
commit
bcb820f35e
36 ha cambiato i file con 4427 aggiunte e 61 eliminazioni
  1. +21
    -0
      app/DJEmail.tsx
  2. +355
    -0
      app/generative-energy/GECalculator.tsx
  3. +61
    -0
      app/generative-energy/GEDeutsch.tsx
  4. +75
    -0
      app/generative-energy/GEDeutschArticle.tsx
  5. +33
    -0
      app/generative-energy/GEMain.tsx
  6. +21
    -0
      app/generative-energy/GEPaypal.tsx
  7. +67
    -0
      app/generative-energy/GERoot.tsx
  8. +298
    -0
      app/generative-energy/calc.ts
  9. +10
    -0
      app/generative-energy/client.ts
  10. +135
    -0
      app/generative-energy/half-life.ts
  11. +4
    -3
      app/home/App.tsx
  12. +13
    -0
      app/meta.ts
  13. +74
    -0
      app/reactivity.ts
  14. +0
    -1
      app/test.tsx
  15. +122
    -0
      app/tooltip.tsx
  16. +50
    -0
      app/useAsyncState.ts
  17. +59
    -0
      app/util.ts
  18. +9
    -1
      deno.json
  19. +28
    -0
      deno.lock
  20. +1
    -0
      deps.ts
  21. +56
    -15
      main.ts
  22. +25
    -0
      public/generative-energy/index.html
  23. +651
    -0
      public/generative-energy/static/content/caffeine.html
  24. +801
    -0
      public/generative-energy/static/content/hypothyroidism.html
  25. +557
    -0
      public/generative-energy/static/content/hypothyroidism.md
  26. +198
    -0
      public/generative-energy/static/styles.css
  27. +18
    -0
      public/home/index.html
  28. +1
    -1
      public/home/static/app.js
  29. +0
    -0
      public/home/static/icon.webp
  30. +0
    -0
      public/home/static/image.jpeg
  31. +0
    -0
      public/home/static/styles.css
  32. +0
    -27
      public/index.html
  33. +1
    -0
      raypeat-articles/articles.html
  34. +485
    -0
      raypeat-articles/articles.ts
  35. +177
    -0
      raypeat-articles/process-and-cleanup.ts
  36. +21
    -13
      transpile.ts

+ 21
- 0
app/DJEmail.tsx Vedi File

@@ -0,0 +1,21 @@
import { defineComponent } from "vue";

export default defineComponent({
name: "dj-email",
setup(_props, { slots }) {
function clickMail() {
const a = "gmail";
const b = "com";
const c = "danjledda";
let link = "ma" + "il" + "" + "to:" + c + a + b;
link = link.slice(0, 10) + "." + link.slice(10, 11) + "." + link.slice(11, 16) + "@" + link.slice(16, 21) +
"." + link.slice(21);
window.location.href = link;
}
return () => (
<a href="#" onClick={clickMail}>
{ slots.default ? slots.default() : 'dan.j.ledda [at] gmail [dot] com' }
</a>
);
},
});

+ 355
- 0
app/generative-energy/GECalculator.tsx Vedi File

@@ -0,0 +1,355 @@
import { defineComponent, computed, ref } from 'vue';

/*
class GrainInput {
static inputs = [];
name;
unit;
mpg;
inputEl;
reference;

* @param {{
* name: string,
* mpg: number,
* reference: GrainInput | 'self',
* unit: string,
* step?: number,
* }} opts
constructor(opts) {
this.name = opts.name;
this.mpg = opts.mpg;
this.unit = opts.unit;
this.reference = opts.reference === "self" ? this : opts.reference;
this.inputEl = h("input", { type: "number", min: 0, step: opts.step ?? 1 });
eventBus.addListener(this);
}

attachInput(insertionPoint) {
insertionPoint.appendChild(this.inputEl);
this.inputEl.valueAsNumber = this.mpg;
this.inputEl.addEventListener("input", (e) => {
const newVal = (e.currentTarget)?.valueAsNumber ?? 0;
if (this !== this.reference) {
this.reference.inputEl.valueAsNumber = newVal / this.mpg;
}
eventBus.sendChange(this);
});
}

onChange() {
if (!this.reference || this === this.reference) return;
this.inputEl.valueAsNumber = this.mpg * this.reference.inputEl.valueAsNumber;
}

getCurrentValue() {
return this.inputEl.valueAsNumber;
}
}

class RatiosController {
t3Ratio = h("input", { type: "number", min: 0, step: 1 });
t4Ratio = h("input", { type: "number", min: 0, step: 1 });
t3Syn = h("input", { type: "number", min: 0 });
t4Syn = h("input", { type: "number", min: 0 });
t3 = 1;
t4 = 4;
reference;

constructor(referenceInput) {
this.reference = referenceInput;
}

attachInputs(inputs) {
inputs.t3Ratio.replaceWith(this.t3Ratio);
inputs.t4Ratio.replaceWith(this.t4Ratio);
inputs.t3Syn.replaceWith(this.t3Syn);
inputs.t4Syn.replaceWith(this.t4Syn);

this.t3Ratio.addEventListener("input", (e) => {
const newVal = (e.currentTarget)?.valueAsNumber ?? 0;
this.t3 = newVal;
this.onChange();
});

this.t4Ratio.addEventListener("input", (e) => {
const newVal = (e.currentTarget)?.valueAsNumber ?? 0;
this.t4 = newVal;
this.onChange();
});

this.t3Syn.addEventListener("input", (e) => {
const newVal = (e.currentTarget)?.valueAsNumber ?? 0;
this.reference.inputEl.valueAsNumber = newVal / MPG_T3_SYN + this.t4Syn.valueAsNumber / MPG_T4_SYN;
this.t3 = newVal;
this.t4 = this.t4Syn.valueAsNumber;
this.updateRatio();
this.updateSyn();
eventBus.sendChange(this);
});

this.t4Syn.addEventListener("input", (e) => {
const newVal = (e.currentTarget)?.valueAsNumber ?? 0;
this.reference.inputEl.valueAsNumber = newVal / MPG_T4_SYN + this.t3Syn.valueAsNumber / MPG_T3_SYN;
this.t3 = this.t3Syn.valueAsNumber;
this.t4 = newVal;
this.updateRatio();
this.updateSyn();
eventBus.sendChange(this);
});

eventBus.addListener(this);
this.onChange();
}

onChange() {
this.updateRatio();
this.updateSyn();
}

updateRatio() {
this.t3Ratio.valueAsNumber = this.t3;
this.t4Ratio.valueAsNumber = this.t4;
}

updateSyn() {
const total = this.t3 + this.t4;
const t3Proportion = this.t3 / total;
const t4Proportion = this.t4 / total;
const grainsSyn = t3Proportion / MPG_T3_SYN + t4Proportion / MPG_T4_SYN;
const multiplierSyn = this.reference.getCurrentValue() / grainsSyn;
this.t3Syn.valueAsNumber = t3Proportion * multiplierSyn;
this.t4Syn.valueAsNumber = t4Proportion * multiplierSyn;
}
}

class ThyroidConverter extends DJElement {
static styles = css``;

static template = html;

constructor() {
super();
const mainGrainInput = new GrainInput({
name: "Grains",
mpg: 1,
reference: "self",
unit: "",
step: 0.1,
});

const ratiosController = new RatiosController(mainGrainInput);

const inputs = [
mainGrainInput,
new GrainInput({
name: "Armour, Natural Dessicated Thyroid",
mpg: 60,
unit: "mg",
reference: mainGrainInput,
}),
new GrainInput({
name: 'Liothyronine (Triiodothyronine, "Cytomel", T3)',
mpg: MPG_T3_SYN,
unit: "mcg",
reference: mainGrainInput,
}),
new GrainInput({
name: 'Levothyroxine (Thyroxine, "Cynoplus", T4)',
mpg: MPG_T4_SYN,
unit: "mcg",
reference: mainGrainInput,
}),
];

const tableBody = qs("#table-body", this.root);
const compoundedStart = qs("#compounded-start", this.root);

for (const field of inputs) {
const newRow = h("tr", {}, [
h("td", { textContent: field.name }),
h("td", {}, [
h("div", { className: "input", style: "display: inline-block;" }),
h("span", { className: "breathe", textContent: field.unit }),
]),
]);
field.attachInput(qs("div.input", newRow));
tableBody.insertBefore(newRow, compoundedStart);
}

ratiosController.attachInputs({
t3Ratio: qs(".ratios .t3", tableBody),
t4Ratio: qs(".ratios .t4", tableBody),
t3Syn: qs(".synthetic .t3", tableBody),
t4Syn: qs(".synthetic .t4", tableBody),
});
}
}
*/

export default defineComponent({
name: 'ge-calculator',
setup() {
const t3Ratio = ref(1);
const t4Ratio = ref(4);

const MPG_T3_SYN = 25;
const MPG_T4_SYN = 100;

const inputDefs = [
{
name: "Grains",
mpg: 1,
unit: "",
step: 0.1,
},
{
name: "Armour, Natural Dessicated Thyroid",
mpg: 60,
unit: "mg",
},
{
name: 'Liothyronine (Triiodothyronine, "Cytomel", T3)',
mpg: MPG_T3_SYN,
unit: "mcg",
},
{
name: 'Levothyroxine (Thyroxine, "Cynoplus", T4)',
mpg: MPG_T4_SYN,
unit: "mcg",
},
];

const numGrains = ref(2);

const ratio = computed(() => t3Ratio.value + t4Ratio.value);
const compounded = computed(() => {
const total = t3Ratio.value + t4Ratio.value;
const t3Proportion = t3Ratio.value / total;
const t4Proportion = t4Ratio.value / total;
const grainsSyn = t3Proportion / MPG_T3_SYN + t4Proportion / MPG_T4_SYN;
const multiplierSyn = numGrains.value / grainsSyn;
return {
t3Syn: t3Proportion * multiplierSyn,
t4Syn: t4Proportion * multiplierSyn,
};
});

return () => <>
<header>
<h1>Thyroid Calculator</h1>
</header>
<div class="text-slab">
<p>
Use this calculator to convert between different forms and units of thyroid hormone. Common
synthetic, pure and natural dessicated forms are listed. The last section of the table provides
input fields for a specified ratio of T3 to T4, and will give the dosages required for both the
synthetic and pure forms. All dosages given are based on the "Grains" field at the beginning of the
table, but editing any field will automatically update the rest to keep them in sync.
</p>
</div>
<div class="text-slab ge-calculator">
<table>
<tbody>
{ inputDefs.map((_, i) => (
<tr key={_.name}>
<td>
{ _.name }
</td>
<td class="right">
<div style="display: inline-block;">
<input
value={_.name === 'Grains' ? numGrains.value : _.mpg * numGrains.value}
onInput={(e) => {
const val = (e.target as HTMLInputElement).valueAsNumber;
if (_.name === 'Grains') {
numGrains.value = val;
} else {
numGrains.value = _.mpg / val;
}
}}
min="0"
step={ _.step ?? 1 }
type="number" />
</div>
<span class="breathe">{ _.unit }</span>
</td>
</tr>
))}
<tr><td colspan="2"><strong>Compounded (T3 and T4, "Cynpolus")</strong></td></tr>
<tr class="ratios">
<td>
Desired Ratio (T3:T4)
</td>
<td class="right">
<div>
<input
value={t3Ratio.value}
onInput={(e) => {
t3Ratio.value = (e.currentTarget as HTMLInputElement).valueAsNumber;
}}
min="0"
step="1"
type="number" />
</div> : <div>
<input
value={t4Ratio.value}
onInput={(e) => {
t4Ratio.value = (e.currentTarget as HTMLInputElement).valueAsNumber;
}}
min="0"
step="1"
type="number" />
</div>
</td>
</tr>
<tr class="synthetic">
<td>
Synthetic T3/T4 Combo
</td>
<td class="right">
<div>
<input
value={compounded.value.t3Syn}
onInput={(e) => {
t4Ratio.value = compounded.value.t4Syn;
t3Ratio.value = (e.currentTarget as HTMLInputElement).valueAsNumber;
numGrains.value = t3Ratio.value / MPG_T3_SYN + t4Ratio.value / MPG_T4_SYN;
}}
min="0"
step="1"
type="number" />
</div> : <div>
<input
value={compounded.value.t4Syn}
onInput={(e) => {
t3Ratio.value = compounded.value.t3Syn;
t4Ratio.value = (e.currentTarget as HTMLInputElement).valueAsNumber;
numGrains.value = t3Ratio.value / MPG_T3_SYN + t4Ratio.value / MPG_T4_SYN;
}}
min="0"
step="1"
type="number" />
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class="text-slab">
<strong>Changelog:</strong>
<p>
<ul>
<li>
November 2024: Migrated to new web framework and fixed some buggy input.
</li>
<li>
13th March 2024: Removed the synthetic/pure distinction as it was confusing and unnecessary
bloat.
</li>
</ul>
</p>
</div>
</>;
}
});

+ 61
- 0
app/generative-energy/GEDeutsch.tsx Vedi File

@@ -0,0 +1,61 @@
import { defineComponent } from 'vue';
import { RouterLink } from 'vue-router';
import DJEmail from "@/DJEmail.tsx";

export default defineComponent({
name: 'ge-deutsch',
setup() {
return () => <>
<header>
<h1>Ray Peat Deutsche Übersetzungen</h1>
</header>
<div class="text-slab">
<p>
Auf dieser Seite befindet sich eine Auswahl der Artikel von Dr. Raymond Peat, die ich in meiner
Freizeit ins Deutsche übersetzt habe.
</p>
<p>
Ray Peat war ein US-Amerikaner aus Eugene, Oregon, der neben seinem Studium von Linguistik,
Literatur, und Malerei eine Promotion in der Biologie und Physiologie des Alterns und degenerativer
Krankheiten absolvierte, mit besonderem Fokus auf Zellen-Stoffwechsel, Hormone, und
Ernährungsphysiologie.
</p>
<p>
Nach mehreren Jahren als Professor an diversen Universitäten in den USA und Mexiko begann er Artikel
in Form eines Newsletters herauszugeben, von denen mehrere auf <a href="http://raypeat.com/"
>seiner Website</a> zu finden sind.
</p>
<p>
Da er in meinem Leben zu einem enormen Verständnis meines Körpers und einem unglaublichen
Zurückerlangen meiner Gesundheit und meines Wohlbefindens trotz dem Scheitern mehrerer Ärzte
beigetragen hat, und sein Nachlass in Deutschland kaum Publikum aufgrund schwieriger physiologischer
Texte genießt, habe ich entschieden hauptsächlich für Freunde und Bekannte einige seiner Artikel ins
Deutsche zu übersetzen, damit vielleicht auch ein breiteres Publikum von seinen Ideen profitieren
könnte.
</p>
<p>
Falls was bei der Übersetzung auffällt oder besonders unidiomatisch klingt, bzw. der deutschen
Fachsprache der Medizin nicht gerecht sein sollte, kannst du mir unter <DJEmail /> eine Mail senden.
Meine Muttersprache ist schließlich Englisch und ich bin kein professioneller Übersetzer!
</p>
<p>
Zusätzlich zu der Funktion, den Artikel mit dem Button oben in der Originalversion anzusehen, hat
jeder Absatz oben rechts beim drüberhovern mit der Maus einen zusätzlichen Button über den man den
jeweiligen Absatz in die andere Sprache wechseln kann, um die Versionen beim Lesen schnell zu
vergleichen zu können.
</p>
</div>
<div class="text-slab">
<h3>Artikel auswählen:</h3>
<ul id="article">
<li>
<RouterLink to={{ name: 'GEDeutschArticle', params: { articleName: 'hypothyroidism'}}}>Indikatoren Schilddrüsenunterfunktion</RouterLink>
</li>
<li>
<RouterLink to={{ name: 'GEDeutschArticle', params: { articleName: 'caffeine'}}}>Koffein</RouterLink>
</li>
</ul>
</div>
</>;
}
});

+ 75
- 0
app/generative-energy/GEDeutschArticle.tsx Vedi File

@@ -0,0 +1,75 @@
import { h, inject, defineComponent, ref, createTextVNode, type VNode } from 'vue';
import { RouterLink } from 'vue-router';
import useAsyncState from "@/useAsyncState.ts";

export default defineComponent({
name: 'ge-deutsch-article',
props: {
articleName: {
type: String,
required: true,
},
},
async setup(props) {
const currentLang = ref<"en" | "de">("de");

function clickBtn() {
currentLang.value = currentLang.value === "en" ? "de" : "en";
}

const parseDom = inject('dom-parse', (innerHTML: string) => Object.assign(document.createElement('div'), { innerHTML }));

const { result: articleContent, stateIsReady } = useAsyncState('ge-deutsch-article-data', async ({ hostUrl }) => {
const articleResponse = await fetch(`${ hostUrl }/generative-energy/static/content/${ props.articleName }.html`);
return await articleResponse.text();
});

function transformArticleNode(node: Node): VNode | string {
if (node.nodeType === node.ELEMENT_NODE) {
const el = node as Element;
const attrs: Record<string, string> = {};
const children = [...node.childNodes].map(_ => transformArticleNode(_));

if (el.tagName === 'P') {
el.classList.add('text-slab');
children.unshift(h('button', { class: 'swap', onClick: (e) => {
e.target.parentElement.classList.toggle('swap');
} }, '↻'));
}

for (let i = 0; i < el.attributes.length; i++) {
const item = el.attributes.item(i);
if (item) {
attrs[item.name] = item.value;
}
}

return h((node as Element).tagName, attrs, children);
} else {
return createTextVNode(node.textContent ?? '');
}
}

function ArticleContentTransformed() {
if (articleContent.value) {
const dom = parseDom(articleContent.value);
return h('div', {}, [...dom.children].map(_ => transformArticleNode(_)));
}
return <div>Artikel lädt...</div>;
}

await stateIsReady;

return () => <div class="ge-article">
<div class="header">
<RouterLink to={{ name: 'GEDeutsch' }}>Zur Artikelübersicht</RouterLink>
<button onClick={clickBtn}>
Sprache auf <span>{currentLang.value === "en" ? "Deutsch" : "Englisch"}</span> umschalten
</button>
</div>
<article class={`lang-${ currentLang.value }`}>
<ArticleContentTransformed />
</article>
</div>;
}
});

+ 33
- 0
app/generative-energy/GEMain.tsx Vedi File

@@ -0,0 +1,33 @@
import { RouterLink } from 'vue-router';

export default {
name: 'ge-main',
setup() {
return () => <>
<header>
<h1>Generative Energy</h1>
</header>
<div class="text-slab">
<p>
This page is dedicated to Dr. Raymond Peat († 2022), who has had a profound impact on my health and
my life in general. Hover over the links below for more detail.
</p>
</div>
<div class="text-slab">
<h2>Links</h2>
<ul>
<li>
<RouterLink to={{ name: 'GECalculator' }}>Thyroid Calculator</RouterLink>
<span style="display: none" class="tooltip">Convert to and from grains, set ratios, etc.</span>
</li>
<li>
<RouterLink to={{ name: 'GEDeutsch' }}>Ray Peat Articles in German</RouterLink>
<span style="display: none" class="tooltip">
A selection of articles by Ray that I have translated in my spare time into German.
</span>
</li>
</ul>
</div>
</>
},
};

+ 21
- 0
app/generative-energy/GEPaypal.tsx Vedi File

@@ -0,0 +1,21 @@
import { defineComponent } from "vue";

export default defineComponent({
name: "dj-paypal-donate",
setup: () => {
return () => (
<form action="https://www.paypal.com/donate" method="post" target="_top">
<input type="hidden" name="hosted_button_id" value="9NXC6V5HDPGFL" />
<input
id="ppbutton"
type="image"
src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif"
name="submit"
title="Thanks for your support!"
alt="Donate with PayPal button"
/>
<img alt="" src="https://www.paypal.com/en_DE/i/scr/pixel.gif" width="1" height="1" />
</form>
);
},
});

+ 67
- 0
app/generative-energy/GERoot.tsx Vedi File

@@ -0,0 +1,67 @@
import { defineComponent, type VNode, Suspense } from "vue";
import { useRoute, RouterLink, RouterView, type RouteRecordRaw } from 'vue-router';
import GEMain from "@/generative-energy/GEMain.tsx";
import DJEmail from "@/DJEmail.tsx";
import GEPaypal from "@/generative-energy/GEPaypal.tsx";
import GEDeutsch from "@/generative-energy/GEDeutsch.tsx";
import GEDeutschArticle from "@/generative-energy/GEDeutschArticle.tsx";
import GECalculator from "@/generative-energy/GECalculator.tsx";

export const routes: RouteRecordRaw[] = [
{
path: '/',
name: 'GEMain',
component: GEMain,
},
{
path: '/calculator',
name: 'GECalculator',
component: GECalculator,
},
{
path: '/raypeat-deutsch',
name: 'GEDeutsch',
component: GEDeutsch,
},
{
path: '/raypeat-deutsch/article/:articleName',
name: 'GEDeutschArticle',
component: GEDeutschArticle,
props: ({ params }) => {
if ('articleName' in params) {
return { articleName: params.articleName };
} else {
return false;
}
},
},
];

export default defineComponent({
name: "ge-root",
setup() {
const route = useRoute();
return () => <>
<main>
<RouterLink class={"home-btn" + (route.name === 'GEMain' ? ' hide' : '') }
to={{ name: 'GEMain' }}>
Generative Energy Home
</RouterLink>
<RouterView>{{ default: ({ Component }: { Component: VNode }) => (Component &&
<Suspense>{{
default: () => Component,
fallback: () => <div>Page loading...</div>,
}}</Suspense>
)}}</RouterView>
<footer>
<div class="bottom">
<div>
<a href="https://djledda.de/">djledda.de</a> 2023 - <DJEmail>{ () => 'Contact' }</DJEmail>
</div>
<GEPaypal />
</div>
</footer>
</main>
</>;
},
});

+ 298
- 0
app/generative-energy/calc.ts Vedi File

@@ -0,0 +1,298 @@
import { css, DJElement, h, html, qs } from "./util";

//@ts-check
const MPG_T3_SYN = 25;
const MPG_T4_SYN = 100;

class GlobalEventBus {
/**
* @private
* @type {{ onChange(): void }[]}
*/
changeSubscribers = [];

/**
* @param {{ onChange(): void }} listener
*/
addListener(listener) {
this.changeSubscribers.push(listener);
}

/**
* @param {any} sender
*/
sendChange(sender) {
for (const sub of this.changeSubscribers) {
if (sub === sender) continue;
sub.onChange();
}
}
}

const eventBus = new GlobalEventBus();

class GrainInput {
/** @type GrainInput[] */
static inputs = [];
/** @type string */
name;
/** @type string */
unit;
/** @type number */
mpg;
/** @type HTMLInputElement */
inputEl;
/** @type GrainInput */
reference;

/**
* @param {{
* name: string,
* mpg: number,
* reference: GrainInput | 'self',
* unit: string,
* step?: number,
* }} opts
*/
constructor(opts) {
this.name = opts.name;
this.mpg = opts.mpg;
this.unit = opts.unit;
this.reference = opts.reference === "self" ? this : opts.reference;
this.inputEl = h("input", { type: "number", min: 0, step: opts.step ?? 1 });
eventBus.addListener(this);
}

/**
* @param {HTMLElement} insertionPoint
*/
attachInput(insertionPoint) {
insertionPoint.appendChild(this.inputEl);
this.inputEl.valueAsNumber = this.mpg;
this.inputEl.addEventListener("input", (e) => {
const newVal = /** @type HTMLInputElement | null */ (e.currentTarget)?.valueAsNumber ?? 0;
if (this !== this.reference) {
this.reference.inputEl.valueAsNumber = newVal / this.mpg;
}
eventBus.sendChange(this);
});
}

onChange() {
if (!this.reference || this === this.reference) return;
this.inputEl.valueAsNumber = this.mpg * this.reference.inputEl.valueAsNumber;
}

getCurrentValue() {
return this.inputEl.valueAsNumber;
}
}

class RatiosController {
/** @type HTMLInputElement */
t3Ratio = h("input", { type: "number", min: 0, step: 1 });
/** @type HTMLInputElement */
t4Ratio = h("input", { type: "number", min: 0, step: 1 });
/** @type HTMLInputElement */
t3Syn = h("input", { type: "number", min: 0 });
/** @type HTMLInputElement */
t4Syn = h("input", { type: "number", min: 0 });
/** @type number */
t3 = 1;
/** @type number */
t4 = 4;
/** @type GrainInput */
reference;

/**
* @param {GrainInput} referenceInput
*/
constructor(referenceInput) {
this.reference = referenceInput;
}

/**
* @param {Record<string, HTMLElement>} inputs
*/
attachInputs(inputs) {
inputs.t3Ratio.replaceWith(this.t3Ratio);
inputs.t4Ratio.replaceWith(this.t4Ratio);
inputs.t3Syn.replaceWith(this.t3Syn);
inputs.t4Syn.replaceWith(this.t4Syn);

this.t3Ratio.addEventListener("input", (e) => {
const newVal = /** @type HTMLInputElement | null */ (e.currentTarget)?.valueAsNumber ?? 0;
this.t3 = newVal;
this.onChange();
});

this.t4Ratio.addEventListener("input", (e) => {
const newVal = /** @type HTMLInputElement | null */ (e.currentTarget)?.valueAsNumber ?? 0;
this.t4 = newVal;
this.onChange();
});

this.t3Syn.addEventListener("input", (e) => {
const newVal = /** @type HTMLInputElement | null */ (e.currentTarget)?.valueAsNumber ?? 0;
this.reference.inputEl.valueAsNumber = newVal / MPG_T3_SYN + this.t4Syn.valueAsNumber / MPG_T4_SYN;
this.t3 = newVal;
this.t4 = this.t4Syn.valueAsNumber;
this.updateRatio();
this.updateSyn();
eventBus.sendChange(this);
});

this.t4Syn.addEventListener("input", (e) => {
const newVal = /** @type HTMLInputElement | null */ (e.currentTarget)?.valueAsNumber ?? 0;
this.reference.inputEl.valueAsNumber = newVal / MPG_T4_SYN + this.t3Syn.valueAsNumber / MPG_T3_SYN;
this.t3 = this.t3Syn.valueAsNumber;
this.t4 = newVal;
this.updateRatio();
this.updateSyn();
eventBus.sendChange(this);
});

eventBus.addListener(this);
this.onChange();
}

onChange() {
this.updateRatio();
this.updateSyn();
}

updateRatio() {
this.t3Ratio.valueAsNumber = this.t3;
this.t4Ratio.valueAsNumber = this.t4;
}

updateSyn() {
const total = this.t3 + this.t4;
const t3Proportion = this.t3 / total;
const t4Proportion = this.t4 / total;
const grainsSyn = t3Proportion / MPG_T3_SYN + t4Proportion / MPG_T4_SYN;
const multiplierSyn = this.reference.getCurrentValue() / grainsSyn;
this.t3Syn.valueAsNumber = t3Proportion * multiplierSyn;
this.t4Syn.valueAsNumber = t4Proportion * multiplierSyn;
}
}

class ThyroidConverter extends DJElement {
static styles = css`
table {
border-collapse: separate;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
border-radius: 5px;
border-spacing: 0;
border: 1px solid var(--text-color);
}

input {
width: 70px;
}
tr:last-of-type td {
border-bottom: none;
}
td {
border-bottom: 1px solid var(--text-color);
border-right: 1px solid var(--text-color);
padding: 10px;
}
td:last-of-type {
border-right: none;
}
.breathe {
padding-left: 4px;
padding-right: 4px;
}
@media (min-width: 600px) {
td.right div {
display: inline-block;
}
}
`;

static template = html`
<table>
<tbody id="table-body">
<tr id="compounded-start" class="ratios">
<td>
Desired Ratio (T3:T4)
</td>
<td class="right">
<div><slot class="t3"></slot></div> :
<div><slot class="t4"></slot></div>
</td>
</tr>
<tr class="synthetic">
<td>
Synthetic T3/T4 Combo
</td>
<td class="right">
<div><slot class="t3"></slot>mcg</div> :
<div><slot class="t4"></slot>mcg</div>
</td>
</tr>
</tbody>
</table>`;

constructor() {
super();
const mainGrainInput = new GrainInput({
name: "Grains",
mpg: 1,
reference: "self",
unit: "",
step: 0.1,
});

const ratiosController = new RatiosController(mainGrainInput);

const inputs = [
mainGrainInput,
new GrainInput({
name: "Armour, Natural Dessicated Thyroid",
mpg: 60,
unit: "mg",
reference: mainGrainInput,
}),
new GrainInput({
name: 'Liothyronine (Triiodothyronine, "Cytomel", T3)',
mpg: MPG_T3_SYN,
unit: "mcg",
reference: mainGrainInput,
}),
new GrainInput({
name: 'Levothyroxine (Thyroxine, "Cynoplus", T4)',
mpg: MPG_T4_SYN,
unit: "mcg",
reference: mainGrainInput,
}),
];

const tableBody = qs("#table-body", this.root);
const compoundedStart = qs("#compounded-start", this.root);

for (const field of inputs) {
const newRow = h("tr", {}, [
h("td", { textContent: field.name }),
h("td", {}, [
h("div", { className: "input", style: "display: inline-block;" }),
h("span", { className: "breathe", textContent: field.unit }),
]),
]);
field.attachInput(qs("div.input", newRow));
tableBody.insertBefore(newRow, compoundedStart);
}

ratiosController.attachInputs({
t3Ratio: qs(".ratios .t3", tableBody),
t4Ratio: qs(".ratios .t4", tableBody),
t3Syn: qs(".synthetic .t3", tableBody),
t4Syn: qs(".synthetic .t4", tableBody),
});
}
}
customElements.define("thyroid-converter", ThyroidConverter);

+ 10
- 0
app/generative-energy/client.ts Vedi File

@@ -0,0 +1,10 @@
import { createSSRApp } from "vue";
import { createRouter, createWebHistory } from "vue-router";
import GERoot, { routes } from "@/generative-energy/GERoot.tsx";

createSSRApp(GERoot)
.use(createRouter({
routes,
history: createWebHistory('/generative-energy')
}))
.mount('#app-root');

+ 135
- 0
app/generative-energy/half-life.ts Vedi File

@@ -0,0 +1,135 @@
// @ts-check
//
import { css, DJElement, h, html, qs } from "./util";

class HalfLifeGraph extends DJElement {
static styles = css`
.container {
margin: auto;
text-align: center;
}

canvas {
border: solid 1px black;
}
`;

static template = html`
<div class="container">
<div>
<canvas />
</div>
<label for="my-input">Test Input</label>
<input type="range" />
</div>
`;

/** @type number */
height = 480;

/** @type number */
width = 640;

/** @type HTMLInputElement */
input1;

/** @type number */
input1Value;

/** @type Function */
renderCb;

constructor() {
super();
const canvas = /** @type HTMLCanvasElement */ (qs("canvas", this.root));
this.input1 = /** @type HTMLInputElement */ (qs("input", this.root));
canvas.width = this.width;
canvas.height = this.height;
const context = canvas.getContext("2d");
if (!context) {
throw new Error("No context available");
}
this.renderCb = () => {
window.requestAnimationFrame(() => this.renderFrame(context));
};
this.input1.addEventListener("input", (e) => {
this.input1Value = /** @type HTMLInputElement */ (e.target).valueAsNumber;
this.renderCb();
});
this.renderCb();
}

/**
* @param {CanvasRenderingContext2D} ctx
*/
renderFrame(ctx) {
this.drawAxes(ctx);
this.drawGrid(ctx);
this.drawCurve(ctx);
}

/**
* @param {CanvasRenderingContext2D} ctx
*/
drawAxes(ctx) {
const startY = 0;
const endY = 10;
const startX = 0;
const endX = 10;
ctx.beginPath();
ctx.moveTo(startX, this.height - startY);
ctx.lineTo(startX, this.height - endY);
ctx.stroke();
ctx.beginPath();
ctx.moveTo(startX, this.height - startY);
ctx.lineTo(endX, this.height - startY);
ctx.stroke();
}

/**
* @param {CanvasRenderingContext2D} ctx
*/
drawGrid(ctx) {
/**
const step = this.width / V0D
for (let i = 0; i < thing; i++) {
ctx.beginPath();
ctx.moveTo(i, );
ctx.lineTo(i);
}
*/
}

/**
* @param {CanvasRenderingContext2D} ctx
*/
drawCurve(ctx) {
// A = A_0 * (1/2) ^ t / h
// h = half life
// t = point in time
// A_0 = initial
// A = current concentration

// TODO
// https://pharmacy.ufl.edu/files/2013/01/5127-28-equations.pdf

/**
* @param {number} x
*/
function y(x) {
return x ** 2;
}

const xEnd = 2;
const yEnd = 2;
const samples = 100;
const step = this.width / samples;
ctx.beginPath();
ctx.moveTo(0, this.height);
for (let i = 0; i < this.width; i += step) {
ctx.lineTo(i, this.height - y(i / this.width * xEnd) * this.height / yEnd);
}
ctx.stroke();
}
}
customElements.define("half-life-graph", HalfLifeGraph);

app/App.tsx → app/home/App.tsx Vedi File

@@ -1,5 +1,4 @@
import { defineComponent, computed, ref } from "vue";
import Test from '@/test.tsx';
import { computed, defineComponent, ref } from "vue";

export default defineComponent({
name: "app-root",
@@ -12,7 +11,9 @@ export default defineComponent({
<button class="test" onClick={() => count.value++}>Click me!</button>
<div>Count: {count.value}</div>
<div>Count Double: {countDouble.value}</div>
<Test />
<p>
<a href="/generative-energy/">Go to this other site hosted here but a different Vue app!</a>
</p>
</div>
);
},

+ 13
- 0
app/meta.ts Vedi File

@@ -0,0 +1,13 @@
import { useSSRContext, toValue, type MaybeRefOrGetter } from 'vue';

export default function useHead(params: {
title: MaybeRefOrGetter<string>,
}) {
const context = useSSRContext();
if (context) {
context.meta ??= {
title: toValue(params.title),
meta: {},
};
}
}

+ 74
- 0
app/reactivity.ts Vedi File

@@ -0,0 +1,74 @@
const contextStack: Observer[] = [];

export class Observer<T = unknown> {
private effect: () => T;

dependencies: Set<Observable> = new Set();

constructor(effect: { (): T }) {
this.effect = effect;
this.execute();
}

execute() {
this.cleanup();
contextStack.push(this);
try {
this.effect();
} finally {
contextStack.pop();
}
}

cleanup() {
for (const dep of this.dependencies.values()) {
dep.observers.delete(this);
}
this.dependencies.clear();
}
}

export class Observable<T = unknown> {
private value: T;

observers: Set<Observer> = new Set();

constructor(init: T) {
this.value = init;
}

get() {
const activeObserver = contextStack[contextStack.length - 1];
if (activeObserver) {
this.observers.add(activeObserver);
activeObserver.dependencies.add(this);
}
return this.value;
}

set(next: T) {
this.value = next;
for (const observer of Array.from(this.observers.values())) {
observer.execute();
}
}
}

export class Mapping<T extends unknown> {
private observable: Observable<T>;

private observer: Observer<T>;

constructor(mapping: { (): T }) {
this.observable = new Observable(undefined as T);
this.observer = new Observer(() => {
const result = mapping();
this.observable.set(result);
return result;
});
}

get() {
return this.observable.get();
}
}

+ 0
- 1
app/test.tsx Vedi File

@@ -1 +0,0 @@
export default () => <div class="test">Test</div>;

+ 122
- 0
app/tooltip.tsx Vedi File

@@ -0,0 +1,122 @@
import { h, qsa } from "@/util.ts";
import { type CSSProperties, defineComponent, onBeforeUnmount, onMounted, ref } from "vue";

const carrierStyle = {
opacity: "0",
display: "block",
pointerEvents: "none",
backgroundColor: "black",
border: "white solid 1px",
color: "white",
padding: "10px",
position: "absolute",
zIndex: "1",
overflow: "hidden",
height: "0",
width: "0",
transition: "opacity 200ms, height 200ms, width 200ms",
} satisfies CSSProperties;

const textCarrierStyle = {
width: "350px",
display: "block",
overflow: "hidden",
} satisfies CSSProperties;

const defaultWidth = 350;

export default defineComponent({
name: "dj-sexy-tooltip",
setup() {
const active = ref(false);

const carrier = ref<HTMLElement | null>(null);
const textCarrier = ref<HTMLElement | null>(null);

onMounted(() => {
document.body.appendChild(h("style", { textContent: `.tooltip { display: none; }` }));
document.body.style.position = "relative";

document.addEventListener("mousemove", (event) => this.rerenderTooltip({ x: event.pageX, y: event.pageY }));
});

function rerenderTooltip(mousePos: { x: number; y: number }) {
const newText = this.getTooltipTextForHoveredElement(mousePos);
if (newText !== this.textCarrier) {
this.transitionTooltipSize(newText);
const tooltipHasText = newText !== "";
if (tooltipHasText !== this.active) {
this.toggleActive();
}
}
if (this.isStillVisible()) {
this.updatePosition(mousePos);
}
}

function isStillVisible() {
return getComputedStyle(carrier.value).opacity !== "0";
}

function updatePosition(pos: { x: number; y: number }) {
if (pos.x + 15 + this.carrier.clientWidth <= document.body.scrollWidth) {
this.carrier.style.left = (pos.x + 15) + "px";
} else {
this.carrier.style.left = (document.body.scrollWidth - this.carrier.clientWidth - 5) + "px";
}
if (pos.y + this.carrier.clientHeight <= document.body.scrollHeight) {
this.carrier.style.top = pos.y + "px";
} else {
this.carrier.style.top = (document.body.scrollHeight - this.carrier.clientHeight - 5) + "px";
}
}

function toggleActive() {
if (this.active) {
this.active = false;
this.carrier.style.opacity = "0";
this.carrier.style.padding = "0";
} else {
this.active = true;
this.carrier.style.opacity = "1";
this.carrier.style.padding = SexyTooltip.carrierStyle.padding;
}
}

function transitionTooltipSize(text: string) {
const testDiv = h("div");
testDiv.style.height = "auto";
testDiv.style.width = SexyTooltip.defaultWidth + "px";
testDiv.innerHTML = text;
document.body.appendChild(testDiv);
const calculatedHeight = testDiv.scrollHeight;
testDiv.style.display = "inline";
testDiv.style.width = "auto";
document.body.removeChild(testDiv);
const size = { height: calculatedHeight + "px", width: "350px" };
this.carrier.style.height = size.height;
this.carrier.style.width = text === "" ? "0" : size.width;
this.textCarrier.innerHTML = text;
}

function getTooltipTextForHoveredElement(mousePos: { x: number; y: number }) {
for (const elem of this.elementsWithTooltips) {
const boundingRect = elem.getBoundingClientRect();
const inYRange = mousePos.y >= boundingRect.top + window.pageYOffset - 1 &&
mousePos.y <= boundingRect.bottom + window.pageYOffset + 1;
const inXRange = mousePos.x >= boundingRect.left + window.pageXOffset - 1 &&
mousePos.x <= boundingRect.right + window.pageXOffset + 1;
if (inYRange && inXRange) {
return elem.nextElementSibling?.innerText ?? "";
}
}
return "";
}

return () => (
<div ref={carrier}>
<span ref={textCarrier} />
</div>
);
},
});

+ 50
- 0
app/useAsyncState.ts Vedi File

@@ -0,0 +1,50 @@
import { onMounted, onServerPrefetch, useSSRContext, shallowRef, type ShallowRef } from 'vue';

declare global {
// deno-lint-ignore no-var
var appstate: Partial<Record<string, unknown>>;
}

export default function useAsyncState<T>(key: string, getter: (context: { hostUrl: string }) => Promise<T | null>, options?: { suspensible: boolean }): { result: ShallowRef<T | null>, stateIsReady: Promise<unknown> } {
const ssrContext = useSSRContext<{ registry: Record<string, unknown> }>();
const isClient = typeof ssrContext === 'undefined';

const registry = ssrContext?.registry ?? globalThis?.appstate;

const hostUrl = isClient ? globalThis.location.origin : 'http://localhost:8080';

const state = shallowRef<T | null>(null);

let resolve = () => {};
const promise = new Promise<void>((res) => {
resolve = res;
});

if (key in registry) {
state.value = registry[key] as T;
delete registry[key];
resolve();
} else {
if (!isClient) {
resolve();
}
onServerPrefetch(async () => {
const result = await getter({ hostUrl });
registry[key] = result;
state.value = result;
});
if (options?.suspensible ?? true) {
getter({ hostUrl }).then((result) => {
state.value = result;
resolve();
}).catch(resolve);
} else {
onMounted(async () => {
state.value = await getter({ hostUrl });
resolve();
});
}
}

return { result: state, stateIsReady: promise };
}

+ 59
- 0
app/util.ts Vedi File

@@ -0,0 +1,59 @@
export function gid(id: string, doc: (Document | ShadowRoot) | undefined) {
return ((doc ?? document).getElementById(id));
}

export function qs(query: string, sub: (HTMLElement | ShadowRoot) | undefined) {
return ((sub ?? document).querySelector(query));
}

export function qsa(query: string, sub?: (HTMLElement | ShadowRoot) | undefined) {
return ((sub ?? document).querySelectorAll(query));
}

export function h<T extends keyof HTMLElementTagNameMap>(
tag: T,
opts?: Partial<HTMLElementTagNameMap[T]> | undefined,
children?: Node[],
) {
const newEl = Object.assign(document.createElement(tag), opts ?? {});
if (children) {
newEl.append(...children);
}
return newEl;
}

export function html(strs: TemplateStringsArray, ...vals: string[]) {
let result = strs[0];
for (let i = 1; i < strs.length; i++) {
result += vals[i] + strs[i];
}
const template = document.createElement("template");
template.innerHTML = result;
return template;
}

export function css(strs: TemplateStringsArray, ...vals: string[]) {
let result = strs[0];
for (let i = 1; i < strs.length; i++) {
result += vals[i] + strs[i];
}
const sheet = new CSSStyleSheet();
sheet.replaceSync(result);
return sheet;
}

export class DJElement extends HTMLElement {
static styles: CSSStyleSheet;

static template: HTMLTemplateElement;

root: ShadowRoot;

constructor() {
super();
const statics = this.constructor as typeof DJElement;
this.root = this.attachShadow({ mode: "open" });
this.root.appendChild(statics.template.content.cloneNode(true));
this.root.adoptedStyleSheets = statics.styles ? [statics.styles] : [];
}
}

+ 9
- 1
deno.json Vedi File

@@ -10,7 +10,9 @@
},
"imports": {
"vue": "npm:vue@^3.5.12",
"vue-router": "npm:vue-router@4.4.5",
"vue/jsx-runtime": "npm:vue/jsx-runtime",
"@vue/devtools-api": "npm:@vue/devtools-api",
"@/": "./app/"
},
"nodeModulesDir": "auto",
@@ -18,6 +20,12 @@
"jsx": "react-jsx",
"jsxFactory": "h",
"jsxFragmentFactory": "Fragment",
"jsxImportSource": "vue"
"jsxImportSource": "vue",
"lib": [
"deno.ns",
"esnext",
"dom",
"dom.iterable"
]
}
}

+ 28
- 0
deno.lock Vedi File

@@ -1,6 +1,7 @@
{
"version": "4",
"specifiers": {
"jsr:@b-fuze/deno-dom@*": "0.1.48",
"jsr:@deno/cache-dir@0.13.2": "0.13.2",
"jsr:@deno/emit@*": "0.46.0",
"jsr:@deno/graph@~0.73.1": "0.73.1",
@@ -18,10 +19,16 @@
"jsr:@std/path@0.223": "0.223.0",
"jsr:@std/path@^1.0.7": "1.0.7",
"jsr:@std/streams@^1.0.7": "1.0.7",
"npm:@types/node@*": "22.5.4",
"npm:@vue/devtools-api@*": "6.6.4",
"npm:vue-router@4.4.5": "4.4.5_vue@3.5.12",
"npm:vue@*": "3.5.12",
"npm:vue@^3.5.12": "3.5.12"
},
"jsr": {
"@b-fuze/deno-dom@0.1.48": {
"integrity": "bf5b591aef2e9e9c59adfcbb93a9ecd45bab5b7c8263625beafa5c8f1662e7da"
},
"@deno/cache-dir@0.13.2": {
"integrity": "c22419dfe27ab85f345bee487aaaadba498b005cce3644e9d2528db035c5454d",
"dependencies": [
@@ -124,6 +131,12 @@
"@jridgewell/sourcemap-codec@1.5.0": {
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
},
"@types/node@22.5.4": {
"integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==",
"dependencies": [
"undici-types"
]
},
"@vue/compiler-core@3.5.12": {
"integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==",
"dependencies": [
@@ -162,6 +175,9 @@
"@vue/shared"
]
},
"@vue/devtools-api@6.6.4": {
"integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
},
"@vue/reactivity@3.5.12": {
"integrity": "sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==",
"dependencies": [
@@ -227,6 +243,16 @@
"source-map-js@1.2.1": {
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="
},
"undici-types@6.19.8": {
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
},
"vue-router@4.4.5_vue@3.5.12": {
"integrity": "sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==",
"dependencies": [
"@vue/devtools-api",
"vue"
]
},
"vue@3.5.12": {
"integrity": "sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==",
"dependencies": [
@@ -240,6 +266,8 @@
},
"workspace": {
"dependencies": [
"npm:@vue/devtools-api@*",
"npm:vue-router@4.4.5",
"npm:vue@*",
"npm:vue@^3.5.12"
]


+ 1
- 0
deps.ts Vedi File

@@ -1,3 +1,4 @@
import "jsr:@deno/emit";
import "jsr:@std/http";
import "vue";
import 'jsr:@b-fuze/deno-dom';

+ 56
- 15
main.ts Vedi File

@@ -1,11 +1,16 @@
import { serveFile } from "jsr:@std/http/file-server";
import { createSSRApp } from "vue";
import { renderToString } from "vue/server-renderer";
import App from "@/App.tsx";
import transpileResponse from './transpile.ts';
import { createRouter, createMemoryHistory } from 'vue-router';
import Home from "@/home/App.tsx";
import GERoot, { routes as geRoutes } from "@/generative-energy/GERoot.tsx";
import transpileResponse from "./transpile.ts";
import { DOMParser } from 'jsr:@b-fuze/deno-dom'

const utf8Decoder = new TextDecoder("utf-8");

const parser = new DOMParser();

Deno.serve({
port: 8080,
hostname: "0.0.0.0",
@@ -15,22 +20,58 @@ Deno.serve({
}, async (req, _conn) => {
if (req.method === "GET") {
const pathname = URL.parse(req.url)?.pathname ?? "/";
if (pathname === "/") {
const rendered = await renderToString(createSSRApp(App));
const content = utf8Decoder.decode(await Deno.readFile("./public/index.html"))
if (pathname.startsWith('/static/') ||
pathname.startsWith('/generative-energy/static/')) {
if (pathname.startsWith('/static/')) {
return serveFile(req, `public/home/${ pathname }`);
} else {
return serveFile(req, `public${pathname}`);
}
} else if (pathname === "/") {
const rendered = await renderToString(createSSRApp(Home));
const content = utf8Decoder.decode(await Deno.readFile("./public/home/index.html"))
.replace(`<!-- SSR OUTLET -->`, rendered)
.replace(`<!-- SSR HEAD OUTLET -->`, '');
.replace(`<!-- SSR HEAD OUTLET -->`, "");
return new Response(content, { headers: { "Content-Type": "text/html" } });
} else if (pathname.startsWith('/generative-energy')) {
const app = createSSRApp(GERoot);
const router = createRouter({
routes: geRoutes,
history: createMemoryHistory('/generative-energy'),
});
app.use(router);
app.provide('dom-parse', (innerHTML: string) => {
return parser.parseFromString(innerHTML, 'text/html').documentElement;
});
const ssrContext = { registry: {}};
await router.replace(pathname.split('/generative-energy')[1]);
await router.isReady();
const rendered = await renderToString(app, ssrContext);
const content = utf8Decoder.decode(await Deno.readFile("./public/generative-energy/index.html"))
.replace('%TITLE%', 'Generative Energy')
.replace('<!-- SSR HEAD OUTLET -->', `
<script type="importmap">
{
"imports": {
"vue": "/deps/vue/dist/vue.esm-browser.prod.js",
"vue-router": "/deps/vue-router/dist/vue-router.esm-browser.js",
"vue/jsx-runtime": "/deps/vue/jsx-runtime/index.mjs",
"@vue/devtools-api": "/deps/@vue/devtools-api/lib/esm/index.js",
"@/": "/app/"
}
}
</script>
<script> window.appstate = ${ JSON.stringify(ssrContext.registry) }; </script>
`)
.replace(`<!-- SSR OUTLET -->`, rendered);
return new Response(content, { headers: { "Content-Type": "text/html" } });
} else if (pathname === "/health") {
return new Response("OK");
} else if (pathname.startsWith('/app') && (pathname.endsWith('.ts') || pathname.endsWith('.tsx'))) {
const response = await serveFile(req, './' + pathname);
} else if (pathname.startsWith("/app") && (pathname.endsWith(".ts") || pathname.endsWith(".tsx"))) {
const response = await serveFile(req, "./" + pathname);
return await transpileResponse(response, req.url, pathname);
} else if (pathname.startsWith('/deps')) {
return serveFile(req, `node_modules/${pathname.split('/deps')[1]}`);
} else {
return serveFile(req, `public${ pathname }`);
}
} else if (pathname.startsWith("/deps")) {
return serveFile(req, `node_modules/${pathname.split("/deps")[1]}`);
}
return new Response("Not found.", { status: 404 });
} else {
return new Response("Only GET allowed.", { status: 500 });
}


+ 25
- 0
public/generative-energy/index.html Vedi File

@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>%TITLE%</title>

<link rel="stylesheet" href="/generative-energy/static/styles.css">
<link
href="https://fonts.googleapis.com/css2?family=Roboto&amp;family=Roboto+Slab:wght@600&amp;display=swap"
rel="stylesheet">
<!-- <link rel="icon" href="/generative-energy/favicon.ico" sizes="any" /> -->

<meta name="description" content="Generative Energy - A page dedicated to Dr. Raymond Peat">
<meta property="og:title" content="%TITLE%">
<meta property="og:image" content="icecream.png">

<!-- SSR HEAD OUTLET -->
<script type="module">import "@/generative-energy/client.ts";</script>
</head>

<body>
<div id="app-root"><!-- SSR OUTLET --></ div>
</body>
</html>

+ 651
- 0
public/generative-energy/static/content/caffeine.html Vedi File

@@ -0,0 +1,651 @@
<h1>
<span lang="en">Caffeine: A vitamin-like nutrient, or adaptogen</span>
<span lang="de">Koffein: ein vitamin-ähnlicher Nährstoff, oder Adaptogen</span>
</h1>

<p>
<span lang="en"><strong>Questions about tea and coffee, cancer and other degenerative diseases, and the hormones.</strong></span>
<span lang="de"><strong>Fragen zu Tee und Kaffee, Krebs und anderen degenerativen Krankheiten, sowie zu den Hormonen.</strong></span>
</p>

<p>
<span lang="en">
There is a popular health-culture that circulates mistaken ideas about
nutrition, and coffee drinking has been a perennial target of this culture. It
is commonly said that coffee is a drug, not a food, and that its drug action
is harmful, and that this harm is not compensated by any nutritional benefit.
Most physicians subscribe to most of these "common sense" ideas about coffee,
and form an authoritative barrier against the assimilation of scientific
information about coffee.
</span>
<span lang="de">
Es gibt eine sehr beliebte "Gesundheitskultur", die irrtümliche Ideen über Ernährung verbreitet, und der
Kaffeekonsum ist immerwährend ein Angriffsziel dieser Kultur.
Es heißt häufig, dass Kaffee eine Droge und kein Lebensmittel wäre, und dass seine Drogenwirkung schädlich wäre,
was keineswegs durch irgendwelchen nahrhaften Mehrwert ausgeglichen wird.
Die meisten Ärzte vetreten die meisten dieser Ideen, die zum "gesunden Menschenverstand" gehörten, und bilden
eine Art autoritäre Barriere gegen die Aufnahme wissenschaftlicher Informationen zu Kaffee.
</span>
</p>

<p>
<span lang="en">I think it would be good to reconsider coffee"s place in the diet and in health care.</span>
<span lang="de">Ich glaube, es wäre gut zu überdenken, welche Stelle Kaffee in der Ernährung und im Gesundheitswesen einnimmt.</span>
</p>

<p>
<li>
<span lang="en"><strong>Coffee drinkers have a lower incidence of thyroid disease, including cancer, than non-drinkers.</strong></span>
<span lang="de"><strong>Kaffeetrinker leiden seltener unter Schilddrüsenkrankheiten, darunter Krebs, als Nichttrinker.</strong></span>
</li>
<li>
<span lang="en">
<strong>Caffeine protects the liver from alcohol and acetaminophen (Tylenol) and
other toxins, and coffee drinkers are less likely than people who don"t use
coffee to have elevated serum enzymes and other indications of liver
damage.</strong>
</span>
<span lang="de">
<strong>Koffein schützt die Leber vor Alkohol und <span class="check">Acetaminophen (Tylenol)</span>
und anderen Giftstoffen, und erhöhte Serumenzymwerte und andere Inidizien einer Leberschädigung sind bei Kaffeetrinkern seltener als Nichttrinkern.</strong>
</span
</li>
<li>
<span lang="en"><strong>Caffeine protects against cancer caused by radiation, chemical carcinogens,
viruses, and estrogens.</strong></span>
<span lang="de"><strong>Koffein schützt vor Krebsarten, die durch chemische Krebserreger, Viren, und Östrogene verursacht werden.</strong></span>
</li>
<li>
<span lang="en"><strong>Caffeine synergizes with progesterone, and increases its concentration in
blood and tissues.</strong></span>
<span lang="de"><strong>Koffein weist eine Synergie mit Progesteron auf und erhöht dessen Konzentration im Blut und sowie im Gewebe.</strong></span>
</li>
<li>
<span lang="en"><strong>Cystic breast disease is not caused by caffeine, in fact caffeine"s effects
are likely to be protective; a variety of studies show that coffee, tea, and
caffeine are protective against breast cancer.</strong></span>
<span lang="de"><strong><span class="check">Mastopathie</span> wird nicht durch Koffein verursacht. Koffein wirkt wohlmöglich schützend; eine Vielzahl von Studien zeigt, dass Kaffee, Tee, und Koffein vor Brustkrebs schützen.</strong></span>
</li>
<li>
<span lang="en">
<strong>Coffee provides very significant quantities of magnesium, as well as other nutrients including vitamin B1.</strong>
</span>
<span lang="de">
<strong>Kaffee liefert sehr hohe Mengen von Magnesium sowie anderen Nährstoffen wie Vitamin B1.</strong>
</span>
</li>
<li>
<span lang="en"><strong>Caffeine "improves efficiency of fuel use" and performance: JC Wagner 1989.</strong></span>
<span lang="de"><strong>Koffein "erhöht die Nutzungseffezienz von Brennstoffen" und die Leistung: JC Wagner 1989.</strong></span>
</li>
<li>
<span lang="en">
<strong>Coffee drinkers have a low incidence of suicide.</strong>
</span>
<span lang="de">
<strong>Kaffeetrinker haben eine geringere Suizidrate.</strong>
</span>
</li>
<li>
<span lang="en">
<strong>Caffeine supports serotonin uptake in nerves, and inhibits blood platelet aggregation.</strong>
</span>
<span lang="de">
<strong>Koffein begünstigt die Aufnahme von Serotonin in die Nerven und hemmt die Thrombozytenaggregation.</strong>
</span>
</li>
<li>
<span lang="en">
<strong>Coffee drinkers have been found to have lower cadmium in tissues; coffee making removes heavy metals from water.</strong>
</span>
<span lang="de">
<strong>Es wurde beobachtet, dass Kaffeetrinker weniger Cadmium im Gewebe haben; die Zubereitung von Kaffee entfernt Schwermetalle aus Wasser.</strong>
</span>
</li>
<li>
<span lang="en">
<strong>Coffee inhibits iron absorption if taken with meals, helping to prevent iron overload.</strong>
</span>
<span lang="de">
<strong>Kaffee hemmt die Aufnahme von Eisen, wenn es zusammen mit einer Mahlzeit getrunken wird, was vor Eisenüberlastung schützen kann.</strong>
</span>
</li>
<li>
<span lang="en">
<strong>Caffeine, like niacin, inhibits apoptosis, protecting against stress-induced cell death, without interfering with normal cell turnover.</strong>
</span>
<span lang="de">
<strong>Koffein, wie Niacin, hemmt die Apoptose. So schützt es vor dem durch Stress verursachten Zelltod, ohne den normalen Zellumsatz zu stören.</strong>
</span>
</li>
<li>
<span lang="en">
<strong>Caffeine can prevent nerve cell death.</strong>
</span>
<span lang="de">
<strong>Koffein kann den Zelltod der Nerven verhindern.</strong>
</span>
</li>
<li>
<span lang="en">
<strong>Coffee (or caffeine) prevents Parkinson"s Disease (Ross, et al., 2000).</strong>
</span>
<span lang="de">
<strong>Kaffee (bzw. Koffein) schützt vor Parkinson (Ross, et al., 2000).</strong>
</span>
</li>
<li>
<span lang="en">
<strong>The prenatal growth retardation that can be caused by feeding large amounts of caffeine is prevented by supplementing the diet with sugar.</strong>
</span>
<span lang="de">
<strong>Die vorgeburtliche Wachstumsverzögerung, die durch eine hohe Zufuhr von Koffein verursacht werden kann, kann verhindert werden, wenn die Ernährung durch ausreichend Zucker ergänzt wird.</strong>
</span>
</li>
<li>
<span lang="en">
<strong>Caffeine stops production of free radicals by inhibiting xanthine oxidase, an important factor in tissue stress.</strong>
</span>
<span lang="de">
<strong>Durch die Hemmung des Enzyms Xanthinoxidase hält Koffein die Produktion von freien Radikalen auf.</strong>
</span>
</li>
<li>
<span lang="en">
<strong>Caffeine lowers serum potassium following exercise; stabilizes platelets, reducing thromboxane production.</strong>
</span>
<span lang="de">
<strong>Koffein senkt das Kalium im Blut nach sportlichen Aktivitäten; es stabilisiert die Blutplättchen und hemmt dadurch die Produktion von Thromboxan.</strong>
</span>
</li>
</p>

<p>
<span lang="en">
One definition of a vitamin is that it is an organic chemical found in foods,
the lack of which <em>causes</em> a specific
<em>disease,</em> or group of diseases. A variety of
substances that have been proposed to be vitamins haven"t been recognized as
being essential, and some substances that aren"t essential are sometimes
called vitamins. Sometimes these issues haven"t had enough scientific
investigation, but often nonscientific forces regulate nutritional ideas.
</span>
<span lang="de">
Eine Definition eines Vitamins ist, dass ein organisches Molekül ist, das sich in Nahrungsmitteln vorfindet,
dessen Mangel die <em>Ursache</em> einer gewissen <em>Krankheit</em> bzw. einer
Reihe von Krankheiten ist. Eine Vielzahl von Substanzen, die als Vitamin vorgeschlagen wurden, wurde nicht als
lebensnotwendig erkannt. Umgekehrt werden einige nicht lebensnotwendige Substanzen manchmal Vitamine genannt.
Manchmal sind diese Themen nicht ausreichend erforscht, aber Ideen über die Ernährung werden oft von
nicht-wissenschaftlichen Mächten reguliert.
</span>
</p>

<p>
<span lang="en">
The definition of "a disease" isn"t as clear as text-book writers have
implied, and "causality" in biology is always more complex than we like to
believe.
</span>
<span lang="de">
Die Definition einer "Krankheit" ist nicht so klar, wie es den Lehrbüchern nach manchmal erscheinen mag, und
Kausalität in der Biologie ist immer komplexer als wir glauben möchten.
</span>
</p>

<p>
<span lang="en">
Nutrition is one of the most important sciences, and should certainly be as
prestigious and well financed as astrophysics and nuclear physics, but while
people say "it doesn"t take a brain surgeon to figure that out," no one says
"it doesn"t take a nutritionist to understand that." Partly, that"s because
medicine treated scientific nutrition as an illegitimate step-child, and
refused throughout the 20th century to recognize that it is a central part of
scientific health care. In the 1970s, physicians and dietitians were still
ridiculing the idea that vitamin E could prevent or cure diseases of the
circulatory system, and babies as well as older people were given "total
intravenous nutrition" which lacked nutrients that are essential to life,
growth, immunity, and healing. Medicine and science are powerfully
institutionalized, but no institution or profession has existed for the
purpose of encouraging people to act reasonably.
</span>
<span lang="de">
Die Ernährungswissenschaft ist eine der wichtigsten Naturwissenschaften und sollte gewiss das Prestige
und die Finanzierung erhalten wie die Astro- oder Kernphysik. Doch obwohl es im Englischen oft gesagt wird,
dass "man kein Raketenforscher sein muss, um das zu verstehen", ist hier nie die Rede von einem
Ernährungswissenschaftler. Das liegt teilweise daran, dass die Ernährungswissenschaft von der Medizin wie ein
uneheliches Stiefkind behandelt wurde, und im Laufe des 20. Jahrhunderts weigerte man sich, sie als
zentraler Teil des wissenschaftlichen Gesundheitswesens anzuerkennen. Ärzte und Ernährungsberater verpotteten
noch bis in die 1970er die Idee, dass Vitamin E Herzkreislauferkrankungen vorbeugen oder sie sogar heilen
könnte, und Säuglinge sowie ältere Menschen bekamen "totale parentale Ernährung", denen Nährstoffe fehlte, die
fürs Leben, das Wachstum, die Immunität und Heilung notwendig sind. Die Medizin und die Naturwissenschaften sind
stark institutionalisiert, aber es gab bislang weder eine Institution noch einen Beruf, der zu dem Zweck
existierte, rationales Handeln zu fördern.
</span>
</p>

<p>
<span lang="en">
In this environment, most people have felt that subtleties of definition,
logic and evidence weren"t important for nutrition, and a great amount of
energy has gone into deciding whether there were "four food groups" or "seven
food groups" or a "nutritional pyramid." The motives behind governmental and
quasi-governmental nutrition policies usually represent something besides a
simple scientific concern for good health, as when health care institutions
say that Mexican babies should begin eating beans when they reach the age of
six months, or that non-whites don"t need milk after they are weaned. In a
culture that discourages prolonged breast feeding, the effects of these
doctrines can be serious.
</span>
<span lang="de">
In diesem Umfeld hatten die meisten Leute den Eindruck, dass die Feinheiten von Definitionen, Logik und
Beweisen nicht wichtig für die Ernährungswissenschaft sind, und es wurde sehr viel Energie investiert, um zu
entscheiden, ob es entweder "vier Lebensmittelgruppen" oder sieben gibt, oder sogar eine "Ernährungspyramide".
Die Motivationen, die hinter staatlicher bzw. pseudo-staatlicher Ernährungspolitik stecken, stellen
normalerweise etwas anderes außer einfachem wissentschaftlichen Interesse für gute Gesundheit dar. So wird
beispielweise behauptet, dass mexikanische Säuglinge nach dem Alter von sechs Monaten anfangen sollten, Bohnen
zu essen, oder dass Nichtweiße keine Milch bräuchten, nachdem sie abgestillt wurden. In einer Kultur, die vor
verlängertem Stillen abrät, können die Folgen solcher Doktrinen ernste Konsequenzen mit sich tragen.
</span>
</p>

<p>
<span lang="en">
After a century of scientific nutrition, public nutritional policies are doing
approximately as much harm as good, and they are getting worse faster than
they are getting better..
</span>
<span lang="de">
Nach einem Jahrhundert Ernährungswissenschaft sorgt die öffentliche Ernährungspolitik für ungefähr genauso viel
Schaden wie Nutzen und sie wird schneller schlimmer, als dass sie besser wird.
</span>
</p>

<p>
<span lang="en">
In this culture, what we desperately need is a recognition of the complexity
of life, and of the political-ecological situation we find ourselves in. Any
thinking which isn"t "system thinking" should be treated with caution, and
most contemporary thinking about health neglects to consider relevant parts of
the problem-system. "Official" recommendations about salt, cholesterol, iron,
unsaturated and saturated fats, and soybeans have generally been
inappropriate, unscientific, and strongly motivated by business interests
rather than by biological knowledge.
</span>
<span lang="de">
Das, was wir in dieser Kultur dringend nötig haben, ist eine Anerkennung der Komplexität des Lebens, und der
politisch-ökologischen Situation, in der wir uns befinden. Jegliches Denken, das kein "Systemdenken" ist,
sollte man mit Vorbehalt betrachten und der Großteil zeitgenössischer Gedanken zur Gesundheit beachtet
relevante Teile des Problem-Systems nicht. "Offizielle" Ratschläge zu Salz, Cholesterin, Eisen, gesättigten und
ungesättigten Fetten, und Sojabohnen waren bisher in der Regel unangemessen, unwissenschaftlich, und wurden
stark durch geschäftliche Interessen statt biologisches Wissen motiviert.
</span>
</p>

<p>
<span lang="en">
Definitions have rarely distinguished clearly between nutrients and drugs, and
new commercial motives are helping to further blur the distinctions.
</span>
<span lang="de">
Manche Definitionen unterscheiden nicht klar zwischen Nährstoffen und Drogen, und wirtschaftliche Motiven
sorgen dafür, dass die Unterschiede weiter verschwimmen.
</span>
</p>

<p>
<span lang="en">
<strong
>Essential nutrients, defensive (detoxifying, antistress) nutrients,
hormone-modulating nutrients, self-actualization nutrients, growth
regulating nutrients, structure modifiers, life extension agents,
transgenerationally active (imprinting)</strong>
<strong>nutrients--</strong>the line between nutrients and biological
modifiers often depends on the situation. Vitamins D and A clearly have
hormone-like properties, and vitamin E"s effects, and those of many terpenoids
and steroids and bioflavonoids found in foods, include hormone-like actions as
well as antioxidant and pro-oxidant functions. The concept of "adaptogen" can
include things that act like both drugs and nutrients.
</span>
<span lang="de">
<strong>Lebensnotwendige Nährstoffe, defensive (entgiftende, stresshemmende) Nährstoffe,
hormon-modulierende Nährstoffe, Nährstoffe zur Selbstverwirklichung, wachstumsregulierende Nährstoffe,
Strukturmodifikatoren, Lebensverlängerungswirkstoffe, transgenerationell aktive (prägende) Nährstoffe -
</strong> die Grenze zwischen Nährstoffen und biologischen Modifikatoren hängt oft von der Situation ab. Die
Vitmaine D und A haben klare hormon-ähnliche Eigenschaften, und zu den Wirkungen von Vitamin E sowie mehreren
anderen Terpenoiden, Steroiden, und Bioflavonoiden in Lebensmitteln zählen hormon-ähnliche sowie antioxidative
und pro-oxidative Funktionen. Das Konzept eines "Adaptogens" kann Dinge umfassen, die sich wie sowohl Drogen
als auch Nährstoffe verhalten.
</span>
</p>

<p>
<span lang="en">
Some studies have suggested that trace amounts of nutrients could be passed on
for a few generations, but the evidence now indicates that these
transgenerational effects are caused by phenomena such as "imprinting." But
the hereditary effects of nutrients are so complex that their recognition
would force nutrition to be recognized as one of the most complex sciences,
interwoven with the complexities of growth and development.
</span>
<span lang="de">
Einige Studien legten nahe, dass Spuren von Nährstoffen über einige Generationen hinweg weitergegeben werden können,
aber die Beweislage zeigt nun, dass diese transgenerationellen Effekte ihren Ursprung in Phänomenen wie
"Prägung" haben. Aber die vererbten Wirkungen von Nährstoffen sind so komplex, dass ihre Anerkennung dafür
sorgen würde, dass die Ernährungswissenschaft als eine der komplexesten Naturwissenschaften anerkannt werden müsste;
eine Wissenschaft, die mit den Komplexitäten von Wachstum und Entwicklung eng verflochten ist.
</span>
</p>

<p>
<span lang="en">
The idea that poor nutrition stunts growth has led to the idea that good
nutrition can be defined in terms of the rate of growth and the size
ultimately reached. In medicine, it is common to refer to an obese specimen as
"well nourished," as if quantity of food and quantity of tissue were
necessarily good things. But poisons can stimulate growth ("hormesis"), and
food restriction can extend longevity.
<strong
>We still have to determine basic things such as the optimal rate of growth,
and the optimal size.</strong
>
</span>
<span lang="de">
Die Idee, dass schlechte Ernährung das Wachstum hemmt, führte zur Idee, dass gute Ernährung anhand der
Wachstumsrate und der schließlich erreichten Größe definiert werden kann. In der Medizin ist es gewöhnlich, ein
adipöses Exemplar als "gut ernährt" zu bezeichnen, als wäre diese Menge von Essen und Gewebe zwangsläufig etwas
gutes. Aber Giftstoffe können das Wachstum fördern ("Hormesis") und Lebensmittelbeschränkung kann das Leben
verlängern.
<strong>Noch müssen wir grundlegende Sachen bestimmen wie die optimale Wachstumsrate und die optimale Größe.</strong>
</span>
</p>

<p>
<span lang="en">
Nutrition textbooks flatly describe caffeine as a drug, not a nutrient, as if
it were obvious that nutrients can"t be drugs. Any of the essential nutrients,
if used in isolation, can be used as a drug, for a specific effect on the
organism that it wouldn"t normally have when eaten as a component of ordinary
food. And natural foods contain thousands of chemicals, other than the
essential nutrients. Many of these are called nonessential nutrients, but
their importance is being recognized increasingly. The truth is that we aren"t
sure what they "aren"t essential" for. Until we have more definite knowledge
about the organism I don"t think we should categorize things so absolutely as
drugs or nutrients.
</span>
<span lang="de">
In Lehrbüchern zur Ernährungswissenschaft wird Koffein kategorisch als Droge beschrieben, und keinen Nährstoff,
als wäre es offensichtlich, dass Nährstoffe keine Drogen sein könnten. Irgendeiner der lebensnotwendigen
Nährstoffe kann als Droge eingesetzt werden, wenn er isoliert zugeführt wird, um eine gewisse Wirkung im
Organismus zu erzielen, die er sonst nicht hätte, wenn er als Teil einer normalen Ernährung aufgenommen werden
würde. Und abgesehen von den lebensnotwendigen Nährstoffen enthalten natürliche Lebensmittel Tausende von anderen
Chemikalien. Viele werden als nicht lebensnotwendig bezeichnet, aber ihre Wichtigkeit wird zunehmend anerkannt.
Die Wahrheit ist, dass wir nicht unbedingt wissen, wofür sie "nicht lebensnotwendig" sind.
</span>
</p>

<p>
<span lang="en">
The bad effects ascribed to coffee usually involve administering large doses
in a short period of time. While caffeine is commonly said to raise blood
pressure, this effect is slight, and may not occur during the normal use of
coffee. Experimenters typically ignore essential factors. Drinking plain water
can cause an extreme rise in blood pressure, especially in old people, and
eating a meal (containing carbohydrate) lowers blood pressure. The increased
metabolic rate caffeine produces increases the cellular consumption of
glucose, so experiments that study the effects of coffee taken on an empty
stomach are measuring the effects of increased temperature and metabolic rate,
combined with increased adrenaline (resulting from the decrease of glucose),
and so confuse the issue of caffeine"s intrinsic effects.
</span>
<span lang="de">
Die schädlichen Wirkungen, die Koffein zugeschrieben werden, treten meist in Zusammenhang mit einer Zufuhr von
sehr hohen Mengen in kurzer Zeit auf. Obwohl es häufig heißt, Koffein erhöhe den Blutdruck, ist diese
Wirkung sehr leicht, und sie könnte bei normalem Kaffeekonsum gar nicht auftreten. Forscher ignorieren
typischerweise wesentliche Faktoren. Das Trinken von einfachem Wasser kann für einen extremen Antieg des
Blutdrucks sorgen, insbesondere bei älteren Menschen, und eine Mahlzeit (mit Kohlenhydraten) kann ihn wiederum
senken. Der erhöhte Stoffwechsel, für den Koffein sorgt, steigert den zellulären Glukosekonsum. Wenn Forcher
also den Kaffekonsum auf leerem Magen erforschen, messen sie die Wirkung von erhöhter Temperatur und erhöhtem
Stoffwechsel, zusammen mit erhöhtem Adrenalin (aufgrund von dem gesunkenen Glukosespiegel), und bringen das
Verständnis der intrinsischen Wirkung von Koffein durcheinander.
</span>
</p>

<p>
<span lang="en">
In one study (Krasil"nikov, 1975), the drugs were introduced directly into the
carotid artery to study the effects on the blood vessels in the brain.
Caffeine increased the blood volume in the brain, while decreasing the
resistance of the vessels, and this effect is what would be expected from its
stimulation of brain metabolism and the consequent increase in carbon dioxide,
which dilates blood vessels.
</span>
<span lang="de">
In einer Studie (Krasilnikov, 1975) wurden die Drogen direkt in die Karotis eingeführt, um deren Wirkung auf die
Blutgefäße und das Gehirn zu erforschen. Koffein erhöhte das Blutvolumen im Gehirn und gleichzeitig senkte es den
Gefäßwiderstand. Dieser Effekt sollte erwartet werden, wenn Koffein den Stoffwechsel im Gehirn fördert und
somit für eine Erhöhung des Kohlenstoffdioxid-Gehalts, was die Blutgefäße erweitert.
</span>
</p>

<p>
<span lang="en">
In the whole body, increased carbon dioxide also decreases vascular
resistance, and this allows circulation to increase, while the heart"s work is
decreased, relative to the amount of blood pumped. But when the whole body"s
metabolism is increased, adequate nutrition is crucial.
</span>
<span lang="de">
Im ganzen Körper senkt Kohlenstoffdioxid auch den Gefäßwiderstand, was für eine Erhöhung des Kreislaufs sorgt.
Dabei muss das Herz weniger arbeiten, um die gleiche Menge Blut zu pumpen. Aber wenn sich der Stoffwechsel des
gesamten Körpers erhöht, ist eine angemessene Ernährung sehr wichtig.
</span>
</p>

<p>
<span lang="en">
In animal experiments that have been used to argue that pregnant women
shouldn"t drink coffee, large doses of caffeine given to pregnant animals
retarded the growth of the fetuses. But simply giving more sucrose prevented
the growth retardation. Since caffeine tends to correct some of the metabolic
problems that could interfere with pregnancy, it is possible that rationally
constructed experiments could show benefits to the fetus from the mother"s use
of coffee, for example by lowering bilirubin and serotonin, preventing
hypoglycemia, increasing uterine perfusion and progesterone synthesis,
synergizing with thyroid and cortisol to promote lung maturation, and
providing additional nutrients.
</span>
<span lang="de">
In Tierversuchen, die als Argument benutzt werden, dass schwangere Frauen keinen Kaffee trinken sollten,
verzögerten hohe Mengen von Koffein das Wachstum der Föten. Aber die einfache Gabe von mehr Saccharose
verhinderte diese Wachstumsverzögerung. Da Koffein einige der Stoffwechselprobleme behebt, die eine
Schwangerschaft behindern könnten, ist es möglich, dass rational aufgebaute Experimente Vorteile für den Fötus
durch den Kaffeekonsum der Mutter zeigen könnten, zum Beispiel durch die Senkung von Biliburin und Serotonin,
die Verhindernung von Unterzuckerung, die Steigerung der Durchblutung der Gebärmutter und der Synthese von
Progesteron, die Synergie mit Schilddrüsenhormon und Cortisol zur Förderung der Lungenreifung, und die Zufuhr
zusätzlicher Nährstoffe.
</span>
</p>

<p>
<span lang="en">
One of the most popular misconceptions about caffeine is that it causes
fibrocystic breast disease. Several groups demonstrated pretty clearly that it
doesn"t, but there was no reason that they should have had to bother, except
for an amazingly incompetent, but highly publicized, series of
articles--classics of their kind--by J. P. Minton, of Ohio State University.
Minton neglected to notice that the healthy breast contains a high percentage
of fat, and that the inflamed and diseased breast has an increased proportion
of glandular material Fat cells have a low level of cyclic AMP, a regulatory
substance that is associated with normal cellular differentiation and
function, and is involved in mediating caffeine"s ability to inhibit cancer
cell multiplication. Minton argued that cAMP increases progressively with the
degree of breast disease, up to cancer, and that cAMP is increased by
caffeine. A variety of substances other than caffeine that inhibit the growth
of cancer cells (as well as normal breast cells) act by
<em>increasing</em> the amount of cyclic AMP, while estrogen lowers the amount
of cAMP and increases cell growth. Minton"s argument should have been to use
more caffeine, in proportion to the degree of breast disease, if he were
arguing logically from his evidence. Caffeine"s effect on the breast resembles
that of progesterone, opposing estrogen"s effects.
</span>
<span lang="de">
Einer der am weitesten verbreitenen Irrtümer über Koffein ist die Behauptung, es verursache Mastopathie.
</span>
</p>
<p>
Many studies over the last 30 years have shown caffeine to be highly
protective against all kinds of carcinogenesis, including estrogen"s
carcinogenic effects on the breast. Caffeine is now being used along with some
of the standard cancer treatments, to improve their effects or to reduce their
side effects. There are substances in the coffee berry besides caffeine that
protect against mutations and cancer, and that have shown strong therapeutic
effects against cancer. Although many plant substances are protective against
mutations and cancer, I don"t know of any that is as free of side effects as
coffee.
</p>
<p>
To talk about caffeine, it"s necessary to talk about uric acid.
<strong>
Uric acid, synthesized in the body, is both a stimulant and a very important
antioxidant, and its structure is very similar to that of caffeine.
</strong>
A deficiency of uric acid is a serious problem. Caffeine and uric acid are in
the group of chemicals called purines.
</p>
<p>
Purines (along with pyrimidines) are components of the nucleic acids, DNA and
RNA, but they have many other functions. In general, substances related to
purines are stimulants, and substances related to pyrimidines are sedatives.
</p>
<p>
When the basic purine structure is oxidized, it becomes in turn hypoxanthine,
xanthine, and uric acid, by the addition of oxygen atoms. When methyl groups
(CH<sub>3</sub>) are added to nitrogens in the purine ring, the molecule
becomes less water soluble. Xanthine (an intermediate in purine metabolism)
has two oxygen atoms, and when three methyl groups are added, it becomes
trimethyl xanthine, or caffeine. With two methyl groups, it is theophylline,
which is named for its presence in tea. We have enzyme systems which can add
and subtract methyl groups<strong>;</strong> for example, when babies are
given theophylline, they can convert it into caffeine.
</p>

<p>
We have enzymes that can modify all of the methyl groups and oxygen atoms of
caffeine and the other purine derivatives. Caffeine is usually excreted in a
modified form, for example as a methylated uric acid.
</p>
<p>
One of the ways in which uric acid functions as an "antioxidant" is by
modifying the activity of the enzyme xanthine oxidase, which in stress can
become a dangerous source of free radicals. Caffeine also restrains this
enzyme. There are several other ways in which uric acid and caffeine (and a
variety of intermediate xanthines) protect against oxidative damage. Coffee
drinkers, for example, have been found to have lower levels of cadmium in
their kidneys than people who don"t use coffee, and coffee is known to inhibit
the absorption of iron by the intestine, helping to prevent iron overload.
</p>
<p>
Toxins and stressors often kill cells, for example in the brain, liver, and
immune system, by causing the cells to expend energy faster than it can be
replaced. There is an enzyme system that repairs genetic damage, called
"PARP." The activation of this enzyme is a major energy drain, and substances
that inhibit it can prevent the death of the cell. Niacin and caffeine can
inhibit this enzyme sufficiently to prevent this characteristic kind of cell
death, without preventing the normal cellular turnover<strong>;</strong> that
is, they don"t produce tumors by preventing the death of cells that aren"t
needed.
</p>
<p>
The purines are important in a great variety of regulatory processes, and
caffeine fits into this complex system in other ways that are often protective
against stress. For example, it has been proposed that tea can protect against
circulatory disease by preventing abnormal clotting, and the mechanism seems
to be that caffeine (or theophylline) tends to restrain stress-induced
platelet aggregaton.
</p>
<p>
When platelets clump, they release various factors that contribute to the
development of a clot. Serotonin is one of these, and is released by other
kinds of cell, including mast cells and basophils and nerve cells. Serotonin
produces vascular spasms and increased blood pressure, blood vessel leakiness
and inflammation, and the release of many other stress mediators. Caffeine,
besides inhibiting the platelet aggregation, also tends to inhibit the release
of serotonin, or to promote its uptake and binding.
</p>

<p>
J. W. Davis, et al., 1996, found that high uric acid levels seem to protect
against the development of Parkinson"s disease. They ascribed this effect to
uric acid"s antioxidant function. Coffee drinking, which <em>lowers</em> uric
acid levels, nevertheless appeared to be much more strongly protective against
Parkinson"s disease than uric acid.
</p>
<p>
Possibly more important than coffee"s ability to protect the health is the way
it does it. The studies that have tried to gather evidence to show that coffee
is harmful, and found the opposite, have provided insight into several
diseases. For example, coffee"s effects on serotonin are very similar to
carbon dioxide"s, and the thyroid hormone"s. Noticing that coffee drinking is
associated with a low incidence of Parkinson"s disease could focus attention
on the ways that thyroid and carbon dioxide and serotonin, estrogen, mast
cells, histamine and blood clotting interact to produce nerve cell death.
</p>
<p>
Thinking about how caffeine can be beneficial across such a broad spectrum of
problems can give us a perspective on the similarities of their underlying
physiology and biochemistry, expanding the implications of stress, biological
energy, and adaptability.
</p>
<p>
The observation that coffee drinkers have a low incidence of suicide, for
example, might be physiologically related to the large increase in suicide
rate among people who use the newer antidepressants called "serotonin reuptake
inhibitors." Serotonin excess causes several of the features of depression,
such as learned helplessness and reduced metabolic rate, while coffee
stimulates the <em>uptake</em> (inactivation or storage) of serotonin,
increases metabolic energy, and tends to improve mood. In animal studies, it
reverses the state of helplessness or despair, often more effectively than
so-called antidepressants.
</p>
<p>
The research on caffeine"s effects on blood pressure, and on the use of fuel
by the more actively metabolizing cells, hasn"t clarified its effects on
respiration and nutrition, but some of these experiments confirm things that
coffee drinkers usually learn for themselves.
</p>
<p>
Often, a woman who thinks that she has symptoms of hypoglycemia says that
drinking even the smallest amount of coffee makes her anxious and shaky.
Sometimes, I have suggested that they try drinking about two ounces of coffee
with cream or milk along with a meal. It"s common for them to find that this
reduces their symptoms of hypoglycemia, and allows them to be symptom-free
between meals. Although we don"t know exactly why caffeine improves an
athlete"s endurance, I think the same processes are involved when coffee
increases a person"s "endurance" in ordinary activities.
</p>
<p>
Caffeine has remarkable parallels to thyroid and progesterone, and the use of
coffee or tea can help to maintain their production, or compensate for their
deficiency. Women spontaneously drink more coffee premenstrually, and since
caffeine is known to increase the concentration of progesterone in the blood
and in the brain, this is obviously a spontaneous and rational form of
self-medication, though medical editors like to see things causally reversed,
and blame the coffee drinking for the symptoms it is actually alleviating.
Some women have noticed that the effect of a progesterone supplement is
stronger when they take it with coffee. This is similar to the synergy between
thyroid and progesterone, which is probably involved, since caffeine tends to
<em>locally</em> activate thyroid secretion by a variety of mechanisms,
increasing cyclic AMP and decreasing serotonin in thyroid cells, for example,
and also by lowering the systemic stress mediators.
</p>
<p>
Medical editors like to publish articles that reinforce important prejudices,
even if, scientifically, they are trash. The momentum of a bad idea can
probably be measured by the tons of glossy paper that have gone into its
development. Just for the sake of the environment, it would be nice if editors
would try to think in terms of evidence and biological mechanisms, rather than
stereotypes.
</p>
<p class="notranslate">
<a href="https://raypeat.com/articles/articles/hypothyroidism.shtml">Originalartikel und Quellenverzeichnis</a>
</p>

+ 801
- 0
public/generative-energy/static/content/hypothyroidism.html Vedi File

@@ -0,0 +1,801 @@
<h1 lang="en">TSH, temperature, pulse rate, and other indicators in hypothyroidism</h1>
<h1 lang="de">TSH, Temperatur, Puls, und andere Indikatoren bei einer Schilddrüsenunterfunktion</h1>

<p>
<span lang="en"
>Each of the indicators of thyroid function can be useful, but has to be interpreted in relation to the
physiological state.</span>
<span lang="de"
>Jeder einzelne der Indikatoren der Schilddrüsenfunktion kann zwar nützlich sein, aber sie müssen in Zusammenhang
mit dem gesamten physiologischen Grundzustand betrachtet werden.</span>
</p>

<p>
<span lang="en"
>Increasingly, TSH (the pituitary thyroid stimulating hormone) has been treated as if it meant something
independently; however, it can be brought down into the normal range, or lower, by substances other than the
thyroid hormones.</span>
<span lang="de"
>TSH (oder Thyreotropin, das Thyreoidea-stimulierendes oder Schilddrüsen-stimulierendes Hormon der Hypophyse) wird
zunehmend so behandelt, als hätte es isoliert etwas zu bedeuten; allerdings kann es durch andere Substanzen als
die Schilddrüsenhormone bis in den normalen Bereich oder gar tiefer gesenkt werden.</span>
</p>

<p>
<span lang="en"
>“Basal” body temperature is influenced by many things besides thyroid. The resting heart rate helps to interpret
the temperature. In a cool environment, the temperature of the extremities is sometimes a better indicator than
the oral or eardrum temperature.</span>
<span lang="de"
>Es sind nämlich nicht nur die Schilddrüsenhormone, die die „basale“ Körpertemperatur beeinflussen können. Der
Ruhepuls kann z.B. als Hilfsmittel dienen, die Temperatur zu interpretieren. In einer kühlen Umgebung ist die
Temperatur der Extremitäten ein besserer Indikator als die Oral- oder Trommelfelltemperatur.</span>
</p>

<p>
<span lang="en"
>The “basal” metabolic rate, especially if the rate of carbon dioxide production is measured, is very useful. The
amount of water and calories disposed of in a day can give a rough idea of the metabolic rate.</span>
<span lang="de"
>Der „basale“ Grundumsatz ist vor allem dann sehr nützlich, wenn die Produktionsrate von CO2 mitgemessen wird. Die
Menge an Wasser und Kalorien, die im Laufe eines Tages verwertet werden, können als grobe Richtwerte für den
Grundumsatz dienen.</span>
</p>

<p>
<span lang="en"
>The T wave on the electrocardiogram, and the relaxation rate on the Achilles reflex test are useful.</span>
<span lang="de"
>Sowohl die T-Welle eines Elektrokardiogramms als auch die Entspannungszeit beim Achillessehnenreflex-Test sind
nützlich.</span>
</p>

<p>
<span lang="en"
>Blood tests for cholesterol, albumin, glucose, sodium, lactate, total thyroxine and total T3 are useful to know,
because they help to evaluate the present thyroid status, and sometimes they can suggest ways to correct the
problem.</span>
<span lang="de">Es kann zudem sinnvoll sein, die Blutwerte von Cholesterin, Albumin, Glukose, Natrium, Laktat,
Gesamt-Thyroxin, sowie Gesamt-T3 zu wissen, weil sie eine Evaluierung der aktuellen Funktionsstärke der
Schilddrüse ermöglichen und zudem oft Hinweise geben, wie sich das Problem behandeln ließe.
</span>
</p>

<p>
<span lang="en"
>Less common blood or urine tests (adrenaline, cortisol, ammonium, free fatty acids), if they are available, can
help to understand compensatory reactions to hypothyroidism.</span>
<span lang="de"
>Seltenere Blut- bzw. Urinproben (Adrenalin, Cortisol, Ammoniak, freie Fettsäuren), falls sie zur Verfügung stehen,
können dem besseren Verständnis der Kompensierungsreaktionen einer Schilddrüsenunterfunktion dienen.</span>
</p>

<p>
<span lang="en"
>A book such as McGavack's The Thyroid, that provides traditional medical knowledge about thyroid physiology, can
help to dispel some of the current dogmas about the thyroid.</span>
<span lang="de"
>Bücher wie „The Thyroid“ von McGavack, die traditionelles medizinisches Wissen über Schilddrüsenphysiologie
liefern, können helfen, einige der aktuellen Dogmata über die Schilddrüse aufzulösen.</span>
</p>

<p>
<span lang="en"
>Using more physiologically relevant methods to diagnose hypothyroidism will contribute to understanding its role in
many problems now considered to be unrelated to the thyroid.</span>
<span lang="de">Die Benutzung physiologisch relevanter Methoden, eine Schilddrüsenunterfunktion zu diagnostizieren,
trägt dazu bei, deren Rolle bei diversen Problemen zu verstehen, bei denen mittlerweile ein Zusammenhang mit der
Schilddrüse ausgeschlossen wird.
</span>
</p>

<hr />

<p>
<span lang="en"
>I have spoken to several people who told me that their doctors had diagnosed them as “both hypothyroid and
hyperthyroid.” Although physicists can believe in things which are simultaneously both particles and not
particles, I think biology (and medicine, as far as it is biologically based) should occupy a world in which
things are not simultaneously themselves and their opposites. Those illogical, impossible diagnoses make it
clear that the rules for interpreting test results have in some situations lost touch with reality.</span>
<span lang="de"
>Ich sprach mit vielen Leuten, die mir erzählten, dass ihre Ärzte bei ihnen „gleichzeitig eine Schilddrüsenüber-
sowie -unterfunktion“ diagnostiziert hatten. Obwohl Physiker in der Lage sind, an Dinge zu glauben, die
gleichzeitig sowohl Partikeln als auch keine Partikeln sind, denke ich, dass die Biologie (und die Medizin,
sofern sie auf der Biologie beruht) eine Welt bewohnen sollten, in der Sachen nicht simultan sie selbst und ihre
Gegenteile sind. Diese unlogischen, unmöglichen Diagnosen zeigen auf, dass die Regeln zur Interpretierung von
Testergebnissen in manchen Fällen sämtlichen Bezug zur Realität verloren haben.</span>
</p>

<p>
<span lang="en"
>Until the 1940s, hypothyroidism was diagnosed on the basis of signs and symptoms, and sometimes the measurement of
oxygen consumption (“basal metabolic rate”) was used for confirmation. Besides the introduction of supposedly
“scientific” blood tests, such as the measurement of protein-bound iodine (PBI) in the blood, there were other
motives for becoming parsimonious with the diagnosis of hypothyroidism. With the introduction of synthetic
thyroxine, one of the arguments for increasing its sale was that natural Armour thyroid (which was precisely
standardized by biological tests) wasn't properly standardized, and that an overdose could be fatal. A few
articles in prestigious journals created a myth of the danger of thyroid, and the synthetic thyroxine was
(falsely) said to be precisely standardized, and to be without the dangers of the complete glandular
extract.</span>
<span lang="de"
>Bis in die 1940er Jahre wurde eine Schilddrüsenunterfunktion auf Basis von Anzeichen und Symptomen festgestellt und
manchmal wurde auch der Sauerstoffkonsum („basaler Grundumsatz“) zur Bestätigung gemessen. Abgesehen von der
Einführung scheinbar „wissenschaftlicher“ Bluttests, wie z.B. der Messung des proteingebundenen Jods im Blut,
gab es weitere Motive, eher zurückhaltend mit der Diagnose einer Schilddrüsenunterfunktion zu werden. Mit der
Einführung einer synthetischen Form von Thyroxin war eins der Argumente, die Verkaufszahlen zu steigern, dass
natürliches Armour-Schilddrüsenhormon (welches präzise mittels biologischer Tests standardisiert wurde) eben
nicht sauber standardisiert war, und dass eine Überdosis fatal sein könnte. Einige Artikel, die in namhaften
Ärzteblättern erschienen, schufen den Mythos der Gefahr von Schilddrüsenhormon und synthetisches Thyroxin wurde
(fälschlicherweise) als präzise standardisiert beschrieben, sowie frei von jeglichen Gefahren, die mit dem
Drüsenextrakt verbunden seien.</span>
</p>

<p>
<span lang="en"
>Between 1940 and about 1950, the estimated percentage of hypothyroid Americans went from 30% or 40% to 5%, on the
basis of the PBI test, and it has stayed close to that lower number (many publications claim it to be only 1% or
2%). By the time that the measurement of PBI was shown to be only vaguely related to thyroid hormonal function,
it had been in use long enough for a new generation of physicians to be taught to disregard the older ideas
about diagnosing and treating hypothyroidism. They were taught to inform their patients that the traditional
symptoms that were identified as hypothyroidism before 1950 were the result of the patients' own behavior (sloth
and gluttony, for example, which produced fatigue, obesity, and heart disease), or that the problems were
imaginary (women's hormonal and neurological problems, especially), or that they were simply mysterious diseases
and defects (recurring infections, arthritis, and cancer, for example).</span>
<span lang="de">Zwischen 1940 und 1950 sank das geschätzte Vorkommen hypothyreoter US-Amerikaner auf Basis des
PBI-Tests (proteingebundener Jod) von 30 bis 40 % auf 5 % und blieb bislang in diesem niedrigeren Bereich.
(Manche Publikationen behaupten, es betreffe nur 1 bis 2 %.) Bis es gezeigt wurde, dass die Bestimmung der
PBI-Konzentration im Blut nur einen geringen Zusammenhang mit der Schilddrüsenfunktion hatte, war es schon
ausreichend lange in Verwendung, dass einer neuen Generation von Medizinern beigebracht werden konnte, ältere
Ideen zur Diagnostik und Behandlung einer Schilddrüsenunterfunktion schlichtweg nicht mehr zu beachten. Es wurde
ihnen beigebracht, ihre Patienten zu informieren, dass die traditionellen Symptome, die vor 1950 als
Erscheinungen einer Schilddrüsenunterfunktion erkannt worden wären, ihre Ursache in der Lebensweise der
Patienten selber hätten (Faulheit und Völlerei führten beispielsweise zu Trägheit, Fettleibigkeit, und
Herzkreislauferkrankungen), oder dass sie ihre Probleme nur einbilden würden (insbesondere die hormonellen und
neurologischen Probleme von Frauen), oder dass diese Probleme bloß mysteriöse Krankheiten und Defekte wären
(wiederkehrende Infekte, Arthrose, und Krebs, zum Beispiel).
</span>
</p>

<p>
<span lang="en"
>As the newer, more direct tests became available, their meaning was defined in terms of the statistical expectation
of hypothyroidism that had become an integral part of medical culture. To make the new TSH measurements fit the
medical doctrine, an 8- or 10-fold variation in the hormone was defined as “normal.” With any other biological
measurement, such as erythrocyte count, blood pressure, body weight, or serum sodium, calcium, chloride, or
glucose, a variation of ten or 20 percent from the mean is considered to be meaningful. If the doctrine
regarding the 5% prevalence of hypothyroidism hadn't been so firmly established, there would have been more
interest in establishing the meaning of these great variations in TSH.</span>
<span lang="de"
>Die zunehmende Verfügbarkeit neuerer, direkterer Tests hat dazu geführt, dass deren Bedeutung anhand statistischer
Erwartungen einer Schilddrüsenunterfunktion festgelegt wurde, die sich in der medizinischen Kultur schon fest
etabliert hatte. Um die neuen TSH-Messwerte an die medizinische Lehrmeinung anzupassen, wurde eine acht- bis
zehnfache Abweichung des Hormons als „normal“ definiert. Bei sämtlichen anderen biologischen Messungen, wie z.B.
Erythrozyten, Blutdruck, Körpergewicht, oder Serumnatrium, -kalzium, -chlor, oder -glukose, wird eine Abweichung
von mehr als 20 Prozent vom Mittelwert als aussagekräftig betrachtet. Wenn sich die Lehrmeinung bezüglich des 5
%-igen Vorkommens von Schilddrüsenunterfunktion nicht so fest etabliert hätte, hätte es mehr Interesse gegeben,
die Bedeutung dieser großen Abweichungen des TSH-Werts zu klären.</span>
</p>

<p>
<span lang="en"
>In recent years the “normal range” for TSH has been decreasing. In 2003, the American Association of Clinical
Endocrinologists changed their guidelines for the normal range to 0.3 to 3.0 microIU/ml. But even though this
lower range is less arbitrary than the older standards, it still isn't based on an understanding of the
physiological meaning of TSH.</span>
<span lang="de"
>Seit einigen Jahren nehmen die Grenzwerte des normalen TSH-Bereichs ab. Die American Association of Clinical
Endocrinologists hat 2003 ihre Richtlinien des normalen Bereichs auf 0,3 bis 3,0 microUI/mL angepasst. Obwohl
dieser niedrigere Bereich weniger willkürlich wirkt als ältere Standards, basiert es trotzdem nicht auf einem
Verständnis der physiologischen Bedeutung von Thyreotropin.</span>
</p>

<p>
<span lang="en"
>Over a period of several years, I never saw a person whose TSH was over 2 microIU/ml who was comfortably healthy,
and I formed the impression that the normal, or healthy, quantity was probably something less than 1.0.</span>
<span lang="de"
>Über mehrere Jahre sah ich noch nie jemanden, die einen Thyreotropin-Wert über 2 microIU/mL hatte, die sich
angenehm gesund fühlte, und ich bildete die Meinung, dass die normale bzw. gesunde Quantität wahrscheinlich eher
einen Wert unter 1,0 beträgt.</span>
</p>

<p>
<span lang="en"
>If a pathologically high TSH is defined as normal, its role in major diseases, such as breast cancer, mastalgia,
MS, fibrotic diseases, and epilepsy, will simply be ignored. Even if the possibility is considered, the use of
an irrational norm, instead of a proper comparison, such as the statistical difference between the mean TSH
levels of cases and controls, leads to denial of an association between hypothyroidism and important diseases,
despite evidence that indicates an association.</span>
<span lang="de"
>Wenn ein pathologisch hoher Thyreotropin-Wert als normal definiert wird, wird die Rolle, die er bei wichtigen
Krankheiten spielt, wie z.B. Brustkrebs, Mastodynie (auch „Mastalgie“), multipler Sklerose, fibrotischen
Krankheiten und Epilepsie, schlichtweg ignoriert. Selbst wenn das für möglich gehalten wird, führt die Anwendung
einer irrationalen Norm (anstatt eines zweckmäßigen Vergleichs, wie bspw. des statistischen Abstands des
TSH-Mittelwerts unter Fällen und Kontrollen) dazu, dass trotz Beweisen des Gegenteils geleugnet wird, dass ein
Zusammenhang zwischen einer Schilddrüsenunterfunktion und wichtigen Krankheiten besteht.</span>
</p>

<p>
<span lang="en"
>Some critics have said that most physicians are “treating the TSH,” rather than the patient. If TSH is itself
pathogenic, because of its pro-inflammatory actions, then that approach isn't entirely useless, even when they
“treat the TSH” with only thyroxine, which often isn't well converted into the active triiodothyronine, T3. But
the relief of a few symptoms in a small percentage of the population is serving to blind the medical world to
the real possibilities of thyroid therapy.</span>
<span lang="de"
>Einige Kritiker haben gesagt, dass die meisten Mediziner nur „den TSH-Wert behandeln“ statt den Patienten. Insofern
TSH aufgrund seiner entzündungsfördernden Eigenschaften an und für sich pathogen ist, ist dieser Ansatz nicht
vollkommen unbrauchbar, selbst wenn „der TSH-Wert behandelt wird“. Aber behandelt wird er meist nur mit Thyroxin
(T4), welches oft nicht sehr gut in seine aktive Form, Trijodthyronin (T3), verstoffwechselt werden kann, und
die erfolgreiche Linderung einiger Symptome in einem Bruchteil der Bevölkerung sorgt dafür, dass die Welt der
Medizin blind für die wahren Möglichkeiten der Schilddrüsenhormon-Therapie bleibt.</span>
</p>

<p>
<span lang="en"
>TSH has direct actions on many cell types other than the thyroid, and probably contributes directly to edema
(Wheatley and Edwards, 1983), fibrosis, and mastocytosis. If people are concerned about the effects of a TSH
“deficiency,” then I think they have to explain the remarkable longevity of the animals lacking pituitaries in
W.D. Denckla's experiments, or of the naturally pituitary deficient dwarf mice that lack TSH, prolactin, and
growth hormone, but live about a year longer than normal mice (Heiman, et al., 2003). Until there is evidence
that very low TSH is somehow harmful, there is no basis for setting a lower limit to the normal range.</span>
<span lang="de"
>TSH hat unmittelbare Auswirkungen auf mehrere Zelltypen und nicht nur auf das Schilddrüsengewebe. Es trägt
wahrscheinlich direkt zu Ödem bei (Wheatley und Edwards, 1983), sowie Fibrose und Mastozytose. Wer sich Sorgen
um die Folgen eines Thyreotropin-„Mangels“ macht, der soll meiner Meinung nach die außergewöhnliche
Langlebigkeit von Tieren erklären, die zwar natürlicherweise über keine Hypophyse und entsprechend weder TSH,
noch Prolaktin, noch Wachstumshormon verfügen, die aber fast ein Jahr länger als normale Mäuse leben (Heim, et
al., 2003). Bis Beweise dafür vorliegen, dass ein sehr niedriger TSH-Wert irgendwie als gesundheitsgefährdend
gelten soll, gibt es bislang keine Basis dafür, einen unteren Grenzwert festzulegen.</span>
</p>

<p>
<span lang="en"
>Some types of thyroid cancer can usually be controlled by keeping TSH completely suppressed. Since TSH produces
reactions in cells as different as fibroblasts and fat cells, pigment cells in the skin, mast cells and bone
marrow cells (Whetsell, et al., 1999), it won't be surprising if it turns out to have a role in the development
of a variety of cancers, including melanoma.</span>
<span lang="de"
>Einige Arten von Schilddrüsenkrebs können normalerweise unter Kontrolle gehalten werden, indem man TSH komplett
unterdrückt. Da TSH einige Reaktionen in verschiedenen Zelltypen hervorruft, von Fibroblasten und Fettzellen,
über Mastzellen und Pigmentzellen in der Haut bis hin zu Knochenmarkzellen (Whetsell, et al., 1999), sollte es
keine Überraschung sein, wenn sich herausstellen sollte, dass es doch eine Rolle bei der Entwicklung einer
Vielzahl von Krebsarten spielt, darunter Melanom.</span>
</p>

<p>
<span lang="en"
>Many things, including the liver and the senses, regulate the function of the thyroid system, and the pituitary is
just one of the factors affecting the synthesis and secretion of the thyroid hormones.</span>
<span lang="de"
>Die Funktion des Schilddrüsen-Systems wird von mehreren Sachen reguliert, darunter auch die Leber und die Sinne,
und die Hypophyse ist nur einer der Faktoren, die die Synthese und Ausschüttung der Schilddrüsenhormone
beeinflussen.</span>
</p>

<p>
<span lang="en"
>A few people who had extremely low levels of pituitary hormones, and were told that they must take several hormone
supplements for the rest of their life, began producing normal amounts of those hormones within a few days of
eating more protein and fruit. Their endocrinologist described them as, effectively, having no pituitary gland.
Extreme malnutrition in Africa has been described as creating “. . . a condition resembling hypophysectomy,”
(Ingenbleek and Beckers, 1975) but the people I talked to in Oregon were just following what they thought were
healthful nutritional policies, avoiding eggs and sugars, and eating soy products.</span>
<span lang="de"
>Einige Leute, die extrem niedrige Spiegel der Hormone der Hypophyse hatten, denen erzählt wurde, dass sie mehrere
Hormonpräparate für den Rest ihres Lebens nehmen müssten, begannen mehr dieser Hormone spontan herzustellen,
nachdem sie einige Tage lang mehr Obst und Eiweiß zu sich nahmen. Die Diagnose ihrer Endokrinologen war, dass
sie effektiv über keine Hypophyse verfügten. Extreme Mangelernährung in Afrika wurde so beschrieben, dass sie
„... eine Krankheit verursachte, die einer Hypophysektomie ähnelt,“ (Ingenbleek und Beckers, 1975) aber die
Personen, mit denen ich in Oregon sprach, praktizierten bloß das, was sie für eine „gesunde Ernährung“ hielten,
d.h. die Vermeidung von Eiern und Zucker, und den Verzehr von Sojaprodukten.</span>
</p>

<p>
<span lang="en"
>Occasionally, a small supplement of thyroid in addition to a good diet is needed to quickly escape from the
stress-induced “hypophysectomized” condition.</span>
<span lang="de"
>Gelegentlich reicht eine kleine Zufuhr von Schilddrüsenhormon zusammen mit einer guten Ernährung, um schnell aus
dem durch Stress verursachten „Hypophysektomie“-Zustand zu entkommen.</span>
</p>

<p>
<span lang="en"
>Aging, infection, trauma, prolonged cortisol excess, somatostatin, dopamine or L-dopa, adrenaline (sometimes;
Mannisto, et al., 1979), amphetamine, caffeine and fever can lower TSH, apart from the effect of feedback by the
thyroid hormones, creating a situation in which TSH can appear normal or low, at the same time that there is a
real hypothyroidism.</span>
<span lang="de"
>Außer der Rückkopplungswirkung der Schilddrüsenhormone können das Altwerden, eine Infektion, Trauma, ein lang
anhaltender Cortisol-Überschuss, Somatostatin, Dopamin oder L-dopa, Adrenalin (nur manchmal; Mannisto, et al.,
1979), Amphetamin, Koffein und Fieber den Thyreotropin-Spiegel senken, was dafür sorgt, dass Thyreotropin normal
oder niedrig wirkt, wenn aber eine echte Schilddrüsenunterfunktion vorliegt.</span>
</p>

<p>
<span lang="en"
>A disease or its treatment can obscure the presence of hypothyroidism. Parkinson's disease is a clear example of
this. (Garcia-Moreno and Chacon, 2002: “... in the same way hypothyroidism can simulate Parkinson's disease, the
latter can also conceal hypothyroidism.”)</span>
<span lang="de"
>Eine Krankheit oder deren Behandlung kann das Vorliegen einer Schilddrüsenunterfunktion verbergen. Hiervon ist
Parkinson ein klares Beispiel. (Garcia-Moreno und Chacon, 2002: „... wie eine Schilddrüsenunterfunktion
Parkinson simulieren kann, so kann letzteres auch eine Schilddrüsenunterfunktion verbergen.“)</span>
</p>

<p>
<span lang="en"
>The stress-induced suppression of TSH and other pituitary hormones is reminiscent of the protective inhibition that
occurs in individual nerve fibers during dangerously intense stress, and might involve such a “parabiotic”
process in the nerves of the hypothalamus or other brain region. The relative disappearance of the pituitary
hormones when the organism is in very good condition (for example, the suppression of ACTH and cortisol by sugar
or pregnenolone) is parallel to the high energy quiescence of individual nerve fibers.</span>
<span lang="de"
>Die durch Stress ausgelöste Unterdrückung von Thyreotropin und anderen Hormonen erinnert an die schützende Hemmung,
die bei intensivem Stress gefährlichen Ausmaßes in individuellen Nervenfasern eintritt, und mag vielleicht mit
einem „parabiotischen“ Prozess in den Nerven des Hypothalamus oder einer anderen Hirnregion einhergehen. Dass
die Hormone der Hypophyse mehr oder weniger verschwinden, wenn sich der Organismus in einem sehr gesunden
Zustand befindet (z.B. die Unterdrückung von ACTH und Cortisol durch Zucker oder Pregnenolon), ähnelt der
hochenergetischen Stilllegung individueller Nervenfasern.</span>
</p>

<p>
<span lang="en"
>These associations between energy state and cellular activity can be used for evaluating the thyroid state, as in
measuring nerve and muscle reaction times and relaxation rates. For example, relaxation which is retarded,
because of slow restoration of the energy needed for cellular “repolarization,” is the basis for the traditional
use of the Achilles tendon reflex relaxation test for diagnosing hypothyroidism. The speed of relaxation of the
heart muscle also indicates thyroid status (Mohr-Kahaly, et al., 1996).</span>
<span lang="de"
>Diese Zusammenhänge zwischen dem energetischen Zustand der Zelle und deren Aktivität können benutzt werden, um die
Schilddrüsenfunktion zu evaluieren. Hierzu dienen die Reaktionszeiten sowie Entspannungszeiten der Muskeln und
Nerven. Eine verzögerte Entspannung, die aufgrund einer langsamen Wiederherstellung der für die
„Repolarisierung“ benötigten zellulären Energie zustande kommt, schafft die Basis der traditionellen Anwendung
des Achillessehnenreflex-Tests zur Diagnose einer Schilddrüsenunterfunktion.</span>
</p>

<p>
<span lang="en"
>Stress, besides suppressing the TSH, acts in other ways to suppress the real thyroid function. Cortisol, for
example, inhibits the conversion of T4 to T3, which is responsible for the respiratory production of energy and
carbon dioxide. Adrenaline, besides leading to increased production of cortisol, is lipolytic, releasing the
fatty acids which, if they are polyunsaturated, inhibit the production and transport of thyroid hormone, and
also interfere directly with the respiratory functions of the mitochondria. Adrenaline decreases the conversion
to T4 to T3, and increases the formation of the antagonistic reverse T3 (Nauman, et al., 1980, 1984).</span>
<span lang="de"
>Stress kann über deren Unterdrückung des TSH-Werts hinaus auf mehrere Arten und Weisen die effektive
Schilddrüsenfunktion unterdrücken. Cortisol hemmt zum Beispiel die Konvertierung von T4 in T3, welches für die
respiratorische Herstellung von Energie und Kohlenstoffdioxid verantwortlich ist. Adrenalin hat abgesehen von
seiner Erhöhung des Cortisol-Spiegels eine lipolytische Wirkung, was zur Freisetzung von Fettsäuren führt, und,
falls die mehrfach ungesättigt sind, hemmen sie wiederum auch die Herstellung und das Transport der
Schilddrüsenhormone. Sie stören zudem direkt die respiratorische Funktion der Mitochondrien. Adrenalin senkt die
Konvertierung von T4 in T3, und erhöht die Bildung des antagonistischen Hormons Reverse-T3 (Nauman, et al.,
1980, 1984).</span>
</p>

<p>
<span lang="en"
>During the night, at the time adrenaline and free fatty acids are at their highest, TSH usually reaches its peak.
TSH itself can produce lipolysis, raising the level of circulating free fatty acids. This suggests that a high
level of TSH could sometimes contribute to functional hypothyroidism, because of the antimetabolic effects of
the unsaturated fatty acids.</span>
<span lang="de"
>Adrenalin und freie Fettsäuren erreichen nachts ihren Höhepunkt. TSH erreicht hier auch meistens seinen höchsten
Wert. Es kann auch TSH selbst Lipolyse bewirken, was den Spiegel der zirkulierenden freien Fettsäuren erhöht.
Dies weist darauf hin, dass ein hoher TSH-Wert manchmal aufgrund der antimetabolischen Wirkung der mehrfach
ungesättigten Fettsäuren zu einer funktionalen Schilddrüsenunterfunktion führen könnte</span>
</p>

<p>
<span lang="en"
>These are the basic reasons for thinking that the TSH tests should be given only moderate weight in interpreting
thyroid function.</span>
<span lang="de"
>Das sind also die wesentlichen Gründe zu denken, dass die TSH-Tests nur bedingt zur Interpretierung der
Schilddrüsenfunktion beitragen sollten.</span>
</p>

<p>
<span lang="en"
>The metabolic rate is very closely related to thyroid hormone function, but defining it and measuring it have to be
done with awareness of its complexity.</span>
<span lang="de"
>Der Grundumsatz steht in sehr engem Zusammenhang mit der Funktion der Schilddrüsenhormone, aber sie ist schließlich
in Anbetracht ihrer Komplexität zu definieren und messen.</span>
</p>

<p>
<span lang="en"
>The basal metabolic rate that was commonly used in the 1930s for diagnosing thyroid disorders was usually a
measurement of the rate of oxygen consumption, made while lying quietly early in the morning without having
eaten anything for several hours. When carbon dioxide production can be measured at the same time as oxygen
consumption, it's possible to estimate the proportion of energy that is being derived from glucose, rather than
fat or protein, since oxidation of glucose produces more carbon dioxide than oxidation of fat does. Glucose
oxidation is efficient, and suggests a state of low stress.</span>
<span lang="de"
>Der basale Grundumsatz, die häufig in den 1930er Jahren zur Diagnose einer Schilddrüsenstörung verwendet wurde, war
normalerweise eine Messung der Sauerstoffkonsumrate, die durchgeführt wurde, während der Patient morgens still
im Bett im gefasteten Zustand lag. Eine gleichzeitige Messung der Kohlenstoffdioxidproduktion sowie des
Sauerstoffkonsums ermöglicht es, den Anteil der Energie zu schätzen, der durch Glukose statt Fett oder Eiweiß
gewonnen wird, da die Oxidierung von Glukose mehr Kohlenstoffdioxid gewinnt als von Fett. Die Oxidierung von
Glukose ist effizient und weist auf einen niedrigen Stresszustand hin.</span>
</p>

<p>
<span lang="en"
>The very high adrenaline that sometimes occurs in hypothyroidism will increase the metabolic rate in several ways,
but it tends to increase the oxidation of fat. If the production of carbon dioxide is measured, the
adrenaline/stress component of metabolism will be minimized in the measurement. When polyunsaturated fats are
mobilized, their spontaneous peroxidation consumes some oxygen, without producing any usable energy or carbon
dioxide, so this is another reason that the production of carbon dioxide is a very good indicator of thyroid
hormone activity. The measurement of oxygen consumption was usually done for two minutes, and carbon dioxide
production could be accurately measured in a similarly short time. Even a measurement of the percentage of
carbon dioxide at the end of a single breath can give an indication of the stress-free, thyroid hormone
stimulated rate of metabolism (it should approach five or six percent of the expired air).</span>
<span lang="de"
>Der sehr hohe Adrenalinspiegel, der manchmal mit einer Schilddrüsenunterfunktion einhergeht, erhöht auf
verschiedene Art und Weise den Grundumsatz, aber es begünstigt eher Fettoxidierung. Wenn die Produktion von
Kohlenstoffdioxid gemessen wird, wird die Adrenalin- bzw. Stress-Komponente des Stoffwechsels in der Messung
minimiert. Wenn mehrfach ungesättigte Fettsäuren freigesetzt werden, konsumiert deren spontane Peroxidierung
etwas Sauerstoff, und produziert dabei weder verwendbare Energie noch Kohlenstoffdioxid. Das ist also noch ein
weiterer Grund, dass die Produktion von Kohlenstoffdioxid ein sehr geeigneter Indikator der Aktivität der
Schilddrüsenhormone ist. Die Messung des Sauerstoffkonsums wurde meistens zwei Minuten lang durchgeführt, und
die Kohlenstoffdioxidproduktion konnte ähnlich schnell durchgeführt werden. Selbst die Messung des Anteils von
Kohlenstoffdioxid nach einem einzigen Atemzug kann auf die stressfreie, durch Schilddrüsenhormon stimulierte
Stoffwechselrate hinweisen (dies soll fünf oder sechs Prozent der ausgeatmeten Luft betragen).</span>
</p>

<p>
<span lang="en"
>Increasingly in the last several years, people who have many of the standard symptoms of hypothyroidism have told
me that they are hyperthyroid, and that they have to decide whether to have surgery or radiation to destroy
their thyroid gland. They have told me that their symptoms of “hyperthyroidism,” according to their physicians,
were fatigue, weakness, irritability, poor memory, and insomnia.</span>
<span lang="de"
>Es haben mir in den letzten Jahren zunehmend mehr Leute erzählt, die mehrere der klassischen Symptome einer
Schilddrüsenunterfunktion hatten, dass sie eine Überfunktion hätten, und dass sie zwischen Bestrahlung und einer
Operation entscheiden mussten, um ihre Schilddrüse zu zerstören. Sie erzählten mir, dass die Symptome ihrer
Schilddrüsen<strong>über</strong>funktion laut ihren Ärzten Müdigkeit, Schwäche, Reizbarkeit, Gedächtnisprobleme
und Schlaflosigkeit wären.</span>
</p>

<p>
<span lang="en"
>They didn't eat very much. They didn't sweat noticeably, and they drank a moderate amount of fluids. Their pulse
rates and body temperature were normal, or a little low.</span>
<span lang="de"
>Sie aßen nicht viel. Viel schwitzten sie auch nicht und sie tranken mäßig Flüssigkeit. Ihre Puls- und
Körpertemperaturmessungen waren normal, oder etwas niedrig.</span>
</p>

<p>
<span lang="en"
>Simply on the basis of some laboratory tests, they were going to have their thyroid gland destroyed. But on the
basis of all of the traditional ways of judging thyroid function, they were hypothyroid.</span>
<span lang="de">Alleine auf Basis einiger Laborwerte hätten sie ihre Schilddrüsen zerstören lassen. Aber auf Basis
aller traditionellen Mittel, die Schilddrüsenfunktion zu beurteilen, hatten sie eine Unterfunktion.
</span>
</p>

<p>
<span lang="en"
>Broda Barnes, who worked mostly in Fort Collins, Colorado, argued that the body temperature, measured before
getting out of bed in the morning, was the best basis for diagnosing thyroid function.</span>
<span lang="de"
>Broda Barnes, der hauptsächlich in Fort Collins, Colorado arbeitete, argumentierte, dass die Körpertemperatur, wenn
sie vor dem Aufstehen in der Früh gemessen wird, die beste Basis zur Diagnose einer Schilddrüsenunterfunktion
ist.</span>
</p>

<p>
<span lang="en"
>Fort Collins, at a high altitude, has a cool climate most of the year. The altitude itself helps the thyroid to
function normally. For example, one study (Savourey, et al., 1998) showed an 18% increase in T3 at a high
altitude, and mitochondria become more numerous and are more efficient at preventing lactic acid production,
capillary leakiness, etc.</span>
<span lang="de">Fort Collins, eine sehr hoch gelegene Stadt, hat rund ums Jahr meistens ein kühles Klima. Die hohe
Lage begünstigt an und für sich eine normale Schilddrüsenfunktion. Eine Studie (Savourey, et al., 1998)
vermerkte zum Beispiel einen 18 %-igen Anstieg des T3-Spiegels in großer Höhe. Mitochondrien vervielfachen sich
und sind darin effizienter, die Bildung von Laktat, die Durchlässigkeit der Kapillaren, usw. zu hemmen,
</span>
</p>

<p>
<span lang="en"
>In Eugene during a hot and humid summer, I saw several obviously hypothyroid people whose temperature seemed
perfectly normal, euthyroid by Barnes' standards. But I noticed that their pulse rates were, in several cases,
very low. It takes very little metabolic energy to keep the body at 98.6 degrees when the air temperature is in
the nineties. In cooler weather, I began asking people whether they used electric blankets, and ignored their
temperature measurements if they did.</span>
<span lang="de"
>Während eines heißen und schwülen Sommers in Eugene sah ich mehrere offensichtlich hypothyreote Menschen, deren
Temperaturmessungen ganz normal wirkten - laut Barnes euthyreot. Aber ich bemerkte, dass ihre Pulsraten in
vielen Fällen sehr niedrig waren. Es wird sehr wenig metabolische Energie benötigt, um die Körpertemperatur bei
98,6° F (36,6° C) Grad beizubehalten, wenn die Außentemperatur bei über 90° F (Mitte 30° C) liegt. Bei kühlerem
Wetter begann ich, Leute zu fragen, ob sie Heizdecken benutzen, und, wenn dem so war, ignorierte ich ihre
Temperaturmessungen.</span>
</p>

<p>
<span lang="en"
>The combination of pulse rate and temperature is much better than either one alone. I happened to see two people
whose resting pulse rates were chronically extremely high, despite their hypothyroid symptoms. When they took a
thyroid supplement, their pulse rates came down to normal. (Healthy and intelligent groups of people have been
found to have an average resting pulse rate of 85/minute, while less healthy groups average close to
70/minute.)</span>
<span lang="de"
>Die Kombination von Puls und Temperatur ist viel sinnvoller als nur eines der beiden. Ich sah zufällig zwei Leute,
die trotz Symptomen einer Schilddrüsenunterfunktion einen chronisch sehr hohen Puls hatten. Durch Zufuhr eines
Schilddrüsenhormonpräparats sanken ihre Pulsraten wieder auf normale Werte. (Gesunde und intelligente Gruppen
haben nachweislich einen Durchschnittspuls von 85 Schläge pro Minute, während weniger gesunde Gruppen eher einen
Puls von 70 haben.)</span>
</p>

<p>
<span lang="en"
>The speed of the pulse is partly determined by adrenaline, and many hypothyroid people compensate with very high
adrenaline production. Knowing that hypothyroid people are susceptible to hypoglycemia, and that hypoglycemia
increases adrenaline, I found that many people had normal (and sometimes faster than average) pulse rates when
they woke up in the morning, and when they got hungry. Salt, which helps to maintain blood sugar, also tends to
lower adrenalin, and hypothyroid people often lose salt too easily in their urine and sweat. Measuring the pulse
rate before and after breakfast, and in the afternoon, can give a good impression of the variations in
adrenalin. (The blood pressure, too, will show the effects of adrenaline in hypothyroid people. Hypothyroidism
is a major cause of hypertension.)</span>
<span lang="de"
>Die Pulsrate wird teilweise durch Adrenalin bestimmt, und viele Menschen kompensieren ihre
Schilddrüsenunterfunktion mit einer hohen Adrenalinproduktion. Angesichts dessen, dass mehrere hypothyreote
Menschen zu Unterzuckerung tendieren, und dass eine Unterzuckerung Adrenalin steigert, merkte ich, dass viele
Leute einen normalen (und manchmal überdurchschnittlich schnellen) Puls hatten, sowohl in der Früh als auch wenn
sie Hunger bekamen. Salz, welches zum Erhalt eines normalen Blutzuckerspiegels beiträgt, senkt tendenziell auch
Adrenalin, und hypothyreote Menschen verlieren Salz sehr schnell im Urin und im Schweiß. Um einen besseren
Eindruck der Variation im Adrenalinspiegel zu bekommen, kann man den Puls vor und nach dem Frühstück sowie am
Nachmittag messen. (Der Blutdruck zeigt zudem auch die Wirkung von Adrenalin in Menschen mit einer
Schilddrüsenunterfunktion. Eine Schilddrüsenunterfunktion ist eine häufige Ursache des Bluthochdrucks.)</span>
</p>

<p>
<span lang="en"
>But hypoglycemia also tends to decrease the conversion of T4 to T3, so heat production often decreases when a
person is hungry. First, their fingers, toes, and nose will get cold, because adrenalin, or adrenergic
sympathetic nervous activity, will increase to keep the brain and heart at a normal temperature, by reducing
circulation to the skin and extremities. Despite the temperature-regulating effect of adrenalin, the reduced
heat production resulting from decreased T3 will make a person susceptible to hypothermia if the environment is
cool.</span>
<span lang="de"
>Aber Unterzuckerung senkt tendenziell auch die Konvertierung von T4 in T3, was dazu führt, dass die Wärmeproduktion
auch sinkt, wenn man Hunger bekommt. Es werden zuerst die Finger, dann die Zehe und schließlich die Nase kalt,
weil Adrenalin bzw. die adrenergische Aktivität des Sympathikus steigt, um die Temperatur des Gehirns und des
Herzes normal zu halten, indem die Durchblutung der Haut und der Extremitäten gesenkt wird. Trotz der
temperatur-regulierenden Wirkung von Adrenalin wird man aufgrund der geringeren Wärmeproduktion durch weniger T3
anfälliger für eine Unterkühlung, falls die Umgebung auch kühl ist.</span>
</p>

<p>
<span lang="en"
>Since food, especially carbohydrate and protein, will increase blood sugar and T3 production, eating is
“thermogenic,” and the oral (or eardrum) temperature is likely to rise after eating.</span>
<span lang="de"
>Da Essen, und insbesondere Kohlenhydrate und Eiweiß, den Blutzuckerspiegel und T3-Produktion steigern, ist der
Verzehr von Essen an und für sich „thermogen“, und die Oral- bzw. Trommelfelltemperatur kann nach einer Mahlzeit
steigen.</span>
</p>

<p>
<span lang="en"
>Blood sugar falls at night, and the body relies on the glucose stored in the liver as glycogen for energy, and
hypothyroid people store very little sugar. As a result, adrenalin and cortisol begin to rise almost as soon as
a person goes to bed, and in hypothyroid people, they rise very high, with the adrenalin usually peaking around
1 or 2 A.M., and the cortisol peaking around dawn; the high cortisol raises blood sugar as morning approaches,
and allows adrenalin to decline. Some people wake up during the adrenalin peak with a pounding heart, and have
trouble getting back to sleep unless they eat something.</span>
<span lang="de"
>Der Blutzuckerspiegel sinkt in der Nacht, und der Körper ist auf den in der Leber als Glykogen gespeicherten Zucker
als Energiequelle verlassen, und Menschen mit einer Schilddrüsenunterfunktion speichern sehr wenig Zucker in
ihrer Leber. Dementsprechend fangen Adrenalin und Cortisol fast unmittelbar nach dem Schlafengehen an zu
steigen. Bei Menschen mit einer Schilddrüsenunterfunktion steigen sie sehr hoch - das Adrenalin erreicht um
ungefähr ein oder zwei Uhr seinen Höhepunkt und Cortisol ungefähr bei der Dämmerung. Das hohe Cortisol steigert
den Blutzuckerspiegel, wenn der Morgen naht. Manche Leute wachen bei dem Adrenalinhöhepunkt mit starkem
Herzrasen auf, und es fällt ihnen schwer, wieder einzuschlafen, ohne etwas zu essen.</span>
</p>

<p>
<span lang="en"
>If the night-time stress is very high, the adrenalin will still be high until breakfast, increasing both
temperature and pulse rate. The cortisol stimulates the breakdown of muscle tissue and its conversion to energy,
so it is thermogenic, for some of the same reasons that food is thermogenic.</span>
<span lang="de"
>Bei hohem Stress in der Nacht, bleibt das Adrenalin auch bis zur ersten Mahlzeit auch hoch, was für eine höhere
Temperatur sowie einen höheren Puls sorgt. Cortisol stimuliert den Muskelabbau und die Konvertierung dessen in
Energie, und ist also thermogen - dies ähnelt der thermogenen Wirkung von Essen.</span>
</p>

<p>
<span lang="en"
>After eating breakfast, the cortisol (and adrenalin, if it stayed high despite the increased cortisol) will start
returning to a more normal, lower level, as the blood sugar is sustained by food, instead of by the stress
hormones. In some hypothyroid people, this is a good time to measure the temperature and pulse rate. In a normal
person, both temperature and pulse rate rise after breakfast, but in very hypothyroid people either, or both,
might fall.</span>
<span lang="de"
>Nach dem Frühstück fängt das Cortisol (und das Adrenalin, falls es trotz hohem Cortisol hoch blieb,) an, auf eine
normales, niedrigeres Niveau zu sinken, während der Blutzuckerspiegel von der zugeführten Nahrung statt von den
Stresshormonen aufrechterhalten wird. Bei einigen hypothyreoten Personen ist das ein guter Zeitpunkt, die
Temperatur und den Puls zu messen. Bei einer normalen Person steigt nach dem Frühstück sowohl die Temperatur als
auch der Puls, aber bei sehr hypothyreoten Personen kann entweder das eine, das andere oder sogar beides
sinken.</span>
</p>

<p>
<span lang="en"
>Some hypothyroid people have a very slow pulse, apparently because they aren't compensating with a large production
of adrenalin. When they eat, the liver's increased production of T3 is likely to increase both their temperature
and their pulse rate.</span>
<span lang="de"
>Einige hypothyreote Personen haben einen sehr niedrigen Puls, scheinbar aufgrund dessen, dass sie nicht mithilfe
einer hohen Adrenalinproduktion kompensieren. Wenn sie essen, sorgt sehr wahrscheinlich die erhöhte Produktion
von T3 in der Leber dafür, dass sowohl die Temperatur als auch der Puls steigt.</span>
</p>

<p>
<span lang="en"
>By watching the temperature and pulse rate at different times of day, especially before and after meals, it's
possible to separate some of the effects of stress from the thyroid-dependent, relatively “basal” metabolic
rate. When beginning to take a thyroid supplement, it's important to keep a chart of these measurements for at
least two weeks, since that's roughly the half-life of thyroxine in the body. When the body has accumulated a
steady level of the hormones, and begun to function more fully, the factors such as adrenaline that have been
chronically distorted to compensate for hypothyroidism will have begun to normalize, and the early effects of
the supplementary thyroid will in many cases seem to disappear, with heart rate and temperature declining. The
daily dose of thyroid often has to be increased several times, as the state of stress and the adrenaline and
cortisol production decrease.</span>
<span lang="de">Wenn man die Temperatur und den Puls im Laufe eines Tages zu verschiedenen Zeitpunkten misst, vor
allem vor und nach einer Mahlzeit, ist es möglich, einige der Wirkungen der Stresshormone von dem
schilddrüsenhormon-abhängigen, relativ „basalen“ Grundumsatz zu unterscheiden. Am Anfang einer Therapie mit
Schilddrüsenhormon ist es wichtig, die Messungen mindestens zwei Wochen aufzuschreiben und ggf. als Kurve
darzustellen, da die Halbwertszeit von Thyroxin (T4) im Körper ungefähr zwei Wochen beträgt. Wenn sich einmal
ein stabiler Spiegel der Hormone im Körper etabliert hat, werden sich jene Faktoren normalisieren, die zwecks
Kompensierung der Unterfunktion chronisch verzerrt geblieben waren, und die frühen Auswirkungen der Zufuhr von
Schilddrüsenhormon verschwinden in den meisten Fällen - es sinken dabei der Puls und die Temperatur. Die
Tagesdosis von Schilddrüsenhormon muss oft mehrere Male erhöht werden, während der Stresszustand und die
Produktion von Adrenalin und Cortisol sinken.
</span>
</p>

<p>
<span lang="en"
>Counting calories achieves approximately the same thing as measuring oxygen consumption, and is something that will
allow people to evaluate the various thyroid tests they may be given by their doctor. Although food intake and
metabolic rate vary from day to day, an approximate calorie count for several days can often make it clear that
a diagnosis of hyperthyroidism is mistaken. If a person is eating only about 1800 calories per day, and has a
steady and normal body weight, any “hyperthyroidism” is strictly metaphysical, or as they say, “clinical.”</span
>
<span lang="de"
>Das Zählen von Kalorien erreicht annähernd das, was durch die Messung des Sauerstoffkonsums erreicht werden soll,
und ermöglicht es einem, die diversen Schilddrüsentests zu evaluieren, die man von seinem Arzt bekommen könnte.
Obwohl die Nahrungszufuhr und der Grundumsatz von Tag zu Tag variieren mag, kann ein geschätzter Kalorienkonsum
über einige Tage es einem klarstellen, dass eine Schilddrüsen<strong>über</strong>funktion eine Fehldiagnose
ist. Sollte eine Person nur um die 1800 Kalorien am Tag konsumieren, und dabei einen normales, stabiles
Körpergewicht beibehalten, sind jegliche Diagnosen einer „Überfunktion“ schlichtweg metaphysisch, bzw.
sogenannte „klinische“ Diagnosen.</span>
</p>

<p>
<span lang="en"
>When the humidity and temperature are normal, a person evaporates about a liter of water for every 1000 calories
metabolized. Eating 2000 calories per day, a normal person will take in about four liters of liquid, and form
about two liters of urine. A hyperthyroid person will invisibly lose several quarts of water in a day, and a
hypothyroid person may evaporate a quart or less.</span>
<span lang="de">Wenn die Luftfeuchtigkeit und Temperatur normal sind, verdampft eine Person ungefähr einen Liter
Wasser pro 1000 verstoffwechselten Kalorien. Durch einen Konsum von 2000 Kalorien am Tag, führt sich eine
normale Person ungefähr vier Liter Wasser zu sich zu und bildet ungefähr zwei Liter Urin. Jemand mit einer
Schilddrüsen<strong>über</strong>funktion verliert unsichtbar mehrere Liter Wasser pro Tag, und jemand mit einer
Unterfunktion könnte hingegen lediglich einen Liter verdampfen, oder sogar weniger.
</span>
</p>

<p>
<span lang="en"
>When cells, because of a low metabolic rate, don't easily return to their thoroughly energized state after they
have been stimulated, they tend to take up water, or, in the case of blood vessels, to become excessively
permeable. Fatigued muscles swell noticeably, and chronically fatigued nerves can swell enough to cause them to
be compressed by the surrounding connective tissues. The energy and hydration state of cells can be detected in
various ways, including magnetic resonance, and electrical impedance, but functional tests are easy and
practical.</span>
<span lang="de"
>Wenn die Zellen aufgrund eines niedrigen Grundumsatzes nicht besonders einfach zu ihrem völlig energiereichen
Zustand zurückkehren, nachdem sie gereizt wurden, nehmen sie tendenziell Wasser auf, oder sie werden wie im
Falle der Blutgefäße exzessiv durchlässig. Ermüdete Muskeln schwellen merklich an, und chronisch ermüdete Nerven
können so viel anschwellen, dass sie von dem umliegenden Bindegewebe zusammengedrückt werden können.</span>
</p>

<p>
<span lang="en"
>With suitable measuring instruments, the effects of hypothyroidism can be seen as slowed conduction along nerves,
and slowed recovery and readiness for new responses. Slow reaction time is associated with slowed memory,
perception, and other mental processes. Some of these nervous deficits can be remedied slightly just by raising
the core temperature and providing suitable nutrients, but the active thyroid hormone, T3 is mainly responsible
for maintaining the temperature, the nutrients, and the intracellular respiratory energy production.</span>
<span lang="de"
>Mittels angemessener Messgeräte lassen sich die Auswirkungen einer Schilddrüsenunterfunktion durch eine langsame
Konduktivität entlang der Nerven beobachten und durch verlangsamte Erholung und Bereitschaft für neue Antworten
und Reaktionen. Eine verlangsamte Reaktionszeit geht mit anderen langsamen Prozessen einher, wie zum Beispiel
Gedächtnis, Wahrnehmung und anderen geistigen Prozessen. Ein mildes Entgegenwirken dieser Nervendefizite ist
durch eine Erhöhung der Kerntemperatur sowie die Zufuhr ausgewählter Nährstoffe möglich, aber das aktive
Schilddrüsenhormon, T3, ist hauptverantwortlich dafür, die Temperatur, die benötigten Nährstoffe und die
intrazelluläre Energieproduktion aufrechtzuerhalten.</span>
</p>

<p>
<span lang="en"
>In nerves, as in other cells, the ability to rest and repair themselves increases with the proper level of thyroid
hormone. In some cells, the energized stability produced by the thyroid hormones prevents inflammation or an
immunological hyperactivity. In the 1950s, shortly after it was identified as a distinct substance, T3 was found
to be anti-inflammatory, and both T4 and T3 have a variety of anti-inflammatory actions, besides the suppression
of the pro-inflammatory TSH.</span>
<span lang="de"
>In Nerven, wie in anderen Zellen, steigt das Vermögen, sich zu reparieren und zu erholen, mit dem richtigen
Schilddrüsenhormonspiegel. In einigen Zellen hemmt die durch das Schilddrüsenhormon hervorgerufene energetische
Stabilisierung Entzündungen bzw. immunologische Überaktivität. In den 1950er Jahren wurde T3, kurz nachdem es
als eigene Substanz identifiziert wurde, als entzündungshemmend erkannt, und sowohl T4 als auch T3 haben
abgesehen von ihrer Hemmung des entzündungsfördernden TSH mehrere andere entzündungshemmende Wirkungen.</span>
</p>

<p>
<span lang="en"
>Because the actions of T3 can be inhibited by many factors, including polyunsaturated fatty acids, reverse T3, and
excess thyroxine, the absolute level of T3 can't be used by itself for diagnosis. “Free T3” or “free T4” is a
laboratory concept, and the biological activity of T3 doesn't necessarily correspond to its “freedom” in the
test. T3 bound to its transport proteins can be demonstrated to enter cells, mitochondria, and nuclei.
Transthyretin, which carries both vitamin A and thyroid hormones, is sharply decreased by stress, and should
probably be regularly measured as part of the thyroid examination.</span>
<span lang="de"
>Da die Wirkungen von T3 durch mehrere Faktoren gehemmt werden können, wie beispielsweise die mehrfach ungesättigten
Fettsäuren, Reverse-T3, oder exzessive Thyroxin-Werte, ist der absolute T3-Spiegel alleine betrachtet für eine
Diagnose nicht angemessenen. „Freies T3“ bzw. „freies T4“ sind Konzepte aus dem Labor, und die biologische
Aktivität von T3 stimmt nicht zwingend mit seiner „Freiheit“ in einem Labortest überein. Es kann demonstriert
werden, dass an seinen Transportproteinen gebundenes T3 in Zellen, Mitochondrien und Zellkerne eindringen kann.
Transthyretin, welches sowohl Vitamin A als auch die Schilddrüsenhormone an sich trägt, wird durch Stress
dramatisch gesenkt, und dessen Messung sollte wahrscheinlich regelmäßig als Teil einer Untersuchung der
Schilddrüsenfunktion unternommen werden.</span>
</p>

<p>
<span lang="en"
>When T3 is metabolically active, lactic acid won't be produced unnecessarily, so the measurement of lactate in the
blood is a useful test for interpreting thyroid function. Cholesterol is used rapidly under the influence of T3,
and ever since the 1930s it has been clear that serum cholesterol rises in hypothyroidism, and is very useful
diagnostically. Sodium, magnesium, calcium, potassium, creatinine, albumin, glucose, and other components of the
serum are regulated by the thyroid hormones, and can be used along with the various functional tests for
evaluating thyroid function.</span>
<span lang="de"
>Wenn T3 metabolisch aktiv ist, wird Milchsäure nicht unnötigerweise produziert und die Messung von Milchsäure bzw.
Laktat im Blut ist also ein nützlicher Test, um die Schilddrüsenfunktion zu kontrollieren. Cholesterin wird
relativ rapide unter Einfluss von T3 verstoffwechselt und schon seit den 1930er Jahren ist es klar, dass das
Serumcholesterin bei einer Schilddrüsenunterfunktion steigt, und das kann eine gute diagnostische Aussagekraft
haben. Natrium, Magnesium, Kalzium, Albumin, Glukose und andere Serumkomponenten werden durch die
Schilddrüsenhormone reguliert und können zusammen mit diversen funktionalen Tests zur Evaluierung der
Schilddrüsenfunktion zur Hand genommen werden.</span>
</p>

<p>
<span lang="en"
>Stereotypes are important. When a very thin person with high blood pressure visits a doctor, hypothyroidism isn't
likely to be considered; even high TSH and very low T4 and T3 are likely to be ignored, because of the
stereotypes. (And if those tests were in the healthy range, the person would be at risk for the “hyperthyroid”
diagnosis.) But remembering some of the common adaptive reactions to a thyroid deficiency, the catabolic effects
of high cortisol and the circulatory disturbance caused by high adrenaline should lead to doing some of the
appropriate tests, instead of treating the person's hypertension and “under nourished” condition.</span>
<span lang="de"
>Stereotypen sind wichtig. Wenn eine dünne Person mit hohem Blutdruck zum Arzt geht, wird eine Schilddrüsenfunktion
sehr unwahrscheinlich in Betracht gezogen; selbst ein hoher TSH-Wert und sehr niedrige T4- und T3-Werte werden
wohl aufgrund der Stereotypen ignoriert. (Und falls diese Tests im gesunden Bereich liegen, besteht dann das
Risiko der Diagnose einer Schilddrüsen<strong>über</strong>funktion.) Aber wenn man sich an einige der häufigen
adaptiven Reaktionen auf eine schwache Schilddrüse erinnert, sollten die katabolischen Effekte eines hohen
Cortisol-Spiegels und der adrenalin-bedingten Kreislaufstörungen dazu führen, einige der angemessenen Tests
durchzuführen, anstatt den Bluthochdruck und die „Mangelernährung“ der Person zu behandeln.</span>
</p>

<p class="notranslate">
<a href="https://raypeat.com/articles/articles/hypothyroidism.shtml">Originalartikel und Quellenverzeichnis</a>
</p>

+ 557
- 0
public/generative-energy/static/content/hypothyroidism.md Vedi File

@@ -0,0 +1,557 @@
# TSH, temperature, pulse rate, and other indicators in hypothyroidism

# TSH, Temperatur, Puls, und andere Indikatoren bei einer Schilddrüsenunterfunktion

- Each of the indicators of thyroid function can be useful, but has to be interpreted in relation to the physiological
state.
- Jeder einzelne der Indikatoren der Schilddrüsenfunktion kann zwar nützlich sein, aber sie müssen in Zusammenhang mit
dem gesamten physiologischen Grundzustand betrachtet werden.

- Increasingly, TSH (the pituitary thyroid stimulating hormone) has been treated as if it meant something independently;
however, it can be brought down into the normal range, or lower, by substances other than the thyroid hormones.
- TSH (oder Thyreotropin, das Thyreoidea-stimulierendes oder Schilddrüsen-stimulierendes Hormon der Hypophyse) wird
zunehmend so behandelt, als hätte es isoliert etwas zu bedeuten; allerdings kann es durch andere Substanzen als die
Schilddrüsenhormone bis in den normalen Bereich oder gar tiefer gesenkt werden.

- “Basal” body temperature is influenced by many things besides thyroid. The resting heart rate helps to interpret the
temperature. In a cool environment, the temperature of the extremities is sometimes a better indicator than the oral
or eardrum temperature.
- Es sind nämlich nicht nur die Schilddrüsenhormone, die die „basale“ Körpertemperatur beeinflussen können. Der Ruhepuls
kann z.B. als Hilfsmittel dienen, die Temperatur zu interpretieren. In einer kühlen Umgebung ist die Temperatur der
Extremitäten ein besserer Indikator als die Oral- oder Trommelfelltemperatur.

- The “basal” metabolic rate, especially if the rate of carbon dioxide production is measured, is very useful. The
amount of water and calories disposed of in a day can give a rough idea of the metabolic rate.
- Der „basale“ Grundumsatz ist vor allem dann sehr nützlich, wenn die Produktionsrate von CO2 mitgemessen wird. Die
Menge an Wasser und Kalorien, die im Laufe eines Tages verwertet werden, können als grobe Richtwerte für den
Grundumsatz dienen.

- The T wave on the electrocardiogram, and the relaxation rate on the Achilles reflex test are useful.
- Sowohl die T-Welle eines Elektrokardiogramms als auch die Entspannungszeit beim Achillessehnenreflex-Test sind
nützlich.

- Blood tests for cholesterol, albumin, glucose, sodium, lactate, total thyroxine and total T3 are useful to know,
because they help to evaluate the present thyroid status, and sometimes they can suggest ways to correct the problem.
- Es kann zudem sinnvoll sein, die Blutwerte von Cholesterin, Albumin, Glukose, Natrium, Laktat, Gesamt-Thyroxin, sowie
Gesamt-T3 zu wissen, weil sie eine Evaluierung der aktuellen Funktionsstärke der Schilddrüse ermöglichen und zudem oft
Hinweise geben, wie sich das Problem behandeln ließe.

- Less common blood or urine tests (adrenaline, cortisol, ammonium, free fatty acids), if they are available, can help
to understand compensatory reactions to hypothyroidism.
- Seltenere Blut- bzw. Urinproben (Adrenalin, Cortisol, Ammoniak, freie Fettsäuren), falls sie zur Verfügung stehen,
können dem besseren Verständnis der Kompensierungsreaktionen einer Schilddrüsenunterfunktion dienen.

- A book such as McGavack's The Thyroid, that provides traditional medical knowledge about thyroid physiology, can help
to dispel some of the current dogmas about the thyroid.
- Bücher wie „The Thyroid“ von McGavack, die traditionelles medizinisches Wissen über Schilddrüsenphysiologie liefern,
können helfen, einige der aktuellen Dogmata über die Schilddrüse aufzulösen.

- Using more physiologically relevant methods to diagnose hypothyroidism will contribute to understanding its role in
many problems now considered to be unrelated to the thyroid.
- Die Benutzung physiologisch relevanter Methoden, eine Schilddrüsenunterfunktion zu diagnostizieren, trägt dazu bei,
deren Rolle bei diversen Problemen zu verstehen, bei denen mittlerweile ein Zusammenhang mit der Schilddrüse
ausgeschlossen wird.

---

- I have spoken to several people who told me that their doctors had diagnosed them as “both hypothyroid and
hyperthyroid.” Although physicists can believe in things which are simultaneously both particles and not particles, I
think biology (and medicine, as far as it is biologically based) should occupy a world in which things are not
simultaneously themselves and their opposites. Those illogical, impossible diagnoses make it clear that the rules for
interpreting test results have in some situations lost touch with reality.
- Ich sprach mit vielen Leuten, die mir erzählten, dass ihre Ärzte bei ihnen „gleichzeitig eine Schilddrüsenüber- sowie
-unterfunktion“ diagnostiziert hatten. Obwohl Physiker in der Lage sind, an Dinge zu glauben, die gleichzeitig sowohl
Partikeln als auch keine Partikeln sind, denke ich, dass die Biologie (und die Medizin, sofern sie auf der Biologie
beruht) eine Welt bewohnen sollten, in der Sachen nicht simultan sie selbst und ihre Gegenteile sind. Diese
unlogischen, unmöglichen Diagnosen zeigen auf, dass die Regeln zur Interpretierung von Testergebnissen in manchen
Fällen sämtlichen Bezug zur Realität verloren haben.

- Until the 1940s, hypothyroidism was diagnosed on the basis of signs and symptoms, and sometimes the measurement of
oxygen consumption (“basal metabolic rate”) was used for confirmation. Besides the introduction of supposedly
“scientific” blood tests, such as the measurement of protein-bound iodine (PBI) in the blood, there were other motives
for becoming parsimonious with the diagnosis of hypothyroidism. With the introduction of synthetic thyroxine, one of
the arguments for increasing its sale was that natural Armour thyroid (which was precisely standardized by biological
tests) wasn't properly standardized, and that an overdose could be fatal. A few articles in prestigious journals
created a myth of the danger of thyroid, and the synthetic thyroxine was (falsely) said to be precisely standardized,
and to be without the dangers of the complete glandular extract.
- Bis in die 1940er Jahre wurde eine Schilddrüsenunterfunktion auf Basis von Anzeichen und Symptomen festgestellt und
manchmal wurde auch der Sauerstoffkonsum („basaler Grundumsatz“) zur Bestätigung gemessen. Abgesehen von der
Einführung scheinbar „wissenschaftlicher“ Bluttests, wie z.B. der Messung des proteingebundenen Jods im Blut, gab es
weitere Motive, eher zurückhaltend mit der Diagnose einer Schilddrüsenunterfunktion zu werden. Mit der Einführung
einer synthetischen Form von Thyroxin war eins der Argumente, die Verkaufszahlen zu steigern, dass natürliches
Armour-Schilddrüsenhormon (welches präzise mittels biologischer Tests standardisiert wurde) eben nicht sauber
standardisiert war, und dass eine Überdosis fatal sein könnte. Einige Artikel, die in namhaften Ärzteblättern
erschienen, schufen den Mythos der Gefahr von Schilddrüsenhormon und synthetisches Thyroxin wurde (fälschlicherweise)
als präzise standardisiert beschrieben, sowie frei von jeglichen Gefahren, die mit dem Drüsenextrakt verbunden seien.

- Between 1940 and about 1950, the estimated percentage of hypothyroid Americans went from 30% or 40% to 5%, on the
basis of the PBI test, and it has stayed close to that lower number (many publications claim it to be only 1% or 2%).
By the time that the measurement of PBI was shown to be only vaguely related to thyroid hormonal function, it had been
in use long enough for a new generation of physicians to be taught to disregard the older ideas about diagnosing and
treating hypothyroidism. They were taught to inform their patients that the traditional symptoms that were identified
as hypothyroidism before 1950 were the result of the patients' own behavior (sloth and gluttony, for example, which
produced fatigue, obesity, and heart disease), or that the problems were imaginary (women's hormonal and neurological
problems, especially), or that they were simply mysterious diseases and defects (recurring infections, arthritis, and
cancer, for example).
- Zwischen 1940 und 1950 sank das geschätzte Vorkommen hypothyreoter US-Amerikaner auf Basis des PBI-Tests
(proteingebundener Jod) von 30 bis 40 % auf 5 % und blieb bislang in diesem niedrigeren Bereich. (Manche Publikationen
behaupten, es betreffe nur 1 bis 2 %.) Bis es gezeigt wurde, dass die Bestimmung der PBI-Konzentration im Blut nur
einen geringen Zusammenhang mit der Schilddrüsenfunktion hatte, war es schon ausreichend lange in Verwendung, dass
einer neuen Generation von Medizinern beigebracht werden konnte, ältere Ideen zur Diagnostik und Behandlung einer
Schilddrüsenunterfunktion schlichtweg nicht mehr zu beachten. Es wurde ihnen beigebracht, ihre Patienten zu
informieren, dass die traditionellen Symptome, die vor 1950 als Erscheinungen einer Schilddrüsenunterfunktion erkannt
worden wären, ihre Ursache in der Lebensweise der Patienten selber hätten (Faulheit und Völlerei führten
beispielsweise zu Trägheit, Fettleibigkeit, und Herzkreislauferkrankungen), oder dass sie ihre Probleme nur einbilden
würden (insbesondere die hormonellen und neurologischen Probleme von Frauen), oder dass diese Probleme bloß mysteriöse
Krankheiten und Defekte wären (wiederkehrende Infekte, Arthrose, und Krebs, zum Beispiel).

- As the newer, more direct tests became available, their meaning was defined in terms of the statistical expectation of
hypothyroidism that had become an integral part of medical culture. To make the new TSH measurements fit the medical
doctrine, an 8- or 10-fold variation in the hormone was defined as “normal.” With any other biological measurement,
such as erythrocyte count, blood pressure, body weight, or serum sodium, calcium, chloride, or glucose, a variation of
ten or 20 percent from the mean is considered to be meaningful. If the doctrine regarding the 5% prevalence of
hypothyroidism hadn't been so firmly established, there would have been more interest in establishing the meaning of
these great variations in TSH.
- Die zunehmende Verfügbarkeit neuerer, direkterer Tests hat dazu geführt, dass deren Bedeutung anhand statistischer
Erwartungen einer Schilddrüsenunterfunktion festgelegt wurde, die sich in der medizinischen Kultur schon fest
etabliert hatte. Um die neuen TSH-Messwerte an die medizinische Lehrmeinung anzupassen, wurde eine acht- bis zehnfache
Abweichung des Hormons als „normal“ definiert. Bei sämtlichen anderen biologischen Messungen, wie z.B. Erythrozyten,
Blutdruck, Körpergewicht, oder Serumnatrium, -kalzium, -chlor, oder -glukose, wird eine Abweichung von mehr als 20
Prozent vom Mittelwert als aussagekräftig betrachtet. Wenn sich die Lehrmeinung bezüglich des 5 %-igen Vorkommens von
Schilddrüsenunterfunktion nicht so fest etabliert hätte, hätte es mehr Interesse gegeben, die Bedeutung dieser großen
Abweichungen des TSH-Werts zu klären.

- In recent years the “normal range” for TSH has been decreasing. In 2003, the American Association of Clinical
Endocrinologists changed their guidelines for the normal range to 0.3 to 3.0 microIU/ml. But even though this lower
range is less arbitrary than the older standards, it still isn't based on an understanding of the physiological
meaning of TSH.
- Seit einigen Jahren nehmen die Grenzwerte des normalen TSH-Bereichs ab. Die American Association of Clinical
Endocrinologists hat 2003 ihre Richtlinien des normalen Bereichs auf 0,3 bis 3,0 microUI/mL angepasst. Obwohl dieser
niedrigere Bereich weniger willkürlich wirkt als ältere Standards, basiert es trotzdem nicht auf einem Verständnis der
physiologischen Bedeutung von Thyreotropin.

- Over a period of several years, I never saw a person whose TSH was over 2 microIU/ml who was comfortably healthy, and
I formed the impression that the normal, or healthy, quantity was probably something less than 1.0.
- Über mehrere Jahre sah ich noch nie jemanden, die einen Thyreotropin-Wert über 2 microIU/mL hatte, die sich angenehm
gesund fühlte, und ich bildete die Meinung, dass die normale bzw. gesunde Quantität wahrscheinlich eher einen Wert
unter 1,0 beträgt.

- If a pathologically high TSH is defined as normal, its role in major diseases, such as breast cancer, mastalgia, MS,
fibrotic diseases, and epilepsy, will simply be ignored. Even if the possibility is considered, the use of an
irrational norm, instead of a proper comparison, such as the statistical difference between the mean TSH levels of
cases and controls, leads to denial of an association between hypothyroidism and important diseases, despite evidence
that indicates an association.
- Wenn ein pathologisch hoher Thyreotropin-Wert als normal definiert wird, wird die Rolle, die er bei wichtigen
Krankheiten spielt, wie z.B. Brustkrebs, Mastodynie (auch „Mastalgie“), multipler Sklerose, fibrotischen Krankheiten
und Epilepsie, schlichtweg ignoriert. Selbst wenn das für möglich gehalten wird, führt die Anwendung einer
irrationalen Norm (anstatt eines zweckmäßigen Vergleichs, wie bspw. des statistischen Abstands des TSH-Mittelwerts
unter Fällen und Kontrollen) dazu, dass trotz Beweisen des Gegenteils geleugnet wird, dass ein Zusammenhang zwischen
einer Schilddrüsenunterfunktion und wichtigen Krankheiten besteht.

- Some critics have said that most physicians are “treating the TSH,” rather than the patient. If TSH is itself
pathogenic, because of its pro-inflammatory actions, then that approach isn't entirely useless, even when they “treat
the TSH” with only thyroxine, which often isn't well converted into the active triiodothyronine, T3. But the relief of
a few symptoms in a small percentage of the population is serving to blind the medical world to the real possibilities
of thyroid therapy.
- Einige Kritiker haben gesagt, dass die meisten Mediziner nur „den TSH-Wert behandeln“ statt den Patienten. Insofern
TSH aufgrund seiner entzündungsfördernden Eigenschaften an und für sich pathogen ist, ist dieser Ansatz nicht
vollkommen unbrauchbar, selbst wenn „der TSH-Wert behandelt wird“. Aber behandelt wird er meist nur mit Thyroxin (T4),
welches oft nicht sehr gut in seine aktive Form, Trijodthyronin (T3), verstoffwechselt werden kann, und die
erfolgreiche Linderung einiger Symptome in einem Bruchteil der Bevölkerung sorgt dafür, dass die Welt der Medizin
blind für die wahren Möglichkeiten der Schilddrüsenhormon-Therapie bleibt.

- TSH has direct actions on many cell types other than the thyroid, and probably contributes directly to edema (Wheatley
and Edwards, 1983), fibrosis, and mastocytosis. If people are concerned about the effects of a TSH “deficiency,” then
I think they have to explain the remarkable longevity of the animals lacking pituitaries in W.D. Denckla's
experiments, or of the naturally pituitary deficient dwarf mice that lack TSH, prolactin, and growth hormone, but live
about a year longer than normal mice (Heiman, et al., 2003). Until there is evidence that very low TSH is somehow
harmful, there is no basis for setting a lower limit to the normal range.
- TSH hat unmittelbare Auswirkungen auf mehrere Zelltypen und nicht nur auf das Schilddrüsengewebe. Es trägt
wahrscheinlich direkt zu Ödem bei (Wheatley und Edwards, 1983), sowie Fibrose und Mastozytose. Wer sich Sorgen um die
Folgen eines Thyreotropin-„Mangels“ macht, der soll meiner Meinung nach die außergewöhnliche Langlebigkeit von Tieren
erklären, die zwar natürlicherweise über keine Hypophyse und entsprechend weder TSH, noch Prolaktin, noch
Wachstumshormon verfügen, die aber fast ein Jahr länger als normale Mäuse leben (Heim, et al., 2003). Bis Beweise
dafür vorliegen, dass ein sehr niedriger TSH-Wert irgendwie als gesundheitsgefährdend gelten soll, gibt es bislang
keine Basis dafür, einen unteren Grenzwert festzulegen.

- Some types of thyroid cancer can usually be controlled by keeping TSH completely suppressed. Since TSH produces
reactions in cells as different as fibroblasts and fat cells, pigment cells in the skin, mast cells and bone marrow
cells (Whetsell, et al., 1999), it won't be surprising if it turns out to have a role in the development of a variety
of cancers, including melanoma.
- Einige Arten von Schilddrüsenkrebs können normalerweise unter Kontrolle gehalten werden, indem man TSH komplett
unterdrückt. Da TSH einige Reaktionen in verschiedenen Zelltypen hervorruft, von Fibroblasten und Fettzellen, über
Mastzellen und Pigmentzellen in der Haut bis hin zu Knochenmarkzellen (Whetsell, et al., 1999), sollte es keine
Überraschung sein, wenn sich herausstellen sollte, dass es doch eine Rolle bei der Entwicklung einer Vielzahl von
Krebsarten spielt, darunter Melanom.

- Many things, including the liver and the senses, regulate the function of the thyroid system, and the pituitary is
just one of the factors affecting the synthesis and secretion of the thyroid hormones.
- Die Funktion des Schilddrüsen-Systems wird von mehreren Sachen reguliert, darunter auch die Leber und die Sinne, und
die Hypophyse ist nur einer der Faktoren, die die Synthese und Ausschüttung der Schilddrüsenhormone beeinflussen.

- A few people who had extremely low levels of pituitary hormones, and were told that they must take several hormone
supplements for the rest of their life, began producing normal amounts of those hormones within a few days of eating
more protein and fruit. Their endocrinologist described them as, effectively, having no pituitary gland. Extreme
malnutrition in Africa has been described as creating “. . . a condition resembling hypophysectomy,” (Ingenbleek and
Beckers, 1975) but the people I talked to in Oregon were just following what they thought were healthful nutritional
policies, avoiding eggs and sugars, and eating soy products.
- Einige Leute, die extrem niedrige Spiegel der Hormone der Hypophyse hatten, denen erzählt wurde, dass sie mehrere
Hormonpräparate für den Rest ihres Lebens nehmen müssten, begannen mehr dieser Hormone spontan herzustellen, nachdem
sie einige Tage lang mehr Obst und Eiweiß zu sich nahmen. Die Diagnose ihrer Endokrinologen war, dass sie effektiv
über keine Hypophyse verfügten. Extreme Mangelernährung in Afrika wurde so beschrieben, dass sie „... eine Krankheit
verursachte, die einer Hypophysektomie ähnelt,“ (Ingenbleek und Beckers, 1975) aber die Personen, mit denen ich in
Oregon sprach, praktizierten bloß das, was sie für eine „gesunde Ernährung“ hielten, d.h. die Vermeidung von Eiern und
Zucker, und den Verzehr von Sojaprodukten.

- Occasionally, a small supplement of thyroid in addition to a good diet is needed to quickly escape from the
stress-induced “hypophysectomized” condition.
- Gelegentlich reicht eine kleine Zufuhr von Schilddrüsenhormon zusammen mit einer guten Ernährung, um schnell aus dem
durch Stress verursachten „Hypophysektomie“-Zustand zu entkommen.

- Aging, infection, trauma, prolonged cortisol excess, somatostatin, dopamine or L-dopa, adrenaline (sometimes;
Mannisto, et al., 1979), amphetamine, caffeine and fever can lower TSH, apart from the effect of feedback by the
thyroid hormones, creating a situation in which TSH can appear normal or low, at the same time that there is a real
hypothyroidism.
- Außer der Rückkopplungswirkung der Schilddrüsenhormone können das Altwerden, eine Infektion, Trauma, ein lang
anhaltender Cortisol-Überschuss, Somatostatin, Dopamin oder L-dopa, Adrenalin (nur manchmal; Mannisto, et al., 1979),
Amphetamin, Koffein und Fieber den Thyreotropin-Spiegel senken, was dafür sorgt, dass Thyreotropin normal oder niedrig
wirkt, wenn aber eine echte Schilddrüsenunterfunktion vorliegt.

- A disease or its treatment can obscure the presence of hypothyroidism. Parkinson's disease is a clear example of this.
(Garcia-Moreno and Chacon, 2002: “... in the same way hypothyroidism can simulate Parkinson's disease, the latter can
also conceal hypothyroidism.”)
- Eine Krankheit oder deren Behandlung kann das Vorliegen einer Schilddrüsenunterfunktion verbergen. Hiervon ist
Parkinson ein klares Beispiel. (Garcia-Moreno und Chacon, 2002: „... wie eine Schilddrüsenunterfunktion Parkinson
simulieren kann, so kann letzteres auch eine Schilddrüsenunterfunktion verbergen.“)

- The stress-induced suppression of TSH and other pituitary hormones is reminiscent of the protective inhibition that
occurs in individual nerve fibers during dangerously intense stress, and might involve such a “parabiotic” process in
the nerves of the hypothalamus or other brain region. The relative disappearance of the pituitary hormones when the
organism is in very good condition (for example, the suppression of ACTH and cortisol by sugar or pregnenolone) is
parallel to the high energy quiescence of individual nerve fibers.
- Die durch Stress ausgelöste Unterdrückung von Thyreotropin und anderen Hormonen erinnert an die schützende Hemmung,
die bei intensivem Stress gefährlichen Ausmaßes in individuellen Nervenfasern eintritt, und mag vielleicht mit einem
„parabiotischen“ Prozess in den Nerven des Hypothalamus oder einer anderen Hirnregion einhergehen. Dass die Hormone
der Hypophyse mehr oder weniger verschwinden, wenn sich der Organismus in einem sehr gesunden Zustand befindet (z.B.
die Unterdrückung von ACTH und Cortisol durch Zucker oder Pregnenolon), ähnelt der hochenergetischen Stilllegung
individueller Nervenfasern.

- These associations between energy state and cellular activity can be used for evaluating the thyroid state, as in
measuring nerve and muscle reaction times and relaxation rates. For example, relaxation which is retarded, because of
slow restoration of the energy needed for cellular “repolarization,” is the basis for the traditional use of the
Achilles tendon reflex relaxation test for diagnosing hypothyroidism. The speed of relaxation of the heart muscle also
indicates thyroid status (Mohr-Kahaly, et al., 1996).
- Diese Zusammenhänge zwischen dem energetischen Zustand der Zelle und deren Aktivität können benutzt werden, um die
Schilddrüsenfunktion zu evaluieren. Hierzu dienen die Reaktionszeiten sowie Entspannungszeiten der Muskeln und Nerven.
Eine verzögerte Entspannung, die aufgrund einer langsamen Wiederherstellung der für die „Repolarisierung“ benötigten
zellulären Energie zustande kommt, schafft die Basis der traditionellen Anwendung des Achillessehnenreflex-Tests zur
Diagnose einer Schilddrüsenunterfunktion.

- Stress, besides suppressing the TSH, acts in other ways to suppress the real thyroid function. Cortisol, for example,
inhibits the conversion of T4 to T3, which is responsible for the respiratory production of energy and carbon dioxide.
Adrenaline, besides leading to increased production of cortisol, is lipolytic, releasing the fatty acids which, if
they are polyunsaturated, inhibit the production and transport of thyroid hormone, and also interfere directly with
the respiratory functions of the mitochondria. Adrenaline decreases the conversion to T4 to T3, and increases the
formation of the antagonistic reverse T3 (Nauman, et al., 1980, 1984).
- Stress kann über deren Unterdrückung des TSH-Werts hinaus auf mehrere Arten und Weisen die effektive
Schilddrüsenfunktion unterdrücken. Cortisol hemmt zum Beispiel die Konvertierung von T4 in T3, welches für die
respiratorische Herstellung von Energie und Kohlenstoffdioxid verantwortlich ist. Adrenalin hat abgesehen von seiner
Erhöhung des Cortisol-Spiegels eine lipolytische Wirkung, was zur Freisetzung von Fettsäuren führt, und, falls die
mehrfach ungesättigt sind, hemmen sie wiederum auch die Herstellung und das Transport der Schilddrüsenhormone. Sie
stören zudem direkt die respiratorische Funktion der Mitochondrien. Adrenalin senkt die Konvertierung von T4 in T3,
und erhöht die Bildung des antagonistischen Hormons Reverse-T3 (Nauman, et al., 1980, 1984).

- During the night, at the time adrenaline and free fatty acids are at their highest, TSH usually reaches its peak. TSH
itself can produce lipolysis, raising the level of circulating free fatty acids. This suggests that a high level of
TSH could sometimes contribute to functional hypothyroidism, because of the antimetabolic effects of the unsaturated
fatty acids.
- Adrenalin und freie Fettsäuren erreichen nachts ihren Höhepunkt. TSH erreicht hier auch meistens seinen höchsten Wert.
Es kann auch TSH selbst Lipolyse bewirken, was den Spiegel der zirkulierenden freien Fettsäuren erhöht. Dies weist
darauf hin, dass ein hoher TSH-Wert manchmal aufgrund der antimetabolischen Wirkung der mehrfach ungesättigten
Fettsäuren zu einer funktionalen Schilddrüsenunterfunktion führen könnte

- These are the basic reasons for thinking that the TSH tests should be given only moderate weight in interpreting
thyroid function.
- Das sind also die wesentlichen Gründe zu denken, dass die TSH-Tests nur bedingt zur Interpretierung der
Schilddrüsenfunktion beitragen sollten.

- The metabolic rate is very closely related to thyroid hormone function, but defining it and measuring it have to be
done with awareness of its complexity.
- Der Grundumsatz steht in sehr engem Zusammenhang mit der Funktion der Schilddrüsenhormone, aber sie ist schließlich in
Anbetracht ihrer Komplexität zu definieren und messen.

- The basal metabolic rate that was commonly used in the 1930s for diagnosing thyroid disorders was usually a
measurement of the rate of oxygen consumption, made while lying quietly early in the morning without having eaten
anything for several hours. When carbon dioxide production can be measured at the same time as oxygen consumption,
it's possible to estimate the proportion of energy that is being derived from glucose, rather than fat or protein,
since oxidation of glucose produces more carbon dioxide than oxidation of fat does. Glucose oxidation is efficient,
and suggests a state of low stress.
- Der basale Grundumsatz, die häufig in den 1930er Jahren zur Diagnose einer Schilddrüsenstörung verwendet wurde, war
normalerweise eine Messung der Sauerstoffkonsumrate, die durchgeführt wurde, während der Patient morgens still im Bett
im gefasteten Zustand lag. Eine gleichzeitige Messung der Kohlenstoffdioxidproduktion sowie des Sauerstoffkonsums
ermöglicht es, den Anteil der Energie zu schätzen, der durch Glukose statt Fett oder Eiweiß gewonnen wird, da die
Oxidierung von Glukose mehr Kohlenstoffdioxid gewinnt als von Fett. Die Oxidierung von Glukose ist effizient und weist
auf einen niedrigen Stresszustand hin.

- The very high adrenaline that sometimes occurs in hypothyroidism will increase the metabolic rate in several ways, but
it tends to increase the oxidation of fat. If the production of carbon dioxide is measured, the adrenaline/stress
component of metabolism will be minimized in the measurement. When polyunsaturated fats are mobilized, their
spontaneous peroxidation consumes some oxygen, without producing any usable energy or carbon dioxide, so this is
another reason that the production of carbon dioxide is a very good indicator of thyroid hormone activity. The
measurement of oxygen consumption was usually done for two minutes, and carbon dioxide production could be accurately
measured in a similarly short time. Even a measurement of the percentage of carbon dioxide at the end of a single
breath can give an indication of the stress-free, thyroid hormone stimulated rate of metabolism (it should approach
five or six percent of the expired air).
- Der sehr hohe Adrenalinspiegel, der manchmal mit einer Schilddrüsenunterfunktion einhergeht, erhöht auf verschiedene
Art und Weise den Grundumsatz, aber es begünstigt eher Fettoxidierung. Wenn die Produktion von Kohlenstoffdioxid
gemessen wird, wird die Adrenalin- bzw. Stress-Komponente des Stoffwechsels in der Messung minimiert. Wenn mehrfach
ungesättigte Fettsäuren freigesetzt werden, konsumiert deren spontane Peroxidierung etwas Sauerstoff, und produziert
dabei weder verwendbare Energie noch Kohlenstoffdioxid. Das ist also noch ein weiterer Grund, dass die Produktion von
Kohlenstoffdioxid ein sehr geeigneter Indikator der Aktivität der Schilddrüsenhormone ist. Die Messung des
Sauerstoffkonsums wurde meistens zwei Minuten lang durchgeführt, und die Kohlenstoffdioxidproduktion konnte ähnlich
schnell durchgeführt werden. Selbst die Messung des Anteils von Kohlenstoffdioxid nach einem einzigen Atemzug kann auf
die stressfreie, durch Schilddrüsenhormon stimulierte Stoffwechselrate hinweisen (dies soll fünf oder sechs Prozent
der ausgeatmeten Luft betragen).

- Increasingly in the last several years, people who have many of the standard symptoms of hypothyroidism have told me
that they are hyperthyroid, and that they have to decide whether to have surgery or radiation to destroy their thyroid
gland. They have told me that their symptoms of “hyperthyroidism,” according to their physicians, were fatigue,
weakness, irritability, poor memory, and insomnia.
- Es haben mir in den letzten Jahren zunehmend mehr Leute erzählt, die mehrere der klassischen Symptome einer
Schilddrüsenunterfunktion hatten, dass sie eine Überfunktion hätten, und dass sie zwischen Bestrahlung und einer
Operation entscheiden mussten, um ihre Schilddrüse zu zerstören. Sie erzählten mir, dass die Symptome ihrer
Schilddrüsen*über*funktion laut ihren Ärzten Müdigkeit, Schwäche, Reizbarkeit, Gedächtnisprobleme und Schlaflosigkeit
wären.

- They didn't eat very much. They didn't sweat noticeably, and they drank a moderate amount of fluids. Their pulse rates
and body temperature were normal, or a little low.
- Sie aßen nicht viel. Viel schwitzten sie auch nicht und sie tranken mäßig Flüssigkeit. Ihre Puls- und
Körpertemperaturmessungen waren normal, oder etwas niedrig.

- Simply on the basis of some laboratory tests, they were going to have their thyroid gland destroyed. But on the basis
of all of the traditional ways of judging thyroid function, they were hypothyroid.
- Alleine auf Basis einiger Laborwerte hätten sie ihre Schilddrüsen zerstören lassen. Aber auf Basis aller
traditionellen Mittel, die Schilddrüsenfunktion zu beurteilen, hatten sie eine Unterfunktion.

- Broda Barnes, who worked mostly in Fort Collins, Colorado, argued that the body temperature, measured before getting
out of bed in the morning, was the best basis for diagnosing thyroid function.
- Broda Barnes, der hauptsächlich in Fort Collins, Colorado arbeitete, argumentierte, dass die Körpertemperatur, wenn
sie vor dem Aufstehen in der Früh gemessen wird, die beste Basis zur Diagnose einer Schilddrüsenunterfunktion ist.

- Fort Collins, at a high altitude, has a cool climate most of the year. The altitude itself helps the thyroid to
function normally. For example, one study (Savourey, et al., 1998) showed an 18% increase in T3 at a high altitude,
and mitochondria become more numerous and are more efficient at preventing lactic acid production, capillary
leakiness, etc.
- Fort Collins, eine sehr hoch gelegene Stadt, hat rund ums Jahr meistens ein kühles Klima. Die hohe Lage begünstigt an
und für sich eine normale Schilddrüsenfunktion. Eine Studie (Savourey, et al., 1998) vermerkte zum Beispiel einen 18
%-igen Anstieg des T3-Spiegels in großer Höhe. Mitochondrien vervielfachen sich und sind darin effizienter, die
Bildung von Laktat, die Durchlässigkeit der Kapillaren, usw. zu hemmen,

- In Eugene during a hot and humid summer, I saw several obviously hypothyroid people whose temperature seemed perfectly
normal, euthyroid by Barnes' standards. But I noticed that their pulse rates were, in several cases, very low. It
takes very little metabolic energy to keep the body at 98.6 degrees when the air temperature is in the nineties. In
cooler weather, I began asking people whether they used electric blankets, and ignored their temperature measurements
if they did.
- Während eines heißen und schwülen Sommers in Eugene sah ich mehrere offensichtlich hypothyreote Menschen, deren
Temperaturmessungen ganz normal wirkten - laut Barnes euthyreot. Aber ich bemerkte, dass ihre Pulsraten in vielen
Fällen sehr niedrig waren. Es wird sehr wenig metabolische Energie benötigt, um die Körpertemperatur bei 98,6° F
(36,6° C) Grad beizubehalten, wenn die Außentemperatur bei über 90° F (Mitte 30° C) liegt. Bei kühlerem Wetter begann
ich, Leute zu fragen, ob sie Heizdecken benutzen, und, wenn dem so war, ignorierte ich ihre Temperaturmessungen.

- The combination of pulse rate and temperature is much better than either one alone. I happened to see two people whose
resting pulse rates were chronically extremely high, despite their hypothyroid symptoms. When they took a thyroid
supplement, their pulse rates came down to normal. (Healthy and intelligent groups of people have been found to have
an average resting pulse rate of 85/minute, while less healthy groups average close to 70/minute.)
- Die Kombination von Puls und Temperatur ist viel sinnvoller als nur eines der beiden. Ich sah zufällig zwei Leute, die
trotz Symptomen einer Schilddrüsenunterfunktion einen chronisch sehr hohen Puls hatten. Durch Zufuhr eines
Schilddrüsenhormonpräparats sanken ihre Pulsraten wieder auf normale Werte. (Gesunde und intelligente Gruppen haben
nachweislich einen Durchschnittspuls von 85 Schläge pro Minute, während weniger gesunde Gruppen eher einen Puls von 70
haben.)

- The speed of the pulse is partly determined by adrenaline, and many hypothyroid people compensate with very high
adrenaline production. Knowing that hypothyroid people are susceptible to hypoglycemia, and that hypoglycemia
increases adrenaline, I found that many people had normal (and sometimes faster than average) pulse rates when they
woke up in the morning, and when they got hungry. Salt, which helps to maintain blood sugar, also tends to lower
adrenalin, and hypothyroid people often lose salt too easily in their urine and sweat. Measuring the pulse rate before
and after breakfast, and in the afternoon, can give a good impression of the variations in adrenalin. (The blood
pressure, too, will show the effects of adrenaline in hypothyroid people. Hypothyroidism is a major cause of
hypertension.)
- Die Pulsrate wird teilweise durch Adrenalin bestimmt, und viele Menschen kompensieren ihre Schilddrüsenunterfunktion
mit einer hohen Adrenalinproduktion. Angesichts dessen, dass mehrere hypothyreote Menschen zu Unterzuckerung
tendieren, und dass eine Unterzuckerung Adrenalin steigert, merkte ich, dass viele Leute einen normalen (und manchmal
überdurchschnittlich schnellen) Puls hatten, sowohl in der Früh als auch wenn sie Hunger bekamen. Salz, welches zum
Erhalt eines normalen Blutzuckerspiegels beiträgt, senkt tendenziell auch Adrenalin, und hypothyreote Menschen
verlieren Salz sehr schnell im Urin und im Schweiß. Um einen besseren Eindruck der Variation im Adrenalinspiegel zu
bekommen, kann man den Puls vor und nach dem Frühstück sowie am Nachmittag messen. (Der Blutdruck zeigt zudem auch die
Wirkung von Adrenalin in Menschen mit einer Schilddrüsenunterfunktion. Eine Schilddrüsenunterfunktion ist eine häufige
Ursache des Bluthochdrucks.)

- But hypoglycemia also tends to decrease the conversion of T4 to T3, so heat production often decreases when a person
is hungry. First, their fingers, toes, and nose will get cold, because adrenalin, or adrenergic sympathetic nervous
activity, will increase to keep the brain and heart at a normal temperature, by reducing circulation to the skin and
extremities. Despite the temperature-regulating effect of adrenalin, the reduced heat production resulting from
decreased T3 will make a person susceptible to hypothermia if the environment is cool.
- Aber Unterzuckerung senkt tendenziell auch die Konvertierung von T4 in T3, was dazu führt, dass die Wärmeproduktion
auch sinkt, wenn man Hunger bekommt. Es werden zuerst die Finger, dann die Zehe und schließlich die Nase kalt, weil
Adrenalin bzw. die adrenergische Aktivität des Sympathikus steigt, um die Temperatur des Gehirns und des Herzes normal
zu halten, indem die Durchblutung der Haut und der Extremitäten gesenkt wird. Trotz der temperatur-regulierenden
Wirkung von Adrenalin wird man aufgrund der geringeren Wärmeproduktion durch weniger T3 anfälliger für eine
Unterkühlung, falls die Umgebung auch kühl ist.

- Since food, especially carbohydrate and protein, will increase blood sugar and T3 production, eating is “thermogenic,”
and the oral (or eardrum) temperature is likely to rise after eating.
- Da Essen, und insbesondere Kohlenhydrate und Eiweiß, den Blutzuckerspiegel und T3-Produktion steigern, ist der Verzehr
von Essen an und für sich „thermogen“, und die Oral- bzw. Trommelfelltemperatur kann nach einer Mahlzeit steigen.

- Blood sugar falls at night, and the body relies on the glucose stored in the liver as glycogen for energy, and
hypothyroid people store very little sugar. As a result, adrenalin and cortisol begin to rise almost as soon as a
person goes to bed, and in hypothyroid people, they rise very high, with the adrenalin usually peaking around 1 or 2
A.M., and the cortisol peaking around dawn; the high cortisol raises blood sugar as morning approaches, and allows
adrenalin to decline. Some people wake up during the adrenalin peak with a pounding heart, and have trouble getting
back to sleep unless they eat something.
- Der Blutzuckerspiegel sinkt in der Nacht, und der Körper ist auf den in der Leber als Glykogen gespeicherten Zucker
als Energiequelle verlassen, und Menschen mit einer Schilddrüsenunterfunktion speichern sehr wenig Zucker in ihrer
Leber. Dementsprechend fangen Adrenalin und Cortisol fast unmittelbar nach dem Schlafengehen an zu steigen. Bei
Menschen mit einer Schilddrüsenunterfunktion steigen sie sehr hoch - das Adrenalin erreicht um ungefähr ein oder zwei
Uhr seinen Höhepunkt und Cortisol ungefähr bei der Dämmerung. Das hohe Cortisol steigert den Blutzuckerspiegel, wenn
der Morgen naht. Manche Leute wachen bei dem Adrenalinhöhepunkt mit starkem Herzrasen auf, und es fällt ihnen schwer,
wieder einzuschlafen, ohne etwas zu essen.

- If the night-time stress is very high, the adrenalin will still be high until breakfast, increasing both temperature
and pulse rate. The cortisol stimulates the breakdown of muscle tissue and its conversion to energy, so it is
thermogenic, for some of the same reasons that food is thermogenic.
- Bei hohem Stress in der Nacht, bleibt das Adrenalin auch bis zur ersten Mahlzeit auch hoch, was für eine höhere
Temperatur sowie einen höheren Puls sorgt. Cortisol stimuliert den Muskelabbau und die Konvertierung dessen in
Energie, und ist also thermogen - dies ähnelt der thermogenen Wirkung von Essen.

- After eating breakfast, the cortisol (and adrenalin, if it stayed high despite the increased cortisol) will start
returning to a more normal, lower level, as the blood sugar is sustained by food, instead of by the stress hormones.
In some hypothyroid people, this is a good time to measure the temperature and pulse rate. In a normal person, both
temperature and pulse rate rise after breakfast, but in very hypothyroid people either, or both, might fall.
- Nach dem Frühstück fängt das Cortisol (und das Adrenalin, falls es trotz hohem Cortisol hoch blieb,) an, auf eine
normales, niedrigeres Niveau zu sinken, während der Blutzuckerspiegel von der zugeführten Nahrung statt von den
Stresshormonen aufrechterhalten wird. Bei einigen hypothyreoten Personen ist das ein guter Zeitpunkt, die Temperatur
und den Puls zu messen. Bei einer normalen Person steigt nach dem Frühstück sowohl die Temperatur als auch der Puls,
aber bei sehr hypothyreoten Personen kann entweder das eine, das andere oder sogar beides sinken.

- Some hypothyroid people have a very slow pulse, apparently because they aren't compensating with a large production of
adrenalin. When they eat, the liver's increased production of T3 is likely to increase both their temperature and
their pulse rate.
- Einige hypothyreote Personen haben einen sehr niedrigen Puls, scheinbar aufgrund dessen, dass sie nicht mithilfe einer
hohen Adrenalinproduktion kompensieren. Wenn sie essen, sorgt sehr wahrscheinlich die erhöhte Produktion von T3 in der
Leber dafür, dass sowohl die Temperatur als auch der Puls steigt.

- By watching the temperature and pulse rate at different times of day, especially before and after meals, it's possible
to separate some of the effects of stress from the thyroid-dependent, relatively “basal” metabolic rate. When
beginning to take a thyroid supplement, it's important to keep a chart of these measurements for at least two weeks,
since that's roughly the half-life of thyroxine in the body. When the body has accumulated a steady level of the
hormones, and begun to function more fully, the factors such as adrenaline that have been chronically distorted to
compensate for hypothyroidism will have begun to normalize, and the early effects of the supplementary thyroid will in
many cases seem to disappear, with heart rate and temperature declining. The daily dose of thyroid often has to be
increased several times, as the state of stress and the adrenaline and cortisol production decrease.
- Wenn man die Temperatur und den Puls im Laufe eines Tages zu verschiedenen Zeitpunkten misst, vor allem vor und nach
einer Mahlzeit, ist es möglich, einige der Wirkungen der Stresshormone von dem schilddrüsenhormon-abhängigen, relativ
„basalen“ Grundumsatz zu unterscheiden. Am Anfang einer Therapie mit Schilddrüsenhormon ist es wichtig, die Messungen
mindestens zwei Wochen aufzuschreiben und ggf. als Kurve darzustellen, da die Halbwertszeit von Thyroxin (T4) im
Körper ungefähr zwei Wochen beträgt. Wenn sich einmal ein stabiler Spiegel der Hormone im Körper etabliert hat, werden
sich jene Faktoren normalisieren, die zwecks Kompensierung der Unterfunktion chronisch verzerrt geblieben waren, und
die frühen Auswirkungen der Zufuhr von Schilddrüsenhormon verschwinden in den meisten Fällen - es sinken dabei der
Puls und die Temperatur. Die Tagesdosis von Schilddrüsenhormon muss oft mehrere Male erhöht werden, während der
Stresszustand und die Produktion von Adrenalin und Cortisol sinken.

- Counting calories achieves approximately the same thing as measuring oxygen consumption, and is something that will
allow people to evaluate the various thyroid tests they may be given by their doctor. Although food intake and
metabolic rate vary from day to day, an approximate calorie count for several days can often make it clear that a
diagnosis of hyperthyroidism is mistaken. If a person is eating only about 1800 calories per day, and has a steady and
normal body weight, any “hyperthyroidism” is strictly metaphysical, or as they say, “clinical.”
- Das Zählen von Kalorien erreicht annähernd das, was durch die Messung des Sauerstoffkonsums erreicht werden soll, und
ermöglicht es einem, die diversen Schilddrüsentests zu evaluieren, die man von seinem Arzt bekommen könnte. Obwohl die
Nahrungszufuhr und der Grundumsatz von Tag zu Tag variieren mag, kann ein geschätzter Kalorienkonsum über einige Tage
es einem klarstellen, dass eine Schilddrüsen*über*funktion eine Fehldiagnose ist. Sollte eine Person nur um die 1800
Kalorien am Tag konsumieren, und dabei einen normales, stabiles Körpergewicht beibehalten, sind jegliche Diagnosen
einer „Überfunktion“ schlichtweg metaphysisch, bzw. sogenannte „klinische“ Diagnosen.

- When the humidity and temperature are normal, a person evaporates about a liter of water for every 1000 calories
metabolized. Eating 2000 calories per day, a normal person will take in about four liters of liquid, and form about
two liters of urine. A hyperthyroid person will invisibly lose several quarts of water in a day, and a hypothyroid
person may evaporate a quart or less.
- Wenn die Luftfeuchtigkeit und Temperatur normal sind, verdampft eine Person ungefähr einen Liter Wasser pro 1000
verstoffwechselten Kalorien. Durch einen Konsum von 2000 Kalorien am Tag, führt sich eine normale Person ungefähr vier
Liter Wasser zu sich zu und bildet ungefähr zwei Liter Urin. Jemand mit einer Schilddrüsen*über*funktion verliert
unsichtbar mehrere Liter Wasser pro Tag, und jemand mit einer Unterfunktion könnte hingegen lediglich einen Liter
verdampfen, oder sogar weniger.

- When cells, because of a low metabolic rate, don't easily return to their thoroughly energized state after they have
been stimulated, they tend to take up water, or, in the case of blood vessels, to become excessively permeable.
Fatigued muscles swell noticeably, and chronically fatigued nerves can swell enough to cause them to be compressed by
the surrounding connective tissues. The energy and hydration state of cells can be detected in various ways, including
magnetic resonance, and electrical impedance, but functional tests are easy and practical.
- Wenn die Zellen aufgrund eines niedrigen Grundumsatzes nicht besonders einfach zu ihrem völlig energiereichen Zustand
zurückkehren, nachdem sie gereizt wurden, nehmen sie tendenziell Wasser auf, oder sie werden wie im Falle der
Blutgefäße exzessiv durchlässig. Ermüdete Muskeln schwellen merklich an, und chronisch ermüdete Nerven können so viel
anschwellen, dass sie von dem umliegenden Bindegewebe zusammengedrückt werden können.

- With suitable measuring instruments, the effects of hypothyroidism can be seen as slowed conduction along nerves, and
slowed recovery and readiness for new responses. Slow reaction time is associated with slowed memory, perception, and
other mental processes. Some of these nervous deficits can be remedied slightly just by raising the core temperature
and providing suitable nutrients, but the active thyroid hormone, T3 is mainly responsible for maintaining the
temperature, the nutrients, and the intracellular respiratory energy production.
- Mittels angemessener Messgeräte lassen sich die Auswirkungen einer Schilddrüsenunterfunktion durch eine langsame
Konduktivität entlang der Nerven beobachten und durch verlangsamte Erholung und Bereitschaft für neue Antworten und
Reaktionen. Eine verlangsamte Reaktionszeit geht mit anderen langsamen Prozessen einher, wie zum Beispiel Gedächtnis,
Wahrnehmung und anderen geistigen Prozessen. Ein mildes Entgegenwirken dieser Nervendefizite ist durch eine Erhöhung
der Kerntemperatur sowie die Zufuhr ausgewählter Nährstoffe möglich, aber das aktive Schilddrüsenhormon, T3, ist
hauptverantwortlich dafür, die Temperatur, die benötigten Nährstoffe und die intrazelluläre Energieproduktion
aufrechtzuerhalten.

- In nerves, as in other cells, the ability to rest and repair themselves increases with the proper level of thyroid
hormone. In some cells, the energized stability produced by the thyroid hormones prevents inflammation or an
immunological hyperactivity. In the 1950s, shortly after it was identified as a distinct substance, T3 was found to be
anti-inflammatory, and both T4 and T3 have a variety of anti-inflammatory actions, besides the suppression of the
pro-inflammatory TSH.
- In Nerven, wie in anderen Zellen, steigt das Vermögen, sich zu reparieren und zu erholen, mit dem richtigen
Schilddrüsenhormonspiegel. In einigen Zellen hemmt die durch das Schilddrüsenhormon hervorgerufene energetische
Stabilisierung Entzündungen bzw. immunologische Überaktivität. In den 1950er Jahren wurde T3, kurz nachdem es als
eigene Substanz identifiziert wurde, als entzündungshemmend erkannt, und sowohl T4 als auch T3 haben abgesehen von
ihrer Hemmung des entzündungsfördernden TSH mehrere andere entzündungshemmende Wirkungen.

- Because the actions of T3 can be inhibited by many factors, including polyunsaturated fatty acids, reverse T3, and
excess thyroxine, the absolute level of T3 can't be used by itself for diagnosis. “Free T3” or “free T4” is a
laboratory concept, and the biological activity of T3 doesn't necessarily correspond to its “freedom” in the test. T3
bound to its transport proteins can be demonstrated to enter cells, mitochondria, and nuclei. Transthyretin, which
carries both vitamin A and thyroid hormones, is sharply decreased by stress, and should probably be regularly measured
as part of the thyroid examination.
- Da die Wirkungen von T3 durch mehrere Faktoren gehemmt werden können, darunter die mehrfach ungesättigten Fettsäuren,
sind Reverse-T3, exzessive Thyroxin-Werte und der absolute T3-Spiegel für eine Diagnose nicht ausreichend. „Freies T3“
bzw. „freies T4“ sind Konzepte aus dem Labor, und die biologische Aktivität von T3 stimmt nicht zwingend mit seiner
„Freiheit“ in einem Labortest überein. Es kann demonstriert werden, dass an seinen Transportproteinen gebundenes T3 in
Zellen, Mitochondrien und Zellkerne eindringen kann. Transthyretin, welches sowohl Vitamin A als auch die
Schilddrüsenhormone an sich trägt, wird durch Stress dramatisch gesenkt, und dessen Messung sollte wahrscheinlich
regelmäßig als Teil einer Untersuchung der Schilddrüsenfunktion unternommen werden.

- When T3 is metabolically active, lactic acid won't be produced unnecessarily, so the measurement of lactate in the
blood is a useful test for interpreting thyroid function. Cholesterol is used rapidly under the influence of T3, and
ever since the 1930s it has been clear that serum cholesterol rises in hypothyroidism, and is very useful
diagnostically. Sodium, magnesium, calcium, potassium, creatinine, albumin, glucose, and other components of the serum
are regulated by the thyroid hormones, and can be used along with the various functional tests for evaluating thyroid
function.
- Wenn T3 metabolisch aktiv ist, wird Milchsäure nicht unnötigerweise produziert und die Messung von Milchsäure bzw.
Laktat im Blut ist also ein nützlicher Test, um die Schilddrüsenfunktion zu kontrollieren. Cholesterin wird relativ
rapide unter Einfluss von T3 verstoffwechselt und schon seit den 1930er Jahren ist es klar, dass das Serumcholesterin
bei einer Schilddrüsenunterfunktion steigt, und das kann eine gute diagnostische Aussagekraft haben. Natrium,
Magnesium, Kalzium, Albumin, Glukose und andere Serumkomponenten werden durch die Schilddrüsenhormone reguliert und
können zusammen mit diversen funktionalen Tests zur Evaluierung der Schilddrüsenfunktion zur Hand genommen werden.

- Stereotypes are important. When a very thin person with high blood pressure visits a doctor, hypothyroidism isn't
likely to be considered; even high TSH and very low T4 and T3 are likely to be ignored, because of the stereotypes.
(And if those tests were in the healthy range, the person would be at risk for the “hyperthyroid” diagnosis.) But
remembering some of the common adaptive reactions to a thyroid deficiency, the catabolic effects of high cortisol and
the circulatory disturbance caused by high adrenaline should lead to doing some of the appropriate tests, instead of
treating the person's hypertension and “under nourished” condition.
- Stereotypen sind wichtig. Wenn eine dünne Person mit hohem Blutdruck zum Arzt geht, wird eine Schilddrüsenfunktion
sehr unwahrscheinlich in Betracht gezogen; selbst ein hoher TSH-Wert und sehr niedrige T4- und T3-Werte werden wohl
aufgrund der Stereotypen ignoriert. (Und falls diese Tests im gesunden Bereich liegen, besteht dann das Risiko der
Diagnose einer Schilddrüsen*über*funktion.) Aber wenn man sich an einige der häufigen adaptiven Reaktionen auf eine
schwache Schilddrüse erinnert, sollten die katabolischen Effekte eines hohen Cortisol-Spiegels und der
adrenalin-bedingten Kreislaufstörungen dazu führen, einige der angemessenen Tests durchzuführen, anstatt den
Bluthochdruck und die „Mangelernährung“ der Person zu behandeln.

+ 198
- 0
public/generative-energy/static/styles.css Vedi File

@@ -0,0 +1,198 @@
:root {
--text-color: #313131;
--bg-color-box: #ffffff;
--bg-color: #f6f9f6;
}

body {
font-family: "Roboto", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
color: #313131;
background-color: var(--bg-color);
}

h1, h2, h3, h4, h5 {
font-family: "Roboto Slab", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

a.home-btn {
display: block;
text-align: center;

&.hide {
visibility: hidden;
}
}

.ge-article {
.header {
margin-top: 20px;
display: flex;
justify-content: space-between;
}

p {
position: relative;
transition: background 0.15s;
}

p.swap {
background-color: #bde4ff;
}

button.swap {
background-color: white;
height: 25px;
width: 25px;
font-size: 16px;
border-radius: 3px;
border: solid 1px gray;
cursor: pointer;
position: absolute;
top: 5px;
right: 5px;
opacity: 0%;
transition: opacity 150ms;
}

button.swap:hover {
background-color: lightgray;
}

p:hover > button.swap {
opacity: 100%;
}

.lang-en p.swap > span:lang(de) {
display: revert;
}

.lang-en p.swap > span:lang(en) {
display: none;
}

.lang-de p.swap > span:lang(en) {
display: revert;
}

.lang-de p.swap > span:lang(de) {
display: none;
}

.lang-en *:lang(de) {
display: none;
}

.lang-de *:lang(en) {
display: none;
}
}

main {
width: 100%;
}

@media (min-width: 600px) {
main {
max-width: 1340px;
margin: auto;
min-width: 600px;
width: 60%;
}
}

header {
margin: auto;
text-align: center;
}

article {
margin: auto;
}

.text-slab {
margin-bottom: 15px;
background-color: white;
border-radius: 5px;
padding: 10px;
}

.text-slab > p:first-of-type {
margin-top: 0;
}
.text-slab > p:last-of-type {
margin-bottom: 0;
}

form {
display: block;
text-align: center;
margin: 40px;
}

label {
display: block;
}

hr {
border: 0;
border-bottom: 1px dashed #ccc;
background: #999;
}

footer .bottom {
display: flex;
flex-direction: row;
justify-content: space-between;
}

footer {
margin-bottom: 20px;
}



.ge-calculator {
table {
border-collapse: separate;
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
border-radius: 5px;
border-spacing: 0;
border: 1px solid var(--text-color);
}

input {
width: 70px;
}
tr:last-of-type td {
border-bottom: none;
}
td {
border-bottom: 1px solid var(--text-color);
border-right: 1px solid var(--text-color);
padding: 10px;
}
td:last-of-type {
border-right: none;
}
.breathe {
padding-left: 4px;
padding-right: 4px;
}
@media (min-width: 600px) {
td.right div {
display: inline-block;
}
}
}

.fade-enter-active,
.fade-leave-active {
transition: opacity 0.5s ease;
}

.fade-enter-from,
.fade-leave-to {
opacity: 0;
}

+ 18
- 0
public/home/index.html Vedi File

@@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<title>G'day</title>
<link rel="icon" href="icon.webp" />
<link rel="stylesheet" href="/static/styles.css" />
<!-- SSR HEAD OUTLET -->
<script type="module" src="/static/app.js"></script>
</head>
<body>
<main class="container">
<h1>G'day, mate!</h1>
<h2>YOUR SITE GOES HERE</h2>
<img src="/static/image.jpeg" alt="KANGAROO" />
<div id="app-root"><!-- SSR OUTLET --></div>
</main>
</body>
</html>

public/app.js → public/home/static/app.js Vedi File

@@ -1,4 +1,4 @@
import { createSSRApp } from "vue";
import App from "@/App.tsx";

createSSRApp(App).mount('#app-root');
createSSRApp(App).mount("#app-root");

public/icon.webp → public/home/static/icon.webp Vedi File


public/image.jpeg → public/home/static/image.jpeg Vedi File


public/styles.css → public/home/static/styles.css Vedi File


+ 0
- 27
public/index.html Vedi File

@@ -1,27 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>G'day</title>
<link rel="icon" href="icon.webp" />
<link rel="stylesheet" href="styles.css" />
<script type="importmap">
{
"imports": {
"vue": "/deps/vue/dist/vue.esm-browser.js",
"vue/jsx-runtime": "/deps/vue/jsx-runtime/index.mjs",
"@/": "/app/"
}
}
</script>
<script type="module" src="app.js"></script>
<!-- SSR HEAD OUTLET -->
</head>
<body>
<main class="container">
<h1>G'day, mate!</h1>
<h2>YOUR SITE GOES HERE</h2>
<img src="image.jpeg" alt="KANGAROO" />
<div id="app-root"><!-- SSR OUTLET --></div>
</main>
</body>
</html>

+ 1
- 0
raypeat-articles/articles.html Vedi File

@@ -0,0 +1 @@


+ 485
- 0
raypeat-articles/articles.ts Vedi File

@@ -0,0 +1,485 @@
const articles = [
{
title: "TSH, temperature, pulse rate, and other indicators in hypothyroidism",
url: "http://raypeat.com/articles/articles/hypothyroidism.shtml",
slug: "hypothyroidism",
},
{
title: "Academic authoritarians, language, metaphor, animals, and science",
url: "http://raypeat.com/articles/articles/authoritarians.shtml",
slug: "authoritarians",
},
{
title: "Adaptive substance, creative regeneration: Mainstream science, repression, and creativity",
url: "http://raypeat.com/articles/articles/adaptive-substance.shtml",
slug: "adaptive-substance",
},
{
title: "Aging Eyes, Infant Eyes, and Excitable Tissues",
url: "http://raypeat.com/articles/articles/aging-eyes.shtml",
slug: "aging-eyes",
},
{
title: "Aging, estrogen, and progesterone.",
url: "http://raypeat.com/articles/aging/aging-estrogen-progesterone.shtml",
slug: "aging-estrogen-progesterone",
},
{
title: "Altitude and Mortality.",
url: "http://raypeat.com/articles/aging/altitude-mortality.shtml",
slug: "altitude-mortality",
},
{
title: "Alzheimer's: The problem of Alzheimer's disease as a clue to immortality - part 1.",
url: "http://raypeat.com/articles/articles/alzheimers.shtml",
slug: "alzheimers",
},
{
title: "Alzheimer's: The problem of Alzheimer's disease as a clue to immortality - part 2.",
url: "http://raypeat.com/articles/articles/alzheimers2.shtml",
slug: "alzheimers2",
},
{
title: "Aspirin, brain and cancer.",
url: "http://raypeat.com/articles/aging/aspirin-brain-cancer.shtml",
slug: "aspirin-brain-cancer",
},
{
title: "Autonomic systems.",
url: "http://raypeat.com/articles/other/autonomic-systems.shtml",
slug: "autonomic-systems",
},
{
title: "Bleeding, clotting, cancer.",
url: "http://raypeat.com/articles/aging/bleeding-clotting-cancer.shtml",
slug: "bleeding-clotting-cancer",
},
{
title: "Blocking Tissue Destruction.",
url: "http://raypeat.com/articles/articles/tissue-destruction.shtml",
slug: "tissue-destruction",
},
{
title: "Bone Density: First Do No Harm.",
url: "http://raypeat.com/articles/aging/bonedensity.shtml",
slug: "bonedensity",
},
{
title: "Breast Cancer.",
url: "http://raypeat.com/articles/aging/breastcancer.shtml",
slug: "breastcancer",
},
{
title: 'BSE ("mad cow"), scrapie, etc.: Stimulated amyloid degeneration and the toxic fats.',
url: "http://raypeat.com/articles/aging/madcow.shtml",
slug: "madcow",
},
{
title:
"Caffeine: A vitamin-like nutrient, or adaptogen. Questions about tea and coffee, cancer and other degenerative diseases, and the hormones.",
url: "http://raypeat.com/articles/articles/caffeine.shtml",
slug: "caffeine",
},
{
title: "Calcium and Disease: Hypertension, organ calcification, & shock, vs. respiratory energy",
url: "http://raypeat.com/articles/articles/calcium.shtml",
slug: "calcium",
},
{
title: "Cancer: Disorder and Energy",
url: "http://raypeat.com/articles/articles/cancer-disorder-energy.shtml",
slug: "cancer-disorder-energy",
},
{
title: "Cancer: Disorder and Energy",
url: "http://raypeat.com/articles/articles/cancer-disorder-energy.shtml",
slug: "cancer-disorder-energy",
},
{
title: "Cascara, energy, cancer and the FDA's laxative abuse",
url: "http://raypeat.com/articles/articles/cascara-energy-cancer-fda-laxative-abuse.shtml",
slug: "cascara-energy-cancer-fda-laxative-abuse",
},
{
title: "Cataracts: water, energy, light, and aging",
url: "http://raypeat.com/articles/articles/cataracts-water-energy-light-aging.shtml",
slug: "cataracts-water-energy-light-aging",
},
{
title: "Cholesterol, longevity, intelligence, and health.",
url: "http://raypeat.com/articles/articles/cholesterol-longevity.shtml",
slug: "cholesterol-longevity",
},
{
title: "Coconut Oil.",
url: "http://raypeat.com/articles/articles/coconut-oil.shtml",
slug: "coconut-oil",
},
{
title: "Diabetes, scleroderma, oils and hormones.",
url: "http://raypeat.com/articles/articles/diabetes.shtml",
slug: "diabetes",
},
{
title: "Eclampsia in the Real Organism: A Paradigm of General Distress Applicable in Infants, Adults, Etc.",
url: "http://raypeat.com/articles/aging/eclampsia.shtml",
slug: "eclampsia",
},
{
title: "Epilepsy and Progesterone.",
url: "http://raypeat.com/articles/articles/epilepsy-progesterone.shtml",
slug: "epilepsy-progesterone",
},
{
title: "Estriol, DES, DDT, etc.",
url: "http://raypeat.com/articles/aging/estriol-des-ddt.shtml",
slug: "estriol-des-ddt",
},
{
title: "Estrogen - Age Stress Hormone.",
url: "http://raypeat.com/articles/articles/estrogen-age-stress.shtml",
slug: "estrogen-age-stress",
},
{
title: "Estrogen and Osteoporosis.",
url: "http://raypeat.com/articles/articles/estrogen-osteoporosis.shtml",
slug: "estrogen-osteoporosis",
},
{
title: "Estrogen Receptors - what do they explain?",
url: "http://raypeat.com/articles/articles/pdf/Estrogen-Receptors-what-do-they-explain.pdf",
slug: "http://raypeat.com/articles/articles/pdf/",
},
{
title: "Estrogen, memory and heredity: Imprinting and the stress response",
url: "http://raypeat.com/articles/articles/imprinting.shtml",
slug: "imprinting",
},
{
title: "Estrogen, progesterone, and cancer: Conflicts of interest in regulation and product promotion",
url: "http://raypeat.com/articles/articles/estrogen-progesterone-cancer.shtml",
slug: "estrogen-progesterone-cancer",
},
{
title: "Fatigue, aging, and recuperation",
url: "http://raypeat.com/articles/articles/fatigue-aging-recuperation.shtml",
slug: "fatigue-aging-recuperation",
},
{
title: "Fats and degeneration.",
url: "http://raypeat.com/articles/articles/fats-degeneration3.shtml",
slug: "fats-degeneration3",
},
{
title: "Fats, functions & malfunctions",
url: "http://raypeat.com/articles/articles/fats-functions-malfunctions.shtml",
slug: "fats-functions-malfunctions",
},
{
title: "Food-junk and some mystery ailments: Fatigue, Alzheimer's, Colitis, Immunodeficiency.",
url: "http://raypeat.com/articles/nutrition/carrageenan.shtml",
slug: "carrageenan",
},
{
title: "Gelatin, stress, longevity",
url: "http://raypeat.com/articles/articles/gelatin.shtml",
slug: "gelatin",
},
{
title: "Genes, Carbon Dioxide and Adaptation",
url: "http://raypeat.com/articles/articles/genes-carbon-dioxide-adaptation.shtml",
slug: "genes-carbon-dioxide-adaptation",
},
{
title: "Glucose and sucrose for diabetes",
url: "http://raypeat.com/articles/articles/glucose-sucrose-diabetes.shtml",
slug: "glucose-sucrose-diabetes",
},
{
title: "Glycemia, starch, and sugar in context",
url: "http://raypeat.com/articles/articles/glycemia.shtml",
slug: "glycemia",
},
{
title: "Growth hormone: Hormone of Stress, Aging, and Death?",
url: "http://raypeat.com/articles/articles/growth-hormone.shtml",
slug: "growth-hormone",
},
{
title: "Heart and hormones",
url: "http://raypeat.com/articles/articles/heart-hormones.shtml",
slug: "heart-hormones",
},
{
title: "Hot flashes, energy, and aging",
url: "http://raypeat.com/articles/articles/hot-flashes-energy-aging.shtml",
slug: "hot-flashes-energy-aging",
},
{
title: "How do you know? Students, patients, and discovery",
url: "http://raypeat.com/articles/articles/howdoyouknow.shtml",
slug: "howdoyouknow",
},
{
title: "Immunodeficiency, dioxins, stress, and the hormones.",
url: "http://raypeat.com/articles/articles/immunodeficiency.shtml",
slug: "immunodeficiency",
},
{
title: "Intelligence and metabolism",
url: "http://raypeat.com/articles/articles/intelligence.shtml",
slug: "intelligence",
},
{
title: "Intuitive knowledge and its development",
url: "http://raypeat.com/articles/articles/intuitive-knowledge.shtml",
slug: "intuitive-knowledge",
},
{
title: "Iron's Dangers.",
url: "http://raypeat.com/articles/articles/iron-dangers.shtml",
slug: "iron-dangers",
},
{
title: "Lactate vs. CO2 in wounds, sickness, and aging; the other approach to cancer",
url: "http://raypeat.com/articles/articles/lactate.shtml",
slug: "lactate",
},
{
title: "Leakiness, aging, and cancer.",
url: "http://raypeat.com/articles/articles/leakiness.shtml",
slug: "leakiness",
},
{
title: "Meat physiology, stress, and degenerative physiology",
url: "http://raypeat.com/articles/articles/meat-physiology-stress.shtml",
slug: "meat-physiology-stress",
},
{
title: "Membranes, plasma membranes, and surfaces",
url: "http://raypeat.com/articles/articles/membranes.shtml",
slug: "membranes",
},
{
title: "Menopause and its causes.",
url: "http://raypeat.com/articles/articles/menopause.shtml",
slug: "menopause",
},
{
title: "Milk in context: allergies, ecology, and some myths",
url: "http://raypeat.com/articles/articles/milk.shtml",
slug: "milk",
},
{
title: "Mitochondria and mortality",
url: "http://raypeat.com/articles/articles/mitochondria-mortality.shtml",
slug: "mitochondria-mortality",
},
{
title: "Multiple Sclerosis and other hormone related brain syndromes",
url: "http://raypeat.com/articles/articles/multiple-sclerosis-hormone-related-brain-syndromes.shtml",
slug: "multiple-sclerosis-hormone-related-brain-syndromes",
},
{
title: "Multiple Sclerosis and other hormone-related brain syndromes",
url: "http://raypeat.com/articles/articles/multiple-sclerosis.shtml",
slug: "multiple-sclerosis",
},
{
title: "Multiple sclerosis, protein, fats, and progesterone",
url: "http://raypeat.com/articles/articles/ms.shtml",
slug: "ms",
},
{
title: "Natural Estrogens",
url: "http://raypeat.com/articles/articles/natural-estrogens.shtml",
slug: "natural-estrogens",
},
{
title: "Oils in Context.",
url: "http://raypeat.com/articles/nutrition/oils-in-context.shtml",
slug: "oils-in-context",
},
{
title: "Osteoporosis, aging, tissue renewal, and product science",
url: "http://raypeat.com/articles/articles/osteoporosis-aging.shtml",
slug: "osteoporosis-aging",
},
{
title: "Osteoporosis, harmful calcification, and nerve/muscle malfunctions.",
url: "http://raypeat.com/articles/articles/osteoporosis.shtml",
slug: "osteoporosis",
},
{
title: "Pathological Science & General Electric: Threatening the paradigm",
url: "http://raypeat.com/articles/articles/pathological-science-general-electric.shtml",
slug: "pathological-science-general-electric",
},
{
title: "Phosphate, activation, and aging",
url: "http://raypeat.com/articles/articles/phosphate-activation-aging.shtml",
slug: "phosphate-activation-aging",
},
{
title: "Physiology texts and the real world",
url: "http://raypeat.com/articles/articles/physiology-texts-and-the-real-world.shtml",
slug: "physiology-texts-and-the-real-world",
},
{
title: "Preventing and treating cancer with progesterone.",
url: "http://raypeat.com/articles/articles/cancer-progesterone.shtml",
slug: "cancer-progesterone",
},
{
title: "Progesterone Deceptions",
url: "http://raypeat.com/articles/articles/progesterone-deceptions.shtml",
slug: "progesterone-deceptions",
},
{
title: "Progesterone Pregnenolone & DHEA - Three Youth-Associated Hormones.",
url: "http://raypeat.com/articles/articles/three-hormones.shtml",
slug: "three-hormones",
},
{
title: "Progesterone Summaries",
url: "http://raypeat.com/articles/articles/progesterone-summaries.shtml",
slug: "progesterone-summaries",
},
{
title: "Progesterone, not estrogen, is the coronary protection factor of women.",
url: "http://raypeat.com/articles/aging/coronaryprogesterone.shtml",
slug: "coronaryprogesterone",
},
{
title: "Prostate Cancer",
url: "http://raypeat.com/articles/articles/prostate-cancer.shtml",
slug: "prostate-cancer",
},
{
title: "Protective CO2 and aging",
url: "http://raypeat.com/articles/articles/co2.shtml",
slug: "co2",
},
{
title: "Protective CO2 and aging",
url: "http://raypeat.com/articles/articles/protective-co2-aging.shtml",
slug: "protective-co2-aging",
},
{
title: "Regeneration and degeneration: Types of inflammation change with aging",
url: "http://raypeat.com/articles/articles/regeneration-degeneration.shtml",
slug: "regeneration-degeneration",
},
{
title: "Rosacea, inflammation, and aging: The inefficiency of stress",
url: "http://raypeat.com/articles/articles/rosacea-inflammation-aging.shtml",
slug: "rosacea-inflammation-aging",
},
{
title: "RU486, Cancer, Estrogen, and Progesterone",
url: "http://raypeat.com/articles/articles/ru486.shtml",
slug: "ru486",
},
{
title: "Salt, energy, metabolic rate, and longevity",
url: "http://raypeat.com/articles/articles/salt.shtml",
slug: "salt",
},
{
title: "Serotonin, depression, and aggression: The problem of brain energy",
url: "http://raypeat.com/articles/articles/serotonin-depression-aggression.shtml",
slug: "serotonin-depression-aggression",
},
{
title: "Serotonin: Effects in disease, aging and inflammation",
url: "http://raypeat.com/articles/articles/serotonin-disease-aging-inflammation.shtml",
slug: "serotonin-disease-aging-inflammation",
},
{
title: "Stem cells, cell culture, and culture: Issues in regeneration",
url: "http://raypeat.com/articles/articles/stemcells.shtml",
slug: "stemcells",
},
{
title: "Sugar issues",
url: "http://raypeat.com/articles/articles/sugar-issues.shtml",
slug: "sugar-issues",
},
{
title: "Suitable Fats, Unsuitable Fats: Issues in Nutrition",
url: "http://raypeat.com/articles/articles/unsuitablefats.shtml",
slug: "unsuitablefats",
},
{
title: "The Cancer Matrix",
url: "http://raypeat.com/articles/articles/the-cancer-matrix.shtml",
slug: "the-cancer-matrix",
},
{
title: "The dark side of stress (learned helplesness)",
url: "http://raypeat.com/articles/articles/dark-side-of-stress-learned-helplessness.shtml",
slug: "dark-side-of-stress-learned-helplessness",
},
{
title: "The Great Fish Oil Experiment",
url: "http://raypeat.com/articles/articles/fishoil.shtml",
slug: "fishoil",
},
{
title: "The transparency of life: Cataracts as a model of age-related disease.",
url: "http://raypeat.com/articles/aging/transparency-cataracts.shtml",
slug: "transparency-cataracts",
},
{
title: "Thyroid, insomnia, and the insanities: Commonalities in disease",
url: "http://raypeat.com/articles/articles/thyroid-insanities.shtml",
slug: "thyroid-insanities",
},
{
title: "Thyroid: Therapies, Confusion, and Fraud.",
url: "http://raypeat.com/articles/articles/thyroid.shtml",
slug: "thyroid",
},
{
title: "Tissue-bound estrogen in aging",
url: "http://raypeat.com/articles/articles/tissue-bound-estrogen.shtml",
slug: "tissue-bound-estrogen",
},
{
title: "Tryptophan, serotonin, and aging.",
url: "http://raypeat.com/articles/aging/tryptophan-serotonin-aging.shtml",
slug: "tryptophan-serotonin-aging",
},
{
title: "Unsaturated Vegetable Oils: Toxic.",
url: "http://raypeat.com/articles/articles/unsaturated-oils.shtml",
slug: "unsaturated-oils",
},
{
title: "Vegetables, etc. - Who Defines Food?",
url: "http://raypeat.com/articles/articles/vegetables.shtml",
slug: "vegetables",
},
{
title: "Vitamin E: Estrogen antagonist, energy promoter, and anti-inflammatory",
url: "http://raypeat.com/articles/articles/vitamin-e.shtml",
slug: "vitamin-e",
},
{
title: "Water: swelling, tension, pain, fatigue, aging",
url: "http://raypeat.com/articles/articles/water.shtml",
slug: "water",
},
{
title: "When energy fails: Edema, heart failure, hypertension, sarcopenia, etc.",
url: "http://raypeat.com/articles/articles/edema-heart-failure-hypertension-sarcopenia.shtml",
slug: "edema-heart-failure-hypertension-sarcopenia",
},
{
title: "William Blake as biological visionary. Can art instruct science?",
url: "http://raypeat.com/articles/articles/william-blake.shtml",
slug: "william-blake",
},
];

export default articles;

+ 177
- 0
raypeat-articles/process-and-cleanup.ts Vedi File

@@ -0,0 +1,177 @@
import fs from "node:fs/promises";
import path from "node:path";
import articles from "./articles";
import jsdom from "jsdom";

const DUMPS_LOCATION = "article-dumps";
const PROCESSED_LOCATION = "processed-articles";

export async function scrapeArticlesMainContent() {
const promises = articles.map((article) => {
return new Promise<string>(async (resolve, reject) => {
let text;
try {
text = await (await fetch(article.url)).text();
} catch (e) {
console.log("e:", article.url);
reject(`error occurred with this one: ${e}`);
return;
}
resolve(text);
});
});

const results = await Promise.allSettled(promises);

for (let i = 0; i < results.length; i++) {
const result = results[i];
if (result.status === "rejected") {
continue;
}
try {
const dom = new jsdom.JSDOM(result.value);
fs.writeFile(
path.resolve(".", DUMPS_LOCATION, articles[i].slug + ".html"),
dom.window.document.body.getElementsByClassName("entries").item(0)?.innerHTML ?? "",
);
} catch (e) {
console.log("d:", articles[i].url);
}
}
}

function deleteChildCommentsRecursive(node: Node) {
for (const child of node.childNodes) {
// comment node type === 8 === Node.COMMENT_NODE but not available here
if (child.nodeType === 8) {
child.remove();
} else {
deleteChildCommentsRecursive(child);
}
}
}

function setAsTitleIfContainsArticle(doc: Document, node: Node) {
const el = node as HTMLSpanElement;
if (el.innerHTML?.includes("A R T I C L E")) {
el.innerHTML = el.innerHTML.replace("A R T I C L E", "");
el.replaceWith(Object.assign(doc.createElement("h1"), { innerHTML: el.innerHTML }));
let existingTitle = doc.head.querySelector("title");
if (!existingTitle) {
existingTitle = doc.createElement("title");
}
doc.head.appendChild(Object.assign(doc.createElement("title"), { innerHTML: el.innerHTML.trim() }));
return true;
}
return false;
}

type ReplcementEntry = {
tag?: string | null;
attrs?: Partial<Record<string, any>>;
extra?: (doc: Document, node: Node) => boolean;
};

const selectorReplacementMap: Record<string, ReplcementEntry | null> = {
"title": null,
"ul": {
tag: null,
},
"i": {
tag: "em",
},
"font": {
tag: null,
},
"p": {
tag: "p",
},
"div": {
tag: null,
},
"img": null,
"br": null,
"wbr": null,
"b": {
tag: "strong",
extra: setAsTitleIfContainsArticle,
},
"center": null,
"hr": {
tag: "hr",
},
"table": null,
"span.title": {
tag: "header",
attrs: {
className: "title",
},
extra: setAsTitleIfContainsArticle,
},
"span.posted": {
tag: "article",
attrs: {
className: "posted",
},
},
} as const;

function forEachTextNode(doc: Document, root: Node, cb: (doc: Document, node: Text) => void) {
for (const child of root.childNodes) {
// text node type === 3 === Node.TEXT_NODE but not available here
if (child.nodeType === 3) {
cb(doc, child as Text);
} else {
forEachTextNode(doc, child, cb);
}
}
}

async function cleanupFile(fileName: string) {
const filePath = path.resolve(".", DUMPS_LOCATION, fileName);
const { window } = new jsdom.JSDOM((await fs.readFile(filePath)).toString());
const document = window.document;
for (const selector in selectorReplacementMap) {
const replacement = selectorReplacementMap[selector];
for (const node of document.querySelectorAll(selector).values()) {
if (replacement) {
if (replacement.extra?.(document, node)) {
continue;
}
const newNode = replacement.tag
? document.createElement(replacement.tag)
: document.createDocumentFragment();
newNode.replaceChildren(...node.childNodes);
Object.assign(newNode, { ...replacement.attrs ?? {} });
node.replaceWith(newNode);
} else {
node.remove();
}
}
}
forEachTextNode(document, document.documentElement, (doc: Document, node: Text) => {
if (node.textContent?.match(/\s*=+\s*/)) {
node.replaceWith(doc.createElement("hr"));
return true;
} else if (node.textContent?.includes("REFERENCES")) {
node.replaceWith(Object.assign(doc.createElement("h3"), { innerHTML: node.textContent.trim() }));
return true;
}
return false;
});
deleteChildCommentsRecursive(document.documentElement);
fs.writeFile(
path.resolve(".", PROCESSED_LOCATION, fileName),
document.documentElement.outerHTML.replaceAll(/�/g, '"'),
);
}

async function cleanup() {
const promises: Promise<unknown>[] = [];
for (const fileName of await fs.readdir(path.resolve(".", "article-dumps"))) {
promises.push(cleanupFile(fileName));
}
await Promise.allSettled(promises);
}

cleanup();

+ 21
- 13
transpile.ts Vedi File

@@ -2,15 +2,19 @@ import { CompilerOptions, transpile, TranspileOptions } from "jsr:@deno/emit";
import denoJson from "./deno.json" with { type: "json" };

const contentTypes = {
'js': "application/javascript; charset=utf-8",
"js": "application/javascript; charset=utf-8",

// https://github.com/denoland/deno_ast/blob/ea1ccec37e1aa8e5e1e70f983a7ed1472d0e132a/src/media_type.rs#L117
'ts': "text/typescript; charset=utf-8",
'jsx': "text/jsx; charset=utf-8",
'tsx': "text/tsx; charset=utf-8",
"ts": "text/typescript; charset=utf-8",
"jsx": "text/jsx; charset=utf-8",
"tsx": "text/tsx; charset=utf-8",
} as const;

const transpileOptions = (extension: keyof typeof contentTypes, tsCode: string, targetUrlStr: string): TranspileOptions => ({
const transpileOptions = (
extension: keyof typeof contentTypes,
tsCode: string,
targetUrlStr: string,
): TranspileOptions => ({
importMap: {
imports: denoJson.imports,
},
@@ -21,16 +25,20 @@ const transpileOptions = (extension: keyof typeof contentTypes, tsCode: string,
kind: "module",
specifier,
content: correctContent ? tsCode : "",
headers: { "content-type": contentTypes[correctContent ? extension : 'js'] },
headers: { "content-type": contentTypes[correctContent ? extension : "js"] },
});
},
});

export default async function transpileResponse(response: Response, requestUrl: string, filepath?: string): Promise<Response> {
const url = new URL(`ts-serve:///${ requestUrl }`);
export default async function transpileResponse(
response: Response,
requestUrl: string,
filepath?: string,
): Promise<Response> {
const url = new URL(`ts-serve:///${requestUrl}`);
const pathname = filepath !== undefined ? filepath : url.pathname;
const extension = pathname.split('.').at(-1) ?? '';
if (response.status === 200 && (extension === 'ts' || extension === 'tsx' || extension === 'jsx')) {
const extension = pathname.split(".").at(-1) ?? "";
if (response.status === 200 && (extension === "ts" || extension === "tsx" || extension === "jsx")) {
const tsCode = await response.text();
const targetUrlStr = url.toString();
try {
@@ -44,9 +52,9 @@ export default async function transpileResponse(response: Response, requestUrl:
headers: response.headers,
});
} catch (e) {
console.error('[transpileResponse]: Error transpiling!\n', e);
if (typeof e === 'string') {
return new Response('Internal Server Error', {
console.error("[transpileResponse]: Error transpiling!\n", e);
if (typeof e === "string") {
return new Response("Internal Server Error", {
status: 500,
headers: response.headers,
});


Caricamento…
Annulla
Salva