問題タブ [ikiwiki]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
775 参照

perl - ファイルハンドルと XML::Simple -> メモリ破損。問題を切り分けられない

小さなテストファイルで実行できます

そしてそれはうまくいきます。(同じ XML 入力を使用して) 大きなプログラムで同じコードを実行すると、次のように終了します。

(完全なクラッシュ ログ @pastebin.com )

でも、両替をしたら

その後、(両方のファイルで)機能するため、これは私にとって実際の問題というよりも好奇心の問題です。

  1. 私のテストケースとより大きなコードベースとの違いについて誰かが何かポインタを持っていますか?
  2. 速度/メモリ/はありますか? 異なるコマンド呼び出しの違いは? ベストプラクティス?

Debian シド: Perl 5.12.4-1。

(これは私が初めて Perl に遭遇したときなので、言語について「知っておくべき」ことについてあまり仮定しないでください。既存のコードに飛び込んだだけです。)

(より大きなプログラムはikiwikiであるため、コードは秘密ではありませんが、どこで問題を探すべきかわかりません。実用的な理由から、この投稿にすべてのコードを含めることはできません。これは Mercurial バックエンドに関するものです。)


cjmからの提案に従って、print "$_\n" for sort grep /XML/, keys %INC;出力を与えるものを追加しました

大規模なプロジェクトでは、

テストファイルで。


更新: Debian パッケージをインストールし、提案どおりlibxml-libxml-perlに追加しました。$XML::SAX::ParserPackage = "XML::LibXML::SAX";これもクラッシュし、今回は別のメッセージが表示されました:

完全なバックトレース @ pastebin.com

ただし、今回は大きなファイルと小さなファイルの両方で一貫して発生しました。また、openバッククォートを使用する場合ではなく、使用する場合のみ。

もインストールlibxml-libxml-simple-perlしましたが、これは実際には常に XML::LibXML をパーサーとして使用するためのラッパー以上のものではないはずでした。また、動作が異なり、設定されている XMLin() のオプションについて不平を言ったので、破棄しました。

明示的に (そしてやみくもに) によって与えられた代替手段のそれぞれをプログラムに使用させようとするとprint "$_\n" for sort grep /XML/, keys %INC;、cjm が言ったように、XML::SAX::Expat がデフォルトで使用されることを示しているようです (他のすべての代替手段はエラーで終了し、XML::SAX のため) :Expat は、両方のファイルで元の問題とまったく同じように動作します. 明示的に要求する XML::Simple は、すべてのメモリを割り当てるループに入ります)。

さまざまな XML パーサーについて学び、XML::Simple がさまざまなパーサーを自動的に選択してくれることに感謝しています。ただし、元の質問の両方の部分が多少残っています。

  1. プログラムの動作が異なるのはなぜですか? 両方のプログラムで明示的に設定$XML::SAX::ParserPackage = "XML::SAX::Expat"しても、一方がクラッシュし (を使用open)、もう一方が動作します。
  2. 外部コマンドからの出力を受け取るために別の方法を使用する必要がありますか? XMLin() が動作することを期待するのは間違っていopenますか?

それとも、単純に「間違った」質問をしているだけですか (つまり、無関係ですか) ?


更新: 1 週間以上が経過しましたが、ここでは慌ただしい活動はありませんでした。問題なく解決しました。エラー分析をさらに進めることができたので、cjm の回答を正しいものとしてマークします。ありがとう!

0 投票する
1 に答える
404 参照

installation - (ローカル)ikiwikiにmathjaxサポートを追加する

ikiwikiにmathjaxサポートを追加する方法はありますか?もしそうなら、これを取得するために(Linuxで)ステップバイステップで進む方法は?

0 投票する
1 に答える
296 参照

git - ikiwiki を分割する

ikiwiki を 2 つの wiki に分割しようとしています。

ページを含むmyiki という ikiwiki があるとします ( ikiwiki.infoからのこの質問を比較してください)。

myikiA今、私はとという名前の 2 つのウィキを持ちたいと思っていますmyikiB

  • myikiAを含むpageA1,pageA2,...
    の履歴にmyikiAは、これらのページの履歴全体が含まれている必要がありますが、の履歴は含まれていませんpageB1,pageB2,...

と:

  • myikiB含む pageB1、pageB2、...
    の履歴にmyikiBは、これらのページの履歴全体が含まれている必要がありますが、の履歴は含まれませんpageA1,pageA2,...

最初のステップで、my のコピーを作成し、このようなscrdir名前のページを削除しようとしました ( には、と呼ばれるファイルとディレクトリもあるfooことに注意してください)。 そのために、次のコマンドを実行しました。scrdirfoo.mdwnfoo

何が問題なのですか?

上記のように、ページのリストを表示してウィキを分割する方法はありますか?

0 投票する
1 に答える
280 参照

lighttpd - lighttpd の ikiwiki

lighttpd を実行するラズベリー pi に ikiwiki をインストールしようとしています。

ユーザーのホームで Wiki を作成できますが、Web サーバー (アドレス + "~/username/wikiname") で表示しようとすると、404 が返されます。

wiki ディレクトリを にリンクする/var/wwwと、500 エラーが発生します。

私は何か間違っているか、何かが足りないのですか?

コメントで要求されているように、これが私の lighttpd.conf です。

ここで強調表示されている手順も実行しました: http://ikiwiki.info/tips/dot_cgi/

0 投票する
1 に答える
1034 参照

perl - Encode.pm に関連する Perl エラー

次のソフトウェアがあります。

Ubuntu Linux 14.04 LTS

Perl 5.18:

および Encode.pm 2.49:

Encode.pm を使用したパッケージであるikiwikiを使用すると、次のエラーが発生しました。

Encode.pm の 166 ~ 180 行目:

この問題を解決する方法を知っている親切な魂はいますか?

0 投票する
2 に答える
35 参照

templates - ikiwiki テンプレートへのフォント リンクの追加

ikiwiki のすべての HTML ページのすべてのヘッダーに以下を追加したいと考えています。

これらの行をカスタムに追加しようとしましたtemplates/page.tmpl.mdwnが、wiki を展開するたびに追加されません。

私は何を間違っていますか?