Alfred 3 Explained-Part 2

In de laatste zelfstudie heb ik je veel van de wijzigingen laten zien Alfred 3, behalve de wijzigingen in workflows. Deze tutorial is om je op de hoogte te houden Alfred 3 workflows. Ik zal je ook een voorbeeld laten zien van wat je ermee kunt doen.

In deze tutorial ga ik ervan uit dat u bekend bent met Alfred 2 en het proces voor het maken van een workflow. Zo niet, bekijk dan mijn andere tutorials op Alfred 2

  • Alfred Workflows voor beginners
  • Alfred Worflow voor tussenproducten
  • Alfred Workflows voor gevorderde gebruikers, en 
  • Alfred Debugging

Workflow wijzigingen

De eerste nieuwe toevoeging aan het werkstroomgebied van Alfred 3 is dat elementen overal kunnen worden geplaatst. U kunt nu een element aan de rechterkant verbinden met een element aan de linkerkant.

Ze hebben uitstekend werk verricht in het detecteren en vermijden van oneindige lusscenario's, hoewel het nog steeds mogelijk is met een Externe trigger de voorkant van een reeks elementen oproepen die naar het aanroepende element leiden.

Nieuwe achterwaartse verbindingen

Zoals altijd, verbindt u elementen door te klikken en te slepen aan de rechterkant van het midden van een element en naar de linkerkant van een ander element te slepen. Als een bubbel niet verschijnt, is dit geen juridisch verbindingsgebied. 

Merk op dat in de bovenstaande gif-animatie de JSON element is het enige element dat geen groene bubbel aan de linkerkant krijgt tijdens het verslepen van de tweede verbinding. U kunt geen verbinding maken met dat element omdat het een oneindige lus zou creëren.

Nieuwe workflow-elementen

Niet alleen kunnen de elementen overal worden geplaatst, ze kunnen ook een kleurcode hebben en een tekstbeschrijving bevatten om te beschrijven wat ze doen. Er zijn vier pictogrammen in de rechterbovenhoek, terwijl de werkstroomnaam, korte beschrijving en het pictogram zich aan de linkerkant bevinden. 

De pictogrammen van links naar rechts zijn Exporteren, voorkeuren, afgelegen, en Debugger toetsen. Er zijn elf nieuwe elementen in Alfred 3: Woordenboekfilter, Lijst filter, Args en variabelen, Filter, Transformeren, Vertraging, Vervangen, JSON Config, Knooppunt, debug, en Tekstbestand schrijven.

Knop exporteren

De Exporteren Met de knop kunt u de werkstroom overal in het bestandssysteem opslaan. Het opent een bestandsdialoog waarin u de map en bestandsnaam kunt selecteren om de workflow op te slaan.

Wanneer u een werkstroom exporteert, wordt deze opgeslagen met de .alfred3workflow uitbreiding. Dit is om ze te onderscheiden van Alfred 2 workflows.

Voorkeur Knop

Voorkeuren pictogram

De Voorkeuren knop brengt de Voorkeuren dialoog hierboven weergegeven. In de Over deze workflow tekstgebied kunt u een tekstbeschrijving van de werkstroom toevoegen, informatie over het gebruik van de werkstroom en alle andere informatie die de gebruiker van de werkstroom ten goede zou komen. Als de werkstroom andere toepassingen gebruikt, zou ik daar links naar de website van de toepassing plaatsen. 

In de Variabelen workflowomgeving sectie kunt u omgevingsvariabelen maken voor gebruik in de scripts van de werkstroom. Als de variabelenaam al in gebruik is in de systeemomgeving, overschrijft dit de waarde voor alle scripts die in deze werkstroom worden uitgevoerd.

Externe knop

Remote Icon

De afgelegen knop geeft je een lay-out van Alfred Remote om schermen te vullen. Je noemt het scherm en voegt knoppen toe om alles te doen wat er in zit Alfred 3

Als de workflow heeft afgelegen commando's kunnen ze in dit scherm worden geplaatst. Wanneer je opent Alfred Remote op een iOS apparaat, de schermlay-out hier kan worden gebruikt.

