GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

amperser

proselint – 散文のリンター

投稿日:

散文のリンター。 http://proselint.com

最高の作家であっても、ライティングは難しいとされています。アドバイスが不足しているわけではありません。使用ガイド、辞書、テクニカルマニュアル、エッセイ、パンフレット、ウェブサイト、そして心と精神に溢れています。偉大な著者と編集者の しかし、Strunk&Whiteを見ていると、誰かがより良い作家になることはほとんどありません。それはあなたをStrunkとWhiteのどちらにも変えません。 そして誰も、 ガーナーのモダンアメリカン使用法 (975ページの使用ガイド)から、すべてのアドバイスを彼らが書いているすべてに適用する能力を持っていません。 実際、執筆上のアドバイスを読んで、より良いライターになるという考えは、学習と記憶に関する永遠の前提にあります。 したがって、書面に関する知識の伝統的なフォーマットは本質的に不活性であり、変容を待っている。

私たちは簡単な解決法を考案しました。 proselint 、英語の散文のリンターです。 (リンターは、スペルチェッカーのように、文書をスキャンして分析するコンピュータープログラムです。)

proselintは、世界で最も偉大な作家と編集者をあなたの側に置き、そこで彼らはあなたの散文を改善するための提案を囁いています。 ブライアン・ガーナー、デイヴィッド・フォスター・ウォレス、チャック・パラハニーク、スティーヴ・ピッカー、メアリー・ノリス、マーク・トウェイン、エルモア・レナード、ジョージ・オーウェル、マシュー・バターテック、ウィリアム・ストーク、EBホワイト、フィリップ・コルベット、アーネスト・ゴーワーズ、世界最高級の文学誌や新聞の編集スタッフなどが含まれます。 私たちの目標は、ベストプラクティスに関する知識を文書に集約し、その知識をすべての著者が散文の形ですぐにアクセスできるようにすることです。

proselintは、既存のツールに統合できるコマンドラインユーティリティです。

インストール

これを稼働させるには、 pipを使用してインストールします

pip install proselint

フェドラ

sudo dnf install proselint

Debian

sudo apt install python3-proselint

Ubuntu

sudo add-apt-repository universe
sudo apt install python3-proselint

他のソフトウェアのためのプラグイン

proselintは以下から入手可能です:

使用法

次のテキストをtext.mdという文書があるとします。

John is very unique.

コマンドラインを使用して、ドキュメントproselintを実行することができます。

❯ proselint text.md

これは、1行に1つずつ、stdoutに提案のリストを出力します。 それぞれの提案は次の形式をとります:

text.md:<line>:<column>: <check_name> <message>

例えば、

text.md:0:10: wallace.uncomparables Comparison of an uncomparable: 'unique' cannot be compared.

コマンドラインユーティリティは、 – --jsonフラグを使用してJSONで提案を印刷することもできます。 この場合、出力はかなりリッチです。

{
    // Type of check that output this suggestion.
    check: "wallace.uncomparables",

    // Message to describe the suggestion.
    message: "Comparison of an uncomparable: 'unique' cannot be compared.",

    // The person or organization giving the suggestion.
    source: "David Foster Wallace"

    // URL pointing to the source material.
    source_url: "http://www.telegraph.co.uk/a/9715551"

    // Line where the error starts.
    line: 0,

    // Column where the error starts.
    column: 10,

    // Index in the text where the error starts.
    start: 10,

    // Index in the text where the error ends.
    end: 21,

    // start - end
    extent: 11,

    // How important is this? Can be "suggestion", "warning", or "error".
    severity: "warning",

    // Possible replacements.
    replacements: [
        {
            value: "unique"
        }
    ]
}

リンターを別のプログラムの一部として実行するには、 proselint.tools lint関数を使用します。

import proselint

suggestions = proselint.tools.lint("This sentence is very unique")

これは、提案のリストを返します:

[('weasel_words.very', "Substitute 'damn' every time you're inclined to write 'very;' your editor will delete it and the writing will be just as it should be.", 0, 17, 17, 22, 5, 'warning', None), ('uncomparables.misc', "Comparison of an uncomparable: 'very unique.' is not comparable.", 0, 17, 17, 29, 12, 'warning', None)]

チェック

$XDG_CONFIG_HOME/proselint/config変更することでチェックを無効にすることができます。 $XDG_CONFIG_HOMEが設定されていないか空の場合、 ~/.config/proselint/configが使用されます。 また、互換性の理由から、 $XDG_CONFIG_HOME/proselint/configが存在しない場合、レガシー設定~/.proselintrcが使用されます。

