GithubHelp home page GithubHelp logo

naoya / md2inao Goto Github PK

View Code? Open in Web Editor NEW
210.0 16.0 35.0 922 KB

Convert markdown to inao-format for WEB+DB PRESS

Home Page: http://md2inao.bloghackers.net/

Ruby 0.52% Perl 92.71% Shell 0.26% CSS 0.21% JavaScript 1.30% Raku 4.75% Dockerfile 0.24%

md2inao's Introduction

Markdown to Inao-Format

Deploy

Build Status Coverage Status

概要

Markdownで書かれたテキストをWEB+DB PRESS編集部で使用しているInDesign用フォーマットに変換します。主にWEB+DB PRESS編集部の方のためのツールですが、執筆者にとってもMarkdownの原稿がWEB+DB PRESSの原稿のスタイルに従っているかどうかをチェックするツールとして使えます。

markdown2inao.pl 改め md2inao.pl のこれまでについては https://gist.github.com/inao/baea09bc6fc53551886b を見て下さい。なお、md2inaoは当初「inao記法」に変換していましたが、現在はWEB+DB PRESS編集部用InDesignフォーマットを出力します。

使い方

CUI版

% md2inao.pl your_markdown.md > path/to/output.txt

CPANからインストール

# webからcpanmをDLしてそのままそれを使ってmd2inaoをインストール
% curl -L http://cpanmin.us | perl - --sudo Text::Md2Inao
% md2inao.pl your_markdown.md > path/to/output.txt

リポジトリからインストール

リポジトリからインストールする場合、Perl/CPANの知識が必要です。

% cpanm Carton
% carton install
% carton exec -- perl bin/md2inao.pl your_markdown.md > path/to/output.txt

Web版

変換したテキストのInDesignへの取り込み方

こちらにまとめました。

出力見本

PDFにすると、以下のような仕上がりになります。

書籍版

WEB+DB PRESS版

Markdownでの原稿の書き方

md2inao を利用すると Markdown フォーマットで原稿を書くことができますが、当然のことながら、なんの制約もなく Markdown フォーマットで書けばよしなに変換してくれるというものではありません。以下、原稿を書くにあたっての Markdown の使い方について解説します。

原稿の例

Title: RubyMotion入門
Subtitle: RubyでiOSネイティブアプリ!
Author: 伊藤 直也
Author(romaji): ITO Naoya
Twitter: @naoya_ito

