Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

箇条書き周りで文字が抜けることがある #4

Closed
inao opened this issue Mar 5, 2013 · 22 comments
Closed

箇条書き周りで文字が抜けることがある #4

inao opened this issue Mar 5, 2013 · 22 comments
Assignees
Labels

Comments

@inao
Copy link
Collaborator

inao commented Mar 5, 2013

別な原稿で発生しましたので、ご報告させてください。

問題が出るケース

===
--- in md2inao
* あ
* あ

  い
--- expected
・あ
・あ

  い

現在は以下のようになります。2番目の「あ」と「い」が消えちゃう。

・あ

===
--- in md2inao
* あ

* い
--- expected
・あ

・い

現在は以下のようになります。「あ」と「い」が消えちゃう。


問題が出ないケース(ご参考用)

===
--- in md2inao
* あ

い
--- expected
・あ
い

===
--- in md2inao
* あ

い

* あ
--- expected
・あ
い
・あ

===
--- in md2inao
あ

 い

  う

    え

     お

 か
--- expected
あ
い
う
◆list/◆
え

 お
◆/list◆
 か
@ghost ghost assigned naoya Mar 7, 2013
@naoya
Copy link
Owner

naoya commented Mar 7, 2013

* Hoge
* Foo
* Bar

Piyo

は Markdown が

<ul>
  <li>Hoge</li>
  <li>Foo</li>
  <li>Bar</li>
</ul>

と正しく解釈するのに対して

* Hoge
* Foo
* Bar

  Piyo

と字下げをすると

<ul>
<li>Foo</li>
<li>Bar</li>
<li><p>Baz</p>

<p>Piyo</p></li>
</ul>

こうなっちゃのうのが原因ですね。"<空白> piyo" が一つの段落だと解釈されてリストに入っちゃうっていう・・・。うーむめんどくさい。

@naoya
Copy link
Owner

naoya commented Mar 7, 2013

To: @inao

ちなみに

===
--- in md2inao
* あ
* あ

  い
--- expected
・あ
・あ

  い

これって正しくは

===
--- in md2inao
* あ
* あ

  い
--- expected
・あ
・あ
  い

ですよね? 改行は取り除かれるというルールで。

@naoya
Copy link
Owner

naoya commented Mar 7, 2013

* Foo

* Baz

・Foo

・Baz

ではなくて

・Foo
・Baz

ですよね

naoya added a commit that referenced this issue Mar 7, 2013
@naoya
Copy link
Owner

naoya commented Mar 7, 2013

修正して Web版にも反映済み
念のため t/07_list.t のテストが仕様通りか確認お願いします > @inao

問題なければ Close してください。

@inao
Copy link
Collaborator Author

inao commented Mar 7, 2013

どうもありがとうございます!
ご指摘の通り、 t/07_list.t が正しいです。失礼いたしました。

@inao inao closed this as completed Mar 7, 2013
@inao
Copy link
Collaborator Author

inao commented Mar 7, 2013

うう、すみませんすみません。
ナマイキに最小限の再現ケースのみお伝えしようとして、漏れがあったようです。
発端となった原稿で検証しましたところ、まだ発生してしまいました……。

以下のMarkdownが、

  本文。

* 箇条書き
* 箇条書き

  本文。

  本文。

以下のようになります。

本文。
・箇条書き
・

上記が最小限の再現ケースだと思うのですが、必要十分な情報とは限りませんので、同じ過ちを繰り返しませんよう、元原稿をメールにてお送りさせていただきます。

@inao inao reopened this Mar 7, 2013
@naoya
Copy link
Owner

naoya commented Mar 8, 2013

これ正しいケースはどうなりますかね

===
--- in md2inao
  blah blah

* Hoge
* Foo

  bar

  baz
--- expected
  blah blah
・Hoge
・Foo
  bar
  baz

こうかな?

@naoya
Copy link
Owner

naoya commented Mar 8, 2013

あと字下げの仕様がよくわかってないのですが、どっかに説明した仕様はありましたっけ・・・
字下げは先頭に空白2なのですかね。ここが Markdown と相性が悪い模様・・・

@naoya
Copy link
Owner

naoya commented Mar 8, 2013

https://github.com/naoya/md2inao.pl/blob/master/old_files/x_output.txt

これみる限り字下げは<ホワイトスペース2> ではなくて <全角空白> で行うもので、そもそも件の問題はこれをホワイトスペース2でやっちゃってるのが問題なような・・・?

もし自分の理解が正しければ、問題への対応としては

  • 著者さんに字下げは全角空白でやってもらう
  • ホワイトスペース2の字下げも字下げとして、良い感じで解釈する

の二通りがあると思います。後者に関してはホワイトスペース2の字下げ部分を全部全角空白に置き換える、というワークアラウンドは入れようと思えば入れられます。

@inao
Copy link
Collaborator Author

