Der Mac hat viele Anwendungen, die minimalistisch sind: Programme, die die minimale Anzahl möglicher Optionen bieten und dabei die Funktionalität behalten. Es gibt viele minimalistische Texteditoren. Falttext fällt als anders aus.
In diesem Tutorial werde ich Ihnen das vorstellen Falttext Editor und zeigen Ihnen, wie Sie es erweitern können mit:
Nicht nur ist Falttext minimalistisch im Design, aber auch im Dateiformat: Es werden nur reine Textdateien verwendet. Alle Formatierungen erfolgen mit Markdown mit einem Twist: Sie können jeden Bereich als besonders formatiert und funktional kennzeichnen, indem Sie am Ende einer Kopfzeile eine Erweiterung hinzufügen.
FoldingText-Fenster und -MenüsWenn Sie starten Falttext, Sie werden mit einem einfachen Fenster angezeigt. Diese saubere, minimale Grafikschnittstelle hilft, sich auf das Schreiben zu konzentrieren und nicht auf das Programm.
Einige MarkdownWie du schreibst Markdown Durch Formatierungsbefehle wird der Text hervorgehoben und zusätzliche Elemente wie Adressen in einem Link werden ausgeblendet. Im obigen Beispiel sehen Sie die Markdown für einen Anker, während sich der Cursor noch darauf befindet.
Anker-Tag ausblendenWenn Sie zu einer neuen Zeile wechseln oder einen anderen Charakter hinzufügen, Falttext verbirgt die Adressdetails, sodass nur der Titel angezeigt wird.
Text faltenBearbeiten Sie nun die Markdown Text als Kopfzeile und klicken Sie auf die # Symbol neben Einführung. Dadurch wird der Text in diesem Abschnitt schnell zur nächsten Kopfzeile gefaltet. Das gefaltete Textsymbol wird in der oberen linken Ecke angezeigt. Außerdem fügt es eine … (eine Ellipse) bis zum Ende des gefalteten Abschnitts. Klicken Sie entweder auf das dreieckige Symbol in der oberen linken Ecke oder auf das Symbol … Am Ende des gefalteten Abschnitts wird der Text ausgebreitet.
Todo- und Timer-ErweiterungenDie echte Innovation in Falttext ist die Erweiterung. Falttext kommt mit zwei vorinstallierten Erweiterungen: machen, und Timer.
Das machen Die Erweiterung bietet Ihnen eine mehrstufige Aufgabenliste mit Kontrollkästchen.
Das Timer Erweiterung gibt Ihnen Timer, um Sie zu warnen. Die Timer arbeiten als Countdown-Timer. Wenn Sie eine Liste mit Zeiten in den Zeilen erstellen, wird die oberste Uhrzeit heruntergezählt, Sie werden benachrichtigt und das nächste Mal gestartet. Sie können beliebig viele Erweiterungsbereiche in einem Dokument erstellen.
Wie Sie im Beispiel der ToDo-Liste sehen können, können Sie eine beliebige Zeile markieren Falttext. Die Tag-Syntax lautet @ und etwas Text. Falttext verwendet einige Tags für spezielle Formatierungen (z. B. das Cross-Out im @erledigt
Etikett).
Falttext hat eine Befehlspalette, ähnlich der mit populär gemacht Erhabener Text. Wenn Sie drücken Befehls-Zitat, Eine Liste aller verfügbaren Befehle wird angezeigt. Es sind nicht so viele Befehle eingebaut, also zeige ich Ihnen, wie Sie einige hinzufügen.
Zu beginnen a Plug-In, Du beginnst mit dem Plugin Manager.
Öffnen Sie den Plug-In-ManagerVon dem Falttext Hauptmenü auswählen Plugin Manager.
Plugin ManagerDas Lefhand-Feld zeigt eine Liste aller installierten Plug-Ins. Durch Klicken auf eine wird die Beschreibung auf der rechten Seite angezeigt. Alle diese Erweiterungen können von heruntergeladen werden FalttextKlicken Sie auf die Website von Plug-Ins finden Taste.
Um ein Plug-In zu erstellen, wechseln Sie in das Plug-In-Verzeichnis, indem Sie die Option auswählen Öffnen Sie den Plug-In-Ordner Knopf rechts unten.
Plug-Ins-OrdnerDas öffnet sich Finder in dem Verzeichnis, das alle Plug-Ins enthält. Erstellen Sie ein Verzeichnis mit dem Namen MySnippets.ftplugin. Erstellen Sie in diesem Verzeichnis die Dateien main.js und package.json. Dies sind die Mindestdateien, die für ein Plug-In erforderlich sind.
Falttext Erweiterungen werden mit codiert JavaScript. Das package.json Datei gibt Falttext Informationen, die im angezeigt werden sollen Plugin Manager.
In dem package.json Datei, fügen Sie Folgendes ein:
"name": "MySnippets", "version": "1.0.0", "description": "Fügt meine eigenen Ausschnitte, Befehle und Tastenbindungen zu Folding Text hinzu.", "homepage": "", "engine" : "foldingtext": "> 2.0.0", "taskpaper": "> 3.0.0"
Das sagt Falttext über die Plug-Ins Name, Ausführung, Beschreibung, Startseite des Autors und welche Versionen von Falttext oder Aufgabenblatt benutzen. Nur Falttext 2.0.0 oder Aufgabenblatt Support-Plug-Ins für 3.0.0 und höher.
Hinzufügen von Ausschnitten zu Falttext, fügen Sie die folgenden Zeilen hinzu main.js Datei:
// // MySnippets und verschiedene Erweiterungen von FoldingText. // define (Funktion (required, exporte, module) // // Hole einen Verweis auf Extensions. // var Extensions = required ('ft / core / extensions'). Extensions // // Verwenden Sie addSnippet, um my zu erstellen Verschiedene Ausschnitte. // Extensions.addSnippet ('; tut': '## Fälligkeit: \ nFaltbare \ n \ n ## Teaser \ n \ n \ n \ n \ n ## Name der Übung \ n \ n \ n \ n \ n # ## Fazit \ n \ n \ n \ n ## Aufgaben.Todo \ n- Artikel schreiben \ n- Prüfen Sie den Artikel \ n- Senden Sie den Artikel \ n ','; code ': function () return '## Code \ n \ n ## Endecode \ n \ n';););
Alle Erweiterungsdateien beginnen mit der definieren()
Funktion. Diese Funktion übernimmt eine Funktion, die beim Aufruf drei Objekte akzeptiert: benötigen, Exporte, und Modul. Das benötigen Mit object können Sie jede Bibliothek wie die Erweiterungen Bibliothek, um Dinge hinzuzufügen Falttext.
Um Schnipsel zu erstellen, verwenden Sie die addSnippet Die Funktion von Erweiterungen. Es erwartet ein json-Key-Value-Array. Der Schlüssel ist der Erweiterungstext und der Wert wird in Text ausgewertet, um den Schlüssel zu ersetzen. Die Erweiterungsseite kann Text oder eine Funktion sein.
Ich habe hier zwei Ausschnitte definiert: tut
und ;Code
. Wenn Sie einen Text eingeben, auf den eine Registerkarte folgt, wird der Text entsprechend erweitert. Das tut
Das Snippet gibt mir ein Minimum an Tutorial-Layout. Das ;Code
Das Snippet gibt mir einen faltbaren Codeblock, damit ich den Code verstauen kann, bevor ich eine Wortzählung meines Tutorials bekomme.
Um Tastenkombinationen hinzuzufügen, verwenden Sie einen Haken, um die Editor-Engine zu starten. Fügen Sie unmittelbar nach dem Code für Ausschnitte diesen Code ein:
// // Eine Funktion erstellen, wenn der Editor geladen wird, um spezielle Debug-Informationen // und Tastaturzuordnungen zu laden. // Extensions.addInit (Funktion (Editor) // // Benutzerdefinierte KeyMappings hinzufügen // editor.addKeyMap ('Alt-C': 'formatCodeblock');, Extensions.PriorityLast);
Das Extensions.addInit ()
Funktion fügt die Funktion zum Initialisierungsprozess für den Editor hinzu. Das Editor
Objekt wird an die Funktion übergeben. Verwendung der editor.addKeyMap ()
Funktion, eine Tastenkombination kann leicht zum Editor hinzugefügt werden.
Diese Funktion erwartet eine Liste mit json-Schlüsselwerten, wobei die Taste die Tastenkombination ist und der Wert der Name der auszuführenden Funktion ist. Da ich Codeblöcke häufig verwende, habe ich dafür eine Verknüpfung erstellt.
Wenn du gut bist JavaScript Programmieren, Erstellen eigener Befehle ist einfach. Jeder Befehl wird in der Befehlspalette verfügbar sein. Ich arbeite mit vielen ToDo-Listen und bewege Objekte häufig hin und her. Sie können das mit dem folgenden Code automatisieren:
// // Als nächstes fügen Sie Befehle für FoldingText hinzu. // Extensions.addCommand (name: 'moveTDNext', Beschreibung: 'Verschieben des aktuellen Todo-Knotens in die nächste Todo-Liste'), performCommand: function (editor) var cnode = editor.selectedRange (). StartNode, pnode = cnode .previousBranch (), snode; // // Gehe zum oberen Header der aktuellen ToDo-Liste. // while (pnode.type ()! = 'Überschrift') pnode = pnode.previousBranch (); // / / Gehen Sie zum nächsten Zweig, der eine ToDo-Liste ist, und stellen Sie // sicher, dass Sie sich an der Spitze befinden. // snode = pnode.nextBranch (); while (snode.type ()! = "Heading") snode = snode. nextBranch (); // // An diesen Punkt anhängen. // snode.appendChild (cnode);; Extensions.addCommand (name: 'moveTDPrevious', Beschreibung: 'Verschieben des aktuellen Todo-Knotens in die vorherige Todo-Liste'), performCommand: function (editor) var cnode = editor.selectedRange (). StartNode, pnode = cnode.previousBranch (), snode; // // Zum Anfang der aktuellen ToDo-Liste. // while (pnode.type ()! = 'Überschrift') pnode = pnode.previousBranch (); // // Gehe zu die vorherige Liste und vergewissern Sie sich, dass es sich um die oberste Position handelt. // snode = pnode.previousBranch (); while (snode.type ()! = "Überschrift") snode = snode.previousBranch (); // // Anhängen an dieser Zweig. // snode.appendChild (cnode););
Das Extensions.addCommand () Funktion wird verwendet, um einen neuen Befehl zu erstellen. In diesem Codebeispiel lauten die Befehle: moveTDNext, und moveTDPzurück. moveTDNext verschiebt den aktuellen Eintrag, in dem sich der Cursor befindet, zur nächsten Aufgabenliste. moveTDPzurück tut genau das Gegenteil.
Das Extensions.addCommand () nimmt eine Json-Liste mit drei Elementen: Name, Beschreibung, und performCommand. Das Name item ist eine Zeichenfolge, die dem Befehl einen Namen ohne Leerzeichen gibt. Das Beschreibung ist eine Zeichenfolge, die beschreibt, was der Befehl bewirkt. Diese Beschreibung wird in der Befehlsleiste angezeigt. Das performCommand ist eine Funktion, die ein akzeptiert Editor Instanz und nichts zurückgeben.
Hilfe-MenüIn diesen Funktionen verwende ich die Editor-API, um zum Header der aktuellen ToDo-Liste zu wechseln, zur nächsten oder vorherigen Liste zu wechseln und das Element an diese Liste anzuhängen. Die API ist zu groß, um sie für dieses Tutorial zu beschreiben. Auf alle API-Dokumente können Sie über zugreifen Hilfe> Software Development Kit Speisekarte.
Software-EntwicklungskitDas Dokumentation Dieser Link öffnet die HTML-Dokumentation im Standard-Webbrowser. Das Führen Sie den Editor aus Link wird gestartet Falttext Instanz mit aktiviertem Code-Debugger. Das Spezifikationen ausführen link führt alle Spezifikationen von FoldingText und jeder seiner Erweiterungen aus.
Im Falttext Terminologie, a Skript benutzt AppleScript ein spritzen JavaScript Funktion in Falttext eine Aktion ausführen. Falttext fügt zwei Schlüsselwörter hinzu AppleScript Wörterbuch: bewerten und debuggen. Beide bewerten und debuggen nimm einen JavaScript und Parameter für die Eingabe, aber bewerten führt es aus und gibt das Ergebnis zurück debuggen Startet das Skript im Debuger-Fenster.
Ein gutes Beispiel wäre eine Liste mit Tags aus dem obersten Fenster. Öffne das AppleScript Editor mit diesem Code:
Sagen Sie der Anwendung "FoldingText", dass LstDocs auf Dokumente gesetzt werden, wenn LstDocs ≠ dann sagen, dass Element 1 von LstDocs return (Skript auswerten) function (Editor) return editor.tree (). tags (true) .sort (); ") endet Ende sagen, wenn Ende sagen
Dies sagt den ersten Falttext Dokument zur Bewertung a JavaScript Funktion, die eine Editorinstanz akzeptiert. Die Funktion ruft die Tags ab Falttext Editor Objekt und gibt sie sortiert zurück.
Skript zum Abrufen von TagsWenn dieses Skript ausgeführt wird, sind die Tags im aktuellen Dokument das Ergebnis. Hier hat das aktuelle Dokument die Tags erledigt und Nächster. Ich verwende dieses Skript zusammen mit anderen in einem Alfred-Workflow. Sie können den Workflow vom Download für diesen Artikel herunterladen.
Eine Erweiterung für Falttext fügt dem Editor neue Funktionen hinzu. Ein mathematischer Block, der einige Berechnungen erlaubt, wäre wirklich schön.
Erstellen Sie eine neue Erweiterung namens imath.ftplugin. Fügen Sie in der package.json-Datei Folgendes hinzu:
"name": "iMath-Modus", "version": "1.0.0", "description": "Fügt den Modus" imath "hinzu," homepage ":" https://customct.com "," engine ": "foldingtext": "> 2.0.0"
Dadurch erhalten Sie alle Informationen, die zur Beschreibung der Erweiterung erforderlich sind.
Für die eigentliche Mathematik ist das Math.js-Framework großartig. Laden Sie diese Bibliothek herunter und legen Sie sie in das Verzeichnis mit dem Ordner main.js Datei.
In dem main.js Datei, fügen Sie diesen Code hinzu:
// // Datei: main.js // // Beschreibung: Diese Datei definiert den mathematischen Modus für FoldingText. Es verarbeitet die mathematischen Zeilen unter Verwendung der mathjs-Bibliothek. // define (Funktion (erfordern, Exporte, Modul) 'use strict'; // // Lädt die benötigten Bibliotheken. // var Extensions = required ('ft / core / extensions'). Erweiterungen; var math = required ("./ mathjs.js"); // // Fügen Sie dem System die Erweiterung "math" hinzu. // Extensions.addMode (name: 'imath'););
Diese Erweiterung beginnt genau wie die Erweiterung für Schnipsel. Nach einem Hinweis auf die Erweiterungen Bibliothek, benötigen wird verwendet, um das zu laden math.js Bibliothek aus dem Erweiterungsordner. Lokale Bibliotheken laden, benötigen verwendet einen relativen Pfad zum vollständigen Namen der Bibliotheksdatei.
Nächster, Extensions.addMode ()
Funktion wird verwendet, um einen neuen Modus mit dem Namen hinzuzufügen imath
. Diese Funktion akzeptiert eine Json-Liste mit der Taste Name setze auf den Namen der neuen Erweiterung: imath. Dies ermöglicht die Definition eines Textblocks, der Mathematik für die enthält imath Erweiterung zu bewerten.
Einige Hilfsfunktionen werden benötigt. Fügen Sie diesen Code nach dem hinzu Extensions.addMode ()
Funktion:
// // Funktion: inMathArea // // Beschreibung: Diese Funktion bestimmt, ob sich der aktuelle Knoten in einem // mathematischen Bereich befindet und nicht leer ist. // function inMathArea (node) if ((node.modeContext () === 'imath') && (node.text (). trim ()! = "")) return (true); else return (falsch); ; // // Funktion: Berechnen // // Beschreibung: Diese Funktion ruft den aktuellen Knoten und den // String-Inhalt des aktuellen Knotens ab. Es gibt das Ergebnis der Berechnung zurück. // Funktion Calculate (str) var result = 0, scope = ; try // // Verwenden Sie die Mathjs-Bibliothek, um die Gleichung auszuwerten. // var lines = str.substr (0, str.length - 2) .split ("\ n"); lines.forEach (Funktion (Zeile) var-Knoten, Code; code = mathjs.compile (line); result = code.eval (scope);); catch (e) // // Mathjs hatte ein Problem mit den Ausdrücken. Rückgabe eines // result = "?" + "-" + e.toString (); return (Ergebnis); ;
Die Funktion inMathArea ()
Nimmt einen Knoten und ermittelt durch Aufrufen, ob sich dieser Knoten in einem mathematischen Textbereich befindet node.modeContext ()
. Da die Verarbeitung von Leerzeilen zu nichts führt, wird auch nach dieser Bedingung gesucht.
Das Berechnung() Funktion ruft die Math.js Bibliothek, um die angegebene Zeichenfolge auszuwerten. Wenn die Bibliothek eine Ausnahme auslöst, wird ein Fragezeichen zurückgegeben. Die auszuwertende Zeichenfolge ist die gesamte Zeile mit Ausnahme der letzten beiden Zeichen.
Als letztes müssen Sie sich in die Routine einhaken, die aufgerufen wird, wenn der Benutzer den Text ändert. Fügen Sie diese Codezeilen nach dem hinzu Berechnung() Funktion:?
// // Funktion: ProcessPreviousNodes // // Beschreibung: Diese Funktion sucht nach vorherigen Imath-Zeilen, die // nicht ausgeblendet sind. Ausgeblendete Zeilen werden ignoriert, aber // sichtbare Zeilen werden für die korrekte Berechnung verarbeitet. // Funktion ProcessPreviousNodes (node) var pnode = node, text = "", result = ""; while (pnode && (! pnode.mode ()) && (pnode.modeContext () === 'imath')) // // Keine Überschrift, siehe, ob ein Auswertungsbefehl vorhanden ist. // text = pnode.text (); if (text.search ("=>") < 0) // // No evaluation, add it to the rest. // result = text + "\n" + result; pnode = pnode.previousBranch(); return (result); // // Function: ProcessMathNode // // Description: This function is used to process a node in the math // context. It expects the node to be passed to it. // function ProcessMathNode(node) // // Calculate if needed. Get the text of the line. // var result = node.text(); // // See if it ends in "=>". Falls ja, verarbeiten Sie die Zeile. // if (resultSubstr (-2) ==" => ") // // Prüfen Sie, ob einige der vorherigen Zeilen // Variablendeklarationen hatten. // result = ProcessPreviousNodes (node) + "\ n" + result; // // Prüfen Sie, ob andere Bereiche über Variablendefinitionen verfügen. // var pnode = node.parent.previousBranch (); while (pnode) if (pnode.modeContext () == = 'imath') if (! editor.nodeIsHiddenInFold (pnode) &&! editor.isCollapsed (pnode)) Ergebnis = ProcessPreviousNodes (pnode.lastChild) + "\ n" + Ergebnis; pnode = pnode.previousBranch () ; // // Berechne das Ergebnis Wenn Calculate ein Array zurückgibt, wurden auch // Variablen in die Variablen eingefügt. Rufe einfach das Endergebnis auf. // var cresult = Calculate (Ergebnis); if (isArray (cresult)) // // Wir bekommen mehr als nur eine Antwort zurück, // also nur das letzte Ergebnis. // cresult = cresult [cresult.length - 1]; // // Das Ergebnis mit der ursprünglichen Zeile zusammenfügen. // result = node.text () + "" + cresult; // // Zeile aktualisieren. // node.setText (result); // // Einen TreeChan hinzufügen Event-Handler, um herauszufinden, wann // eine Berechnung ausgeführt werden soll. // Extensions.addTreeChanged (Funktion (Editor, e) var deltas = e.deltas; for (var i = 0; i < deltas.length; i++) var updatedNode = deltas[i].updatedNode, insertedNodes = deltas[i].insertedNodes, length = 0; // // Check all the inserted nodes. // length = insertedNodes.length; for (var j = 0; j < length; j++) var each = insertedNodes[j]; if (inMathArea(each)) // // It's a math node. Process it. // ProcessMathNode(each); // // Check the updated Nodes. // if (updatedNode) // // It is an updated Node. Make sure it is in the math area. // if (inMathArea(updatedNode)) // // It's a math node. Process it. // ProcessMathNode(updatedNode); );
Das Extensions.addTreeChanged () Funktion wird verwendet, um sich an die Textänderungsroutinen anzuschließen. Falttext behält eine Baumstruktur für jede Textzeile im Dokument. Wenn die Baumstruktur geändert wird, wird jede registrierte Funktion mit der Editorinstanz und einer Struktur von Deltas aufgerufen.
Die Funktion durchläuft jedes Update-Delta und -Zusatz, um festzustellen, ob es sich im Update befindet imath Bereich mit der inMathArea () Funktion. Wenn es ist und die letzten beiden Zeichen in der Zeile sind =>, dann ist die ProcessMathNode () Funktion wird aufgerufen. Das ProcessMathNode () Die Funktion ruft einige Hilfsfunktionen auf, um das Dokument nach oben zu klettern, um relevante Informationen zu erhalten imath Abschnitte.
Wenn ein Abschnitt ausgeblendet ist, wird er ignoriert. So können verschiedene Szenarien genutzt und bewertet werden. Einmal alles relevant imath Abschnitte werden abgearbeitet, das Ganze ist gegeben Berechnung() um die Ergebnisse auszuwerten. Die Ergebnisse werden mit dem richtigen Abstand am Ende der Zeile hinzugefügt und in den Baum zurückgesendet. Die mathematische Erweiterung berechnet nur dann, wenn der Benutzer a eintippt =>.
Testen der iMath-ErweiterungNachdem Sie die Datei gespeichert haben, müssen Sie sie erneut laden Falttext. Probieren Sie die Zeilen oben aus und sehen Sie die Ergebnisse. Denken Sie daran: Um einen Ausdruck erneut auszuwerten, müssen Sie die vorherigen Ergebnisse löschen. Das neue Ergebnis wird berechnet und an das Dokument zurückgegeben.
Falttext macht Gebrauch von Less.js um die Benutzeroberfläche zu gestalten. Falttext ist wirklich ein Webbrowser ohne die gesamte Benutzeroberfläche des Webbrowsers.
Es gibt zwei Möglichkeiten, das zu ändern Falttext sieht aus: hinzufügen Less.js Aussagen an die benutzerlos Datei, die ein Verzeichnis aus dem Plug-Ins-Verzeichnis ist, oder fügen Sie es einem hinzu style.less Datei in einem beliebigen Plugin-Ordner.
Öffnen Sie den Finder beispielsweise im Ordner Plug-Ins und gehen Sie ein Verzeichnis hoch. Dort öffnen Sie die benutzerlos Datei. Du wirst sehen:
// Dies ist dein Benutzer. Verwenden Sie es, um den Standardstil zu überschreiben. Wenn diese // Datei zum ersten Mal erstellt wird, werden alle Zeilen auskommentiert (beginnen mit //), und // hat keine Auswirkung auf den Stil des Editors. // Um die Schriftart zu ändern, kommentieren Sie die folgende Zeile aus: // @ fontFamily: Menlo; // Um die Schriftgröße zu ändern, kommentieren Sie die folgende Zeile aus: // @ fontSize: 10pt; // Um die Basisfarbe "Tinte" (für Text verwendet) zu ändern, kommentieren Sie die folgende // Zeile aus: // @ inkColor: black; // Um die Basisfarbe "Papier" (hinter dem Text) zu ändern, kommentieren Sie die folgende // Zeile aus: // @ paperColor: white; // Farbe, die etwas anzeigt. Zum Beispiel, wenn sich die Maus über einem Link befindet. // @ angegebeneFarbe: blau;
Dies sind einige der Standardeinstellungen, die Sie ändern können. Ich bevorzuge einen größeren Text. Entfernen Sie daher den Kommentaranzeiger für die @Schriftgröße
Variable und setzen Sie es auf 12pt
. Wenn Sie speichern und neu laden Falttext, Der gesamte Text basiert auf 12pt
Größe.
Wenn Sie etwas ändern möchten, das nicht in der Datei aufgeführt ist, öffnen Sie die Debugger um das DOM zu durchsuchen. Finden Sie, was Sie möchten, erhalten Sie die ID und ändern Sie sie im Less.js Datei.
Bei der Erstellung all dieser Erweiterungen müssen Sie Ihren Code debuggen oder das DOM durchsuchen, um herauszufinden, was Sie ändern müssen. Falttext macht das wirklich einfach.
Der DebuggerWenn Sie das auswählen Führen Sie den Editor aus Link auf der Software-Entwicklungskit, du bekommst die Falttext Editor mit Steuerelementen zum Debuggen. Auswahl der Inspektor In der Werkzeugleiste wird der Standard angezeigt Safari Entwicklerwerkzeuge. Damit haben Sie alle Werkzeuge, mit denen Sie alles debuggen können Falttext. Du kannst nachschauen Entwicklerhandbuch für Apple Safari Informationen zur Verwendung der Entwickler-Tools.
In diesem Tutorial habe ich Ihnen gezeigt, wie Sie Snippets, Tastenkombinationen, Befehle, Skripts, Erweiterungen und Designs für erstellen Falttext. Da alles auf Webbrowsertechnologie basiert, ist die Lernkurve einfach. Mit all dem Reichtum an JavaScript Bibliotheken verfügbar, es gibt fast keine Grenzen für das, was Sie damit machen können Falttext.