Gå til hovedindholdet
SubtitleMatrix

Fjern HTML-tags fra undertekster

Tekst og formateringFjern markup og tags
Eller indsæt underteksttekst

Indstillinger

Én boks, syv valg, og hvert valg har sin egen side. Kursiv, fed, understregning og farve fjerner netop den ene slags interval og lader resten af linjens formatering være. Alle fjerner hvert interval, som værktøjet modellerer – de fire plus karaoke-timing – mens alt andet i teksten lades urørt. HTML gør det samme og fejer derefter også den vinkelbeslag-markering væk, der blev efterladt i teksten, fordi værktøjet ikke modellerer den, som VTT's <v Bob>-talerkoder og <c.className>. ASS gør det samme for override-blokke i stedet og rydder de {...}-koder, der ikke blev genkendt ved parsing, som {\fad(500,500)}. Denne side udfylder boksen med det valg, dens titel nævner, og viser ingen andre.

Hvilken billedhastighed tiderne tælles i. På formatsiderne er det, hvad MicroDVD har brug for, fordi formatet gemmer tider som billednummer. På siderne om billedhastighed er det den hastighed, filen blev timet efter – den version, underteksterne blev lavet til – og sidens anden boks tager hastigheden for den video, du skal bruge dem med. 23,976, 24, 25, 29,97, 30, 50, 59,94 og 60 er de almindelige. Tager man fejl, forskydes hele tidslinjen, og på siderne om billedhastighed forskydes den med et forhold i stedet for et fast beløb.

Denne side tager markup ud af undertekstteksten: hver formateringsrange, en fil bærer, plus de vinkelparentes-tags, der er tilbage i selve teksten. Tilbage står ren, læsbar dialog — ordene, tiderne og intet andet. Det er kørslen for en fil, hvis tekst stadig har ting som et taletag, et klasse-tag eller et løst lukketag siddende midt i en linje.

Den anden halvdel er grunden til, at denne side findes ved siden af Fjern al formatering fra undertekster. Værktøjet modellerer de fire fremhævningstags, det forstår, og lader alt andet ligge præcis, hvor det fandt det, og det er den rigtige beslutning, mens en fil læses — at spise markup, det ikke genkender, i stilhed ville være at miste data. Men det betyder, at en WebVTT-fil med <v Bob> i beholder det tag gennem enhver anden oprydning på sitet, og en fil, der har været gennem OCR eller håndredigering, har ofte et lukketag uden makker midt i en linje. Denne side er den, der fejer dem ud, og dens titel siger det.

Fejningen er bevidst snæver. Den fjerner kun noget, der har form som et tag — et bogstav eller en skråstreg umiddelbart efter den åbne vinkelparentes. En sammenligning i dialogen som 5 < 10 og et glad ansigt som <3 lades helt i fred, fordi en løsere regel ville slette ordene mellem de to parenteser og efterlade intet i resultatet, der viste, at den havde gjort det. Det, der ikke er modelleret, gættes der ikke på.

Intet uploades; filen læses og skrives inde i browserfanen. En fil, der allerede er ren tekst, kommer ud byte for byte, og det er også den billigste måde at finde ud af, om den usynlige markup, du mistænker, virkelig er der.

Eksempler

En WebVTT-fil med et taletag og et klasse-tag

Input

WEBVTT

00:00:01.000 --> 00:00:02.000
<v Bob><c.yellow>Hello there</c>

00:00:03.000 --> 00:00:04.000
<i>She left</i> <ruby>東京<rt>とうきょう</rt></ruby>.

Resultat

WEBVTT

00:00:01.000 --> 00:00:02.000
Hello there

00:00:03.000 --> 00:00:04.000
She left 東京とうきょう.

Taletag, klasse-tag, kursiv og ruby-markering forsvinder alle og efterlader ordene. Bemærk den anden tekstblok: læsningen inde i <rt> var tekst frem for markup, så den bliver stående — resultatet viser kanaene ved siden af kanji-tegnene, og det er, hvad en afspiller alligevel ville have vist.

En SRT-fil med et lukketag uden makker

Input

1
00:00:01,000 --> 00:00:02,000
<i>Hello</i> there</i> again.

2
00:00:03,000 --> 00:00:04,000
<b>And</b> one more.

Resultat

