2017-05-26 6 views
0

Ich habe einen Prozess automatisiert, den wir für die Arbeit, die Konvertierung von Word-Dokumenten in HTML-Dateien in TextWrangler beinhaltet. Ich habe alles bis auf einen letzten Schritt sortiert, was das Verschieben des ersten Zeichens des Artikels innerhalb der span-Tags beinhaltet (Boss's Design-Wahl, und die Webseite unterstützt kein CSS, das nicht inline ist oder ich würde es zuerst benutzen) -Brief).Applescript: Ausschneiden von Zeichen und Einfügen in Span-Tags

Wie dem auch sei, sieht das HTML wie folgt aus:

<p style='color: #444; font-size: 1.4em; line-height: 1.8em; font-weight: bold;'> 
<img style='display: block; float: right; margin-bottom: 30px; margin-left: 15px; width: 475px;' src='*****.jpg' alt='' width='950' height='713' /> 
<span style='color: #444; float: left; font-size: 3em;'></span> 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer at rhoncus velit. Sed velit libero, venenatis non ornare ac, egestas vitae quam.</p> 

Die Idee wäre, nur den ersten Buchstaben nach dem Abschluss span-Tag in das Innere des span-Tag zu verschieben, aber ich habe umsah und nicht Ich habe wirklich eine Idee, wo ich anfangen soll.

Edit: Dies könnte leichter gemacht wissen, dass die Anzahl der Zeichen vor dem notwendigen Buchstaben in der Zeile wird sich nie ändern. Vielleicht einen Weg finden, das n-te Zeichen in der Linie zu isolieren und von dort aus zu gehen?

Antwort

0

Dies ist ein dummes Beispiel, sollten Sie es ein bisschen polieren:

set htmlText to "... your HTML ..." 

set endSpanLength to 7 
set endSpanPos to offset of "</span>" in htmlText 
set firstCharPos to (endSpanPos + endSpanLength + 1) 
set firstChar to character firstCharPos of htmlText 

set oldEndSpan to "</span>" & linefeed & firstChar 
set newEndSpan to firstChar & "</span>" & linefeed 

findAndReplaceInText(htmlText, oldEndSpan, newEndSpan) 

on findAndReplaceInText(theText, theSearchString, theReplacementString) 
    set AppleScript's text item delimiters to theSearchString 
    set theTextItems to every text item of theText 
    set AppleScript's text item delimiters to theReplacementString 
    set theText to theTextItems as string 
    set AppleScript's text item delimiters to "" 
    return theText 
end findAndReplaceInText 
+0

Das Skript zur Einstellung firstCharPos stecken bleibt, weil das erste Zeichen außerhalb von html ist. Stattdessen habe ich textwrangler gebeten, die erste Zeile zu bearbeiten, die span-Tags enthält und die ganze Zeile zurückgibt, aber das Skript bleibt auf der Offset-Zeile hängen 'Fehler" Kann nicht machen {«Klasse MdfT»: fehlender Wert, «Klasse CpyL »: \

Lorem ipsum dolor sit amét, consectetur adipiscing elit.

\ "} in Zeichenfolge eingeben." Nummer -1700 von { «Klasse MDFT»: fehlende Wert, «Klasse CpyL»: "

Lorem ipsum dolor sit amet

."} – Shay

+0

Aus irgendeinem Grund string', dachte ich Sie mit einer Schnur arbeiten in dein Skript. Könnten Sie bitte ein Beispiel dafür geben, wie Ihr Objekt mit HTML aussieht? Sie können auch eine Information hinzufügen, dass es sich um ein Objekt für Ihre Frage handelt. – psimekjr

+0

Sorry, ich bin neu in AppleScript und noch nicht zu schlau. Hier ist eine Paste mit allem, was ich bisher habe, lassen Sie mich wissen, wenn Sie nach etwas anderem suchen? https://pastebin.com/wRp7vaxQ. Folgendes passiert: Der Code wird am Anfang eines Artikels eingefügt, und das ist die Formatierung, die passiert. Ich möchte eine andere Funktion machen, die den ersten Buchstaben nach dem schließenden Span-Tag nimmt und ihn nach innen verschiebt. Der erste Buchstabe ändert sich mit jedem Artikel, was (denke ich) das Problem mit dem ursprünglichen Skript verursacht hat. Danke und lass es mich wissen, wenn ich dir nicht gegeben habe, was du brauchst. – Shay

Verwandte Themen