Fix HTML-formatering ved hjælp af Simple Shell-scripting

  • Owen Little
  • 0
  • 1270
  • 152
Reklame

Hvis du ofte skriver HTML i en editor og derefter indsætter i WordPress, vil du bemærke, at nogle gange er irriterende formateringskoder (som tags) tilføjet. Ved hjælp af enkle shell-scripts kan du automatisk rydde op i den affalds HTML-formatering med et par enkle kommandoer.

Hvorfor bruge shell-scripting? Hvis du er ny til at programmere, er det meget, meget bedre at starte med små. Ikke kun er du mindre tilbøjelige til at give op, men du har muligheder for at stoppe og lære undervejs. Når det er sagt, kan dine første programmer være rigtig nyttige, selvom de også er virkelig enkle.

Shell-scripting Hvad er Shell-scripting og hvorfor du skal bruge det Hvad er Shell-scripting og hvorfor du skal bruge det Ud over at være i stand til at acceptere og udføre kommandoer interaktivt kan shell også udføre kommandoer, der er gemt i en fil. Dette er kendt som shell-scripting. Her dækker vi det grundlæggende i shell-scripting. er et godt sted at starte kodning af denne præcise grund: det er nemt at sammensætte noget i et par kodelinjer, der sparer dig masser af tid. Lad os se på et par opskrifter, eller “mønstre,” du kan genbruge til dine egne scripts.

Hvorfor Shell scripting?

Lad os først starte med at definere “shell scripting” som at skrive manuskripter, der skal køres i Bash-shell. Teknisk set kunne andre scripting-sprog som Powershell også betegnes “shell scripting.” Men hvorfor fokusere på shell-scripting generelt og Bash-scripting i særdeleshed i første omgang?

  • Med introduktionen af ​​Windows Subsystem til Linux er Bash-shell nu kompatibel med alle større pc-platforme. En hurtig guide til Linux Bash Shell i Windows 10 En hurtig guide til Linux Bash Shell i Windows 10 Du kan nu køre Linux på Windows. Lær mere om Bash på Windows, fra hvordan og hvorfor du skal installere det, til skjulte funktioner, som du sandsynligvis ikke vidste om. . (Det er også inkluderet på macOS og næsten alle Linux-distributioner ud af boksen.) Det er endda tilgængeligt på Android-telefoner med en Termux Sådan bruges Linux-kommandolinjen på Android med Termux Sådan bruges Linux-kommandolinjen på Android med Termux Udskift masser af voluminøse Android-apps med kun en slank Linux-kommandolinjeapp. , en gratis og open source-download fra Google Play.
  • Shell-scripting giver dig mulighed for at fokusere på programmering af fundamentale elementer, fordi den tyngste løftning gøres for dig ved hjælp af de kommandoer, du inkluderer. Antag, at du vil komprimere nogle filer i et traditionelt desktop-program skrevet i C. Du skal enten skrive en lille kode for at bruge et kompatibelt softwarebibliotek En størrelse passer ikke alle: Hvorfor software ikke er universelt kompatibel Én størrelse er ikke 'T Fit All: Hvorfor er software ikke universelt kompatibel software den samme på ethvert operativsystem, ikke? Forkert. Det ser måske ens ud og fungerer på samme måde, men det er anderledes bag kulisserne. der vil gøre jobbet eller skrive en masse kode fra bunden for faktisk at udføre komprimeringen. I et shell-script er alt, hvad du skal gøre, at køre tjære kommando på de ønskede filer.
  • Du kan udvikle dig i små trin på en interaktiv måde. For at fortsætte ovenstående eksempel, lad os sige, at du har besluttet, at du vil bruge tjære for at udføre din komprimering, men du er endnu ikke sikker på, hvilke af dens muligheder du ønsker. Bare leg med det med det samme, indtil du får det ønskede resultat, og kopier / indsæt derefter den kommando, du brugte, i dit script.

Med det ovenstående i tankerne er her et par ideer til nyttige shell-scripts, som du kan sammensætte med bare et par kodelinjer. Vi bygger et par scripts for at forbedre Pandoc-konverteringsværktøjets allerede betydelige beføjelser. Hvordan man nemt konverterer mellem dokumentformater i Linux Sådan konverteres man let mellem dokumentformater i Linux Skift til Linux kan resultere i problemer med filkompatibilitet. For eksempel ser dokumenter ikke det samme ud i LibreOffice som i Word. Dette er kun en grund til, at du har brug for pandoc. .

1. Indsamling af lange lister med parametre

