GFM機能テスト
テーブル
| 機能 | ステータス | 優先度 |
|---|---|---|
| テーブル | ✅ | P1 |
| コードブロック | ✅ | P1 |
| 数式 | ✅ | P2 |
| タスクリスト | ✅ | P2 |
| 取り消し線 | ✅ | P3 |
| 自動リンク | ✅ | P3 |
コードブロック
Go
// 単行コメント
func main() {
/* 複数行コメント
複数行にわたる */
name := "GFM"
count := 42
hexValue := 0xFF
fmt.Println("Hello,", name, "!", count)
// エスケープシーケンスを含む文字列
path := "C:\\Users\\test\\file.txt"
// 関数呼び出し
result := calculate(10, 20)
}
func calculate(a int, b int) int {
return a + b
}
JavaScript/TypeScript
// 変数と型
const name = "GFM";
let count = 42;
var isActive = true;
// 関数定義
function greet(name) {
return `Hello, ${name}!`;
}
// アロー関数
const add = (a, b) => a + b;
// クラス定義
class Calculator {
constructor() {
this.result = 0;
}
add(value) {
this.result += value;
return this;
}
}
// 正規表現
const pattern = /^[a-zA-Z0-9]+$/;
const matches = "test123".match(pattern);
// テンプレートリテラル
const message = `Count: ${count}, Active: ${isActive}`;
// 配列とオブジェクト
const items = [1, 2, 3];
const config = {
host: "localhost",
port: 8080,
ssl: true
};
Python
# 単行コメント
def greet(name: str) -> str:
"""複数行のdocstring
関数の説明"""
return f"Hello, {name}!"
# 変数と型
count = 42
pi = 3.14159
is_active = True
items = [1, 2, 3]
# 文字列操作
path = r"C:\Users\test\file.txt" # 生文字列
message = "Count: {}, Active: {}".format(count, is_active)
# クラス定義
class Calculator:
def __init__(self):
self.result = 0
def add(self, value: int) -> 'Calculator':
self.result += value
return self
# リスト内包表記
squares = [x**2 for x in range(10) if x % 2 == 0]
# 辞書
config = {
"host": "localhost",
"port": 8080,
"ssl": True
}
Rust
// 関数定義
fn main() {
let name = "GFM";
let count: i32 = 42;
let is_active: bool = true;
// 文字列フォーマット
println!("Hello, {}! Count: {}", name, count);
// マッチ式
let result = match count {
0..=10 => "small",
11..=100 => "medium",
_ => "large"
};
// 構造体定義
struct Config {
host: String,
port: u16,
ssl: bool,
}
// ベクター
let items = vec![1, 2, 3];
// Result型
let value: Result<i32, String> = Ok(42);
}
Bash/Shell
#!/bin/bash
# シェルスクリプトの例
# 変数
NAME="GFM"
COUNT=42
IS_ACTIVE=true
# 関数定義
greet() {
local name=$1
echo "Hello, $name!"
}
# 条件分岐
if [ "$IS_ACTIVE" = true ]; then
echo "Active: $NAME"
fi
# ループ
for i in {1..5}; do
echo "Count: $i"
done
# コマンド置換
CURRENT_DIR=$(pwd)
DATE=$(date +%Y-%m-%d)
# 正規表現マッチング
if [[ "$NAME" =~ ^[A-Z]+$ ]]; then
echo "All uppercase"
fi
SQL
-- SQLコメント
SELECT
id,
name,
email,
created_at
FROM users
WHERE
status = 'active'
AND created_at > '2024-01-01'
ORDER BY created_at DESC
LIMIT 10;
-- JOINクエリ
SELECT
u.name,
COUNT(o.id) as order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.name
HAVING COUNT(o.id) > 5;
-- 値の挿入
INSERT INTO users (name, email, status)
VALUES ('John Doe', 'john@example.com', 'active');
インラインコード: pprof、fmt.Println、const、function、def、fn、SELECT。
数式
インライン数式:
ブロック数式:
タスクリスト
- テーブルが正しく表示される
- コードブロックにシンタックスハイライトが適用される
- 数式が表示される
- タスクリストにチェックボックスが表示される
- 取り消し線が機能する
- 自動リンクが機能する
取り消し線
これは非推奨の情報です。
自動リンク
https://example.com にアクセスするか、user@example.com にメールを送信してください。
リンク
参照形式のリンク: GFM仕様 と Markdownガイド。
画像
通常の画像
参照形式の画像
参照形式の画像:
タイトル付き画像
段落内の画像
これは段落内にインライン画像: を含むテキストです。
引用
これは引用です。 複数行にわたることができます。
複数の段落を含めることもできます。
ネストされた引用:
これは別の引用の中にネストされています。
太字と斜体を含む引用。
コードを含む引用:
const x = 42;
水平線
テキストの装飾
太字テキスト と 太字テキスト(代替構文)
斜体テキスト と 斜体テキスト(代替構文)
太字と斜体 と 太字と斜体
太字の中に斜体を含む
斜体の中に太字を含む
ネストされたリスト
順序なしリスト
- 最初の項目
- 2番目の項目
- ネストされた項目1
- ネストされた項目2
- 深くネストされた項目
- 3番目の項目
順序付きリスト
- 最初の項目
- 2番目の項目
- ネストされた項目1
- ネストされた項目2
- 深くネストされた項目
- 3番目の項目
混合リスト
- 順序なし項目
- ネストされた順序付き項目
- 別の順序付き項目
- 別の順序なし項目
- ネストされた順序なし項目
ネストされたタスクリスト
- メインタスク
- サブタスク1
- サブタスク2
- サブサブタスク
- 別のメインタスク
コードとリンクを含むテーブル
| 言語 | コード例 | ドキュメント |
|---|---|---|
| Go | fmt.Println("Hello") | Go Docs |
| JavaScript | console.log("Hello") | MDN |
| Python | print("Hello") | Python Docs |
言語指定なしのコードブロック
これは言語指定のないコードブロックです。
コードブロックとして表示されるはずです。
エスケープされた文字
*斜体ではない* **太字ではない** `コードではない`
エスケープされたバックスラッシュ: \
エスケープされた角括弧: [リンクではない](url)
混合コンテンツ
この段落には太字、斜体、インラインコード、リンク、取り消し線が含まれています。
引用の中に:
- リスト項目
コード:const x = 42- リンク
- 太字と斜体