Entwickler schreiben JIRA-Tickets; Entwickler gestalten die Ticketelemente nicht einheitlich. Wir möchten den Kunden die Ticketzusammenfassungen präsentieren, jedoch in einem einheitlichen Format.
Wir verwenden den FreeMarker Pre-Processor (fmpp), der die Groß- und Kleinschreibung von Titeln und Anfangsbuchstaben unterstützt, aber bei diesen einfachen Funktionen gehen Informationen verloren (z. B. wird „BCServices“ zu „Bcservices“ und „iPhone“ wird zu „Iphone“).
Es gibt JavaScript-Code, der die Zusammenfassungen hervorragend einheitlich macht:
Dadurch werden die folgenden Zusammenfassungen wie erwartet formatiert:
Wir suchen nach etwas, das von der Befehlszeile (als Teil eines Batch-Programms) ausgeführt werden kann und keine große Binärdatei erfordert. Im Idealfall:
@echo off
headline < "On iPhone the Transcript Extends Outside of Screen Frame" > case.txt
set /P title=<case.txt
Pie-in-the-Sky würde es ermöglichen, verschiedene Stile auf der Befehlszeile auszugeben:
@echo off
headline --style=CMS < "On iPhone the Transcript Extends Outside of Screen Frame" > case.txt
set /P title=<case.txt
Wir suchen nicht nach NodeJS-Modulen, Ruby-Code, Go-Programmen, Perl-Skripten und ähnlichem. Einfaches JavaScript ist in Ordnung (nicht ideal, da es etwas wie Rhino erfordert).
Welches Java-, C-, DOS-Batch-, kleine Windows-Binär-, kostenlose/unbegrenzte REST-API oder Unix-Shell-Dienstprogramm ermöglicht die Verarbeitung von Sätzen als "Überschriftenfall" gemäß den manuellen Standardstilen?
Es ist übertrieben, eine JavaScript-Engine (Rhino) einzubinden, um einen regulären Ausdruck auszuführen. Obwohl meine Antwort wie erwartet funktioniert (einschließlich einer Java-Klasse, die die Aufgabe ausführt), sind alternative Vorschläge willkommen.
Da Java in den Anforderungen enthalten war:
Laufen:
java -cp rhino\lib\rhino.jar org.mozilla.javascript.tools.shell.Main ^^
-e "load( 'to-title-case.js' ); ^^
print(""BCMailPlusFTPClient sends document without document ID"".toHeadlineCase())"
Ausgang:
BCMailPlusFTPClient sendet Dokument ohne Dokument-ID