# RubyMotion とは

 [RubyMotion](http://rubymotion.com/) は、RubyでiOSのネイティブアプリケーションが作れるツールチェインです。Apple で MacRuby を開発していた Laurent Sansonetti さんが Apple 退職後に興した会社 Hipbyte が、2012年5月に発売を開始しました。

# RubyMotion で Hello, World

 早速コードを書いてみましょう。以下が Hello, World のコードです。

    class HelloViewController < UIViewController
      def viewDidLoad
        super
        @label = UILabel.new
        @label.frame = [[10, 10], [320, 20]]
        @label.text = "Hello, World"

        view.addSubview(@label)
      end
    end

簡単ですね!

- HelloViewController を定義
- `viewDidLoad` をオーバーライド
- `UILabel.new` でラベルインスタンスを作成
- `view.addSubview` でビューに追加

しているだけです。出力は以下のようになります。

![Hello, Worldの出力](images/hello_world.png)

基本的な考え方

Markdown は Markdown プロセッサで解釈すると、通常は HTML に変換されます。md2inao はその HTML の各要素を WEB+DB PRESS編集部用InDesignフォーマット に変換して最終的な出力を作っています。

従って Markdown を書きながらも出力される HTML 構造がどの要素になって、その要素が論理構造的にどういったものか、をある程度想定しておけばだいたい想像した通りの出力になると思ってください。

また、Markdown で定義されてない記述も HTML を使うことによって定義することもできます。一部の記法は HTML で書くことが前提になっています。

文中に HTML を書く際の注意事項

Markdown の仕様では当然のことながら、HTML タグは HTML タグとして解釈されます。文中に HTML を書きたい場合は以下のいずれかの方法でエスケープしてください。

code 記法を使う
`<strong>`
実体参照を使う
&lt;strong&gt;

メタデータ(タイトル、著者名など)

テキストファイルの冒頭に、以下のメタデータを書きます。メタデータには原稿や書籍のタイトル、章番号、著者名などの情報を入力してください。本メタデータは http://hiltmon.com/blog/2012/06/18/markdown-metadata/ の仕様に従っていますが、GitHub Flavored Markdown では解釈されないため、GitHub 上では HTML での表示が崩れますがスルーしてください。

Chapter: 3(章番号)
Serial: 5(連載回数)
Title: Markdown to Inao(タイトル)
Subtitle: Convert markdown text to Inao format(キャッチコピー)
Author: 伊藤 直也(著者名)
Author(romaji): ITO Naoya(著者名のローマ字表記)
Supervisor: 山田 太郎(監修者名)
Supervisor(romaji): YAMADA Taro(監修者名のローマ字表記)
Affiliation: 技術評論社(所属)
URL: http://naoya.github.com/
mail: [email protected]
GitHub: naoya
Twitter: @naoya_ito

Hello, World(本文)

注意事項

  • Title、Subtitle、Author、Author(romaji)は必須です
  • テキストファイルの冒頭に書く必要があります
  • メタデータと本文の間に空行が必要です
  • 任意のメタデータを追加可能ですが、キーにマルチバイト文字は使えません

見出し

各章の配下、各記事(連載、一般記事)の配下には、見出しが3階層まで使えます。

# 大見出し(節)
## 中見出し(項)
### 小見出し(目)

書籍で節番号をふる場合は、次のように書きます。

▼1.1
# 大見出し(節)

注意事項

章に#をお使いになる方が多いですが、#は上記のように大見出しにお使いください。 章の分割はテキストファイルの分割で認識します。

非推奨

md2inao的には以下の記法にも対応していますが、現状は非推奨です(アウトラインの作成がちょっとめんどうになるので)。

大見出し(節)
===============

中見出し(項)
---------------

箇条書き(リスト)

箇条書き

両記法に対応していますが、同一原稿では、どちらかで統一してください。

* 箇条書き
* 箇条書き
* 箇条書き

- 箇条書き
- 箇条書き
- 箇条書き

階層付き箇条書き(ネストしたリスト)

両記法に対応していますが、同一原稿では、どちらかで統一してください。

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

- 箇条書き
    - 箇条書き2階層目
    - 箇条書き2階層目
    - 箇条書き2階層目
注意事項
  • GitHub Flavored Markdownでは半角スペース1~3つの行頭字下げによるネストにも対応していますが、md2inaoは4つ以上にのみ対応しています
  • 3階層目は使用できません

説明付き箇条書き(dt、dd)

Markdown の説明付き箇条書きには対応していないので、HTML でマークアップしてください。

<dl>
  <dt>箇条書き</dt>
  <dd>箇条書きの説明文</dd>
  <dt>箇条書き</dt>
  <dd>箇条書きの説明文</dd>
</dl>
注意事項
  • この説明付き箇条書きのようなHTMLで記述した箇条書き中では、_イタリック_**強調**などの文中記号は使えません(以降のHTML系の箇条書きでも同様です)

連番箇条書き(黒丸数字)

黒丸囲みの1、2、3……が行頭に付きます。

1. 連番箇条書き
2. 連番箇条書き
3. 連番箇条書き

本文で黒丸囲みの1、2、3……を書く場合は、(d1)、(d2)、(d3)と書いてください(discのdです)。

  • 手順など順列の箇条書きにのみ使用してください
  • 順列ではないけど、行頭記号を区別したい場合は、次のアルファベット箇条書きを使ってください
説明付き箇条書きとの併用

説明付き箇条書きの<dt>タグ冒頭に、手動で数字を書く必要があります。

<dl>
  <dt>1. 箇条書き</dt>
  <dd>箇条書きの説明文</dd>
  <dt>2. 箇条書き</dt>
  <dd>箇条書きの説明文</dd>
</dl>

なお、<dd>タグ冒頭は、手動で数字を書いても丸数字にはなりません。 この用途では、次の階層付き箇条書きとの併用を用いてください。

階層付き箇条書きとの併用

次のようなHTMLでマークアップし、かつ<li>タグ冒頭に手動で数字を書く必要があります。

<ul>
  <li>1. 箇条書き</li>
  <li>2. 箇条書き
    <ul>
      <li>1. 箇条書き2階層目</li>
      <li>2. 箇条書き2階層目</li>
      <li>3. 箇条書き2階層目</li>
      <li>4. 箇条書き2階層目</li>
      <li>5. 箇条書き2階層目</li>
    </ul>
  </li>
  <li>3. 箇条書き</li>
</ul>
そのほかの連番箇条書き(白丸数字、黒四角数字)

上述した連番箇条書き(黒丸数字)がデフォルトですが、白丸数字や黒四角数字にすることもできます。連番箇条書きが連続して登場し紛らわしくなる場合などにご利用ください。

<ol class='circle'>
    <li>連番箇条書き(白丸数字)</li>
    <li>連番箇条書き(白丸数字)</li>
    <li>連番箇条書き(白丸数字)</li>
</ol>

本文で白丸囲みの1、2、3……を書く場合は、(c1)、(c2)、(c3)と書いてください(circleのcです)。

<ol class='square'>
    <li>連番箇条書き(黒四角数字)</li>
    <li>連番箇条書き(黒四角数字)</li>
    <li>連番箇条書き(黒四角数字)</li>
</ol>

本文で黒四角囲みの1、2、3……を書く場合は、(s1)、(s2)、(s3)と書いてください(squareのsです)。

アルファベット箇条書き(黒丸囲み)

黒丸囲みのa、b、c……が行頭に付きます。

<ol class='alpha'>
    <li>アルファベット箇条書き</li>
    <li>アルファベット箇条書き</li>
    <li>アルファベット箇条書き</li>
</ol>

本文で黒丸囲みのa、b、c……を書く場合は、(a1)、(a2)、(a3)と書いてください(alphabetのaです)。

コードブロック(ソースコード、コマンド)

本文中のソースコード、コマンドと、別ボックスのソースコード(リスト)、コマンド(図)がありますが、基本的には前者を使用してください。

本文中のソースコード、コマンド

推奨記法です。
基本的にはこちらをお使いください。

本文中のコードブロック

GitHub Flavored MarkdownのFenced code blocks記法でお書きください。

```
function bar(b) {
    alert(b);
}
```

コードブロック

(注:)は黒地に白文字となり、見出し的に使えます。

```
(注:見出し的に使う)
function bar(b) {
    alert(b);
}
```

見出し付きコードブロック

行頭を半角スペース4つで字下げする記法にも対応していますが、コードの空行も半角スペース4つで字下げする必要があります。
字下げ漏れがあると、そこは本文扱いとなります。
ミスが混入しやすく、既知のバグ(#14#66)もあるので、基本的にはFenced code blocks記法でお書きください。

    function bar(b) {
        alert(b);
        
    }
本文中のコマンドブロック

GitHub Flavored MarkdownのFenced code blocks記法の場合は、シェル系の言語(Shell系ShellSession系PowerShell系)を指定すると、紙面ではコマンドラインっぽく黒地に白文字になります。

```bash
$ command
bar
```

コマンドブロック

この場合の(注:)は、逆に白地に黒文字となります。

```bash
(注:見出し的に使う)
$ command
bar
```

見出し付きコマンドブロック

行頭を半角スペース4つで字下げする記法の場合は、先頭行に!!! cmdと書いてください。

    !!! cmd
    $ command
    bar

なお、コマンド行の行頭には、上記のようにプロンプト($など)を書いてください。

注意事項
  • コードおよびコマンドは、半角55桁(文字)以内で整形してください
    • 整形が難しい箇所は、コマンドは行末に「(実際は1行)」と書いてください。コードには何も書かないでください
  • 整形が必要なのはコードおよびコマンドのみです。コマンドの実行結果は、紙面の右端で折り返しますので整形不要です

別ボックスのソースコード(リスト)、コマンド(図)

紙面での呼称は「リスト」「図」です。
記事の事情などにより、使う必要がある場合にのみ用いてください。

別ボックスのコードブロック(リスト)

別ボックスの「リスト」として掲載するコードには、上述した「本文中のコードブロック」の記述に加え、冒頭に●リスト1::キャプションを書いてください。

```
●リスト1::キャプション
(注:見出し的に使う)
function bar(b) {
    alert(b);
}
```
別ボックスのコマンドブロック(図)

別ボックスの「図」として掲載するコマンドには、上述した「本文中のコマンドブロック」の記述に加え、冒頭に●図1::キャプションを書いてください。

```bash
●図1::キャプション`
(注:見出し的に使う)
$ command
bar
```
注意事項
  • コードおよびコマンドは、半角63桁(文字)以内で整形してください
    • 整形が難しい箇所は、コマンドは行末に「(実際は1行)」と書いてください。コードには何も書かないでください
  • 整形が必要なのはコードおよびコマンドのみです。コマンドの実行結果は、紙面の右端で折り返しますので整形不要です

なお、紙面片段ではなく、両段ぶち抜きのリストや図にすれば、100桁くらいまで入ります。

図の画像

以下の両記法に対応していますが、前者を推奨します。

また、必ず独立した段落としてお書きください(本文段落中に書かないでください)。

![キャプション](images/hoge.png)

<img src="images/hoge.png" width="320" alt="キャプション" />

※を用いて、図表に対する脚注を付けることもできます。

![キャプション](images/hoge.png)

※図表に対する脚注

脚注、リンク

次の2つの記法が使えます。いずれも脚注になり、紙面では両者の違いはありません。

[リンクの対象](URL)

脚注の対象(注:脚注文。)

たとえば次のように書きます。

[RubyMotion](http://rubymotion.com/)は、RubyでiOSアプリを作るれるツールです(注:日本円で20,000円程度です。)。

注意事項

脚注文も「です・ます」調で統一してください。 また、脚注文の末尾にも「。」は必要です。

文末からの脚注の場合、以下のように末尾は「。)。」となります。

  • ☓:〜です(注:脚注文です)。
  • ☓:〜です。(注:脚注文です。)
  • ○:〜です(注:脚注文です。)。

2つの記法があります。

1つ目は、パイプ文字(|)とハイフン(-)を用いる記法です。
こちらの場合、強調、イタリック、コードなどのMarkdown記法が使えます。

●表1::キャプション

| 列の説明1 | 列の説明2 |
| ------- | -------- |
| 内容1-1  | 内容2-1  |
| 内容1-2  | 内容2-2  |
| **強調** | **強調** |
| _イタリック、italic_ | _イタリック、italic_ |
| `code`  | `code`  |

2つ目は、HTMLを用いる記法です。
こちらの場合、強調、イタリック、コードなどのMarkdown記法は使えません。

<table summary='表1::キャプション'>
    <tr>
        <th>列の説明1</th>
        <th>列の説明2</th>
    </tr>
    <tr>
        <td>内容1-1</td>
        <td>内容2-1</td>
    </tr>
    <tr>
        <td>内容1-2</td>
        <td>内容2-2</td>
    </tr>
</table>

ルビ、キーボードフォント、上付きなどのHTML記法は、どちらでも使えます。

引用と出典

引用および出典は次のように書きます。

> 引用です。
> 
> 引用です。

──出典

区切り線(<hr>

---

コラム

<div class='column'>
#### コラムタイトル
本文
##### コラム内見出し
本文
##### コラム内見出し
本文
</div>

リード文

<div class='lead'>
リード文

リード文

リード文
</div>

字下げ

段落行頭の字下げは手動です。全角スペースを入れてください。

 こんにちは。伊藤です。

段落分け

段落分けをするには、空行(2連続の改行)を入れる必要があります。

 こんにちは。伊藤です。

 今号から、新連載を始めます。

文字記法

これまでの記法は段落全体を指定する段落スタイルでしたが、ここからは段落内の文中で使う文字スタイルです。
Markdown由来の記法と、HTML由来の記法があります。

Markdown記法

強調
**強調(ボールド)**
イタリック
_斜体(イタリック)_
本文中のコードやコマンド、HTMLタグのエスケープ
`code or command`

本文での解説中にHTMLを書きたい場合などのエスケープにもご利用ください。

`<a>`

HTML記法

ルビ

モノルビ(一つの漢字ごとに読みを示す)を振りたい場合はmonorubyクラスを使用し、カッコ内で一文字ごとに半角スペースを挟んでください。

<span class='monoruby'>辟易(へき えき)</span>

グループルビ(熟字訓など、まとめて読みを示す)を振りたい場合はgrouprubyクラスを使用してください。

<span class='groupruby'>欠伸(あくび)</span>
キーボードフォント
<kbd>A</kbd>

Keyboard-JP-Regular.otf対応文字に対応しています。

ただし、現状はInDesignへの取り込み時にShift_JISに変換する必要があるため、Shift_JISにはない文字のキー(~\⇧↵⏎↹⌦⌫)には対応していません。また、 Issue 95 と同様の問題が発生することを避けるため、バッククォート(`)にも対応させていません。

これらの非対応文字も自由置換に4桁のUnicodeスカラ値を記載する形で設定すれば利用可能ですが、特に使うことがなさそうなキーばかりですので、現状は設定していません。

上付き
<sup>ゴシックフォントで上付き。コラムなどでの注記で使用</sup>
<sup2>その場のフォントで上付き。n乗など数式で使用</sup2>
赤文字

編集者へのコメントなどでご利用ください。

<span class='red'>赤文字</span>

★☆□▲などの記号は、上記記法を用いずとも自動で赤字になります。

数式

メタデータとして UseMath: true を書くと、インライン数式 $...$ とディスプレイ数式 $$...$$ の内部を Markdown として変換せずにそのまま保持するようになります。

UseMath: true

インライン数式の例: $y = f(x_1, x_2)$

ディスプレイ数式の例:

$$
f(t) = \lim_{p\to\infty}\frac{1}{2\pi i}\int_{c-ip}^{c+ip} F(s) e^{st} ds
$$

md2inaoでの変換後にtex2idで再変換すると、TeXの数式がInDesignタグ付きテキストに変換されます(InDesignでも表現できる一部の記法のみに対応しています)。

md2inao デベロッパー向け情報

テストの実行の仕方

% carton # モジュールのインストール。初回のみ必要
% carton exec prove -l

git bisectによるテストが失敗する最初のコミットの特定

次のコマンドを実行すると、二分探索でテストが最初に失敗するコミットを探します。
ea2a55dは、手動で確認したテストが成功するコミットです)

