Überschriften-Großschreibung

Hintergrund

Entwickler schreiben JIRA-Tickets; Entwickler gestalten die Ticketelemente nicht einheitlich. Wir möchten den Kunden die Ticketzusammenfassungen präsentieren, jedoch in einem einheitlichen Format.

Problem

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“).

Beispiele

Es gibt JavaScript-Code, der die Zusammenfassungen hervorragend einheitlich macht:

Dadurch werden die folgenden Zusammenfassungen wie erwartet formatiert:

  • Auf dem iPhone erstreckt sich das Transkript außerhalb des Bildschirmrahmens
  • PEAR- und GNA-Berichtsleistung
  • BCMailPlusFTPClient sendet Dokument ohne Dokument-ID
  • JWebUnit: Problem mit dem Meta-Refresh-Tag von Nicht-PEN-Bestellungen

Anforderungen

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).

Frage

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?

Nachtrag

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.

Antworten (1)

Nashorn

Da Java in den Anforderungen enthalten war:

Beispiel

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