1

小見出し:「私は学ぶためにここにいます。」

Markdown から別の形式にいくつかのリンク コレクションを作成する必要があります (具体的には、このスクリプトを使用して、ファイル内の各行を 1 つのメモとして Evernote に送信します)。

私のサンプルファイルはすべて次のようになります。

* [REF_1](URL)
* [REF_2](URL)
* [REF_3](URL)

編集:またはより正確には:

* [Koken Installtion Help](http://help.koken.me/customer/portal/articles/632102-installation)
* [A couple of Sass functions](http://hugogiraudel.com/2013/08/12/sass-functions/)
* [Chris Coyier's Favorite CodePen Demos](http://davidwalsh.name/chris-coyiers-favorite-pens)

…そしてこれが私の作戦です:

  1. すべての行を解析する
  2. 先頭のアスタリスク/ハイフン/プラスを取り除き、その後に空白を置きます^[\*\-\+]\s
  3. [REF] (角括弧内のすべて) の内容を正規表現と一致(?<=\[)(.*)(?=\])させ、それを変数に設定します${titel}
  4. [URL] (括弧内のすべて) の内容を正規表現と一致(?<=\()(.*)(?=\))させ、それを変数に設定します${url}
  5. 以下の例のように、新しい出力をフォーマットします。
  6. variable/clipboard/stdout に保存して (← どれが一番うまくいくかわかりません)、その上で実行markdown2evernote.rbします
  7. すべての行が送信されますか? →完了。

例 (ポイント 5 を参照):

Notebook: ${notebook}
Title: ${title}
Url: ${url}
Keywords: ${keywords}

Content Area

Will use the $title and $url variable here again.

率直に言って、私は遠くまで来ていません。正規表現を機能させる方法がわからないため、すでにポイント2で立ち往生しています。今のところ、私の bash スクリプトは次のようになります。

#!/bin/sh

document=~/file.txt
notebook="My test notebook"
keywords="test, demo"

cat ${document} | while read line; do \
    echo "$line" | sed -e '(?<=\[)(.*)(?=\])'; \
done

それが sed/grep/awk ソリューションであるかどうかは気にしません。それがシェル スクリプトである限り、すべて受け入れます。

また、リストのポイント 2 と 3 を確認した後、Ruby スクリプトに引き渡すことができる書式設定された出力を得るという目標を達成するための最善の方法にも興味があります。

上記のように漠然とした考えがありますが、これまでに書いたスクリプトははるかに単純で、上記のいずれも関与していなかったため、非常に困難です。

4

1 に答える 1