{
  "checks": {
    "typography.diacritical_marks": false
  }
}
ID 説明
airlinese.misc 航空業界の専門用語を避ける
annotations.misc テキストに注釈を残す
archaism.misc 古風な書式を避ける
cliches.hell 共通のクリシェを避ける
cliches.misc クリシェを避ける
consistency.spacing 一貫した文章間隔
consistency.spelling 一貫したスペル
corporate_speak.misc 企業の流行語を避ける
cursing.filth 避けるべき言葉
cursing.nfl NFLによって禁止されている単語を避ける
dates_times.am_pm 時間帯に適したフォームを使用する
dates_times.dates スタイリッシュな日付の書式設定
hedging.misc ヘッジしていない
hyperbole.misc 双曲線ではない
jargon.misc 雑多な専門用語の使用を避ける
lgbtq.offensive_terms 攻撃的なLGBTQの言葉を聞く
lgbtq.terms LGBTQの用語を誤用
lexical_illusions.misc 語彙的な錯覚を避ける
links.broken 既存のサイトにのみリンクする
malapropisms.misc 一般的な悪性化を避ける
misc.apologizing 自信を持って
misc.back_formations 不必要なバックフォーメーションの回避
misc.bureaucratese 官僚関係を避ける
misc.but “But …”で段落を始めるのを避けてください
misc.capitalization 大文字にするべきものだけを大文字にする
misc.chatspeak ローリングやその他のチャットスピークを避ける
misc.commercialese 商業界の専門用語を避ける
misc.currency 余分な通貨記号を避ける
misc.debased 脱落した言語の回避
misc.false_plurals 誤った複数形の回避
misc.illogic 非論理的な形を避ける
misc.inferior_superior 優れている、ない
misc.latin ラテン語のフレーズの過度な使用を避ける
misc.many_a 多くの単数形
misc.metaconcepts メタコンセプトの過度な使用を避ける
misc.narcissism 研究についてではなく、主題について話す
misc.phrasal_adjectives ハイフネーション形容詞
misc.preferred_forms 雑多な好みの書式
misc.pretension うんざりを避ける
misc.professions 正しい名前でジョブを呼び出す
misc.punctuation 句読点を賢明に使用する
misc.scare_quotes 恐怖の引用符は必要なときにのみ使う
misc.suddenly 突然言葉を避ける
misc.tense_present 現在の時制からのアドバイス
misc.waxed 詩的なワックス
misc.whence “whence”を使うと、
mixed_metaphors.misc メタファを混在させない
mondegreens.misc モンクグリーンを避ける
needless_variants.misc 好ましいフォームの使用
nonwords.misc 非キーワードの使用を避ける
oxymorons.misc 擬態語を避ける
psychology.misc 誤った心理学的用語の使用を避ける
redundancy.misc 冗長性を避けて物事を2回言います
redundancy.ras_syndrome RAS症候群の回避
skunked_terms.misc スカンクされた用語の使用を避ける
spelling.able_atable – 対 – 対抗可能
spelling.able_ible 可能な対
spelling.athletes アスリート名のスペル
spelling.em_im_en_in -emと-imと-enと-inの違い
spelling.er_or -er vs. -or
spelling.in_un また、
spelling.misc コアリングのスペルの単語
security.credit_card クレジットカード番号を秘密にする
security.password パスワードを秘密にする
sexism.misc 性差別を避ける
terms.animal_adjectives 動物の形容詞
terms.denizen_labels 正しい名前でデニズンに電話する
terms.eponymous_adjectives 正しい名前で人に電話をかける
terms.venery 動物のグループを正しい名前で呼び出す
typography.diacritical_marks dïacríticâlマークを使用して
typography.exclamation 感嘆符の過度な使用を避ける
typography.symbols 右の記号を使う
uncomparables.misc 比較できないものを比較しない
weasel_words.misc イタチの言葉を避ける
weasel_words.very 「非常に」という言葉を避ける

貢献する

proselintに貢献することにproselintますか? 素晴らしい – あなたが手助けできる方法はたくさんあります。 私たちのウェブサイトでは、世界中で最も優れた筆記具にproselint組み込む方法について説明しています。

サポート

問題が発生した場合は、問題を開いたり、 hello @ amperser.comに電子メールを送ってください

自動テストの実行

自動テストは、 proselint/testsディレクトリに含まれています。 これらのテストをローカルで実行するには、テストランナーのノーズを使用して、次のコマンドを実行します。

cd tests/
nosetests

出力を監視します。 Noseは、Pythonバージョン2.7,3.4,3.5、および3.6と互換性があります。

テストでのすべての自動テストtests/は、新たに追加されたテストを含む、提出された各プルリクエストの一部として実行されます。

ライセンス

このプロジェクトはBSDライセンスの下でライセンスされています。







-amperser
-, , , , , , ,

執筆者: