-sofortiges Handwerk mit JSX-
NPM • GitHub • Probleme
PRXMPT ist wie "Rückenwind für schnelle Engineering" . Es bietet eine Reihe von Versorgungsunternehmen für die Formatierung von Zeichenfolgen mit JSX.
PRXMPT ist für die Gestaltung der Eingabe in LLMs konzipiert und umfasst leistungsstarke Elemente wie <priorität> zum Verwalten von Token. PRXMPT bietet jedoch auch sowohl Markdown- als auch HTML -Elemente, sodass es auch für Endbenutzer perfekt zum Formatieren von LLM -Ausgängen ist.
Lesbarkeit - JSX gibt uns mehr Kontrolle über Whitespace und ermöglicht mehr lesbare Code.
? ️ Kontrolle - Mit eingebauten Requisiten wie hide
können wir den von uns angezeigten Text problemlos ohne Ternäre steuern.
? Wiederverwendbarkeit - PRXMPT -Komponenten nehmen Requisiten genauso wie normale JSX -Komponenten, wodurch sie leicht wiederverwendet werden können.
const text = (( <gefüttert> <h1> Dies ist die erste Zeile. </h1> <Text hide = {hideline2}> Hier ist eine zweite Zeile. Brechen Sie den Text -Tag. Wir können hier sogar eine weitere Zeile starten, und ein Platz wird hinzugefügt. </Text> </ausgekleidet>);
hideLine2=false
) # This is the first line. Here's a second line. This is a long line, so we'llbreak the text tag We can even start another line here, and a space will be added.
hideLine2=true
) # This is the first line. This is a long line, so we'll break the text tag We can even start another line here, and a space will be added.
Vergleichen Sie dies mit einem Äquivalent mit Template -Literalen:
const text = `# Dies ist die erste Zeile. $ {Hideline2? "Nhere ist eine zweite Zeile." : ""} nnthis ist eine längere Linie, also sind wir inzwischen von der Seite aus. Wir können hier sogar eine weitere Zeile starten, aber ich würde es nicht empfehlen. ";
npm install @autossey/prxmpt
Garn fügen Sie @autossey/prxmpt hinzu
PNPM add @autossey/prxmpt
Bun add @autossey/prxmpt
PRXMPT bietet eine Basis tsconfig.json
, die Sie erweitern können:
{"erweitert": "@autossey/prxmpt/tsconfig.json"}
Hinweis: Bun scheint PRXMPT nicht korrekt zu erkennen, wenn die Methode "Erweiterung" verwendet wird.
Alternativ können Sie einfach die folgenden Felder zu Ihrem tsconfig.json
hinzufügen:
{"CompilerOptions": {"JSX": "React-jsx", "JsximportSource": "@autossey/prxmpt", "Modul": "Knodenext" } }
Sie sollten jetzt in der Lage sein, PRXMPT -Elemente zu verwenden, ohne zu importieren:
Export const mycomponent = () => ( <text> Hallo, Welt! </text>);
Wenn Sie PRXMPT mit React verwenden, fügen Sie die folgende Zeile oben in jeder Datei hinzu, die stattdessen PRXMPT verwendet:
/** @jsximportSource @autossey/prxmpt*/export const mycomponent = () => ( <text> Hallo, Welt! </text>);
Im Beispielverzeichnis sind mehrere Beispiele angegeben:
Beispiele für Elementnutzung:
Küchenspüle (zeigt viele Elemente)
Priorität (einige Beispiele für das <priority>
Element)
Setup -Beispiele (TypeScript):
Brötchen
Brötchen (klassischer Modus)
Weiter.js
SWC
SWC (klassischer Modus)
TS-Knoten
TS-Knoten (klassischer Modus)
tsc
TSC (klassischer Modus)
Setup -Beispiele (JavaScript):
Knoten - -loader @autossey/prxmpt
SWC
SWC (klassischer Modus)
Beispiele für die Verwendung bestimmter Elemente zeigen die Tests mehr USA.
Textelemente
<kv>
(Schlüsselwertpaar)
<state>
<ask>
<exclaim>
<comment type="slash">
<comment type="hash">
<comment type="dash">
<comment type="html">
<sq>
(einzelnes Zitat)
<dq>
(Doppelzitat)
<bq>
(Back -Zitat)
<tsq>
(dreifaches einzelnes Zitat)
<tdq>
(dreifaches Doppelzitat)
<tbq>
(Triple Back -Zitat)
<parens>
(Klammern)
<square>
(Quadratklammer)
<curly>
(Quadratklammer)
<angle>
(Winkelhalterung)
<empty>
<space>
<tab>
<ellipsis>
<na>
(n/a)
<text>
Charaktere
Klammern
Zitate
Kommentare
Sätze
Verschiedenes
HTML -Elemente
<span>
<p>
<blockquote>
<q>
<pre>
<i>
(kursiv)
<b>
(fett)
<s>
(striftens)
<code>
(Code)
<ul>
(ungeordnete Liste)
<ol>
(bestellte Liste)
<cl>
(Kontrollkästchen -Liste)
<dl>
(Definitionsliste)
<h1>
<h2>
<h3>
<h4>
<h5>
<h6>
<a>
(Anker)
<img>
(Bild)
<br>
(Zeilenpause)
<hr>
(horizontale Regel)
<tag>
Bricht
Verknüpfung
Überschriften
Listen
Styling
Verschiedenes
Serialisierungselemente
<json>
<yaml>
<datetime>
<date>
<time>
<year>
<month>
<day>
<hour>
<minute>
<second>
<millisecond>
<duration>
<num>
Primitive
Daten
Objekte
Dienstprogrammelemente
<cap>
<priority>
<trim>
<frame>
<and>
<andor>
<or>
<nor>
<lined>
<spaced>
<csl>
(comma getrennte Liste)
<union>
<sectioned>
<upper>
<lower>
<capital>
<title>
Gehäuse
Schließt sich an
Sets
Affixes
Begrenzer
Die folgenden Funktionen werden ebenfalls von PRXMPT exportiert:
Rendering
createElement
render
Kinder
hasChildren
isChildren
Splitter
split
paragraphs
lines
spaces
words
commas
chars
<text>
Text ist das Basis -PRXMPT -Element. Es gibt seine Kinder als Schnur zurück:
const string = <text> Hallo, Welt! </text>;
Hello, World!
Der Text kann auch mit der Prop hide
versteckt werden:
const string = <text> Hallo <Text ausblenden>, world </hide>! </text>;
Hello!
Da <text>
die Basis der meisten anderen Elemente ist, können die von ihnen bereitgestellten Requisiten mit den meisten anderen Elementen verwendet werden.
PRXMPT behandelt Kinder als eine Reihe von Zeichenfolgen, was bedeutet, dass <text>
auch mehrere Array -Funktionen für die Zuordnung, Filtern und Beiträge für Kinder bereitstellen können.
verstecken
/*** verhindern, dass das Element gerendert wird. * @Default false */hide ?: boolean;
Filter
/*** Eine Funktion zum Filtern von Kindern. * @Default (Knoten) => true */filter ?: (node: prxmpt.Children, Index: Nummer, arr: prxmpt.Children []) => boolean;
Karte
/*** Eine Funktion, die jedes Kind einem neuen Element ordnet. * @Default (Knoten) => prxmpt.render (Knoten) */map ?: (node: prxmpt.children, index: nummer, arr: prxmpt.children []) => prxmpt.jsx.element;
umkehren
/*** Umkehren Sie die Reihenfolge der Kinder um. */umgekehrt?: boolean;
verbinden
/*** Ein Element zum Einfügen in jedes Kind. * @Default "" */join ?: prxmpt.Children;
wiederholen
/** * @Default 1 */repep ?: number;
trimmen
/*** `true`: Trage Whitespace von Anfang und Ende des Elements. * * `" Start "`: Trimmhitze vom Beginn des Elements trimmen. * * `" Ende "`: Trimmhitze vom Ende des Elements. * * @default false */trim ?: boolean | Trimside;
Gehäuse
/*** Konvertieren Sie das Element in ein bestimmtes Gehäuse. * @Default undefiniert */Case ?: Case;
Präfix
/*** Ein Element zum Vorbereiten des Elements. * @Default "" */Präfix ?: prxmpt.Children;
Suffix
/*** Ein Element zum Anhängen des Elements. * @Default "" */Suffix ?: prxmpt.Children;
Einzug
/*** Anwenden Sie die Eindrücke auf jede Zeile des Elements an. * * Wenn `true`, wird die Eindrücke unter Verwendung von 2 Leerzeichen angewendet. * * Wenn eine Zahl bereitgestellt wird, wird diese Anzahl der Räume verwendet. * * Wenn `" t "` bereitgestellt wird, wird ein einzelnes Registerkartenzeichen verwendet. * * @default false */Eingeklagter ?: boolean | Nummer | "T";
Block
/*** eine neue Zeile am Ende des Elements anhängen. * @Default false */block ?: boolean;
<empty>
Das Element <empty>
gibt eine leere Zeichenfolge zurück:
// "" const String = <leer />;
<empty>
ist oft als Kind von Elementen nützlich, die sich ihren Kindern mit einem Trennzeichen anschließen.
const String = (( <Geed> <text> Zeile 1 </text> <leer/> <text> Zeile 3 </text> </ausgekleidet>);
Line 1 Line 2
<space>
Das Element <space>
gibt einen Raum zurück:
// "" const String = <space />;
<tab>
wörtlich
/*** Wenn wahr, verwenden Sie einen wörtlichen Registerkartenzeichen. Ansonsten verwenden Sie Leerzeichen. * @default false */literal ?: boolean;
Breite
/** * Anzahl der Zeichen pro Tab * @Default 1 Wenn `literal` wahr ist, sonst 2 */width ?: number;
// "" const string = <täg width = {4} />
<ellipsis>
const string = <ellipsis />;
...
<na>
const string = <na />;
n/a
?
Klammern <parens>
const String = <parens> Hallo, Welt! </parens>;
(Hello, World!)
<square>
const string = <quadrat> Hallo, Welt! </square>;
[Hello, World!]
<curly>
const string = <curly> Hallo, Welt! </Curly>;
{Hello, World!}
<angle>
const String = <Gonle> Hallo, Welt! </Angle>;
<Hello, World!>
<sq>
const string = <sq> Hallo, Welt! </sq>;
'Hello, World!'
<dq>
const string = <dq> Hallo, Welt! </dq>;
"Hello, World!"
<bq>
const string = <bq> Hallo, Welt! </bq>;
`Hello, World!`
<tsq>
const string = <tsq> Hallo, Welt! </tsq>;
''' Hello, World! '''
<tdq>
const string = <tdq> Hallo, Welt! </tdq>;
""" Hello, World! """
<tbq>
const tbq = <tbq> Hallo, Welt! </tbq>;
`` ` Hallo Welt! `` `
<comment type="slash">
const Slash = <Kommentar Typ = "Slash"> Hallo, Welt! </comment>;
// Hello, World!
<comment type="hash">
const Hash = <Kommentar Typ = "Hash"> Hallo, Welt! </comment>;
# Hello, World!
<comment type="dash">
const Dash = <Kommentar type = "Dash"> Hallo, Welt! </comment>;
-- Hello, World!
<comment type="html">
const html = <comment type = "html"> Hallo, Welt! </comment>;
<!-- Hello, World! -->
<state>
const state = <Stace> Hallo, Welt! </State>;
Hello, World.
<ask>
const Ask = <ABLE> Hallo, Welt! </frage>;
Hello, World?
<exclaim>
const ruraim = <ausruf> Hallo, Welt! </raim>;
Hello, World!
<kv>
Schlüssel
/*** Ein Schlüssel zum Rendern. */key: prxmpt.Children;
Keycase
/*** Fall für den Schlüssel angewendet werden. * @default undefined */keyCase ?: "ober" | "niedriger" | "Kapital" | "Titel";
wickeln
/*** Überschreiben Sie das Standardverhalten für das Verpacken des Wertes. * @Default undefined */Wrap ?: Boolean;
Nospace
/*** Wenn wahr, fügen Sie keinen Speicherplatz zwischen Schlüssel und Wert hinzu. * Gilt nur, wenn sie nicht eingewickelt werden. * @default false */nospace ?: boolean;
const string = <kv key = "hello"> world </kv>;
Hello: World
Wenn die Kinder mehrere Zeilen enthalten, wird der Wert standardmäßig mit einer neuen Zeile ausgeführt:
const welts = ( <tdq join = {"n"}> <text> world1 </text> <text> world2 </text> <text> world3 </text> </tdq>); const String = <kv key = "hello"> {welts} </kv>;
Hello: """ World1 World2 World3 """
HTML -Elemente sind oben auf dem <tag>
-Element aufgebaut. Jedes HTML -Element hat eine booleale html
-Requisite, die standardmäßig auf false gesetzt ist. Wenn html
wahr ist, wird das Element als HTML gerendert. Andernfalls wird das Element als Markdown -Äquivalent gerendert.
Zusätzlich können benutzerdefinierte Attribute mithilfe der attributes
Prop eingestellt werden.
<tag>
Name
/*** Name des Tags. */Name: String;
Noindent
/** * @default false */noindent ?: boolean;
wickeln
/*** standardmäßig true, wenn der Inhalt eine neue Linie enthält. */Wrap?: Boolean;
const tag = <tag name = "mytag"> Hallo, Welt! </Tag>;
<mytag>Hello, World!</mytag>
Wenn keine Kinder zur Verfügung gestellt werden, wird das Tag als sich selbst klingelnder Tag erfüllt:
const tag = <tag name = "mytag" />;
<mytag />
<br />
// "n" const br = <br />;
const br = <br html />;
<br />
<hr />
Breite
/** * @Default 3 */width ?: number;
verkohlen
/** * @Default "-" */char ?: "-" | "_" | "=" | "*";
const hr = <hr />;
---
const hr = <hr />;
<hr />
<a>
href
/*** Die URL des Links. */href: String;
Titel
/*** Ein Titel für den Link. */Titel ?: String;
const string = <a href = "https://example.com" title = "a title"> Hallo, Welt! </a>;
[Hello, World!](https://example.com "A Title")
const string = <a href = "https://example.com" title = "a title" html> Hallo, Welt! </a>;
<a href="https://example.com" title="A Title">Hello, World!</a>
<img>
src
/*** Die URL des Bildes. */href: String;
Titel
/*** Ein Titel für das Bild. */Titel ?: String;
const string = <img src = "https://example.com" title = "a title"> Hallo, Welt! </img>;

const string = <img src = "https://example.com" title = "a title" html> Hallo, Welt! </img>;
<img src="https://example.com" alt="Hello, World!" title="A Title" />
<h1>
const String = <h1> Hallo, Welt! </h1>;
# Hello, World!
const string = <h1 html> Hallo, Welt! </h1>;
<h1>Hello, World!</h1>
<h2>
const String = <h2> Hallo, Welt! </H2>;
## Hello, World!
const String = <H2 html> Hallo, Welt! </H2>;
<h2>Hello, World!</h2>
<h3>
const String = <h3> Hallo, Welt! </h3>;
### Hello, World!
const string = <h3 html> Hallo, Welt! </h3>;
<h3>Hello, World!</h3>
<h4>
const String = <h4> Hallo, Welt! </h4>;
#### Hello, World!
const string = <h4 html> Hallo, Welt! </h4>;
<h4>Hello, World!</h4>
<h5>
const string = <h5> Hallo, Welt! </h5>;
##### Hello, World!
const String = <H5 html> Hallo, Welt! </h5>;
<h5>Hello, World!</h5>
<h6>
const string = <h6> Hallo, Welt! </h6>;
###### Hello, World!
const String = <H6 html> Hallo, Welt! </h6>;
<h6>Hello, World!</h6>
<ol>
Nur markiflist
/*** Enthält nur Markierungen, wenn die Liste mehr als ein Element enthält. * @default false */nurmarkiflist ?: boolean;
const String = (( <ol> <text> Hallo </text> <text> Welt </text> </ol>);
1. Hello 2. World
<ul>
Nur markiflist
/*** Enthält nur Markierungen, wenn die Liste mehr als ein Element enthält. * @default false */nurmarkiflist ?: boolean;
const String = (( <ul> <text> Hallo </text> <text> Welt </text> </ul>);
- Hello - World
<cl>
Artikel
Artikel: { /** * @default false */ überprüft ?: Boolean; /*** Inhalt zum Rendern nach dem Kontrollkästchen. */ Inhalt: prxmpt.Children;} [];
const String = (( <Clitems = {[{Inhalt: "Hallo"}, {Inhalt: "Welt", überprüft: true},]} />);
- [ ] Hello - [x] World
<dl>
Artikel
/*** Die Gegenstände zu rendern. */items: record <string, prxmpt.children>;
Term Case
/*** Gehäuse, um auf jeden Schlüssel anzuwenden. * @Default undefined */termCase ?: "ober" | "niedriger" | "Kapital" | "Titel";
Raum
/*** Anzahl der mit leer ausgekleideten Läden zwischen jedem Element. * @Default 0 */space ?: number;
wickeln
/*** Überschreiben Sie das Standardverhalten für das Verpackungswerten. * @Default undefined */Wrap ?: Boolean;
const String = (( <dlitems = {{hello: "world", foo: "bar"}} />);
Hello: World Foo: Bar
<i>
verkohlen
/***@default "_"*/char ?: "*" | "_";
const string = <i> Hallo, Welt! </i>;
_Hello, World!_
const string = <i html> Hallo, Welt! </i>;
<i>Hello, World!</i>
<b>
verkohlen
/***@Default "*"*/char ?: "*" | "_";
const String = <b> Hallo, Welt! </b>;
**Hello, World!**
const string = <b html> Hallo, Welt! </b>;
<b>Hello, World!</b>
<s>
const string = <s> Hallo, Welt! </S>;
~~Hello, World!~~
const String = <s html> Hallo, Welt! </S>;
<s>Hello, World!</s>
<code>
const string = <code> Hallo, Welt! </code>;
`Hello, World!`
const String = <Code html> Hallo, Welt! </code>;
<code>Hello, World!</code>
<span>
Wenn er als Text gerendert wird, rendert <span>
einfach seine Kinder wie <text>
:
const string = <span> Hallo, Welt! </span>;
Hello, World!
const String = <span html> Hallo, Welt! </span>;
<span>Hello, World!</span>
<p>
Wenn das Absatz -Tag als Text als Text gerendert wird, fügt sie am Ende des Elements eine neue Zeile hinzu:
const string = <p> Hallo, Welt! </p>;
Hello, World!
const string = <p html> Hallo, Welt! </p>;
<p>Hello, World!</p>
<blockquote>
const String = (( <blockquote join = {"n"}> <text> Hallo </text> <leer/> <text> Welt! </text> </blockquote>);
> Hello > > World!
const string = <blockquote html> Hallo, Welt! </blockquote>;
<blockquote>Hello, World!</blockquote>
<q>
Typ
/** * @default "double" */Typ ?: "Single" | "Doppel" | "Backtick";
Das Zitatelement gibt ein dreifaches Zitat zurück, wenn die Kinder eine Newline enthalten, andernfalls gibt es ein einzelnes Zitat zurück.
const string = <Q> Hallo, Welt! </q>;
"Hello, World!"
const string = <q> Hallo <br /> world < /q>;
""" Hello, World! """
const string = <q html> Hallo, Welt! </q>;
<q>Hello, World!</q>
<pre>
const string = <pre> Hallo, Welt! </pre>;
`` ` Hallo Welt! `` `
const string = <pre html> Hallo, Welt! </pre>;
<pre>Hello, World!</pre>
<num>
hinzufügen
/*** Fügen Sie der Zahl einen Wert hinzu. */add ?: nummer;
min
/*** Mindestwert. Angewendet nach "add". */min?: Nummer;
Max
/*** Maximaler Wert. Angewendet nach "add". */max ?: nummer;
behoben
/*** Anzahl der Dezimalstellen. */behoben ?: Nummer;
const string = <num fix = {2}> 1 </num>;
1.00
const string = <num min = {1}> 0 </num>;
1
Wert
/** * @default date.now () */value ?: Datum | String | Nummer;
DateFormat
/** * @default "kurz" */dateFormat ?: "long" | "Medium" | "kurz" | "voll";
Timeformat
/** * @default "kurz" */timeFormat ?: "long" | "Medium" | "kurz" | "voll";
const string = <datenetime />;
September 23, 2023 at 5:17 PM
Wert
/** * @default date.now () */value ?: Datum | String | Nummer;
Format
/** * @Default "kurz" */Format ?: "Long" | "Medium" | "kurz" | "voll";
const String = <Date />;
September 23, 2023
Wert
/** * @default date.now () */value ?: Datum | String | Nummer;
Format
/** * @Default "kurz" */Format ?: "Long" | "Medium" | "kurz" | "voll";
const String = <Time />;
5:17 PM
Wert
/** * @default date.now () */value ?: Datum | String | Nummer;
const String = <Jahr />
2023
Wert
/** * @default date.now () */value ?: Datum | String | Nummer;
Format
/** * @Default "Nummer" */Format ?: "Nummer" | "lang" | "kurz" | "eng";
const string = <monat />
8
const string = <monat format = "long" />
September
const String = <Monatsformat = "Short" />
Sep
const string = <monat format = "schmal" />
S
Wert
/** * @default date.now () */value ?: Datum | String | Nummer;
Format
/** * @Default "Nummer" */Format ?: "Nummer" | "lang" | "kurz" | "eng";
const string = <tag />
6
const String = <Day format = "long" />
Saturday
const String = <Day format = "Short" />
Sat
const String = <Day format = "schmal" />
S
Wert
/** * @default date.now () */value ?: Datum | String | Nummer;
Zyklus
/** * @default "12" */cycle ?: "12" | "24";
const string = <hour />
5
const string = <hour cycle = "24">
17
Wert
/** * @default date.now () */value ?: Datum | String | Nummer;
const String = <Minute />
42
Wert
/** * @default date.now () */value ?: Datum | String | Nummer;
const string = <secon />
42
Wert
/** * @default date.now () */value ?: Datum | String | Nummer;
const String = <Millisekunden />
999
Wert
/*** Das Ende der Dauer. * @default date.now () */value ?: Datum | String | Nummer;
seit
/*** Der Beginn der Dauer. */seit: Datum | String | Nummer;
const string = <duration seit = {"" September 2021 "} />
2 years
Daten
/*** Die zu stringifizierten Daten. */data: nestedoptionaljsonValue;
hübsch
/** * @default false */Pretty ?: Boolean;
const string = <json data = {{hello: "world"}} Pretty />;
{ "Hello": "World" }
Daten
/*** Die zu stringifizierten Daten. */data: nestedoptionaljsonValue;
Nostartmarker
/** * @default false */nostartmarker?: boolean;
SequenzIndent
/** * @default false */sequenceIndent ?: boolean;
const string = <yaml data = {{hello: "world"}} />;
--- hello: world
<upper>
const String = <Kopien> Hallo, Welt! </ober>;
HELLO, WORLD!
<lower>
const string = <lower> Hallo, Welt! </länger>;
hello, world!
<capital>
const String = <Capital> Hallo, Welt! </Capital>;
Hello, world!
<title>
const String = <title> Hallo, Welt! </title>;
Hello, World!
// "Hallo, Welt!" Const String = <trim> Hallo, Welt! </trim>;
Hello, World!
mit
/*** Ein Wert, der sowohl für `Präfix" als auch für `suffix` angewendet wird. */mit: prxmpt.Children;
const String = <Frame With = "-"> Hallo, Welt! </Frame>;
-- Hello, World! --
<lined>
const String = (( <gefüttert> <text> Hallo </text> <text> Welt! </text> </ausgekleidet>);
Hello World!
<spaced>
const String = (( <space> <text> Hallo </text> <text> Welt! </text> </respaced>);
Hello World!
<csl>
Nospace
/** * @default false */nospace?: boolean;
const String = (( <CSL> <text> Hallo </text> <text> Welt </text> </csl>);
hello, world
const String = (( <CSL Nospace> <text> Hallo </text> <text> Welt </text> </csl>);
hello,world
<union>
Nospace
/** * @default false */nospace?: boolean;
const String = (( <Vergion> <text> Hallo </text> <text> Welt </text> </Union>);
hello | world
const String = (( <Union Nospace> <text> Hallo </text> <text> Welt </text> </Union>);
hello|world
Teiler
/** * @Default "---" */Divider ?: String;
rahmen
/*** Ob Trenner vor und nach dem Körper hinzufügen. * @Default False */Frame ?: Boolean;
const String = (( <Stiched> <text> Hallo </text> <text> Welt! </text> </§iert>);
Hello --- World!
Setzt die Separatoren automatisch anhand der Anzahl der bereitgestellten Kinder an.
<and>
const String = (( <und> <text> a </text> </und>);
a
const String = (( <und> <text> a </text> <text> b </text> </und>);
a and b
const String = (( <und> <text> a </text> <text> b </text> <text> c </text> </und>);
a, b, and c
<andor>
const String = (( <ANDOR> <text> a </text> <text> b </text> <text> c </text> </andor>);
a, b, and/or c
<or>
const String = (( <oder> <text> a </text> <text> b </text> <text> c </text> </oder>);
a, b, or c
<nor>
const String = (( <nor> <text> a </text> <text> b </text> <text> c </text> </Nor>);
a, b, nor c
Mit dem <cap>
-Element können Sie die Länge einer Zeichenfolge einschränken, indem Sie eine splitter
und eine max
Anzahl von "Einheiten" zur Verfügung stellen.
Max
/*** Die maximalen "Einheiten" einbeziehen. * @Default Infinity */max ?: nummer;
Splitter
/*** Eine Funktion, die eine Zeichenfolge in "Einheiten" aufteilt. * @default "chars" */splitter ?: "attacks" | "Linien" | "Räume" | "Worte" | "Kommas" | "Chars" | (String: String) => String [];
Ellipse
/*** Eine Zeichenfolge, die am Ende angehängt ist, wenn das Maximum erreicht ist. * Diese Zeichenfolge ist in der maximalen Anzahl enthalten. * Wenn "wahr" "..." verwendet wird. * @Default undefined */ellipsis ?: String | WAHR;
const string = <cap max = {5}> Hallo, Welt! </cap>;
Hello
Das <priority>
-Element ist wie eine breite CSS-Medienabfrage für Zeichenfolgen.
Anstatt eine Liste von Kindern bereitzustellen, erwartet <priority>
eine Liste von Elementen, von denen jede Priorität haben kann. Höhere Prioritäten werden zuerst (wie z-index
in CSS) erfüllt, und jedes Element hat eine Standardpriorität von 0. Es werden mehrere Strategien zur Feinabstimmung bereitgestellt, wie Elemente Priorität werden.
Prioritätselemente können auch verschachtelt werden, was eine extrem feinkörnige Kontrolle darüber ermöglicht, welche Inhalte gerendert werden. Mehrere Beispiele sind im Priority -Beispielverzeichnis enthalten.
Max
/*** Die maximalen "Einheiten" einbeziehen. * @Default Infinity */max ?: nummer;
Schalter
/*** Eine Funktion, die die Anzahl der "Einheiten" in einer Zeichenfolge zurückgibt. * @Default (String: String) => String.Length */counter ?: (String: String) => Nummer;
Artikel
/*** Die Elemente, die in der Reihenfolge der Priorität rendern. */items: (prxmpt.children | { /*** Die Priorität dieses Artikels. Elemente mit höherer Priorität sind zuerst enthalten. * @Default 0 */ P ?: Nummer; /*** Der Inhalt zum Rendern. */ Inhalt: (Kapazität: Nummer) => prxmpt.Children) | Prxmpt.children;}) [];
Strategie
Die Strategie, die bei der Priorisierung von Elementen verwendet werden soll.
Wenn mehrere Strategien bereitgestellt werden, werden nachfolgende Strategien versucht, um die Beziehungen zu unterbrechen.
"priority"
:
Priorisieren Sie die Elemente nach der vorgesehenen Priorität.
Sobald das Maximum erreicht ist, überprüfen Sie weiter, ob die verbleibenden Artikel passen.
"order-asc"
:
Priorisieren Sie die Elemente nach der angegebenen Bestellung.
Sobald das Maximum erreicht ist, überprüfen Sie weiter, ob die verbleibenden Artikel passen.
"order-desc"
:
Priorisieren Sie die Elemente umgekehrt umgekehrt der angegebenen Bestellung.
Sobald das Maximum erreicht ist, überprüfen Sie weiter, ob die verbleibenden Artikel passen.
"size-asc"
:
Priorisieren Sie die Elemente in Größenreihenfolge, kleinste bis größte.
Verwenden Sie, wenn Sie so viele Elemente wie möglich einfügen möchten.
"size-desc"
:
Priorisierte Artikel in Größenreihenfolge, größte bis kleinste.
Verwenden Sie, wenn Sie so wenige Elemente wie möglich einfügen möchten.
/** * @Default ["Priorität", "Order-asc"] */Strategie ?: PriorityStrategy | PriorityStrategy [];
Noskip
/*** Wenn `true`, überspringen Sie die Elemente nicht, nachdem das Maximum erreicht ist. * @default false */noskip ?: boolean;
const String = (( <priorityMax = {15} join = {"n"} items = {[{P: 2 Inhalt: "test 1"}, {// p: 0 ist der Standardinhalt: "Dies ist eine super lange Zeichenfolge, die gewonnen hat." t fit. "}, {P: 1, Inhalt:" Test 3 "}]} />);
Test 1 Test 3
createElement
Import {createLement} aus "@autossey/prxmpt"; const String = createLement ("text", {}, "Hallo, Welt!");
Hello, World!
render
importieren {render} aus "@autossey/prxmpt"; const String = render ( <text> Hallo, Welt! </text>);
Hello, World!
hasChildren
Gibt true
zurück, wenn das angegebene Requisitenobjekt über ein children
verfügt.
Import {HaSchildren} aus "@autossey/prxmpt"; if (HaSchildren ({Kinder: "Hallo, Welt!"}) { // ...}
isChildren
Gibt true
zurück, wenn der angegebene Wert ein gültiges PRXMPT -Element -Kind ist.
Importieren {Ischildren} aus "@autossey/prxmpt"; if (ischildren ("Hallo, Welt!") { // ...}
split
Teilen Sie children
auf separator
. Wenn separator
undefined
ist, tritt keine Spaltung auf.
importieren {split} aus "@autossey/prxmpt"; const children = ( <gefüttert> <text> Hallo </text> <text> Welt! </text> </ausgekleidet>); // ["Hallo", "Welt!"] const strings = split (Kinder, "n");
paragraphs
Spalt children
auf "nn"
.
lines
Teilen Sie children
auf "n"
.
spaces
Teilen Sie children
auf Whitespace.
words
Teilen Sie children
an Wortgrenzen.
commas
Spalt children
auf ","
.
characters
Teilen Sie children
auf ""
.
@swc/core: Super-schnelle Alternative für Babel
AS-TYPED-Array: Machen Sie einen Wert zu einem Array
Typen-JSON: Geben Sie die Überprüfung für JSON-Objekte ein
YAML: JavaScript -Parser und Stringifier für YAML
@Autossey/Eslint-Config: Eine Basis für Projekte, die Eslint verwenden.
@Autossey/Tsconfig: Eine Sammlung von Basis -Tsconfigs für verschiedene Arten von Projekten.
@Scherz/Global
@swc/scherde: SWC -Integration für Scherz
@Typen/Knoten: TypeScript -Definitionen für node.js
Eslint: Ein AST-basierter Musterprüfer für JavaScript.
Scherz: Köstliche JavaScript -Tests.
TypeScript: TypeScript ist eine Sprache für die JavaScript -Entwicklung der Anwendungsskala
MIT - Die MIT -Lizenz