Utilitas CLI, Rust Crate, Lua Rock, Modul Python, Modul JavaScript, Plugin Neovim, dan paket Sile untuk melemparkan string ke case judul (dan kasus lainnya) menurut panduan gaya spesifik lokal termasuk dukungan Turki.
Proyek ini lahir karena frustrasi dengan penulis dan editor meninggalkan semua judul Caps dalam sumber -sumber Markdown. Tidak ada perkakas yang dapat saya temukan dengan benar-benar mendukung ini ke string yang berbahan-judul (yang lebih fleksibel untuk tujuan pengesahan huruf). Masalahnya sangat sulit karena sebagian besar pekerjaan saya berdekatan dengan Turki, dan bahkan lebih sedikit alat yang tersedia dan memiliki masalah khusus dengan konversi kasus. Banyak alat yang dapat menangani casing kata tunggal, beberapa alat spesifik programmer menangani token dan pengidentifikasi yang dikeluarkan kembali, namun beberapa orang lain dapat menangani string bahasa Inggris . Tapi sepertinya tidak ada yang ada di luar sana untuk mengubah kasus prosa Turki.
CLI default untuk titlecase dan bahasa Inggris, tetapi opsi kasus bawah, atas, dan kalimat juga tersedia. API Perpustakaan Rust, Lua, Python, dan JavaScript memiliki fungsi khusus untuk setiap operasi. Jika memungkinkan API saat ini default untuk aturan bahasa Inggris dan (untuk bahasa Inggris) Panduan Gaya Gruber, tetapi yang lain tersedia.
Gaya Turki mengikuti pedoman Institut Bahasa Turki.
Untuk bahasa Inggris, tiga panduan gaya diketahui: Associated Press (AP), Chicago Manual of Style (CMOS), dan John Gruber's Daring Fireball (Gruber). Gaya Gruber sejauh ini yang paling lengkap, diimplementasikan oleh peti titlecase. Gaya CMOS menangani sejumlah bagian pidato tetapi memiliki masalah terkait tanda baca. Gaya AP sebagian besar tidak diterapkan.
Kontribusi dipersilakan untuk dukungan panduan gaya yang lebih baik atau bahasa lebih lanjut.
Penggunaan CLI cukup sederhana. Input dapat berupa argumen shell atau stdin. Argumen dapat mengontrol berbagai opsi. Untuk informasi penggunaan lengkap periksa decasify --help atau 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 Untuk menginstal, pertama -tama periksa distro Anda untuk paket, misalnya untuk Arch Linux yang baru saja instal melalui pacman -S decasify atau untuk Homebrew melalui brew install decasify .
Jika tidak, untuk banyak platform, Anda dapat menjalankannya secara langsung atau memasangnya ke shell menggunakan Nix Flakes:
$ nix run github:alerque/decasify Untuk melakukan instalasi penuh dari sumber, ambil tarball yang melekat pada rilis terbaru atau gunakan git untuk mengkloning repositori. Jangan gunakan file "kode sumber" zip/tar.gz yang ditautkan dari rilis, pilih file sumber tar.zst . Jika Anda menggunakan tutup git, run pertama ./bootstrap.sh setelah checkout. Ini tidak diperlukan dalam rilis sumber tarballs. Selanjutnya, konfigurasikan dan instal dengan:
$ ./configure
$ make
$ sudo make install Perhatikan bahwa menginstal dari sumber memiliki keuntungan dari include a man page dan cangkang penyelesaian. Semua opsi AutoTools biasa berlaku, lihat --help untuk detailnya. Opsi yang paling umum digunakan terutama untuk pengemas distro mungkin --prefix /usr untuk mengubah lokasi instal dari default /usr/local .
Tentu saja biner telanjang juga dapat dipasang langsung dengan kargo:
$ cargo install --features cli decasify Dalam file Cargo.toml Anda.
[ dependencies ]
decasify = " 0.8 "Kemudian gunakan fungsi dan jenis peti dalam proyek Anda sesuatu seperti ini:
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}" } ;
} Bergantung pada Luarock di proyek Anda atau instal dengan luarocks install decasify :
dependencies = {
" decasify "
}Kemudian impor dan gunakan fungsi yang disediakan:
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 ) Bergantung pada modul Python di proyek Anda atau instal dengan pip install decasify :
[ project ]
dependencies = [
" decasify "
]Kemudian impor dan gunakan fungsi yang disediakan dan ketik kelas:
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 ) Bergantung pada modul JavaScript berbasis WASM dalam proyek Anda dengan npm add decasify :
Kemudian impor dan gunakan fungsi dan kelas yang disediakan:
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 ) Menggunakan rocks.nvim, Cukup Jalankan :Rocks install decasify.nvim .
Menggunakan lazy.nvim, cukup tambahkan { "alerque/decasify" }
Menggunakan manajer plugin lain yang tidak secara otomatis mendeteksi dependensi, Anda perlu menentukan ketergantungan secara manual dan/atau memastikan batu Lua untuk Decasify tersedia, kemudian gunakan repositori ini sebagai plugin namun manajer plugin Anda menangani itu.
-- for packer.nvim
use {
" alerque/decasify " ,
rocks = { " decasify " },
} Menggunakan No Plugin Manager, pastikan Decasify Rock diinstal sesuai dengan versi Lua Neovim dibangun dengan, lalu salin plugin/decasify.lua ke mana pun direktori plugin pengguna Anda berada.
Perintah baru :Decasify akan tersedia (dengan sub -perintah opsional untuk kasus selain judul case) yang mengubah baris saat ini atau rentang garis apa pun. Kasing default, lokal, dan panduan gaya dapat diubah (sebelum atau sesudah pemuatan) dengan variabel lokal global atau buffer:
-- 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 " Sile Typesetter memanfaatkan Luarocks untuk mengelola paket pihak ke -3. Decasify.Sile Rock dapat dipasang dengan luarocks install decasify.sile . Biasanya Anda ingin menyesuaikan versi LUA agar sesuai dengan instalasi Sile Anda, mungkin dengan luarocks --lua $(sile -q <<< SILE.lua_version) install decasify.sile . Selain itu, Anda ingin menggunakan --local untuk menginstal ke akun pengguna Anda alih -alih root sistem, atau --tree lua_modules untuk menginstal secara lokal di dalam satu proyek. Memuatnya dalam dokumen Sile menggunakan biasa use[module=package.decasify] (lihat catatan dalam manual Sile tentang pengaturan jalur paket jika Anda menginstal melalui --local ). Setelah memuat paket memperlihatkan fungsi decasify{} yang dapat mengambil kombinasi case , locale , dan pengaturan style dan menerapkan transformasi yang sesuai untuk konten. Secara default itu akan melacak bahasa konten dokumen.