4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

クリップボード内のMarkdownをHTMLに変換して貼り付ける

Posted at

さてみなさま。クリップボードツールには何をお使いでしょうか。わたしはClipboard-Historyというツールを利用しています。ざっくり以下のような機能をサポートしているツールです。

  • クリップボードの履歴取得・履歴からの貼り付け
  • スタッククリップボード(連続コピー&連続貼り付け)機能
  • 定型文貼り付け機能
  • 定型文への簡単な文字列処理組込み機能
  • 定型文メニューからのスクリプト呼び出し機能←ここについて書きます

Config.txtというテキストファイルの記述によって、定型文メニューを生成、そこで選択した項目をクリップボードに貼り付けたり、メッセージダイアログとして表示したりと、色々出来るツールです。この種のソフトはいろいろありますが、作者さんも現在アクティブに活動されているツールのようでありがたく使用させて頂いております。

image.png

ということで、今回は定型文メニューからのスクリプト呼び出し機能を使って、クリップボードにコピーしたMarkdown記法をHTMLとして貼り付ける ということをやってみたので、今回簡単に書きます。

定型文メニューからのスクリプト呼び出し機能について

Clipboard-Historyの該当機能というのは、定型文メニュー用のコマンド、RunにPythonなどのスクリプトファイルのパスを指定することで、スクリプトに現在のクリップボードの中身を引き渡したり、その出力をそのまま現在アクティブなウィンドウに貼り付けたりすることができる というものです。

例えば以下のように書くと…。

Config.txt
クリップボードのMarkdownをHTMLに変換	|| <#clip, #paste> || Run | <スクリプトファイルパス> | I O

標準入力にクリップボードの中のテキストを入れた状態でスクリプトファイルが起動し、処理結果を現在アクティブなウィンドウに貼り付けることができます。

PythonでMarkdown形式テキストをHTMLに変換する

PythonでMarkdown形式テキストを扱う場合は、Markdownというそのままの名前のモジュールを使うのが便利です。

事前にpipでインストールしておきます。

コマンド
> pip install markdown

そして、次のようなスクリプトを適当なフォルダに配置します。

md.py
r"""
クリップボード内のMarkdownをHTMLに変換して貼り付ける。
markdownモジュールのインストールが必要
`pip install markdown`
# Clipboard-Historyで使う場合の例
クリップボードのMarkdownをHTMLに変換	|| <#clip, #paste> || Run | D:\Users\TakamiChie\AppData\Local\Packages\6432853C62D86.ClipboardHistory_mmq3pnrvshaxt\LocalCache\Roaming\ClipboardHistory\md.py | I O
"""
import sys
from markdown import Markdown
base = "\n".join(sys.stdin.readlines())
md = Markdown().convert(base)
print(md)

一応GithubのGistにもアップロードしています。

そして、作成したmd.pyを、Clipboard-Historyのコンフィグファイルから呼び出します。

※ なお、Clipboard-Historyのヘルプによると、「パスを相対パスとした場合、Config.txtからの相対パスとみなす」とのことですが、そのとおりConfig.txtと同じフォルダにmd.pyを置いてファイル名のみを記述しても、現行のClipboard-Historyではうまく動きませんでした。絶対パスでスクリプトファイルを指定する必要があります。

すると、大体以下のような感じ。Markdownを受け付けてくれないサイト等では役に立つかなと。

2019-02-17_22h31_15.gif

Clipboard-History自体は、Python以外でも、インタプリタ系の言語であればなんでも受け付けるので、いろいろ応用はできると思います。
ただし、Clipboard-Historyは仮にスクリプトがエラーを発生しても(標準エラーに何か出力しても)それを捨ててしまうので、何かがあったときの対処はベットしておいた方が良さそうですね。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?