Den nemmeste og mest enkle måde at bruge et shell-script er som en knd til genvej til en eksisterende kommando. Nogle kommandolinjeprogrammer har et væld af flag, og deres syntaks er ikke altid klar. Men du kan tage en af ​​disse kommandoer med alle dens komplicerede indstillinger og smide dem i et shell-script med et navn, der er nemmere at indtaste. Overvej følgende kommando, der kører Pandoc på en Markdown-fil og opretter en ODT-fil ved hjælp af en skabelonfil:

pandoc -r markdown -w odt --reference-odt = / sti / til / mappe / indeholdende / mscript-template.odt -o manuscript.odt manuscript.md

Jeg bruger Pandoc dagligt, da jeg forfatter alt i letvægtsopslag som Markdown Hvad er Markdown? 4 grunde til, at du skal lære det nu, hvad er markdown? 4 grunde til, at du skal lære det nu Træt af HTML- og WYSIWYG-redaktører? Så er Markdown svaret for dig, uanset hvem du er. og Asciidoc letvægtsmarkering Sprog: Dette er grunden til, at du skal bruge AsciiDoc i forhold til almindelig markdown Letvægtsmarkering Sprog: Dette er grunden til, at du skal bruge AsciiDoc i forhold til regelmæssigt markdown Markdown-sprog findes i mange varianter, hvoraf nogle er bedre end andre. Letvægtssprog som AsciiDoc er lette at lære og ekstremt nyttige. Sådan sammenligner det. . Og alligevel skriver jeg, når jeg konverterer til ODT “ODT-henvisning” i stedet for “henvisning-ODT.” Hver. Enkelt. Tid. Plus at stien til skabelonen ikke automatisk udfyldes som de fleste shell-kommandoer. Oprettelse af et simpelt script kan gemme al den forkert indtastning:

#! / bin / bash pandoc -r docbook -w odt --reference-odt = / sti / til / mappe / indeholdende / mscript-template.odt -o $ 1.odt $ 1

Den første linje i scriptet instruerer systemet til at bruge Bash-shell til at køre det. Den næste tager det første argument på kommandolinjen ($ 1), og kører Pandoc med et sæt flag på det. Det er værd at bemærke, at der er andre måder at gøre dette på, f.eks. At bruge alias kommando på Unix-ish-systemer. Men at lave små shell-scripts betyder, at du kan holde dem praktisk (f.eks. I din ~ / bin-mappe), hurtigt kopiere (eller synkronisere) dem andetsteds og ændre dem med en hvilken som helst teksteditor. Gem dit script med et filnavn, der er let at huske og skrive (f.eks. “markdown2odt.sh”). Glem ikke at give det eksekverbare tilladelser Et af de vigtigste værktøjer i Linux - Forståelse af Chmod Et af de vigtigste værktøjer i Linux - Forståelse af Chmod Der er masser af funktioner, der gør Linux speciel, men en af ​​dem, der gør det så sikkert er dets tilladelsessystem. Du kan have finkornet kontrol over alle filerne i dit system og ... .

2. Rørudgang til ren HTML-formatering

Forbindelse af to terminalkommandoer med et rør (“|”) -tegnet får output til det første til at blive brugt som input til det andet. (Hvis du aldrig har set dette før, så tjek vores hurtige guide til kommandolinjen En hurtig guide til at komme i gang med Linux-kommandolinjen En hurtig guide til at komme i gang med Linux-kommandolinjen Du kan gøre masser af fantastiske ting med kommandoer i Linux, og det er virkelig ikke svært at lære.) Men at skulle skrive to kommandoer i den rigtige rækkefølge, med de rigtige parametre, sammensætter kun det problem, vi netop har diskuteret. At pakke denne dobbeltkommando op i et shell-script gør det så meget mere praktisk.

Et trick, jeg bruger med Pandoc, er at “ren” HTML-formatering, eller fjern al inline-styling. 9 Fejl, du ikke skulle foretage, når du bygger en webside. Page 9 Fejl, du ikke skal foretage, når du bygger en webside. Disse følgende HTML-kodningsfejl er let at lave, men hvis du tager dem af tidligere, snarere end senere vil din side se bedre ud, være lettere at vedligeholde og fungere, hvordan du vil have den. . Hvis du nogensinde har prøvet at eksportere et tekstbehandlingsdokument til HTML, kan du se, at der er et væld af stilarter (span tags) der tilføjes i og blandt teksten.