Foutopsporingsknop

Foutopsporingspictogram

De debug knop brengt de debugger aan de onderkant van het werkstroomgebied. Dit geeft een plaats om te laten zien wat elk element naar het volgende element zendt. 

Als je een ... hebt debug element verbonden in uw workflow, zal het hier de gevraagde informatie weergeven. Dit maakt het debuggen van workflow-scripts eenvoudig.

Woordenboekfilter

Woordenboek Werkstroomelement

De Woordenboekfilter kunt u een werkstroom maken waarmee woorden in een opgegeven woordenboek worden opgezocht. Daarom, als u een woordenboek hebt dat van de ene taal naar de andere vertaalt, zal dit een eenvoudige vertaalfunctie creëren.

Lijst filter

List Workflow Element

De Lijst filter kunt u eenvoudig een vooraf gedefinieerde lijst met opties maken waaruit de gebruiker kan kiezen. EEN Lijst filter is een gespecialiseerde vorm van de Scriptfilter. Maar in plaats van de mogelijke antwoorden in een script te bouwen, kunt u ze in dit dialoogvenster maken. De keyword is de tekst getypt in de Alfred Browser om deze workflow te starten. De Placeholder titel is de bovenste tekst die wordt weergegeven in de lijst met mogelijke acties die moeten worden uitgevoerd tijdens het typen in de Alfred Browser. De Ondertitel voor tijdelijke aanduiding is de tekst net onder de Placeholder titel. Ik zet hier vaak de werkstroomnaam.

Rechts van de keyword is een vervolgkeuzelijst met verschillende opties voor het verkrijgen van informatie van de gebruiker. Deze vervolgkeuzelijst kan ook Argument vereist, Argument optioneel, of Geen argument. Met Argument vereist, u kunt de werkstroom niet activeren totdat u een argument typt na de keyword. De Argument optioneel optie zal doorgaan en de opties in de lijst weergeven voordat de gebruiker begint te typen. De Geen argument zal actie het eerste item uitvoeren zonder een argument toe te voegen.

Wanneer u een nieuw item toevoegt door op te drukken + symbool rechtsonder in de optielijst, kunt u de Titel, subtitel, en Arg. De Titel wordt de bovenste reeks die in de Alfred Browser voor dat item wordt weergegeven, terwijl de subtitel zal eronder staan. De Arg is de tekst die wordt doorgegeven aan het volgende element.

Rechtsonder in het dialoogvenster bevindt zich een vervolgkeuzemenu met twee mogelijkheden: Alfred leert de resultaatvolgorde op basis van gebruik of houdt de resultaten in de aangegeven volgorde in de tabel. Dit bepaalt de twee mogelijke manieren Alfred kan de tabelitems weergeven in de Alfred Browser.

U kunt de lijstitems ook invoeren met een CSV bestand met de items. Daarom, als u een bestand maakt dat het volgende bevat:

Een titel, een ondertitel, een argument Een andere titel, een andere ondertitel, een andere augument

Wanneer u het bestand naar het dialoogvenster sleept, worden twee nieuwe items toegevoegd. Het eerste item krijgt de titel van Een titel, ondertitel van Een ondertitel, en het argument zal zijn een argument. Daarom kunt u een groot aantal items in een bestand importeren door het te verslepen CSV bestand op naar de lijst items en het zal elke toevoegen.

Het gebruik van een Lijst filter en een Scriptfilter ziet er exact hetzelfde uit voor de gebruiker van de workflow. Het is gewoon een andere manier om een ​​lijst met acties te maken in een workflow. Het enige nadeel van de Lijst filter is dat, als wat de gebruiker typt, niet overeenkomt met iets in de lijst, dan Alfred toont de standaard zoekitems. Met een Scriptfilter, je kunt detecteren of er niets zou worden geselecteerd en één item toevoegen om de gebruiker te vertellen dat de invoer niet overeenkwam.

Args en variabelen

Werkstroomelement Args en variabelen

