nuitsjp / CopyToMarkdownAddIn

Add-In for copying from Excel to Markdown
MIT License
172 stars 15 forks source link

Header部分のみ中央揃えとするコマンドが文字列として認識されてしまいます #13

Closed y-vectorfield closed 3 years ago

y-vectorfield commented 3 years ago

Header部分のみ中央揃えとする形式の表

hoge hoge
test test

という形式の表の場合|---|---|の部分が文字列と認識されてしまいます。

nuitsjp commented 3 years ago

ご報告ありがとうございます!

ただ、上のテキストをコピペしてみましたが正しく動作するようです。 何か操作に相違がありますか?すいませんが際現にご協力いただけると助かります。 copytomarkdown

y-vectorfield commented 3 years ago

すみません。説明が言葉足らずでした。以下の様なマークダウンを変換すると、

# 表テスト

|パラメータ|設定値の種類|デフォルト値|説明|
|---|---|---|---|
|A|B|C|D|

以下の様になります。セクション部分は段落区切りを分かりやすくするために残す必要が有ってそのままコピーしています。

image

nuitsjp commented 3 years ago

すいませんちょっと炎上中で、検討できていません。 近いうちに回答させていただきますが、仕様にかかわる点がありそうなので 単純に直して終了ということにはならないかもしれません。

nuitsjp commented 3 years ago

いろいろ考えて、実装しかけたのですがやはりこれは仕様といことで取り下げさせてください。

たとえば、GitHubのこのコメント欄とかで次の文字列を張り付けてPreviewを見てみてください。

Column1|Column2
--|--
1-1|1-2

すると、こちらのような表が表示されると思います。

Column1 Column2
1-1 1-2

先頭や末尾の「|」はあっても無くても良い仕様なんですね。

なので実は「# 表テキスト」というのも、テーブルの1行目1列目のセルとして認識して処理しています。 そしてアライメントの指定は2行目でするルールなので、次の行を見に行きます。 しかし例示いただいたMarkdownの場合、アライメントの指定がないので、アライメント指定の無いテーブルとして認識しています。

Copy to Markdown AddInではアライメント指定の無いテーブルも許容しています。 その結果、4行目で本来アライメントとして指定したい行が、テーブルの値として利用されています。

これを回避しようとすると、つぎのどちらかの仕様に変更しないといけなくなります。

  1. テーブルの先頭はパイプ始まりにしないといけない
  2. アライメントを必ずしていしなくてはいけない

どっちかを立てると、どっちかが立たないこと。 また指摘いただいたパターンはテーブルではない値を扱いたいという意図でもあることから すいませんが、こちらは仕様ということでクローズさせていただきます。