inao commented Mar 8, 2013

おっしゃるとおりで、本来的には書き方の間違えで、「著者さんに字下げは全角空白でやってもらう」だと思います。

ただ、本文が抜けちゃうっていう挙動はすごく怖いので、「ホワイトスペース2の字下げも字下げとして、良い感じで解釈する」にしていただけるとたいへん助かります。

@naoya
Copy link
Owner

naoya commented Mar 8, 2013

了解です。その仕様で調整してみます。
空白のまま解釈だとさすがにちょっと html と相性が悪くて厳しいなとおもってたので、ちょうどいいです。

@inao
Copy link
Collaborator Author

inao commented Mar 8, 2013

また、いま確認してみたところ半角スペースが1~3つの場合で発生しちゃうようです。
以下のいずれでも発生しちゃいました。

# 半アキ1
 本文。

* 箇条書き
* 箇条書き

 本文。

 本文。

# 半アキ2
  本文。

* 箇条書き
* 箇条書き

  本文。

  本文。

# 半アキ3
   本文。

* 箇条書き
* 箇条書き

   本文。

   本文。

ううー、難しいですね。

  • (コードや箇条書き以外の行頭で)ホワイトスペース1~3の字下げをしている場合、
    • 全角スペースに置き換える
    • 半角スペースを割愛する

のいずれかでしょうか。

@naoya
Copy link
Owner

naoya commented Mar 8, 2013

ですね。行頭がホワイトスペース 1〜3 で始まっていたら全角に置き換えます。
ホワイトスペース4以上は、Markdown の場合 code ブロックになるので 1〜3 置き換えで全て例外ふくめ吸収できるはず。

@inao
Copy link
Collaborator Author

inao commented Mar 8, 2013

現在のmd2inao.plにはない機能なんですが、編集記号的には、箇条書きの2階層目にも対応しています。

===
--- in md2inao
* 箇条書き
 * 箇条書き2階層目
 * 箇条書き2階層目
--- expected
・箇条書き
*・箇条書き2階層目
*・箇条書き2階層目

半アキ1~3を全部置き換えると、将来的にこれの導入が難しくなりますか?

@inao
Copy link
Collaborator Author

inao commented Mar 8, 2013

あと説明つき箇条書きというのもあります。
(少々お待ちください)

@naoya
Copy link
Owner

naoya commented Mar 8, 2013

箇条書き

いえ、Markdown にも入れ子箇条書きがあってそれも先頭4スペースなので問題ないです。

@inao
Copy link
Collaborator Author

inao commented Mar 8, 2013

この欄とかで使える、

  • 箇条書き
    • 箇条書き2階層目

とかは、GitHub仕様のMarkdownということでしょうか?

@naoya
Copy link
Owner

naoya commented Mar 8, 2013

いや、それはそもそも標準のMarkdownの仕様です。
md2inao.pl はたぶん実装の手間考えて入れ子には対応してないんだと思います。
いずれ対応させます。

まずはこのバグ取り除いてからw

@inao
Copy link
Collaborator Author

inao commented Mar 8, 2013

了解です。
ありがとうございます!

ちなみに、説明つきの箇条書きの編集記号は以下です。

===
--- in md2inao
???
--- expected
・箇条書き
・・箇条書きの説明文(この行頭の・・はPDFにしたときは残らないです)

PDFにしたときは、以下みたいな見た目になります。
説明文のところは、箇条書き的なフォントになるけど、行頭に記号は付きません。

・箇条書き
 箇条書きの説明文(この行頭の・・はPDFにしたときは残らないです)

箇条書きの2階層目の件も含め、別Issueで立てさせていただきます。
あと、Markdown全然関係ない気がしますが、全角文字と半角文字の間に半角スペースが入っている原稿の場合、その半角スペースを削除していいただきたい(ソースコードなど中は除いて?)とか、思いついている勝手な希望も><
(本日もうちょっとしたら遠出しますので、夜か明日になります)

naoya added a commit that referenced this issue Mar 8, 2013
@naoya
Copy link
Owner

naoya commented Mar 8, 2013

とりあえず、字下げ問題を全角空白置換で解消しました。
これでそもそものこの issue のリストの問題も出なくなったはずです。
確認して問題なければ close してください。

その他の要望は、機能毎に issue にしてくださいー、それぞれ対応しますので。

@inao
Copy link
Collaborator Author

inao commented Mar 8, 2013

ありがとうございます!
のちほど確認させていただきます。

@inao
Copy link
Collaborator Author

inao commented Mar 8, 2013

確認させていただきました。バッチリでした:+1:
どうもありがとうございます。

全角字下げ、めちゃくちゃ便利そうです!

なにより、テキストの抜けがなくなったのがすごく安心します。
もしかしたらこれまで気がつかずに出版までいっちゃった例があるかもと考えると、ガクブルです。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants