410
@410

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

AsciiDocで、はてな記法のgoogle記法(WikipediaでいうカスタムURIリンク)を作る事はできますか?

はてな記法[google:~~]のように1、AsciiDoc形式の文章内にGoogle検索キーワードのリンクを簡潔に書きたいのですが、AsciiDocの機能で実現しますか?


ちなみにAsciiDocでは、Wikipediaのテンプレートみたいに引数ありのトランスクルージョンの記法はあるんでしょうか?
(AsciiDocで引数ありのテンプレートが作れると重宝するのですが。)

  1. もしくは、Wikipediaだったらテンプレート機能の例や、「カスタムURI」という記法のように


  2. 2※ちなみに、タイトルなどに「カスタムURIリンク」と書きましたが、「カスタムURI」については、自分は使用した事がなく憶測で言及しました。

0

1Answer

Google検索キーワードのリンクを簡潔に書きたい

独自のインラインマクロを定義することで google:~~[] のように書けます。定義の仕方は AsciiDoc の処理系によって異なります。 Asciidoctor の場合は以下の通りです。

〜〜 の部分に空白や特殊文字を含めたいなら、以下で説明されるようにエスケープする必要があります。

AsciiDocでは、Wikipediaのテンプレートみたいに引数ありのトランスクルージョンの記法はあるんでしょうか?

Include 記法 でファイル全体または一部をインクルードすることはできます。「引数あり」が、トランスクルードされた文章のプレースホルダ部分を指定した引数で置き換えたいという意味なら、標準機能の範囲では対応していません。インラインマクロと同様に独自のインクルードプロセッサを定義すれば実現できます。

0Like

Comments

  1. @410

    Questioner

    回答ありがとうございます。

    以下の文は、追加質問や確認になりますが、


    • いわゆる脚注段落(「NOTE:」とか「CAUTION:」)を自作する事も可能でしょうか? (「To do:」という風に。)

    • 似た質問になりますが、 属性リスト記法で 用いたい属性(つまり要素属性)を自作する事も可能でしょうか?
    [アジャラカモクレン]
    テケレッツのパー
    ︙
    

    (自分の生半可な知識や理解で申し訳ありませんが、「ドキュメント属性(カスタム属性含む)」と「要素属性」は、別の概念なのでしょうか?)

  2. いわゆる脚注段落(「NOTE:」とか「CAUTION:」)を自作する事も可能でしょうか?

    TreeProcessorTo do: で始まるブロックを探して node_name:admonition に差し替えればできるかもしれません。

    属性リスト記法で 用いたい属性(つまり要素属性)を自作する事も可能でしょうか?

    BlockProcessor でできます。

    (自分の生半可な知識や理解で申し訳ありませんが、「ドキュメント属性(カスタム属性含む)」と「要素属性」は、別の概念なのでしょうか?)

    別物です。処理に関するルールも違えば、同名のドキュメント属性と要素属性が干渉することもありません。

  3. @410

    Questioner

    あーすごいですね、Asciidoctorって。けっこう強力な文書の書き方ができるんですね。

    (自分の生半可な知識や理解で申し訳ありませんが、「ドキュメント属性(カスタム属性含む)」と「要素属性」は、別の概念なのでしょうか?)

    別物です。処理に関するルールも違えば、同名のドキュメント属性と要素属性が干渉することもありません。

    やっぱりそうだったのですね。自分の解釈が確認できてよかったです。(自分の浅い理解で、すみませんでした。)

  4. @410

    Questioner

    この際に、さらに追加で別の質問をさせていただきますが(質問タイトルから逸脱して恐縮です)、


    文章を書く際に、リテラルブロックや属性([%hardbreaks]なども)を使わずに地の文で、複数行連続で改行を入れたのをそのまま強制改行として反映する事は可能でしょうか?(例えば、MediaWikiや、はてなブログのはてな記法モード みたいに。)

    これも仰ったように、Asciidoctorのどこかを拡張や改造する必要があるのでしょうか?

    (ちなみに、[%hardbreaks]だと複数行連続で改行を入れても1行しか反映されないようでしたが、[%hardbreaks]で2行以上反映させることは難しいでしょうかね?)

  5. ドキュメント全体を通して強制改行を有効にするには :hardbreaks-option: が使えます。

    ただし :hardbreaks-option: にしても [%hardbreaks] にしても連続した空行を出力させることはできません。1行以上の空行は段落の区切りを表すからです。2行以上反映させることは拡張では無理です。

  6. @410

    Questioner

    うーん、2行以上連続の空行の反映は無理なのですね。

    そうなると、もし無理矢理に実現させようとするとAsciidoctor自体を改造する必要になってくるのですね。(自分がやろうとすると破綻しそうですが。)


    ちなみにですが、

    いわゆる脚注段落(「NOTE:」とか「CAUTION:」)を自作する事も可能でしょうか?

    の部分は、具体的には以下のような感じになります。

    tcrf.net_Template_Todo.png
    Template:Todo - The Cutting Room Floor

    こういう物がAsciidoctorで自作できるという認識でよろしいですか?

    (もし追加で意見などがあれば、仰ってくださると幸いです。)

  7. こういう物がAsciidoctorで自作できるという認識でよろしいですか?

    Admonition を処理するクラスにモンキーパッチを当てれば自作できそうですが、拡張のように開発者向けに明文化されたインターフェースを利用するのとは違いますから、面倒ですし Asciidoctor のバージョンを上げると壊れる可能性があるといったところです。

  8. @410

    Questioner

    唐突に間を開けてしまって、再度質問を失礼します。

    「Python版AsciiDoctor みたいな物」と言いますか、
    AsciiDoctor並みの機能を持った、AsciiDocの処理系は 他には何があるかご存じでしょうか? (ここまで回答くださったような、独自定義による拡張もできる処理系を望んでいまして。)

    希望としては、Python JavaScript C++ VB の中から どれかで使えると良いのですが、いかがでしょうか。

  9. @410

    Questioner

    こんな記事があったのですね、参考になります。

    Asciidoctorを中心に使うのが無難そうですね。(実は私は英語もさっぱりで、良し悪しもあんまり分かって無く、申し訳ないです。)


    恐縮ですが、以下 3つ程の質問をさせていただきます。

    • Asciidoctorを、もういっその事、MediaWikiのテンプレート機能を持たせるだけでなく、[[リンク]]記法や見出し記法など MediaWikiライクにする拡張定義やプラグインなどはありませんか? (さらには、Markdownライクな物もあるんでしょうかね?)
    • またそのようなAsciiDoc関連の拡張定義やプラグインを配布しているサイトや、GitHubなどのユーザーはご存じでしょうか? (基本的には「AsciiDoc」で検索すれば出てくるとは思いますが、「こういう調べ方をしている」などあれば…)
    • あと、ハッシュタグの記法がある文章に対応させる事は可能でしょうか? (文章中にハッシュタグが付いているキーワードを、<a>タグでマークアップされるのを想定しています。)

Your answer might help someone💌