web-dev-qa-db-ja.com

org-modeエクスポートテンプレートをカスタマイズしますか?

この質問に関連して: org-mode HTMLエクスポートのテンプレートを定義する方法は?

C-c C-e tを押して挿入されたテンプレートをカスタマイズして、いくつかのカスタマイズと、何を配置するかについてのコメントにいくつかのヘルプノートを表示したいと思います。

たぶん、テキストスニペットを挿入するために他のEmacsの方法を使用する方が良いでしょうか?または、org-modeテンプレート拡張を使用するには?

8
justingordon

短い答え:構造を劇的に変更するために簡単に達成できるようには見えません。いくつかの export-optionsorg-export-plist-varsのように提案されていますが、私は個人的にそれらをいじっていません。

答えを掘る:電話するとき C-c C-e t、org-mode関数org-insert-export-options-templateを呼び出しています。私は関数について簡単に助けました(C-h f)そしてそれに渡すためのヘルプテキストやオプションが見当たらないので、関数のソースを調べる必要がありました(M-xfind-function ENTERorg-insert-export-options-template ENTER>)。

org-insert-export-options-template関数を読むと、org-get-current-optionsを介して挿入するテキストを取得していることがわかります。説明でその動作を構成するのに役立つことはないので、ソースも表示してください。 org-insert-export-options-templateを呼び出すと、テキストに挿入されるテンプレート情報のよく知られたフルボディの段落が表示されます。設定される値は、他のさまざまな組織変数、バッファー名などからのものです。

推奨事項:私が個人的に行ったことは、新しいオプションを開始するときに、必要なオプションを決定し、他の組織ファイルからそれらをコピーすることに時間を費やしています。 AutoInsertMode を使用して新しい組織ファイルを自動入力することも考えましたが、延期しました。

4
jonEbird

「スニペットの挿入」オプションに加えて、#+ SETUPFILE:/path/to/template.orgにも興味があるかもしれません。これは、エクスポート用に事前定義された設定を設定する場合に役立ちます。必要な数だけ作成できます。これをyasnippetと組み合わせて、次のことを行います。

# -*- mode: snippet; require-final-newline: nil -*-
# name: blogtemplate
# key: <bl
# --
#+SETUPFILE: ~/.emacs.d/org-templates/level-$1.org
#+DATE: $2
#+KEYWORDS: $3 

#+BEGIN_HTML
<h1 class="title">$0</h1>
#+END_HTML

$ 1、$ 2などの定義タブが停止するため、Webフォームのように入力できます。

編集:

特にヤスニペットとタブストップの記述の詳細については、こちらをご覧ください: http://capitaomorte.github.io/yasnippet/snippet-development.html#sec-3-

ただし、基本的に、スニペットを挿入すると$ 1になり、Tabキーを押すと$ 2になります。そうすれば、必要なものをすばやく入力できます。

0
Robert