Løs HTML-formatering ved hjelp av Simple Shell Scripting
Hvis du ofte skriver HTML i en editor og deretter limer inn i WordPress, vil du legge merke til at noen ganger irriterende formateringskoder (som koder) er lagt til. Ved å bruke enkle skalskript, kan du automatisk rydde opp den søppelpostformatet med noen få enkle kommandoer.
Hvorfor bruke shell scripting? Hvis du er ny til programmering, er det mye, mye bedre å starte små. Ikke bare er du mindre sannsynlig å gi opp, men du får muligheter til å stoppe og lære underveis. Når det er sagt, kan dine første programmer være veldig nyttige, selv om de også er veldig enkle.
Shell scripting Hva er Shell Scripting og hvorfor du bør bruke det Hva er Shell Scripting og hvorfor du bør bruke det I tillegg til å kunne akseptere og utføre kommandoer interaktivt, kan skallet også utføre kommandoer lagret i en fil. Dette er kjent som shell scripting. Her dekker vi grunnleggende om shell scripting. Les mer er et flott sted å starte kodingen for denne nøyaktige grunnen: det er enkelt å sette sammen noe i et par kodelinjer som vil spare deg for mye tid. La oss ta en titt på et par oppskrifter, eller “mønstre,” Du kan omarbeide egne skript.
Hvorfor Shell Scripting?
For det første, la oss starte med å definere “shell scripting” som å skrive skript som skal kjøres i Bash-skallet. Teknisk sett kan andre skriptspråk som Powershell også betegnes “shell scripting.” Men hvorfor fokusere på shell scripting generelt, og Bash scripting spesielt, i utgangspunktet?
- Med introduksjonen av Windows Subsystem for Linux er Bash-skallet nå kompatibelt med alle store PC-plattformer. En rask guide til Linux Bash Shell i Windows 10. En rask guide til Linux Bash Shell i Windows 10. Du kan nå kjøre Linux på Windows. Lær mer om Bash på Windows, fra hvordan og hvorfor du bør installere den, til skjulte funksjoner du sikkert ikke visste om. Les mer . (Den er også inkludert på macOS og omtrent alle Linux-distribusjoner utenom boksen.) Den er også tilgjengelig på Android-telefoner med en Termux Slik bruker du Linux-kommandolinjen på Android med Termux Slik bruker du Linux-kommandolinjen på Android med Termux Bytt tonn med store Android-apper med bare en slank Linux-kommandolinjeprogram. Les mer, en gratis og åpen kildekode nedlasting fra Google Play.
- Shell skripting lar deg fokusere på programmering grunnleggende, fordi den tyngste løfting er gjort for deg av kommandoene du vil inkludere. Anta at du vil komprimere noen filer i et tradisjonelt skrivebordsprogram skrevet i C. Du må enten skrive en liten kode for å bruke et kompatibelt programvarebibliotek. En størrelse passer ikke alle: Hvorfor programvare ikke er universelt kompatibel. En størrelse Passer ikke alle: Hvorfor programvare ikke er universelt kompatibel Programvare er det samme på hvilket som helst operativsystem, ikke sant? Feil. Det kan se ut som det samme, og fungere på samme måte, men det er forskjellig bak kulissene. Les mer som vil gjøre jobben, eller skriv mye av kode fra grunnen til å faktisk gjøre kompresjonen. I et shell script er alt du trenger å gjøre, å kjøre tjære kommandoen på de ønskede filene.
- Du kan utvikle seg i små trinn, på en interaktiv måte. For å fortsette eksemplet ovenfor, la oss si at du har bestemt deg for at du skal bruke tjære å gjøre kompresjonen din, men du er ikke sikker på hvilken av alternativene du vil ha. Bare spill deg med det på spørsmålet til du får resultatet du vil ha, og kopier / lim inn kommandoen du brukte i skriptet.
Med det ovennevnte i tankene, her er et par ideer for nyttige skalskript du kan sette sammen med bare et par kodelinjer. Vi skal bygge et par skript for å forbedre de allerede betydelige kreftene til Pandoc-konverteringsverktøyet. Slik enkelt konvertere mellom dokumentformater i Linux. Slik konverterer du enkelt mellom dokumentformater i Linux. Skifte til Linux kan føre til problemer med filkompatibilitet. For eksempel ser dokumentene ikke det samme ut i LibreOffice som de gjør i Word. Dette er bare en grunn til at du trenger pandoc. Les mer .
1. Samle lange lister over parametere
Den enkleste og enkleste måten å bruke et shell-skript på, er som en snarvei for en eksisterende kommando. Noen kommandolinjeprogrammer har massevis av flagg, og deres syntaks er ikke alltid klart. Men du kan ta en av disse kommandoene, med alle sine kompliserte alternativer, og kaste dem inn i et skallskript med et navn som er lettere å skrive inn. Vurder følgende kommando, som kjører Pandoc på en Markdown-fil og oppretter en ODT-fil, ved hjelp av en malfil:
pandoc -r markdown -w odt --reference-odt = / bane / til / mappe / inneholder / mscript-template.odt -o manuskript.odt manuskript.md
Jeg bruker Pandoc daglig, da jeg forfatter alt i lette oppslag som Markdown Hva er Markdown? 4 grunner til at du bør lære det nå Hva er Markdown? 4 grunner til at du bør lære det nå Lei av HTML og WYSIWYG redaktører? Så Markdown er svaret for deg, uansett hvem du er. Les mer og Asciidoc Lightweight Markup Language: Dette er hvorfor du bør bruke AsciiDoc over ordinære Markdown Lightweight Markup Languages: Dette er hvorfor du bør bruke AsciiDoc Over Regular Markdown Markdown Språk kommer i mange smaker, hvorav noen er bedre enn andre. Lettvektspråk som AsciiDoc er enkle å lære og ekstremt nyttige. Slik sammenligner den. Les mer . Og likevel når jeg konverterer til ODT, skriver jeg “odt-referanse” i stedet for “referanse-odt.” Hver. Enkelt. Tid. Pluss banen til malen vil ikke autofullføres som de fleste shellkommandoer. Å lage et enkelt skript kan lagre alt som feiler:
#! / bin / bash pandoc -r docbook -w odt --reference-odt = / bane / til / mappe / inneholder / mscript-template.odt -o $ 1.odt $ 1
Den første linjen i skriptet styrer systemet for å bruke Bash-skallet til å kjøre det. Den neste tar det første argumentet på kommandolinjen ($ 1), og kjører Pandoc med et sett med flagg på den. Det er verdt å merke seg, det er andre måter å gjøre dette på, for eksempel å bruke alias kommando på Unix-ish systemer. Men å lage små skalskript betyr at du kan holde dem hendige (som i din ~ / bin-mappe), kopier raskt (eller synkroniser) dem andre steder, og endre dem med tekstredigering. Lagre skriptet ditt med et filnavn som er lett å huske og skrive (f.eks. “markdown2odt.sh”). Ikke glem å gi det kjørbare tillatelser En av de viktigste verktøyene i Linux - Forstå Chmod En av de viktigste verktøyene i Linux - Forstå Chmod Det er mange funksjoner som gjør Linux spesiell, men en av dem som gjør den så sikker er dets tillatelsessystem. Du kan ha finkornskontroll over alle filene i systemet ditt og ... Les mer .
2. Piping Output for å rengjøre HTML-formatering
Tilkobling av to terminalkommandoer med rør (“|”) karakteren forårsaker at produksjonen av den første blir brukt som inngangen til den andre. (Hvis du aldri har sett dette før, sjekk ut vår hurtige guide til kommandolinjen En hurtigveiledning for å komme i gang med Linux-kommandolinjen En rask guide for å komme i gang med Linux-kommandolinjen Du kan gjøre mange fantastiske ting med kommandoer på Linux og det er egentlig ikke vanskelig å lære. Les mer.) Men å skrive to kommandoer i riktig rekkefølge, med de riktige parametrene, bare forbinder problemet vi nettopp har diskutert. Innpakning av denne dobbelte kommandoen i et shell-skript gjør det så mye mer praktisk.
Ett triks jeg bruker med Pandoc er å “ren” HTML-formatering eller fjerne all inline-styling 9 Feil du ikke bør gjøre når du bygger en webside 9 Feil du ikke bør gjøre når du bygger en webside Disse følgende HTML-kodingsfeilene er enkle å lage, men hvis du leder dem tidligere heller enn senere vil siden din se bedre ut, være lettere å vedlikeholde og fungere som du vil. Les mer . Hvis du noen gang har prøvd å eksportere et tekstbehandlingsdokument til HTML, kan du se at det er massevis av stiler (span koder) som legges til i og blant teksten.
Docbook XML-formatet har ingen konvensjon for inline-stiler, så hvis vi konverterer HTML til DocBook blir alt denne formatering kastet ut. Da kan vi bruke Pandoc til å konvertere DocBook tilbake til HTML, og vi får en fin bit av markup som du kan (for eksempel) lime inn i WordPress. Snarere enn å gjøre dette med individuelle samtaler til Pandoc, kaller følgende skript dem sammen til:
- Konverter den eksporterte HTML-filen til DocBook, som ikke har noen inline-stiler (før røret)
- Konverter DocBook tilbake til det som er fint, rent HTML-formatering (etter røret)
#! / bin / bash pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 -
Forklaring av standard inngang / utgang
Ovennevnte utnytter de terminale konseptene til “standardinngang” og “standard utgang.” Hvis du skulle kjøre den første delen av kommandoen, vil du få en hel masse XML vist i terminalen. Grunnen til at vi ikke har gitt Pandoc noen annen utgang (for eksempel en fil) å bruke. Så det bruker den eneste nedgangen den har: Standardutgang, i dette tilfellet terminalen.
På den annen side betyr dash karakteren på slutten av den andre Pandoc kommandoen at den skal bruke “standardinngang.” Kjør av seg selv, du vil bli møtt med en ledetekst, hvor skallet venter på deg å gi litt tekst via standardinngangen ved å skrive på tastaturet. Når vi kombinerer dem, kan du nesten forestille deg at den første kommandoen spytter ut en haug med XML til terminalen der den umiddelbart er ledd inn i den andre kommandoen som input.
Resultatet er, hvis du omdøper dette til “clean-html.sh,” Du kan kjøre den på en hvilken som helst HTML-fil for å bli kvitt de plagsomme stilene. Den beste delen er Pandoc vil lese fra filen, deretter overskrive den på slutten, noe som betyr at det ikke er noen tempfiler som er fulle av.
3. Kjører programmer på flere HTML-filer
Noen programmer lar deg spesifisere jokertegn for eksempel stjernen på kommandolinjen. Dette lar deg for eksempel flytte alle JPG-bilder til din “Bilder” mappe:
mv * .jpg ~ / Pictures
Men andre programmer tar bare én fil om gangen som input, og Pandoc er en av dem. Så hva skjer når vi har en hel katalog full av eksporterte HTML-filer, og vi vil rydde opp HTML-formatering? Må vi kjøre vår “clean-html.sh” Skript på hver enkelt av dem manuelt?
Nei, fordi vi ikke er nybegynnere. Vi kan pakke inn vår piped-kommando i en “for hver” sløyfe. Dette vil gå til hver HTML-fil i gjeldende katalog i sin tur og utføre den rene operasjonen på den. La oss også legge til en liten melding via ekko uttalelse for å fortelle oss at alle filene har blitt tatt vare på:
for filnavn i ./*.html gjør pandoc -w docbook $ 1 | pandoc -r docbook -w html -o $ 1 - echo "Arbeider på $ 1 ... HTML er rent!" ferdig
Nå hvis du har en mappe full av “skitten” HTML, kan du kjøre dette skriptet på det og ende opp med litt glatt HTML-formatering.
Hvor å gå fra her
Hvis du liker tinkering, vil du elske shell scripting, fordi det er alltid tweaking å bli gjort. Noen ideer om hvordan du bruker disse mønstrene som grunnlag for andre skript, inkluderer følgende:
- Legger til støtte for konvertering direkte fra tekstbehandlingsfilen, siden Pandoc støtter ODT og DOCX-inngang (dvs. kjeden blir ODT / DOCX> DocBook XML> HTML).
- Kombinerer begge HTML-rengjøringsmidler til en, slik at hvis en fil er gitt, renser den det, ellers rydder det automatisk alt i gjeldende katalog (legger til håndtering av kommandolinjeparametere En hurtigveiledning for å komme i gang med Linux-kommandolinjen En rask guide for å få Startet med Linux Command Line Du kan gjøre mange fantastiske ting med kommandoer i Linux, og det er egentlig ikke vanskelig å lære. Les mer).
- Gi brukeren ekstra eksportalternativer som PDF (legger til valg basert på input, via if-then eller case statements).
Som du kan se, med shell-skript kan du bygge ting litt om gangen, teste dem ut ved ledeteksten og klare dem på dine skript mens du går.
Hva sier du, virker shell scripting litt mindre skremmende nå? Er du klar til å prøve hånden din på å automatisere dine dulleste oppgaver? Hvis du bestemmer deg for å hoppe inn, gi oss beskjed om hvordan det går under i kommentarene!
Utforsk mer om: HTML, Scripting.