De Args and Variables Element stelt u in staat om de informatie die door het element en de omgevingsvariabelen heen gaat wijzigen. Het volgende element ontvangt wat er in de Argument tekstvak. Elk item in de Variabelen gebied zal de omgevingsvariabele veranderen in de ingestelde waarde. 

Beide gebieden nemen de standaard Alfred macrovariabelen van Zoekopdracht als de invoer voor het element, en Var: varname als de waarde van de omgevingsvariabele genaamd varname.

Filter

Filter workflow-element

De Filter element kunt u filteren wat er vervolgens wordt uitgevoerd. Het element na dit element wordt alleen uitgevoerd als de resultaten van de voorwaardelijke voorwaarde waar zijn. Het tekstvak erna Ga alleen verder als definieert wat te controleren. 

Het volgende vervolgkeuzemenu heeft drie opties: is gelijk aan, is niet gelijk aan, en komt overeen met regex. Het volgende tekstvak bevat de waarde om te vergelijken met of een reguliere expressie voor de komt overeen met regex. De is gelijk aan en is niet gelijk aan zijn zelfverklarend. 

De komt overeen met regex kunt u een reguliere expressie opgeven die overeenkomt met de tekenreeks. Als er ergens in de reeks een overeenkomst is, gaat de uitvoering naar het volgende element. Je kunt de ICU-specificaties op hun website. Het is een standaard op basis van Pearl-reguliere expressies. Wanneer de komt overeen met regex is waar, het volgende element ontvangt de volledige invoerreeks.

U hoeft niet alleen de invoer te matchen. U kunt de Var: varname macro en match tegen een omgevingsvariabele. De invoer wordt nog steeds doorgegeven, niet de overeenkomende reeks. Daarom kunt u dit element gebruiken als een switch op basis van een omgevingsvariabele of op de invoer.

Vertraging

Werkstroomelement vertragen

De vertraging element pauzeert de uitvoering van de werkstroom tot het volgende element in de stroom met het opgegeven aantal seconden. Dit heeft geen effect op andere stroomlijnen in de workflow. 

Deze vertraging kan afkomstig zijn van de invoer door gebruik te maken van Zoekopdracht, of van een omgevingsvariabele met behulp van de Var: varname macro. Dit is handig als je twee of meer stroomlijnen hebt en je wilt dat iemand wacht totdat de andere tijd heeft om te voltooien. 

U kunt bijvoorbeeld een keyword element dat een lokale webserver start en de browser ernaar opent. De keyword element kan één regel hebben die is verbonden met het script om de server te starten, terwijl een andere regel 30 seconden vertraging oploopt en vervolgens naar een Open url element. Zolang de server niet meer dan 30 seconden nodig heeft om te starten, werkt dat prima.

Als uw werkstroom meerdere regels met stroomactie van het ene element heeft, de bovenste op de pagina-acties eerst, dan de tweede, enzovoort. Daarom zorgt een vertraging van één seconde op een regel ervoor dat deze wordt overgeslagen totdat alle andere parallelle lijnen zijn uitgevoerd.

Transformeren

Transformeer Element

De Transformeren element doet eenvoudige teksttransformaties op de invoerreeks. De beschikbare transformaties zijn: Trim Whitespace, Hoofdletters, Kleine letters, Camel Case, Reverse String, Strip Diacritics, en Strip niet-alfanumeriek

Elk van deze transformaties spreekt voor zich.

Knooppunt

De Knooppunt element verbindt eenvoudigweg alle ingangen met alle uitgangen. Dit is geweldig voor het voeden van veel ingangen naar veel uitgangen met minimale lijnen. Verbind alle ingangen aan de linkerkant van een Knooppunt, en sluit dan de uitgang aan op elk ingangselement in volgorde.

Dit zorgt ervoor dat het overzicht blijft en zorgt voor eenvoudige uitbreidingen.

Vervangen

Vervang workflow-element

De Vervangen element zal de invoer vergelijken met draad, regex, of lege invoer zoals geselecteerd in het vervolgkeuzemenu. Het eerste tekstvak bevat de vergelijkingsreeks, terwijl het tweede tekstvak de substitutiereeks bevat. 

