@@ -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> | |||
); | |||
}, | |||
}); |
@@ -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> | |||
</>; | |||
} | |||
}); |
@@ -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> | |||
</>; | |||
} | |||
}); |
@@ -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>; | |||
} | |||
}); |
@@ -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> | |||
</> | |||
}, | |||
}; |
@@ -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> | |||
); | |||
}, | |||
}); |
@@ -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> | |||
</>; | |||
}, | |||
}); |
@@ -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); |
@@ -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'); |
@@ -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); |
@@ -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> | |||
); | |||
}, |
@@ -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: {}, | |||
}; | |||
} | |||
} |
@@ -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(); | |||
} | |||
} |
@@ -1 +0,0 @@ | |||
export default () => <div class="test">Test</div>; |
@@ -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> | |||
); | |||
}, | |||
}); |
@@ -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 }; | |||
} |
@@ -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] : []; | |||
} | |||
} |
@@ -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" | |||
] | |||
} | |||
} |
@@ -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,3 +1,4 @@ | |||
import "jsr:@deno/emit"; | |||
import "jsr:@std/http"; | |||
import "vue"; | |||
import 'jsr:@b-fuze/deno-dom'; |
@@ -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 }); | |||
} | |||
@@ -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&family=Roboto+Slab:wght@600&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> |
@@ -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> |
@@ -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> |
@@ -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. |
@@ -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; | |||
} |
@@ -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> |
@@ -1,4 +1,4 @@ | |||
import { createSSRApp } from "vue"; | |||
import App from "@/App.tsx"; | |||
createSSRApp(App).mount('#app-root'); | |||
createSSRApp(App).mount("#app-root"); |
@@ -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> |
@@ -0,0 +1 @@ | |||
@@ -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; |
@@ -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(); |
@@ -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, | |||
}); | |||