import ReactMarkdown from "react-markdown"; import remarkGfm from "remark-gfm"; /** * Hilfetexte als Markdown – ohne rohes HTML. * * `react-markdown` laesst rohes HTML von sich aus fallen; `rehype-raw` wuerde es * wieder einschalten und ist deshalb bewusst nicht installiert. Ein Redakteur * darf Hilfetexte schreiben, aber kein Skript in die Abarbeitungsansicht * bringen, die jeder Techniker oeffnet. * * Links oeffnen in einem neuen Tab mit `rel="noreferrer"`, damit der Lauf beim * Klick nicht verlassen wird und die Zielseite nichts ueber die Herkunft erfaehrt. */ export function Markdown({ text, className }: { text: string; className?: string }) { return (
` laedt beim Klick die aktuelle Seite in einem * neuen Tab — verwirrender als gar kein Verweis. Der Text bleibt * stehen, nur das Anklickbare faellt weg. */ a: ({ href, children }) => href ? ( {children} ) : ( {children} ), /* * Bilder werden **nicht** gerendert, sondern als Alternativtext * gezeigt. Ein Bild in einem Hilfetext laege auf einem fremden Host, * und `img-src` erlaubt nur `self`, `data:` und `blob:` — es wuerde * also ohnehin nie erscheinen, nur ein kaputtes Symbol hinterlassen. * Anhaenge sind fuer Phase 2 vorgesehen; bis dahin ist der Text * ehrlicher als ein leerer Rahmen. */ img: ({ alt }) => [Bild{alt ? `: ${alt}` : ""}], code: ({ children }) => ( {children} ), pre: ({ children }) => (
              {children}
            
), ul: ({ children }) => , ol: ({ children }) =>
    {children}
, p: ({ children }) =>

{children}

, }} > {text}
); }