Docbook XML-format har ingen konvention for inline-stilarter, så hvis vi konverterer HTML til DocBook, bliver denne formatering smidt ud. Derefter kan vi bruge Pandoc til at konvertere DocBook tilbage til HTML, og vi får en dejlig smule markup, som du (f.eks.) kan indsætte i WordPress. I stedet for at gøre dette med individuelle opkald til Pandoc, kæder følgende script dem sammen til:

  1. Konverter den eksporterede HTML-fil til DocBook, som ikke har nogen inline-stilarter (før røret)
  2. Konverter DocBook tilbage til det, der nu er pænt, rent HTML-format (efter røret)
#! / bin / bash pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 -

Forklaring af standardinput / output

Ovenstående drager fordel af de terminale koncepter af “standard input” og “standard output.” Hvis du skulle køre den første del af kommandoen, ville du få vist en hel flok XML i terminalen. Årsagen til, at vi ikke har givet Pandoc nogen anden output (såsom en fil) til at bruge. Så det bruger det eneste fald tilbage: det er standardudgang, i dette tilfælde terminalen.

På den anden side betyder bindestregstegnet i slutningen af ​​den anden Pandoc-kommando, det skal bruges “standard input.” Kør af sig selv, vil du blive mødt med en prompt, hvor skallen venter på, at du leverer noget tekst via dets standardinput, ved at skrive på tastaturet. Når vi kombinerer dem, kan du næsten forestille dig den første kommando, der spytter en masse XML ud til terminalen, hvor den straks ledes ind i den anden kommando som input.

Resultatet er, hvis du omdøber dette til “clean-html.sh,” du kan køre den på en hvilken som helst HTML-fil for at slippe af med de generende stilarter. Det bedste er, at Pandoc vil læse fra filen, og derefter overskrive den i slutningen, hvilket betyder, at der ikke er nogen temp-filer, der er spildt om.

3. Kørelse af programmer på flere HTML-filer

Nogle programmer giver dig mulighed for at specificere jokertegn såsom stjerne på kommandolinjen. Dette giver dig f.eks. Mulighed for at flytte alle JPG-billeder til dine “Billeder” folder:

mv * .jpg ~ / Billeder

Men andre programmer tager kun en fil ad gangen som input, og Pandoc er en af ​​dem. Så hvad sker der, når vi har en hel mappe fuld af eksporterede HTML-filer, og vi ønsker at rydde op i HTML-formateringen? Skal vi køre vores “clean-html.sh” manuskript på hver enkelt af dem?

Nej, fordi vi ikke er newbies. Vi kan pakke vores piped kommando i en “for hver” loop. Dette går igen til hver HTML-fil i det aktuelle bibliotek og udfører den rene handling på den. Lad os også tilføje en lille besked via ekko erklæring for at fortælle os, at alle filer er blevet taget hånd om:

til filnavn i ./*.html do pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 - ekko "Arbejde med $ 1… HTML er rent!" Færdig

Nu hvis du har en mappe fuld af “snavset” HTML, du kan køre dette script på det og ende med en smule ren HTML-formatering.

Hvor man skal hen herfra

Hvis du kan lide at klemme, vil du elske shell-scripting, fordi der altid er tilpasning, der skal gøres. Nogle ideer til, hvordan man bruger disse mønstre som grundlag for andre scripts inkluderer følgende:

  • Tilføjelse af support til konvertering direkte fra tekstbehandlingsfilen, da Pandoc understøtter ODT og DOCX input (dvs. kæden bliver ODT / DOCX> DocBook XML> HTML).
  • Ved at kombinere begge HTML-rengøringsmidler til en, så hvis en fil leveres, renser den det, ellers renser den automatisk alt i det aktuelle bibliotek (tilføjer behandling af kommandolinjeargumenter. En hurtig guide til at komme i gang med Linux-kommandolinjen En hurtig guide til at komme Startet med Linux-kommandolinjen Du kan gøre masser af fantastiske ting med kommandoer i Linux, og det er virkelig ikke svært at lære.).
  • Giv brugeren yderligere eksportindstillinger som PDF (tilføjer valg baseret på input, via if-then eller case-sætninger).

Som du kan se, med shell-scripts kan du opbygge ting lidt ad gangen, teste dem ud med det samme og sætte dem på dine scripts, mens du går.

Hvad siger du, virker shell-scripting lidt mindre skræmmende nu? Er du klar til at prøve dig på at automatisere dine kedelige opgaver? Hvis du beslutter at hoppe ind, så lad os vide, hvordan det går nedenunder i kommentarerne!




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.