CLIユーティリティ、Rust Crate、Lua Rock、Pythonモジュール、JavaScriptモジュール、Neovimプラグイン、およびSileパッケージは、トルコのサポートを含むロケール特定のスタイルガイドに従ってタイトルケース(およびその他のケース)に文字列をキャストします。
このプロジェクトは、著者や編集者がすべてのキャップタイトルをマークダウンソースに残していることに不満から生まれました。適切にサポートされているツールがあり、これらをタイトルを介した文字列に鋳造することができませんでした(これは、版形設定の目的でより汎用性があります)。私の仕事のほとんどはトルコ語に隣接しており、さらに少ないツールが利用可能であり、ケース変換に特別な問題があるため、問題は二重に困難でした。多くのツールはケーシングの単一の単語を処理でき、一部のプログラマ固有のツールは再ケーシングトークンと識別子を処理しますが、他のツールでは英語の文字列を処理できます。しかし、トルコの散文のケースを変えるためにそこにあるようには見えませんでした。
CLIはデフォルトでタイトルケースと英語がありますが、下、上、および文のケースオプションも利用できます。 Rust、Lua、Python、およびJavaScriptライブラリAPIには、各操作に固有の機能があります。可能であれば、APIは現在、英語のルールと(英語の場合)Gruberスタイルガイドのデフォルトですが、その他は利用可能です。
トルコのスタイルは、トルコ語研究所のガイドラインに従います。
英語の場合、AP通信(AP)、シカゴスタイルマニュアル(CMOS)、ジョングルーバーの大胆な火の玉(グルーバー)の3つのスタイルガイドが知られています。 Gruberスタイルは、はるかに完全なもので、TitleCase Crateによって実装されています。 CMOSスタイルは、スピーチの多くの部分を処理しますが、句読点関連の問題があります。 APスタイルはほとんど実装されていません。
より良いスタイルガイドのサポートまたはさらなる言語には、貢献が歓迎されます。
CLIの使用は非常に簡単です。入力は、シェル引数またはstdinのいずれかです。引数はさまざまなオプションを制御できます。完全な使用情報についてはman decasify decasify --helpチェックします。
$ 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インストールするには、最初にパッケージのディストリビューションをチェックします。たとえば、Arch Linuxを使用して、 pacman -S decasifyを介してインストールするか、 brew install decasifyを介してHomeBrewをインストールします。
それ以外の場合は、多くのプラットフォームで直接実行するか、nixフレークを使用してシェルにインストールできます。
$ nix run github:alerque/decasifyソースから完全なインストールを行うには、最新リリースに取り付けられたターボールをつかむか、Gitを使用してリポジトリをクローンします。リリースからリンクされた「ソースコード」ZIP/TAR.GZファイルを使用しないでくださいtar.zstソースファイルに移動します。 git closeを使用する場合は、チェックアウト後に最初にrun ./bootstrap.shを実行します。これは、ソースリリースのターボールでは必要ありません。次に、以下を設定してインストールします。
$ ./configure
$ make
$ sudo make installソースからインストールするには、Manページとシェルの完成などの利点があることに注意してください。すべての通常のAutoToolsオプションが適用されます。詳細については、 --help参照してください。特にディストリビューションパッケージに最も一般的に使用されるオプションは、おそらく/usr/localのデフォルトからインストール場所を変更するために--prefix /usrです。
もちろん、裸のバイナリは貨物に直接設置することもできます。
$ cargo install --features cli decasify あなたのCargo.tomlファイルで。
[ dependencies ]
decasify = " 0.8 "次に、プロジェクトでクレート機能とタイプを使用します。
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}" } ;
} プロジェクトのLuarockに依存するか、 luarocks install decasify 。
dependencies = {
" decasify "
}次に、提供された関数をインポートして使用します。
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 )プロジェクトのPythonモジュールに依存するか、 pip install decasify 。
[ project ]
dependencies = [
" decasify "
]次に、提供された関数とタイプクラスをインポートして使用します。
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 )npm add decasifyを使用して、プロジェクトのWASMベースのJavaScriptモジュールに依存しています。
次に、提供された関数とクラスをインポートして使用します。
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 ) rocks.nvimを使用して、単純に実行:Rocks install decasify.nvim 。
lazy.nvimを使用して、単に{ "alerque/decasify" }を追加するだけです
依存関係を自動的に検出しない他のプラグインマネージャーを使用すると、依存関係を手動で指定したり、decasify用のLua Rockが利用可能であることを確認する必要があります。その後、このリポジトリをプラグインとして使用しますが、プラグインマネージャーはそれを処理します。
-- for packer.nvim
use {
" alerque/decasify " ,
rocks = { " decasify " },
}プラグインマネージャーを使用しないで、Decasify RockがLUA Neovimのバージョンに一致することを確認し、ユーザーのプラグインディレクトリがどこにいてもplugin/decasify.luaをコピーします。
新しいコマンド:Decasify 、現在の行または範囲の行を変換する(タイトルケース以外のケースのオプションのサブコマンドを使用して)利用可能になります。デフォルトのケース、ロケール、およびスタイルガイドは、グローバルまたはバッファーローカル変数を使用して(ロード前またはロード後)変更できます。
-- 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はLuarocksを活用して、サードパーティパッケージを管理します。 decasify.sileロックは、 luarocks install decasify.sileで設置できます。通常、LUAバージョンを調整して、Sileのインストールに合わせて、おそらくluarocks --lua $(sile -q <<< SILE.lua_version) install decasify.sileする必要があります。さらに、システムルートの代わりにユーザーアカウントにインストールするために--localを使用したい場合、または--tree lua_modules単一のプロジェクト内にローカルにインストールします。 Sileドキュメントにロードすると、通常のuse[module=package.decasify]が使用されます( --local経由でインストールした場合は、パッケージパスの設定についてのSileマニュアルのメモを参照)。パッケージをロードすると、 case 、 locale 、 style設定の任意の組み合わせを取り、適切な変換をコンテンツに適用できるdecasify{}関数が公開されます。デフォルトでは、ドキュメントコンテンツの言語を追跡します。