2012-05-02 11 views
9

mypackage.myclassという名前のパッケージにクラスを書きました。私は、パッケージとクラスのための私自身のHTMLドキュメントを作成しました。the MATLAB documentationに記述されているように、これをMATLABヘルプブラウザに含めました。MATLAB:指定された参照HTMLページを開くためにdocコマンドを強制する

このHTMLドキュメントは、ヘルプブラウザを使用して直接表示できますが、doc mypackage.myclassと入力すると表示されません。代わりにhelpwinによって自動生成されたHTMLドキュメントを表示します(これはすばらしい機能ですが、私が望むものではありません。自動生成されたドキュメントはユーザーにとって使いやすいものです)。

docでは、自動生成されたドキュメントではなく、ドキュメントを表示するにはどうすればよいですか?等価的に

:あなたはdoc docTopicを実行すると、ドキュメントのコマンド内のJavaクラスcom.mathworks.mlservices.MLHelpServices.showReferencePage(docTopic)

呼び出されます。 docTopicの参照ページが存在する場合は、それを表示して成功値を返します。参照ページが存在しない場合は、失敗値を返し、helpwin(docTopic)が呼び出されます。どこかに、docTopicの値と個々の参照HTMLファイルを結ぶカタログが必要です。そのカタログではどうすればいいですか?または、パッケージ用にカタログを作成できますか?

MathWorkersと@Yairは、私に私の知る限り、これは不可能であり、The MathWorks社が意図していない知っているように:)

+0

あなたはどこかで間違いを犯さなかったのですか? [xUnit](http://www.mathworks.com/matlabcentral/fileexchange/22846-matlab-xunit-test-framework)パッケージは、ドキュメントの面でうまくいっているようです。 – Jonas

+0

@Jonasはい - 'doc runtests'や' doc TestComponent'を実行すると、 'helpwin'によってそれらのクラスのために自動生成されたHTMLドキュメントが得られます。 xUnitには素晴らしいチュートリアルのドキュメントが含まれていますが(問題はありません)、クラス/関数自体の個別のHTMLドキュメントは含まれていません。 –

+0

ああ、そうだ。私はあなたの質問を誤解していました。ハイパーリンクのヘルプにアクセスするために 'doc mypackage'を使うように人々に教育することは、より簡単になるでしょうか? – Jonas

答えて

3

で自分自身をハングアップするのに十分な文書化されていないロープを与えてください。私はこれを行うための文書化されていない方法も知らない。私の知る限り、docのキーワードはどこかにハードコードされています。

設定によって次のことを試すことができます:あなたは、ファイルdoc.mでその機能を入れた場合

function doc(topic) 

    my_topics = { 
     'foo', 'foo.html' 
     'bar', 'bar/help/intro.html' 
    }; 

    for i = 1 : size(my_topics, 1) 
     if strcmpi(topic, my_topics{i, 1})  
      web(my_topics{i, 2}, '-helpbrowser'); 
      return; 
     end 
    end 

    % Fall back to MATLAB's doc. Note that our doc shadows MATLAB's doc. 
    docs = which('doc', '-all'); 
    old_dir = cd(); 
    c = onCleanup(@() cd(old_dir)); 
    cd(fileparts(docs{2})); 
    doc(topic); 
end 

と置く:MATLABのヘルプブラウザでHTMLページを表示するweb(..., '-helpbrowser')を使用して、独自のdocコマンドを準備します対応するディレクトリ(help addpathを参照)は、組み込みのdocの代わりに呼び出されます。

もちろん、カスタムドックマッピング(ファイルなど)を保存したり、何らかの動的ルックアップスキームを使用したりすることもできます。

UPDATE: MATLAB R2012bのとおり、web'-helpbrowser'オプションが文書化されていません。これは、MATLABバージョンのGUIの変更に関連している可能性があります。これにはヘルプブラウザも含まれています。 web(..., '-helpbrowser')は意図したとおりに動作しますが、将来のバージョンのMATLABでは変更される可能性があります。私が知る限り、 HTMLページをR2012bのヘルプブラウザに開く方法はありません。

+0

それは、私がそのようなdocコマンドをシャドーするのが少し汚いと感じさせるでしょうが、ハックとして動作するように見えます。もちろん、このようなパッケージが複数あり、それぞれに独自のdocコマンドが必要な場合は、もっと複雑になるでしょう。しかし、それは私がこれまでずっと長い間解決してきたソリューションに最も近いので、受け入れるつもりです。ありがとう。 –

+0

@SamRoberts:うれしいよ。それは間違いなく、いくつかの独立したプロジェクトのためにそれを使用することは、トラブルにつながるハックです。私たちは同じ問題に直面し、 '' doc''をシャドウするのではなく、自分の '' doc''コマンドを別の名前で出荷することに決めました。欠点は、ユーザーが使用するコマンドを覚えておく必要があることです。 –

関連する問題