Git Product home page Git Product logo

Comments (24)

naoya avatar naoya commented on July 19, 2024

設定ファイルにしたい、というのは原稿によって入れたり入れなかったりするからなんでしょうか?
毎回同じなら決め打ちで仕様にしてしまえばいいと思ったのですが。

from md2inao.

naoya avatar naoya commented on July 19, 2024

毎回違う、となるとそもそも原稿をアップロードする度に設定を切り替えられる機能が必要になりますね。
InDesign の checkbox みたいなやつ。

from md2inao.

inao avatar inao commented on July 19, 2024

設定ファイルにしたい、というのは原稿によって入れたり入れなかったりするからなんでしょうか?
毎回同じなら決め打ちで仕様にしてしまえばいいと思ったのですが。

キャプションの先頭記号( #34 )やコードの文字数と同様に、原稿によって異なるのです。

ただ、提案した案2は我ながら複雑すぎる気がしてきました。
もうちょっとシンプルにした提案をこの次のコメントで行います。

毎回違う、となるとそもそも原稿をアップロードする度に設定を切り替えられる機能が必要になりますね。

複雑になりすぎますね……。
Web版ではデフォルトの挙動、設定を替えて使いたい場合はダウンロードして自分で、とかですかねぇ。

from md2inao.

inao avatar inao commented on July 19, 2024

以下の3機能で十分な気がしてきました。

  1. 箇条書きブロックの前行を以下の3択から設定できるようにしていただく
    • 何も入れない★現状のmd2inaoの挙動★
    • <ParaStyle:半行アキ>を入れる★一番多いケースはこれです。これをデフォルト仕様に?★
    • <ParaStyle:本文>を入れる
  2. インラインコード/コマンドブロックの前行を以下の3択から設定できるようにしていただく
    • 何も入れない★現状のmd2inaoの挙動★
    • <ParaStyle:半行アキ>を入れる★一番多いケースはこれです。これをデフォルト仕様に?★
    • <ParaStyle:本文>を入れる
  3. 2種の空行を明示的に指定する記法をご用意いただく
    • 先ほどの案1と同じです
    • これは自由置換設定機能で実現できますね

1と2で80%のケースに対応できます。
1と2はターゲットが違うだけで、ロジック的には同じですね。

3も併用すれば100%のケースに対応できると思います。
3は自由置換設定機能で実現できますね。

@d-ikeda
どう思われますか?

from md2inao.

naoya avatar naoya commented on July 19, 2024

これだと 3 * 3 * 2 = 18 パターンになるんですが、18 パターン個別に設定できる必要があるのかな?
なんとなく組み合わせ的には数種類しかなくて、その組み合わせを切り替えられるようにするほうが使い勝手的にもシンプルな気がするんですが。

ちょっとユースケースが想像できてないのであれですが

  • WEB+DB PRESS 用設定 (連載)
  • WEB+DB PRESS 用設定 (特集)
  • 本の設定

とかで3パターンとか、そんな感じ?

内部のコード的には柔軟に変更できてもいいですが、外部仕様としてはもうちょっとシンプルにしておきたいです。

from md2inao.

inao avatar inao commented on July 19, 2024

なるほど。
本文デザインしてくださっているデザイナさんとも、ちょっと相談してみて整理します。

from md2inao.

inao avatar inao commented on July 19, 2024

伊藤さんの両書籍のデザインを担当してくださっている @n-yuji に相談しました。

結論から申しますと、ユースケースとして以下の2パターンを選択できるとうれしいです。

  • 半行アキパターン(WEB+DB PRESS、デフォルト)
    • 箇条書きブロック、インラインコード/コマンドブロックの前行に<ParaStyle:半行アキ>を入れる
  • 1行アキパターン
    • 箇条書きブロック、インラインコード/コマンドブロックの前行に<ParaStyle:本文>を入れる

また、それとは独立して、1行アキ(<ParaStyle:本文>のみの行)を明示的に挿入するMarkdown記法も決めていただきたいです。この件とも関係するのですが、この件以外の場合でも、空行を入れたくなることがそこそこありますので。

from md2inao.

inao avatar inao commented on July 19, 2024

いちおうご参考までに、2パターンにいたるまでの詳細ですー。

@inaoからのメール

本文設計時に、

(1)箇条書きの前行
(2)インラインのコードやコマンドの前行(別ボックスの図やリストにはしない、いわゆる本文リスト)

に、空行を指定されることが多いですよね。
空行は、1行アキのこともあれば、半行アキのこともあります。

2点、お伺いさせてください。

空行の行間ですが、「(1)(2)ともに1行アキ」または「(1)(2)ともに半行アキ」
の2パターンで統一しちゃって大丈夫でしょうか?
そうではなく、たとえば「(1)は1行アキだけど、(2)は半行アキ」みたいに異な
る行間にしたくなることもございますか?

上記以外で、空行を入れることがあるケースは、何がございますでしょうか?
「この段落スタイルの前も要空行なことがある」「この段落スタイルの(前行で
はなく)うしろの行に、要空行なことがある」などで教えていただけると助かり
ます。

@n-yujiからのお返事(転載許可を得ています)

1/2空行は、とてもやっかいな存在なのでして……、

「(1)は1行アキだけど、(2)は半行アキ」みたいな
ケースは、まあ、ありえます。

そもそも「半行アキをとる」というコマンドが用意されているわけではなく、
単に見た目そうなるように行送りなど調整しているわけで、
これは次の行との関係で変わってきます。
普通に本文1行アキでも半行アキに見えることもあって、
それで使い分けが必要になってしまうわけですけど。

処理上はどちらかに統一しておき、
あとは見た目で手動対応でいいんじゃないかなあと思いますけども。

また、「箇条書きやコードの後」には
本文空行入れたり入れなかったりです。

「箇条書きやコードの後の2行取り小見出し」の前、などにも
本文空行入れることがあります。
行取りの前の行はグリッドに沿ってないと処理が不正になるためです。

いずれも、
「長さがなりゆきであやふやなもの(箇条書きやコード)」と、「グリッドに沿 わせる本文」
を共存させるさいの見た目のごまかし処理なので、
厳密に定義しようとするとかえって破綻すると思います。

from md2inao.

naoya avatar naoya commented on July 19, 2024

とりあえず実装して web 版に UI もつけました。

Markdown での空行フォーマットはまだ非対応です。というか、Markdown で空行開けたいなら本来的には明示的に改行で空行いれればいいだけなんですよね。

ただ、それだと Inao / InDesign 的に要らない空行が入っちゃうから今は削除してるという。その前提で、明示的な空行とは何なのか・・・ってところなんですけども。

どういうマークアップがいいかなあ

from md2inao.

inao avatar inao commented on July 19, 2024

どうもありがとうございました!
上記のpull requestに加え、以下のテストも追加していただきたいです。

キャプションを付けないインラインのリスト白文字(黒地に白文字)のテストがございませんでしたので。
インラインのリスト白文字はWEB+DB PRESSでは使わないのですが、書籍ではよく使います。

--- in md2inao
    !!! cmd
    function bar(b) {
        alert(b); (注:コメント)
    }
--- expected
<ParaStyle:半行アキ>
<ParaStyle:リスト白文字>function bar(b) {
<ParaStyle:リスト白文字>    alert(b); <CharStyle:リストコメント> コメント <CharStyle:>
<ParaStyle:リスト白文字>}

from md2inao.

inao avatar inao commented on July 19, 2024

空行のマークアップは「強制的に改行したい場合は、行末に2つのスペースを挿入すればよい」という仕様もあるらしいのですが、これは避けていただきたいです。

http://ja.wikipedia.org/wiki/Markdown#.E6.94.B9.E8.A1.8C

行末のスペースは校正時に大抵消しちゃいますので。

from md2inao.

naoya avatar naoya commented on July 19, 2024

そうですねえ。<br> とかをうまく使う感じかな・・・

何かいい案ありますか?

from md2inao.

inao avatar inao commented on July 19, 2024

ございませんです 😢

from md2inao.

d-ikeda avatar d-ikeda commented on July 19, 2024

横からで流れが違う形ですいませんが、この改行の扱いが意図しない形になることが多いので変えたのがGitHub Flavored Markdownみたいですね。

https://help.github.com/articles/github-flavored-markdown

こちら参考までです。大きな副作用があるかもしれませんし、変更が大変そうだな、と思います。

from md2inao.

naoya avatar naoya commented on July 19, 2024

そうそう、この手のテキストフォーマットでの改行の取り扱い方は結構鬼門なんですよね。
はてな記法のときも、その Github Flavored のと全くおなじ課題がありました。

Hello
World

を HTML 的に

<p>
Hello<br />
World
</p>

と表現するか

<p>Hello World</p>

と表現するかの違いで、HTML原理主義的な人は後者のほうが好ましいと考えるようです。

HTML はテキストの見た目を整形するものではなくあくまで論理構造をマークアップするものなのに「ここで改行を入れることで見た目を調整して」的に使われた <br> をそのまま表現するのはいかがなもんか、というのが彼らの主張ですね。

とはいえ一方、多くのユーザーは改行を入れたらそれが改行として反映されることを望むのだから、変に HTML のマークアップにこだわる必要はないじゃないかというカジュアル派がその対局です。

自分としては、確かにカジュアル派の言い分も分かるのですが、将来にわたって考えたときのメンテナンスビリティを考えると、論理構造とスタイルは分離されるべきであり、原理主義的な考え方が好ましいと思います。

Github の場合は、論理構造がどうこうちうより、プログラミングのドキュメントはプレインテキストで書かれることが多くそれは改行をそのまま反映しないと執筆者の意図しない表現になってしまうことを考慮して、カジュアルな仕様を採っているのではないかと思われます。

・・・という事情があるので、md2inao でも「空行一行」とは言えあまり安易な仕様にしたくないなあというので困っていたりします。

from md2inao.

naoya avatar naoya commented on July 19, 2024

そういう意味でいくと InDesign Text (?) には論理構造とは別にスタイルを定義するんだと思し、半行アキとか一行アキは本来そちらで調整されるべき項目な気がしますが現実にはそれだと難しい、というところですかね?

from md2inao.

n-yuji avatar n-yuji commented on July 19, 2024

InDesignに「ブロック要素」があればたいがい解決する話なんでしょうけど、CSSで<div>で囲むようなものは、InDesignにはないんですよね。

from md2inao.

naoya avatar naoya commented on July 19, 2024

なるほどそうなんですね。

だから地続きの <ParaStyle:リスト> とかで「ここからここまでがリストブロックである」という表現になるんですねえ。

from md2inao.

d-ikeda avatar d-ikeda commented on July 19, 2024

HTML原理主義的とカジュアル派の考え面白いですね。どちらの言い分も正しい側面があり、悩ましい問題ですね。

HTML原理主義的に考えると
みたいなタグを入れるのが良いですかね。この場合、

本文中に「
」と表示したい場合にどうするか、とかが検討点かな、と思いました。

from md2inao.

naoya avatar naoya commented on July 19, 2024

本文中の表示はいずれにしてもエスケープが必要です。それは HTML も同じ。

`<br>`

とするか明示的にエスケープして

&lt;br&gt;

です。これは「HTML を HTML として解釈する」という Markdown の機能の側面であります。

from md2inao.

d-ikeda avatar d-ikeda commented on July 19, 2024

ありがとうございます。これはエディタでハイライトするなりして意識しておく必要がありますね。

#GitHubでも同様の動作なんですね。私の書き込みで<br>が表示されてなくて気づきました。

from md2inao.

naoya avatar naoya commented on July 19, 2024

いちおう md2inao には HTML を素で書いたら警告するような機能を付けています。
まだ Web版ではその警告が出力できてないので、それも作らないとですね。
先日のはそのための UI 変更だったりもします。

from md2inao.

d-ikeda avatar d-ikeda commented on July 19, 2024

すごいです。警告が出ると便利ですね。

Web版での警告表示もできるとすごくうれしいです!

from md2inao.

inao avatar inao commented on July 19, 2024

冒頭のお願いは実装してくださっていますので、クローズします。

後半のやりとりである明示的に空行を入れる方法は、現状はまだありません。
ただ、入れる必要があるケースはほとんどないので、運用でカバーします。

from md2inao.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.