% chmod 755 bisect.sh
% git bisect start HEAD ea2a55d
% git bisect run ./bisect.sh

自由置換の書き方

{
    "before_filter": {
        "<kbd>F10</kbd>" : "<cFont:Key Snd Mother>*<cFont:>",
        "<kbd>F11</kbd>" : "<cFont:Key Snd Mother>+<cFont:>",
        "<kbd>F12</kbd>" : "<cFont:Key Snd Mother>,<cFont:>",
        "<kbd>F1</kbd>" : "<cFont:Key Snd Mother>!<cFont:>",
        "<kbd>F2</kbd>" : "<cFont:Key Snd Mother>\"<cFont:>",
        "<kbd>End</kbd>" : "<cFont:Key Snd Mother>n<cFont:>"
    },
    "after_filter": {
        "★" : "<CharStyle:赤字>★<CharStyle:>",

        "◆→◆" : "<27A1>",
        "◆←◆" : "<2B05>",
        "◆↑◆" : "<2B06>",
        "◆↓◆" : "<2B07>",

        "◆←→◆" : "<21D4>",
        "◆>=◆" : "<2267>",
        "◆=>◆" : "<2266>",

        "◆WDB◆" : "<cstyle:ストッパ>WDB<cstyle:>"
    }
}
  • InDesign 出力時は config/id_filter.json に書いた設定通りに出力を置換できます
  • キーには正規表現が使えます
  • JSON の文法に注意 (末尾のカンマ、" のエスケープなど)

before_filter

  • Markdown parse の前に置換
  • Markdown のテキストを置換したい時は こちら
  • HTML を置換したい時もこちら
  • 値の <, > はエスケープされてから Markdown parser に渡されます。その後 after_filter で復元されます。(要するに書いたとおりに出力される。HTMLとして処理されることは期待できない、ということ)

after_filter

  • InDesign への変換が終わった後に置換
  • InDesign になったテキストを置換したい時はこちら
  • md 中の <span class="symbol">…</span> は after_filter 前に ◆…◆ になります

過去のInDesignのスタイル名で出力したい場合

WEB+DB PRESS Vol.116(2020年4月発売)から、InDesignのバージョンアップに伴い、InDesignのスタイル名を変更しました

古い書籍の改訂時など、過去のスタイル名のまま変換したい場合は、タグold-style-name段階のものを使用してください。

Authors

  • @typester : Original version: https://gist.github.com/typester/380428
  • @inao : Current product owner & maintainer
  • @naoya : Refactoring, Add some tests, Web version
  • @hsbt
  • @hokaccha
  • @suzuki
  • @gfx : Release to CPAN
  • @mrkn
  • @matobaa

LICENSE

  • Same as Perl

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

md2inao's People

Contributors

d-ikeda avatar dependabot[bot] avatar gfx avatar inao avatar mrkn avatar naoya avatar syohex avatar takahashim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

md2inao's Issues

InDesignのコラムについて質問

idtagreplacer のとこにある sample.md だとコラムの見出しレベルは h4 と h5 になっていて

=== column
--- in md2inao
<div class="column">
#### コラム見出し

 コラム本文コラム本文コラム本文コラム本文コラム本文コラム本文コラム本文コラム本文コラム本文コラム本文コラム。

##### コラム小見出し

 コラム内でも**強調**や_イタリック_などが使えます。
</div>
--- expected
<ParaStyle:コラム本文>
<ParaStyle:コラムタイトル>コラム見出し
<ParaStyle:コラム本文> コラム本文コラム本文コラム本文コラム本文コラム本文コラム本文コラム本文コラム本文コラム本文コラ\
 ム本文コラム。
<ParaStyle:コラム小見出し>コラム小見出し
<ParaStyle:コラム本文> コラム内でも<CharSty

てな感じですが「コラムの見出しには h4 と h5 しか使われない」という前提で大丈夫ですか? (そうでないなら h4 が「コラムタイトル」という断定的な役割になってるのはおかしいと思うところから推測)

引用内で改行できるようにしてほしい

現状は、改行や空行は無視されます。

--- in md2inao
> 引
> 用
> 
> です。
--- expected
<ParaStyle:引用>引用です。

これを改行できるようにしていただきたいです。
md2inaoでの本文と同様に、空行(連続した改行)で段落分けになる感じでしょうか。

<ParaStyle:引用>引用
<ParaStyle:引用>です。

ちなみにGitHub Flavored Markdownの見た目に合わせるなら以下ですが、これだとmd2inaoの他の部分との整合性がなくなりますね。

<ParaStyle:引用>引
<ParaStyle:引用>用
<ParaStyle:引用>
<ParaStyle:引用>です。

自由置換設定の追加

とりあえず実装としては config/id_filter.json に書けるようにしました。

が、まだ設定ファイルはいじらないでください〜。
いまの設定ファイルの仕様で想定しているケースに対応できるか調整しますので。

半角スペース4つで字下げするリスト(ソースコード)とコマンド図が連続すると、挙動がおかしい

リスト(ソースコード)とコマンド図(PDFでは黒地に白文字になる)が連続すると、

  • リストのキャプションが抜ける
  • 全体が◆list-white/◆◆/list-white◆で括られる
    • 本来はリスト部分は◆list/◆◆/list◆で括られ、コマンド図部分は◆list-white/◆◆/list-white◆で括られてほしいです
  • !!! cmdが残る

などがおきます。

以下、リスト、図の順番の場合です。

--- in md2inao
    ●リスト1::Rubyによる簡易LTSV Parser
    abcd

    !!! cmd
    ●図1::LTSVのParse結果
    abcd
--- expected
◆list/◆
●リスト1   Rubyによる簡易LTSV Parser
abcd
◆/list◆
◆list-white/◆
●図1 LTSVのParse結果
abcd
◆/list-white◆
--- 現状の動作
◆list-white/◆
abcd

!!! cmd
●図1 LTSVのParse結果
abcd
◆/list-white◆

以下、図、リストの順番の場合です。

--- in md2inao
    !!! cmd
    ●図1::LTSVのParse結果
    abcd

    ●リスト1::Rubyによる簡易LTSV Parser
    abcd

--- expected
◆list-white/◆
●図1 LTSVのParse結果
abcd
◆/list-white◆
◆list/◆
●リスト1   Rubyによる簡易LTSV Parser
abcd
◆/list◆

--- 現状の動作
◆list-white/◆
●図1 LTSVのParse結果
abcd

●リスト1   Rubyによる簡易LTSV Parser
abcd
◆/list-white◆

うまく動かせない

某cpanm & carton記事を参考にOS X上で動かせる環境を作ろうと思ったのですが、うまくいきませんでした…。

個別に--forceをつけてcpanmでインストールしなきゃですか?

$ sudo carton install
Installing modules using cpanfile
You have Test::Base (0.60)
You have Term::ANSIColor (2.02)
You have Pod::Usage (1.36)
You have Exporter::Lite (0.02)
You have Tie::IxHash (1.23)
You have HTML::TreeBuilder (5.03)
You have Class::Accessor::Fast (0.34)
You have Test::More (0.94)
Successfully installed JSON-2.57
! Installing the dependencies failed: Module 'JSON::PP' is not installed
! Bailing out the installation for Parse-CPAN-Meta-1.4404. Retry with --prompt or --force.
! Installing the dependencies failed: Installed version (1.40) of Parse::CPAN::Meta is not in range '1.4403', Module 'JSON::PP' is not installed
! Bailing out the installation for CPAN-Meta-2.130880. Retry with --prompt or --force.
! Installing the dependencies failed: Module 'CPAN::Meta' is not installed, Installed version (1.40) of Parse::CPAN::Meta is not in range '1.4401'
! Bailing out the installation for Module-Build-0.4005. Retry with --prompt or --force.
! Installing the dependencies failed: Installed version (0.3603) of Module::Build is not in range '0.4003'
! Bailing out the installation for FindBin-libs-v1.65.2. Retry with --prompt or --force.
You have Unicode::EastAsianWidth (1.33)
You have JSON (2.57)
! Installing the dependencies failed: Installed version (0.94) of Test::More is not in range '0.98'
! Bailing out the installation for Data-Dumper-2.145. Retry with --prompt or --force.
! Installing the dependencies failed: Installed version (2.125) of Data::Dumper is not in range '2.126'
! Bailing out the installation for Test-Differences-0.61. Retry with --prompt or --force.
! Installing the dependencies failed: Module 'Test::Differences' is not installed
! Bailing out the installation for Text-Markdown-1.000031. Retry with --prompt or --force.
! Installing the dependencies failed: Installed version (0.3603) of Module::Build is not in range '0.38'
! Bailing out the installation for Tree-DAG_Node-1.11. Retry with --prompt or --force.
! Installing the dependencies failed: Module 'Tree::DAG_Node' is not installed
! Bailing out the installation for Test-Warn-0.24. Retry with --prompt or --force.
! Installing the dependencies failed: Module 'Test::Warn' is not installed
! Bailing out the installation for Devel-Cover-1.01. Retry with --prompt or --force.
! Installing the dependencies failed: Installed version (0.94) of Test::More is not in range '0.96'
! Bailing out the installation for Path-Tiny-0.017. Retry with --prompt or --force.
1 distribution installed
Installing modules failed

$ sudo carton exec -- perl bin/md2inao.pl markdown.md > markdown.txt
Password:
Can't locate FindBin/libs.pm in @INC (@INC contains: local/lib/perl5/darwin-thread-multi-2level local/lib/perl5 . /System/Library/Perl/5.12 /System/Library/Perl/5.12/darwin-thread-multi-2level) at bin/md2inao.pl line 8.
BEGIN failed--compilation aborted at bin/md2inao.pl line 8.

図と写真を区別したい

#23 にも関連しまして。

スクリーンショットや概念図は「図」なんですが、写真は「写真」なんです。
図番号を自動でふってくださる機能で、できれば図と写真を区別できるようにしていただきたいです。

拡張子によって分けるのは難しそうです。
ファイルのネーミングで区別するようにするか、明示的に指定するようにするかでしょうか。

キャプションでの●の取り扱い

#33 とも関連しまして、キャプションについてご相談させてください。

図、表、リストのキャプションの行頭記号は、媒体によって●とは限りません。
▼なこともあれば、何もないものもあります。

ですので、「Markdown段階での行頭記号のままとする」という仕様がよいかなと考えました。

つまり、Markdownで以下みたいに書いていた場合は、イナオ記法でもInDesignでも行頭に●が入るという動作です。もし何もなければ何もなし、▼であれば▼になるイメージです。

    ●リスト1.1::キャプション

という仕様でいけると思ったのですが、以下の記法のときが無理でした。
●などを書く欄も、書く必要もございませんので。

![キャプション](ファイル名)

何か良い案はございませんでしょうか?
リストの文字数の警告の設定と同様に、キャプションの行頭記号を設定する項目を設けるとかですかねぇ。

メタデータで節場号を表現する場合の書き方

#32 と関連しそうなのですが、

Chapter: 3
Serial: 5
Title: 章のタイトルや連載の各回タイトル
Subtitle: 章のキャッチや記事の各回キャッチ

ここから本文

の書き方は、書籍の場合はSerial: 5が節番号にあたりますでしょうか。

現在、inao記法では節番号は次のように表記しています。

▼1.1
■節タイトル
……
▼1.2
■節タイトル

節タイトルは現在のmarkdownでは#にあたります。

ですので、もし将来的にこのメタデータで自動的に節番号が振られるようにしていただく場合、次のように節が登場するごとにメタデータを書く形になりますでしょうか。

Serial: 1

# 節タイトル
……

Serial: 2

# 節タイトル

節番号は現状書籍のみに登場する要素で雑誌の場合は利用していません。

もしかしたら私が勘違いしているかもしれず恐縮ですが、ご意見いただけるとうれしいです。

Markdown で原稿を書く場合の取説が欲しい

#13 より移転。

詳細なリファレンスマニュアルが欲しいというより、実際に Markdown で書くにあたって

  • これこれこういう記法が使える
  • この辺に注意してね

という取り扱い説明書があったほうがいいよね、ということです。

現状 Markdown で書くといっても Markdown のあらゆる記法に対応しているわけでもないし、逆に雑誌の原稿を書くときに Markdown のあらゆる記法を使う必要があるわけでもない。せいぜい

  • 見出し
  • リスト
  • コードブロック
  • 強調
  • 画像
  • リンク

とかとかくらいがあればいいわけですよね?

まずはその辺をまとめて俯瞰できるようにする。

そして

  • Markdown で書くといっても脚注は (注: ... ) で書くとか
  • コードのキャプションは●リスト1.1::ほげほげ で書くとか

ローカルルールがありますよね。それを説明する。Markdown で書こう! と思った人は当然その中に Markdown でない inao 記法っぽいものを書き込むことがあるということはわからないわけですから。

で、最後に

  • 本文中にHTML を書きたい場合は Markdown の記法でエスケープしてね ...
  • この辺の記法は使えそうで使えないから注意してね

とかそういうのを書く。

これらの取扱説明書があったほうがいいんじゃないのー、という話です。

入れ子のリストに対応させる

Markdown の入れ子リストシンタックスに md2inao が未対応なので、対応させる。

* Hoge
    * Foo
    * Bar

これを inao 記法の入れ子リストに。

図、表、リスト、写真番号の自動化について

以下みたいに書いていれば図番号を自動でふってくださる機能をお付けくださったですか!!?
めーちゃくちゃ便利そうです。

![キャプション](ファイル名)

本文から図番号で参照する必要があるのですが、本文からこの図番号を取得できますでしょうか?
[キャプション]って書いていれば図1になるなど。

そのほか2点ご質問させてください。

  • 書籍の場合は図1.1みたいなナンバリングになるのですが、これにもご対応可能でしょうか?
  • 表やリストの番号についてもなるのでしょうか?

本文でのみ、和文と欧文でイタリックの文字スタイルを変えたい

(これから今月発売号の作業時に気がついたお願いを何点か登録させていただきます)

イタリックですが、本文に限り、

  • 和文はイタリック(変形斜体)
  • 欧文はイタリック

にしていたけるとうれしいです。

理由なんですが、本文のみ明朝フォントなので、それにあった欧文フォントのイタリックにするためです。

--- in md2inao
_あいうabcえお_
--- expected
<ParaStyle:本文><CharStyle:イタリック(変形斜体)>あいう<CharStyle:><CharStyle:イタリック>abc<CharStyle:><CharStyle:イタリック(変形斜体)>えお<CharStyle:>
--- 現在の挙動
<ParaStyle:本文><CharStyle:イタリック(変形斜体)>あいうabcえお<CharStyle:>

ご参考までに、以下、idtagreplacerでの該当部分のJavaScriptコードです。

var tagWa = "イタリック(変形斜体)";
var tagLa = "イタリック";

searchTag(function(l, m, r) {
  m = m.replace(/([a-zA-Z0-9!"#$%&'\(\)\-=\^~\\@`\[\]{};+:\*<>,\.\/\?_]+)/g, "<CharStyle:!!>$1<CharStyle:>");
  m = m.replace(/([^a-zA-Z0-9!"#$%&'\(\)\-=\^~\\@`\[\]{};+:\*<>,\.\/\?_]+)/g, "<CharStyle:" + tagWa + ">$1<CharStyle:>");
  m = m.replace(/<CharStyle:!!>/g, "<CharStyle:" + tagLa + ">");
  return l + m + r;
});

<>関連の挙動がおかしい

<>の中の文字が抜けたり、注記になったりするみたいです…。
他にもあるかもですが、発見できた3パターンは以下です。

--- in md2inao
「<a>」
--- expected
「<a>」
--- 現状の動作
「」◆注/◆◆/注◆
--- in md2inao
「<b>」
--- expected
「<b>」
--- 現状の動作
「
--- in md2inao
<a>
--- expected
<a>
--- 現状の動作
◆注/◆◆/注◆

全角文字と半角文字の間の半角スペースを削除する

Markdownの記法の前後には、 このように 半角スペースを入れる必要があるかと思います。
また、全角文字と半角文字の間に半角スペースを入れて原稿をお書きになる著者さんがほとんどです。

この半角スペースは制作時には不要ですので、削除するようにしていただけるとたいへんありがたいです!

ただ、コードやコマンド中などでは削除すると問題になる(動作しないコードやコマンドになる)ケースもありそうです。

インラインのリスト白文字(黒地に白文字)のテストの追加

#42 (comment)

上記に書き込んだ件なのですが、空行の件にまぎれちゃってたので、別Issueに。
以下のテストも追加していただきたいです。

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

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

InDesign出力機能

先日のリファクタリングで「HTMLのこのタグは inao記法でこの出力に変換する」というコードをほぼ完全に構造化することができました。

↓この辺みれば何をいってるかわかるはず。
https://github.com/naoya/md2inao.pl/tree/master/lib/Text/Md2Inao/Node

で、ですね。

この A.pm とか Pre.pm とかをもう一組用意して中身を inao 記法への対応じゃなく InDesign への対応になるようしてしまえば、md2inao で inao 記法への出力も InDesign への出力も兼ねるようなコードに仕上げることができます。

なので「inao 記法のこれは InDesign ではこうなる」という仕様があれば、中間出力を経由せずに InDesign で出力するように対応するのは難しい話ではないです。

ただまあ、業務プロセス上、どうも中間フォーマットがあったほうが良いのではないかという感じもしている (著者校正のときに inao フォーマットならぼくでも簡単に手を入れられるとか、inao さんが★...★とかでメモを残してたりとか) のでそこまでやるべきかどうかわかりません。

メタデータが重複できない

以下のような共著のケースで、現状ではAさんの情報が抜けてしまうようです。

--- in md2inao
Chapter: 4
Title: タイトル
Subtitle: サブタイトル
Author: Aさん
Author(romaji): A-san
Author: Bさん
Author(romaji): B-san
--- expected
<ParaStyle:章番号・連載回数>章番号:第4章
<ParaStyle:タイトル>タイトル:タイトル
<ParaStyle:キャッチ>キャッチ:サブタイトル
<ParaStyle:本文>著者:Aさん
<ParaStyle:本文>著者(ローマ字):A-san
<ParaStyle:本文>著者:Bさん
<ParaStyle:本文>著者(ローマ字):B-san
--- 現在の挙動
<ParaStyle:章番号・連載回数>章番号:第4章
<ParaStyle:タイトル>タイトル:タイトル
<ParaStyle:キャッチ>キャッチ:サブタイトル
<ParaStyle:本文>著者:Bさん
<ParaStyle:本文>著者(ローマ字):B-san

utf8 flag の取り扱いを正しくする

昔のスタイルそのまま文字列を非文字列として扱って全体の処理が行われているので、若干混乱する。flagged string を渡して flagged string が返ってくるようにする。

---に対応していただきたい


に対応していただくことは可能でしょうか?
現状は以下に変換されます。

<hr />

イナオ記法の場合は以下に、

=-=-=

InDesignテキストの場合は以下に、

<ParaStyle:区切り線>

変換していただけると助かります。

空行挿入機能

積年の希望だった機能がございます。

InDesign上(=紙面の見た目上)での行間調整のため、段落ブロック(箇条書きの固まりとか、コードのかたまりとか)の前あるいは後ろに、意図的に空行を挿入したい場合があります。

挿入したい空行は2種類

挿入したい空行は、InDesignテキストで言うと以下の2種のみです。

  • <ParaStyle:本文>(本文1行分の空行です)
  • <ParaStyle:半行アキ>(本文1/2行分の空行です)

たとえばWEB+DB PRESSの場合は、

  • 箇条書きの最初の行の前
  • (別ボックスのリストではない)インラインのコードやコマンドの最初の行の前

に「半行アキ」という空行を入れたいです。
inao→InDesignで言うと以下になります。

本文
◆1/2行間◆
・箇条書き
・箇条書き
・箇条書き
本文
◆1/2行間◆
◆list/◆
別ボックスのリストではないインラインのコード
別ボックスのリストではないインラインのコード
別ボックスのリストではないインラインのコード
◆/list◆
本文
<ParaStyle:本文>本文
<ParaStyle:半行アキ>
<ParaStyle:箇条書き>・箇条書き
<ParaStyle:箇条書き>・箇条書き
<ParaStyle:箇条書き>・箇条書き
<ParaStyle:本文>本文
<ParaStyle:半行アキ>
<ParaStyle:リスト>別ボックスのリストではないインラインのコード
<ParaStyle:リスト>別ボックスのリストではないインラインのコード
<ParaStyle:リスト>別ボックスのリストではないインラインのコード
<ParaStyle:本文>本文

書籍によっては、半行アキではなく、1行アキ(普通の本文の空行)を入れること場合もございます。

<ParaStyle:本文>本文
<ParaStyle:本文>
<ParaStyle:箇条書き>・箇条書き
<ParaStyle:箇条書き>・箇条書き
<ParaStyle:箇条書き>・箇条書き
<ParaStyle:本文>本文
<ParaStyle:本文>
<ParaStyle:リスト>別ボックスのリストではないインラインのコード
<ParaStyle:リスト>別ボックスのリストではないインラインのコード
<ParaStyle:リスト>別ボックスのリストではないインラインのコード
<ParaStyle:本文>本文

上記の例はいずれも段落ブロックの前行に空行を入れる例でしたが、段落ブロックの後ろに空行を入れることもございます。

機能追加案

以下の両方あるいはどちらかの機能を実現していただけると、ものすごくうれしいです!
特に案2を実現していただけると、とても楽になりそうです。

案1:明示的に空行を指定する

先述したように入れたい空行はInDesignテキストで言うと以下の2種のみですので、それをMarkdown上で明示的に指定できるようにしていただきたいです。

  • <ParaStyle:本文>
  • <ParaStyle:半行アキ>

案2:空行を挿入する段落ブロックを設定ファイルで指定する

入れたい空行はInDesignテキストで言うと上記の2種のみで、入れたい個所は段落ブロックの前行あるいは後ろの行のみです。ですので以下の4種を設定ファイルで設定できるようにしていただけると、案1のようにいちいち明示的に指定する必要がなくなり、たいへん楽ちんになります。

  • <ParaStyle:本文>を前行に入れたい段落ブロックは?
  • <ParaStyle:本文>を後ろの行に入れたい段落ブロックは?
  • <ParaStyle:半行アキ>を前行に入れたい段落ブロックは?
  • <ParaStyle:半行アキ>を後ろの行に入れたい段落ブロックは?

段落ブロックの前行/後ろの行というのは、たとえば箇条書きで言うと、以下の部分のことです。

★ここが前行★
* 箇条書き
 * 箇条書き2階層目
* 箇条書き
* 箇条書き
★ここが後ろの行★

Markdown2Inaoで生成されるInDesignタグファイルの文字コード

Web版のMarkdown2Inao( http://md2inao.bloghackers.net/ )を使っていて感じた点です。

変換してダウンロードしたファイルの文字コードがUTF-8ですが、現状のInDesignタグファイル(「InDesign出力」にチェックすると生成されるもの)は冒頭に<SJIS-MAC>とありShift-jis前提なので、現状ではダウンロードする際にShift-jisになっているとありがたいのですが、変更可能でしょうか。

ただ、InDesignタグファイルをUTF前提のものにした場合(ファイル冒頭に<UNICODE-MAC>)は文字コードも変更になるので一時的なものになるかもしれません。簡単に変更できるようでしたらご検討お願いできるとうれしいです。

引用部でスペースが削除されてしまう

以下のような挙動になり、引用部で半角アキ、全角アキともにスペースが削除されちゃうようです。

--- in md2inao
> a b c d e f.
> 
> は ん か く あ き
> 
> ぜ ん か く あ き
--- 現状の動作
◆quote/◆
abcdef.はんかくあきぜんかくあき
◆/quote◆

InDesign版でタグをエスケープしていただきたい

InDesignのタグと、原稿中のタグを区別するために、原稿中のタグは\(のUnicode番号である005C)でエスケープが必要なのです。

原稿中のタグは、<<005C>< に、 ><005C>>に変換していただけますでしょうか?

```に対応していただきたい

以下の記法に対応していただくことは可能でしょうか? ```を開始と終了に入れるタイプです。

code

現状は、「上記の記法は使えないので、以下の行頭4つスペースにしてください」というお願いをしています。

code

注記の中でルビが使えない

注記の中でもルビを使えるようにしていただけると助かりますー。

--- in md2inao
○○います(注:あいう<span class='ruby'>CRIME(クライム)</span>えお)。
--- expected
<ParaStyle:本文>○○います<cstyle:上付き><fnStart:><pstyle:注釈>あいう<cr:1><crstr:クライム><cmojir:0>CRIME<cr:><crstr:><cmojir:>えお<fnEnd:><cstyle:>。
--- 現在の挙動
<ParaStyle:本文>○○います<cstyle:上付き><fnStart:><pstyle:注釈>あいうCRIME(クライム<fnEnd:><cstyle:>えお)。

ネストしたリスト記法のバグ

 --- md2inao
 * Hello
     * World

 * Good Bye
     * World
 --- expected
 <SJIS-MAC>
 <ParaStyle:箇条書き>・Hello
 <ParaStyle:箇条書き2階層目>・World
 <ParaStyle:箇条書き>・Good Bye
 <ParaStyle:箇条書き2階層目>・World

このテストが通らない。結果は

 <SJIS-MAC>
 <ParaStyle:箇条書き>・Hello
 <ParaStyle:箇条書き2階層目>・World

 <ParaStyle:箇条書き>・Good Bye
 <ParaStyle:箇条書き2階層目>・World

と余計な空行が入る。

Text::Markdown がネストしたリストが連続した場合に正しく html に変換できていないのが原因。

一部の箇条書きでイタリックにならない

普通の箇条書きでは_hoge_でイタリックになりますが、以下のケースではならないようです。

=== 
--- in md2inao
<dl>
  <dt>箇条書き_イタリック_箇条書き</dt>
  <dd>箇条書きの説明文_イタリック_箇条書き</dd>
  <dt>箇条書き_イタリック_箇条書き</dt>
  <dd>箇条書きの説明文_イタリック_箇条書き</dd>
</dl>
--- expected
<ParaStyle:半行アキ>
<ParaStyle:箇条書き>・箇条書き<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き
<ParaStyle:箇条書き説明>箇条書きの説明文<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き
<ParaStyle:箇条書き>・箇条書き<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き
<ParaStyle:箇条書き説明>箇条書きの説明文<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き

=== 
--- in md2inao
<ol class='circle'>
    <li>連番箇条書き(白丸数字)_イタリック_箇条書き</li>
    <li>連番箇条書き(白丸数字)_イタリック_箇条書き</li>
    <li>連番箇条書き(白丸数字)_イタリック_箇条書き</li>
</ol>
--- expected
<ParaStyle:半行アキ>
<ParaStyle:箇条書き><CharStyle:丸文字><2460><CharStyle:>連番箇条書き(白丸数字)<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き
<ParaStyle:箇条書き><CharStyle:丸文字><2461><CharStyle:>連番箇条書き(白丸数字)<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き
<ParaStyle:箇条書き><CharStyle:丸文字><2462><CharStyle:>連番箇条書き(白丸数字)<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き

=== 
--- in md2inao
<ol class='square'>
    <li>連番箇条書き(黒四角数字)_イタリック_箇条書き</li>
    <li>連番箇条書き(黒四角数字)_イタリック_箇条書き</li>
    <li>連番箇条書き(黒四角数字)_イタリック_箇条書き</li>
</ol>
--- expected
<ParaStyle:半行アキ>
<ParaStyle:箇条書き><cTypeface:B><cFont:A-OTF ゴシックMB101 Pro><cotfcalt:0><cotfl:nalt,7>1<cTypeface:><cFont:><cotfcalt:><cotfl:>連番箇条書き(黒四角数字)<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き
<ParaStyle:箇条書き><cTypeface:B><cFont:A-OTF ゴシックMB101 Pro><cotfcalt:0><cotfl:nalt,7>2<cTypeface:><cFont:><cotfcalt:><cotfl:>連番箇条書き(黒四角数字)<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き
<ParaStyle:箇条書き><cTypeface:B><cFont:A-OTF ゴシックMB101 Pro><cotfcalt:0><cotfl:nalt,7>3<cTypeface:><cFont:><cotfcalt:><cotfl:>連番箇条書き(黒四角数字)<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き

=== 
--- in md2inao
<ol class='alpha'>
    <li>アルファベット箇条書き_イタリック_箇条書き</li>
    <li>アルファベット箇条書き_イタリック_箇条書き</li>
    <li>アルファベット箇条書き_イタリック_箇条書き</li>
</ol>
--- expected
<ParaStyle:半行アキ>
<ParaStyle:箇条書き><CharStyle:丸文字><cLigatures:0><cOTFContAlt:0><cOTFeatureList:nalt,3>a<cLigatures:><cOTFContAlt:><cOTFeatureList:><CharStyle:>アルファベット箇条書き<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き
<ParaStyle:箇条書き><CharStyle:丸文字><cLigatures:0><cOTFContAlt:0><cOTFeatureList:nalt,3>b<cLigatures:><cOTFContAlt:><cOTFeatureList:><CharStyle:>アルファベット箇条書き<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き
<ParaStyle:箇条書き><CharStyle:丸文字><cLigatures:0><cOTFContAlt:0><cOTFeatureList:nalt,3>c<cLigatures:><cOTFContAlt:><cOTFeatureList:><CharStyle:>アルファベット箇条書き<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>箇条書き

脚注の中に)があると脚注が終了してしまう

#3 と対応しているかもしれません。

脚注の中に)があると終了と勘違いしてしまいそこで脚注が終わってしまいます。

--- in md2inao
本文(注:脚注の中に()があるとおかしくなる。)本文の続き。
--- expected
本文◆注/◆脚注の中に()があるとおかしくなる。◆/注◆本文の続き。

--- unexpected
本文◆注/◆脚注の中に(◆/注◆があるとおかしくなる。)本文の続き。

もし原因わかりましたらお願いできるとうれしいです。

#もしかしたらmd2inao上にエスケープ文字などを書くのが普通でしょうか。

InDesignのリストについて質問

InDesignで2レベル目のリストはどういう仕様ですか?

=== list
--- in md2inao
* 通常の箇条書き
* 通常の箇条書き
* 通常の箇条書き
* **強調**
* _イタリック_
--- expected
<ParaStyle:箇条書き>・通常の箇条書き
<ParaStyle:箇条書き>・通常の箇条書き
<ParaStyle:箇条書き>・通常の箇条書き
<ParaStyle:箇条書き>・<CharStyle:太字>強調<CharStyle:>
<ParaStyle:箇条書き>・<CharStyle:イタリック(変形斜体)>イタリック<CharStyle:>

これが1レベル目。

* Hello
    * World

としたときどうなるでしょうか?

Web版のmd2inaoで文字化けすることがある

#27 で触れた件です。

ブラウザのせいな気がしますが、いちおうご報告だけさせてください。
ブラウザはWindowsのChromeの最新版(26.0.1410.43 m)を使っています。

Web版md2inaoで以下のようにすると、4で文字化けすることがあります。しないこともあります。

  1. ブラウザでテキストを選択
  2. ブラウザでテキストを変換(InDesign)
  3. ブラウザの戻るボタンで戻る
  4. ブラウザでテキストを変換(inao)

文字化けするのはinaoのときだけですね。

# 元テキスト
あいう`<code>`えお

    print "<html>\n";

ここは本文
# 文字化けテキスト
????????cmd/??<code>??/cmd??????
??list/??
print "<html>\n";
??/list??
??????{??

この際、ブラウザはUTF8と正しく解釈しているのに文字化けしています。

ちなみに普段のWeb版md2inaoの使い方も

  1. ブラウザでテキストを選択
  2. ブラウザでテキストを変換
  3. ブラウザの戻るボタンで戻る
  4. ローカルでテキストを更新
  5. 2~4を繰り返す

という感じです。
こうしますと、1の一度だけで、それ以降はテキストを再選択せずに済みます。

メタデータ周りの微調整および機能追加のお願い

よろしければ以下のpull request相当の機能を追加していただけませんでしょうか?

#39

微調整を除きますと、主には以下の2つです。

  • 所属の追加(載せる方が多いので)
  • ローマ字表記の追加(WEB+DB PRESSでは必須なので)

開始タグの変換後に空行が残らないようにしたい

すみません、すみません、これはidtagreplacerからの引きつづきのバグです。

inao/idtagreplacer#7

以下のテストファイルの98、113、244、259行目にあるような、段落スタイル開始時の空行(<ParaStyle:リスト>とかだけの行)は、入らないようにしていただきたいです・・・。

https://github.com/naoya/md2inao.pl/blob/master/t/30_indesign_basic_syntax.t#L98

他にもございます。
私が上記ファイルから不要な行を抜いたものをコミットしましょうか?

(ちょっとしたら外出するので、のちほどになりますけど)

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

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

問題が出るケース

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

  い
--- expected
・あ
・あ

  い

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

・あ

===
--- in md2inao
* あ

* い
--- expected
・あ

・い

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


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

===
--- in md2inao
* あ

い
--- expected
・あ
い

===
--- in md2inao
* あ

い

* あ
--- expected
・あ
い
・あ

===
--- in md2inao
あ

 い

  う

    え

     お

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

 お
◆/list◆
 か

InDesignの画像について質問

Markdown → Inao では画像は

===
--- in md2inao
 ![Command Line Toolsのインストール](http://cdn.bloghackers.net/images/20130220_204748.png)

 ![Command Line Toolsのインストール](http://cdn.bloghackers.net/images/20130220_204748.png)

 <img src="http://cdn.bloghackers.net/images/20130220_204748.png" title="Command Line Toolsのインストール">
--- expected
 ●図1 Command Line Toolsのインストール
 http://cdn.bloghackers.net/images/20130220_204748.png

 ●図2 Command Line Toolsのインストール
 http://cdn.bloghackers.net/images/20130220_204748.png

 ●図3 Command Line Toolsのインストール
 http://cdn.bloghackers.net/images/20130220_204748.png

と処理するように以前にやりとりがありましたが、InDesign だとどうなるでしょうか?

テストの粒度が荒いので細かくする

今は大きな markdown ファイル一個を変換した後の結果でテストしているのだけど、これだとテストが落ちたときにどの文法規則の変換が誤っているかが分からない。

シンタックス毎にテストを作って、それぞれごとに動作を保証したほうがよい。

◆i-j◆ の仕様について質問

to @inao

どうもイタリック体に

  • ◆i/◆
  • ◆i-j/◆

という二つの記法があるようなのですが、前者と後者の使い分けがコードを眺めているだけだとちょっとわかりません。どういう場合に◆i-j/◆ が選択されるべきなのか、というのを教えてください。

コードではリストやコラム、引用注では◆i-j/◆ が選択されるようになっているようですが・・・

(ご相談)段落間改行1つでは文章が一続きになってしまう

もしかしたらこのままのほうがよいのかもとも思いつつご相談です。以下のように、本文の段落を改行1つで改行していると文章がつながってしまいます。

GitHub Flavoer Markdownでは改行1つで改行されていて、こっちのほうが直感的なのかも、とも感じていました。

--- in md2inao
 1段落目
 2段落目
--- expected
 1段落目
 2段落目

--- unexpected?
 1段落目 2段落目

ただ、この変更をすると

 1段落目

 2段落目

 1段落目

 2段落目

と表示されてしまうので、変更しないほうが良いのかも、とも感じています。

@naoya さん、 @inao さん、ご意見もらえるとうれしいです。

説明つきリスト(箇条書き)に対応させる

説明つき箇条書き(リスト)に対応させていただけるとありがたいです。

編集記号は以下です。

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

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

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

InDesign版の注釈

現在の開始タグは以下になっていますが、

<fnStart:>

以下に変換していただきたいです。文字スタイルの設定をしています。

<cstyle:上付き><fnStart:>

箇条書き後のリストと箇条書きの末尾が抜ける

1点私がずっと困っていた現象です。 #4 に関連する現象かもしれません。

横からすいません。同じような現象かもと思ったのでここに書きました。箇条書きの後にリストなどがあると、箇条書きの一部とリストが消えてしまいます。

md2inao

 本文

- 箇条書き1行目
- 箇条書き2行目
- 箇条書き3行目
- 箇条書き4行目

    ●リスト1::リストのキャプション
    code {
      code 
      code
    }

 本文

unexpected

 本文
・箇条書き1行目
・箇条書き2行目
・箇条書き3行目
・
 本文

作成していただいた3/8時点の http://md2inao.bloghackers.net/upload で行って再現しました。

意図する動作は以下のとおりです。

--- in md2inao
 本文

- 箇条書き1行目
- 箇条書き2行目
- 箇条書き3行目
- 箇条書き4行目

    ●リスト1::リストのキャプション
    code {
      code 
      code
    }

 本文

--- expected
 本文
・箇条書き1行目
・箇条書き2行目
・箇条書き3行目
・箇条書き4行目
◆list/◆
●リスト1   リストのキャプション
code {
  code 
  code
}
◆/list◆
 本文

ちなみに、次のように箇条書きの終わりとリストの始まりの間に「改行」「全角スペース」「改行」と入れると正常に動作しますので、現在これで運用しています。

 本文

- 箇条書き1行目
- 箇条書き2行目
- 箇条書き3行目
- 箇条書き4行目

 

    ●リスト1::リストのキャプション
    code {
      code 
      code
    }

 本文

原因がわかりましたらなにとぞよろしくお願いします。

コラムなどでの注の記法

本文の注番号は注1、注2ですが、コラムの注番号は注a、注bと別系統になります。

段落スタイルの注釈を明示的に指定する方法をご用意いただけませんでしょうか?
inao記法の場合は、以下みたいな感じです。

--- in md2inao
注a    注の内容
--- expected
<ParaStyle:注釈>注a  注の内容

なお、コラム本文中からの参照は、現状は単語<sup>注a</sup>と明示的に手動で行うつもりです。

Web版のmarkdown2inaoでエラー出力も表示できるとうれしい

Web版のmarkdown2inao( http://md2inao.bloghackers.net/ )はとても便利に使わせていただいています。

利用していて思ったのですが、現在、エラーやリストの文字数超過などがあった場合、エラー出力で表示するようになっています。

たとえば以下のようなmdファイルを読み込むと、

本文

    ●リスト1::コード
    枠囲みのコードcodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecode

本文

    本文中に挟むコードcodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecode

以下のようなエラーを返します。

リストは63文字まで!(現在142使用):
●リスト1   コード
枠囲みのコードcodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecode


本文埋め込みリストは55文字まで!(現在118使用):
本文中に挟むコードcodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecode

こちら執筆者の方にインデント調整してもらうときなどに参考にしてもらっているので、Web版でも表示できるとうれしいかも、と思いました。

ご検討よろしくお願いします!

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.