Oh MyUtils

YAMLフォーマッター&バリデーター - YAML整形・検証 オンライン

シンタックスハイライトとツリービューでYAML設定ファイルをフォーマット、検証、圧縮。Kubernetes、Docker Compose、GitHub Actions対応 — 100%ブラウザ処理。

インデント
キーをソート
Off
入力
出力
 

よくある質問

YAMLフォーマッターとは?

YAMLフォーマッターは、YAMLファイルを一貫したインデント、スペーシング、構造でリフォーマットするツールです。YAMLはKubernetes、Docker Compose、GitHub Actionsなど多くのDevOpsツールで設定ファイルとして広く使われている人間が読みやすいデータシリアライゼーション言語です。

このYAMLフォーマッターの使い方は?

タブから操作を選択:フォーマット、圧縮、またはツリービュー。入力エリアにYAMLを貼り付け、.yaml/.ymlファイルをアップロード、またはSampleボタンでサンプルを読み込みます。ツールが自動的にリアルタイムで検証・処理します。Copyボタンでクリップボードにコピー、Downloadで.yamlファイルとして保存できます。

データは安全ですか?

データは100%安全で、ブラウザから外に出ることはありません。このYAMLフォーマッターは完全にクライアントサイドJavaScriptで動作するjs-yamlライブラリを使用しています。サーバーにデータは送信されません。すべての処理はデバイス上でローカルに行われます。

YAML圧縮とは?

YAML圧縮は、ブロックスタイル(インデント付き)をフロースタイル({key: value}形式)に変換し、コメントと不要な空白を削除してYAMLを最小サイズに圧縮します。環境変数やCLI引数にYAMLを埋め込む際に便利です。

フォーマット時にYAMLコメントはどうなりますか?

YAMLコメント(#以降のテキスト)はフォーマット時に失われます。js-yamlパーサーがパース段階でコメントを破棄するためです。これはほとんどのYAMLパーサーに共通の制限です。重要なコメントのあるファイルは、フォーマット前にバックアップを取ってください。

YAMLパースが失敗する理由は?

一般的な原因:不正確なインデント、タブとスペースの混在(YAMLはスペースのみ許可)、クオートされていない特殊文字、重複キー、不正なマルチラインストリング指示子、そしてno、yesなどの値がブーリアンとして解釈される「ノルウェー問題」があります。

YAMLとJSONの違いは?

YAMLとJSONは構造化データを表現しますが大きく異なります。JSONはオブジェクトに{}、配列に[]を使い、ダブルクオートのキーが必要です。YAMLはインデントで構造を表し、コメント(#)、マルチラインストリング、アンカー/エイリアスなどの追加機能があります。JSONはAPIに、YAMLは設定ファイルに適しています。

コード例

// YAML formatting and validation using js-yaml
// Install: npm install js-yaml
const yaml = require('js-yaml');

// Validate YAML
function validateYaml(input) {
  try {
    yaml.load(input);
    return { valid: true };
  } catch (error) {
    return {
      valid: false,
      error: error.reason || error.message,
      line: error.mark ? error.mark.line + 1 : undefined,
      column: error.mark ? error.mark.column + 1 : undefined,
    };
  }
}

// Format/Beautify YAML
function formatYaml(input, options = {}) {
  const { indent = 2, sortKeys = false } = options;
  try {
    const parsed = yaml.load(input);
    const formatted = yaml.dump(parsed, {
      indent,
      sortKeys,
      lineWidth: -1,
      noRefs: true,
    });
    return { success: true, output: formatted };
  } catch (error) {
    return { success: false, error: error.message };
  }
}

// Minify YAML (convert to flow style)
function minifyYaml(input) {
  try {
    const parsed = yaml.load(input);
    const minified = yaml.dump(parsed, {
      flowLevel: 0,
      lineWidth: -1,
      noRefs: true,
    });
    return { success: true, output: minified };
  } catch (error) {
    return { success: false, error: error.message };
  }
}

// Example
const yamlStr = 'name: test\nvalue: 42\nitems:\n  - one\n  - two';
console.log('Valid:', validateYaml(yamlStr));
console.log('Formatted:', formatYaml(yamlStr));
console.log('Minified:', minifyYaml(yamlStr));

関連ツール