Ein CLI-Dienstprogramm, ein Rostkiste, ein Lua-Rock, ein Python-Modul, ein JavaScript-Modul, ein Neovim-Plugin und ein Dise-Paket, um Strings in Titelfall (und andere Fälle) gemäß den Guides Style-Spezifikationen in der Region zu werfen, einschließlich türkischer Unterstützung.
Dieses Projekt entstand aus Frustration, als Autoren und Redakteure alle CAPS -Titel in Markdown -Quellen hinterlassen hatten. Keine Werkzeuge, die ich ordnungsgemäß unterstützt habe, um diese in Titelbeschwerden zu gießen (die für die Artensettungszwecke vielseitiger sind). Das Problem war doppelt schwierig, da der größte Teil meiner Arbeit an türkisch angrenzt und noch weniger Werkzeuge verfügbar waren und spezielle Probleme mit Fallkonvertierungen aufweist. Viele Werkzeuge können mit einzelnen Wörtern mit Gehäuse umgehen, einige Programmierer-spezifische Werkzeuge verarbeiten Token und Kennungen, und einige andere können englische Saiten bewältigen. Aber nichts schien da draußen zu sein, um den Fall einer türkischen Prosa zu ändern.
Die CLI -standardmäßige Optionen für Titlecase und Englisch, aber auch unteren, oberen und Satz -Fall -Optionen sind verfügbar. Die APIs Rost-, Lua-, Python- und JavaScript -Bibliotheks -APIs haben Funktionen für jeden Vorgang. Nach Möglichkeit sind die APIs derzeit standardmäßig englische Regeln und (für Englisch) der Guber -Guide im Gruber -Stil, andere sind jedoch verfügbar.
Der türkische Stil folgt den Richtlinien des türkischen Sprachinstituts.
Für Englisch sind drei Stilführer bekannt: Associated Press (AP), Chicago Manual of Style (CMOS) und John Grubers gewagter Feuerball (Gruber). Der Gruberstil ist bei weitem am vollständigsten und wird von der Titlecase -Kiste implementiert. Der CMOS -Stil behandelt eine Reihe von Sprachteilen, hat jedoch Interpunktionsprobleme. Der AP -Stil ist weitgehend unimplementiert.
Beiträge sind willkommen für die Unterstützung für bessere Style Guide oder weitere Sprachen.
Die Verwendung der CLI ist ziemlich einfach. Eingaben können entweder Shell -Argumente oder Stdin sein. Argumente können die verschiedenen Optionen steuern. Informationen zum vollständigen Verwendungsinformationen finden Sie in decasify --help oder man decasify .
$ decasify -l tr ILIK SU VE İTEN RÜZGARLAR
Ilık Su ve İten Rüzgarlar
$ echo ILIK SU VE İTEN RÜZGARLAR | decasify -l tr
Ilık Su ve İten Rüzgarlar
$ echo foo BAR AND baz: an alter ego | decasify -l en -s gruber
Foo BAR and Baz: An Alter Ego Überprüfen Sie zum Installieren zunächst Ihre Distribution auf Pakete, z. B. für Arch Linux, nur über pacman -S decasify oder für Homebrew über brew install decasify .
Andernfalls können Sie es für viele Plattformen direkt ausführen oder mit NIX Flocken an eine Shell installieren:
$ nix run github:alerque/decasify Um eine vollständige Installation von Quelle durchzuführen, schnappen Sie sich den an die neuesten Version angeschlossenen Tarball oder verwenden Sie Git, um das Repository zu klonen. Verwenden Sie nicht die "Quellcode" Zip/Tar.gz -Dateien, die aus Veröffentlichungen verknüpft sind, für die Quelldatei tar.zst . Wenn Sie einen Git Close verwenden, rennen Sie zuerst ./bootstrap.sh nach dem Auschecken. Dies ist in der Quellveröffentlichungstarballs nicht erforderlich. Konfigurieren und installieren Sie als Nächstes mit:
$ ./configure
$ make
$ sudo make install Beachten Sie, dass die Installation von Source den Vorteil hat, dass eine Mannseite und die Shell -Abschlüsse enthalten sind. Alle üblichen Autotools -Optionen gelten. Weitere Informationen finden Sie unter --help . Die am häufigsten verwendete Option, insbesondere für Distribonverpacker, ist wahrscheinlich --prefix /usr um den Installationsort aus der Standardeinstellung von /usr/local zu ändern.
Natürlich kann die nackte Binärdatei auch direkt mit Fracht installiert werden:
$ cargo install --features cli decasify In Ihrer Datei Cargo.toml .
[ dependencies ]
decasify = " 0.8 "Verwenden Sie dann die Kistenfunktionen und -Typen in Ihrem Projekt so etwas:
use decasify :: titlecase ;
use decasify :: { Locale , StyleGuide } ;
fn demo ( ) {
let input = "ILIK SU VE İTEN RÜZGARLAR" ;
let output = titlecase ( input , Locale :: TR , StyleGuide :: LanguageDefault ) ;
eprintln ! { "{output}" } ;
let input = "title with a twist: a colon" ;
let output = titlecase ( input , Locale :: EN , StyleGuide :: DaringFireball ) ;
eprintln ! { "{output}" } ;
} Verlassen Sie sich von der Luarock in Ihrem Projekt oder installieren Sie mit luarocks install decasify :
dependencies = {
" decasify "
}Importieren und verwenden Sie dann die bereitgestellten Funktionen:
local decasify = require ( " decasify " )
local input = " ILIK SU VE İTEN RÜZGARLAR "
local output = decasify . titlecase ( input , " tr " )
print ( output )
input = " title with a twist: a colon "
output = decasify . titlecase ( input , " en " , " gruber " )
print ( output ) Verlassen Sie sich vom Python -Modul in Ihrem Projekt oder installieren Sie mit pip install decasify :
[ project ]
dependencies = [
" decasify "
]Importieren und verwenden Sie dann die bereitgestellten Funktionen und Typklassen:
from decasify import *
input = "ILIK SU VE İTEN RÜZGARLAR"
output = titlecase ( input , Locale . TR )
print ( output )
input = "title with a twist: a colon"
output = titlecase ( input , Locale . EN , StyleGuide . DaringFireball )
print ( output ) Abhängig von dem WASM -basierten JavaScript -Modul in Ihrem Projekt mit npm add decasify :
Importieren und verwenden Sie dann die bereitgestellten Funktionen und Klassen:
import { titlecase , uppercase , lowercase , Locale , StyleGuide } from 'decasify' ;
var input = "ILIK SU VE İTEN RÜZGARLAR"
var output = titlecase ( input , Locale . TR )
console . log ( output )
var input = "title with a twist: a colon"
var output = titlecase ( input , Locale . EN , StyleGuide . DaringFireball )
console . log ( output ) Mit Rocks.NVIM einfach run :Rocks install decasify.nvim .
Verwenden Sie Lazy.nvim einfach { "alerque/decasify" }
Mit anderen Plugin -Managern, die Abhängigkeiten nicht automatisch erkennen, müssen Sie die Abhängigkeit manuell angeben und/oder sicherstellen, dass der Lua -Rock für Decaasify verfügbar ist. Verwenden Sie dieses Repository als Plugin, aber Ihr Plugin -Manager verarbeitet das.
-- for packer.nvim
use {
" alerque/decasify " ,
rocks = { " decasify " },
} Stellen Sie sicher, dass der Dekasify -Rock mit dem Dekasify -Rock mit der Version von Lua Neovim installiert ist, mit der plugin/decasify.lua zu dem Plugin -Verzeichnis Ihres Benutzers kopiert wird.
Ein neuer Befehl :Decasify wird verfügbar (mit optionalen Unterbefehlungen für andere Fälle als Titelfall), die die aktuelle Zeile oder einen beliebigen Bereich von Zeilen umwandeln. Der Standardfall, das Gebietsschema und der Style -Handbuch können (vor oder nach dem Laden) mit globalen oder pufferischen lokalen Variablen geändert werden:
-- Set the default target case globally
vim . g . decasify_case = " title "
-- Change the locale for the current buffer
vim . b . decasify_locale = " tr "
-- Change the default style guide globally
vim . g . decasify_style = " gruber " Der Sile TypeSetter nutzt Luarocks, um Drittanbieter -Pakete zu verwalten. Der Dekasify.sile -Rock kann mit luarocks install decasify.sile . Normalerweise möchten Sie die Lua -Version an Ihre Diagramminstallation anpassen, möglicherweise mit luarocks --lua $(sile -q <<< SILE.lua_version) install decasify.sile . Zusätzlich möchten Sie verwenden --local , um in Ihrem Benutzerkonto anstelle des Systemroots zu installieren, oder --tree lua_modules um lokal in einem einzigen Projekt zu installieren. Wenn Sie in einem Dikten geladen werden, werden die üblichen use[module=package.decasify] verwendet (siehe Hinweise im SILE -Handbuch zum Einstellen von Paketpfaden, wenn Sie über --local installiert sind). Sobald das Paket geladen wurde, enthält die Funktion decasify{} , die eine beliebige Kombination aus case , locale und style aufnehmen kann, und wendet die entsprechende Transformation in den Inhalt an. Standardmäßig verfolgt es die Sprache des Dokumentinhalts.