Daarom, als de vergelijkingstekenreeks is doos en de vervangende tekenreeks is vlieger, de zin Ik heb een doos veranderd naar Ik heb een vlieger. Als een regex is ^ a (...) ple, de vervangende tekenreeks is $ 1, en de invoer is appel, dan zal de uitvoer zijn pp (de twee letters komen overeen met de twee . in de overeenkomststring). De $ 1 is een afkorting voor de eerste capture-groep aangeduid door de ()

De Tuts + -training Reguliere expressies: up-and-running helpt u bij het begrijpen en gebruiken van reguliere expressies.

JSON

JSON-workflow-element

De JSON element is vergelijkbaar met de Args en variabelen element in dat u hiermee de uitvoerparameters en omgevingsvariabelen kunt wijzigen. In de config sectie, kunt u de configuratie van het volgende element wijzigen. 

Sluit bijvoorbeeld een keyword element tot a JSON element en vervolgens naar een Berichtgeving plaatsen. Plaats het volgende in de JSON element configuratie:

"alfredworkflow": "arg": "query", "config": "title": "Some test text", "text": "This is the test text", "variables":  

Wanneer u het trefwoord daarna met tekst activeert, ongeacht welke tekst u verzendt, de Berichtgeving plaatsen zal altijd de Titel van Enkele testtekst, en de Tekst gebied (net onder de titel) zal zeggen Dit is de testtekst.

debug

Debug Workflow Element

Met de debug element, kun je een van de macro's in plaatsen Alfred naar de debug-console. De Allvars Macro's tonen de waarde van elke variabele die voor deze workflow is gedefinieerd.

Dit helpt scripts te debuggen door informatie te leveren die normaal niet wordt weergegeven in de foutopsporingsconsole. U kunt ook de Tekst wissen in debugger optie om de tekst te wissen voordat nieuwe tekst wordt geplaatst.

Schrijf naar bestand

Write To File Workflow Element

De Schrijf naar bestand element stelt u in staat om informatie naar een bestand te schrijven. U kunt een absoluut pad of een relatief pad naar het bestand opgeven. Als het een relatief pad is, kunt u instellen dat dit moet worden opgeslagen in de werkstroommap of in het gegevensdirectorygebied van de werkstroom. 

Als u de Voeg UUID toe aan bestandsnaam, het voegt een uniek nummer toe aan de naam voor het maken van unieke bestandsnamen. Als u de Maak tussentijdse mappen als ze niet bestaan keuze, Alfred maakt ontbrekende mappen in het pad. 

Als het bestand bestaat, kunt u dit instellen Overspringen, beschrijven, of toevoegen. De Overspringen optie zal het bestand niet schrijven als het al bestaat. De beschrijven optie verwijdert de inhoud van het bestand en schrijft de nieuwe inhoud. De toevoegen optie voegt automatisch een nieuwe regel toe aan elke schrijf.

In het tekstvak kunt u een van de plaatsen Alfred macro's om informatie in het bestand in te voegen. In mijn voorbeeldworkflow heb ik een Schrijf naar bestand element ingesteld op:

Var: firstName | var: lastName | var: email

Hiermee maakt u telkens een nieuwe regel met de omgevingsvariabelen Voornaam, achternaam, en e-mail gescheiden door een |.

Scriptfilter

De Scriptfilter is geen nieuw element, maar de uitvoerformaten daarvoor zijn veranderd. U kunt een script schrijven om hetzelfde uit te voeren XML formaat zoals gebruikt in Alfred 2 of je kunt de uitvoer creëren als een JSON structuur. De JSON structuur moet zijn:

"items": ["uid": "Een unieke id voor het item", "type": "bestand", "titel": "Titel voor het item", "ondertitel": "Ondertiteling voor het item", "arg": "text passed to next element", "autocomplete": "autocomplete text", "valid": true, "icon": "type": "fileicon", "path": "~ / Desktop" ]

U moet regels 2-14 herhalen voor elk item dat aan de gebruiker wordt gegeven. Vergeet niet om na elk blok een komma te plaatsen, behalve het laatste blok. Ik denk dat dit formaat veel gemakkelijker is om mee te werken dan het XML formaat, maar ik geef er de voorkeur aan om te coderen Node.js voor mijn workflows.