1
00:00:01,000 --> 00:00:02,000
Hello there again.

2
00:00:03,000 --> 00:00:04,000
And one more.

Paret omkring Hello blev læst som et interval og fjernet som ét; det løse </i> efter there blev efterladt i teksten af læseren og fejes væk her. Begge ender uden for resultatet, og det er pointen med at gøre de to ting i én kørsel — tags uden makker er netop, hvad en fil kommer tilbage med efter OCR eller håndredigering.

Sammenligninger og symboler er ikke tags

Input

1
00:00:01,000 --> 00:00:02,000
5 < 10 and 3 > 1

2
00:00:03,000 --> 00:00:04,000
<3 you

Resultat

1
00:00:01,000 --> 00:00:02,000
5 < 10 and 3 > 1

2
00:00:03,000 --> 00:00:04,000
<3 you

Intet fjernes, og det er den halvdel af siden, der betyder mest. Fejningen rører kun noget, der har form som et tag, altså et bogstav eller en skråstreg lige efter parentesen; en matematisk sammenligning og et hjerte lavet af et mindre-end-tegn overlever begge urørt, og det gør alt, hvad der står mellem to parenteser, også.

Ofte stillede spørgsmål

Hvad gør denne side, som fjernelse af al formatering ikke gør?

Den gør den opgave og går derefter videre. Fjern al formatering tager de fremhævningsintervaller ud, værktøjet modellerer — kursiv, fed, understregning, farve og karaoke. Denne side fjerner dem også og fejer derefter de vinkelparentes-tags væk, der er tilbage i selve teksten: taletags, klasse-tags, ruby-markup og løse eller umatchede lukketags. Har din fil ingen sådan markup i sig, giver de to sider det samme resultat.

Hvilke vinkelparenteser bliver stående som tekst, når markup fejes ud?

En parentes, der ikke efterfølges af et bogstav eller en skråstreg, bliver stående, og det samme gør alt mellem to parenteser, der ikke har form som et tag. Derfor overlever en sammenligning som 5 < 10 og 3 > 1 og et symbol som <3 urørt. Den snævre regel er bevidst: en bredere regel ville slette dialog mellem to parenteser og efterlade intet spor i resultatet af, at den havde gjort det.

Forsvinder ordene inde i en fjernet <ruby>-annotation også?

Det afhænger af, hvad der var inde i den. En tags egne attributter forsvinder med den, og det samme gør alt, der er indlejret i en tag, som selv fjernes — men tekst, der står som indhold i en annotation, er tekst og bliver i linjen. I en ruby-markering forsvinder selve markupen, mens læsningen mellem <rt>-taggene bliver stående, fordi den var tekst for læseren og ikke en instruks til afspilleren.

Hvorfor står der stadig tekst tilbage fra en <rt>-annotation efter fejningen?

Fordi indholdet mellem <rt> og </rt> er tekst, ikke markup. Fejningen fjerner tags af formen <bogstav ...>, og den tekst, der ligger mellem dem, er ord, en afspiller ville vise. En ruby-annotation består derfor af markup, der forsvinder, og en læsning, der bliver — resultatet viser kanaene ved siden af kanji-tegnene, præcis som en afspiller uden ruby-støtte ville gøre.

Kan jeg fjerne de løse tags og beholde min kursiv?

Ikke på denne side: fremhævningsintervallerne forsvinder først, og fejningen kører bagefter, så en fil med kursiv kommer ud uden den. Den rækkefølge er ikke vilkårlig — at fjerne markup forkorter teksten, og hvert interval efter fjernelsen skulle genberegnes for at pege på de rigtige tegn. At gøre de to ting sammen er det, der gør resultatet præcist, så der er ingen halvvejsindstilling her.

Hvorfor rapporterede kørslen ingenting, når min fil tydeligt havde markup i sig?

Den sandsynlige grund er, at markupen ikke har form som et tag: en parentes efterfulgt af et mellemrum, et ciffer eller et symbol lades med vilje i fred, så intet blev fjernet, og filen kom ud byte for byte. Hvis filen indeholder noget som <v Bob> og alligevel kommer uændret ud, så tjek, at det er den fil, du tror — siden læser en fil efter det format, den faktisk er, ikke efter den filendelse, den bærer.

Relaterede værktøjer