Alle aan het script gerelateerde elementen

Elk element dat een script nodig heeft, heeft nu twee manieren om de invoerparameter te passeren. De originele manier is om elk voorkomen van te vervangen Zoekopdracht in het script met de invoerreeks.

Nu kunt u opgeven dat het script de invoerreeks ontvangt met invoer als argv. Voor sommige scripts werkt dit beter en is het sneller sindsdien Alfred hoeft niet te zoeken en vervangen.

Alfred Environment Variables

Alfred zal enkele omgevingsvariabelen instellen die je scripts kunnen gebruiken. Hier is de lijst met omgevingsvariabelen ingesteld door Alfred:

Variabele naam Omschrijving
alfred_preferences Dit geeft de locatie van het voorkeurenbestand.
alfred_preferences_localhash Dit is een hash van het voorkeurenbestand.
alfred_theme Dit is het thema dat momenteel door Alfred wordt gebruikt.
alfred_theme_background Dit vertelt de achtergrondkleur van het huidige thema.
alfred_theme_selection_background Dit vertelt de achtergrondkleur van het huidige thema met een geselecteerd item.
alfred_theme_subtext Dit geeft de huidige themasubtext.
alfred_version Dit is de huidige Alfred-versie. Het wordt 3.0 voor Alfred 3.
alfred_version_build Dit geeft het versienummer van de build.
alfred_workflow_bundleid Dit is de huidige workflow-bundel-ID.
alfred_workflow_cache Dit bevat het pad naar de cachemap van de huidige workflow.
alfred_workflow_data Dit bevat het pad naar de gegevensdirectory van de huidige werkstroom.
alfred_workflow_name Dit is de naam van de huidige workflow.
alfred_workflow_uid Dit is het unieke ID voor de huidige workflow.
alfred_debug Deze vlag geeft aan of foutopsporing aan of uit staat.

Met behulp van deze informatie kunt u uw workflows toekomstbestendig maken. Als u uw omgevingsvariabelen van Alfred wilt bekijken, moet u de Shell-variabelen workflow. Het is erg handig om te zien wat je scripts zullen zien.

Voorbeeld workflow

De download voor deze zelfstudie bevat de E-mailadressen Workflow hieronder te zien. Je kunt het gebruiken als een voorbeeld van hoe je veel van de nieuwe elementen kunt gebruiken Alfred 3.

         E-mailadressen Workflow

Met deze workflow kunt u e-mailadressen toevoegen aan een CSV bestand (gele elementen), zoek naar een e-mailadres om een ​​e-mail te verzenden (blauwe elementen), een e-mailadres (groene elementen) weer te geven of om een ​​adres te verwijderen (rode elementen). De elementen die door meer dan één opdracht worden gebruikt, zijn wit. 

De kleurcodering helpt anderen te begrijpen wat er in de workflow gebeurt. Het vermogen om onderdelen te hergebruiken maakt schrijven Alfred workflows eenvoudiger en beter onderhouden. De Scriptfilter maakt ook gebruik van de omgevingsvariabele alfred_workflow_data om het script toekomstbestendig te maken. Door deze variabele te gebruiken, hoeft u de locatie van de gegevensbestanden niet hard te coderen.

Je zult ook opmerken dat de enige geschreven code was voor de Scriptfilter om te zoeken naar het e-mailadres en de Voer het script uit element voor het verwijderen van een e-mailadres uit de CSV lijst.

Ik gebruikte de email klant omgevingsvariabele die in de voorkeuren paneel om te zien of ik de standaardaanroepmethode moet gebruiken met de mailto protocol of iets specifieks doen voor een bepaalde e-mailclient. Het heeft één speciale verwerkingsconditie voor de Brief e-mailclient die ik het meest gebruik.

Conclusie

Nu dat je weet over alle nieuwe dingen in Alfred 3 workflows, het is tijd voor jou om te experimenteren. Laat me weten wat je denkt en je ervaringen in de reacties hieronder.