问题标签 [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.
perl - 文件句柄和 XML::Simple -> 内存损坏。无法隔离问题
在一个小的测试文件中,我可以运行
它工作正常。当我在一个更大的程序(使用相同的 XML 输入)中运行相同的代码时,它会以
但是,如果我进行交换
然后它可以工作(在两个文件中),所以这对我来说更像是一个好奇的问题而不是一个真正的问题。
- 有没有人知道我的测试用例和更大的代码库之间的区别可能是什么?
- 有速度/内存/吗?不同命令调用的区别?最佳实践?
Debian Sid: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";
按照建议添加。这也崩溃了,这次有不同的消息:
不过,这一次它在大文件和小文件中始终如一地发生。此外,仅在使用时open
,而不是在使用反引号时。
我也安装了libxml-libxml-simple-perl
,但实际上这不应该是一个总是使用 XML::LibXML 作为解析器的包装器。它的行为也不同,并抱怨设置的 XMLin() 选项,所以我放弃了它。
试图显式地(并且盲目地)使程序使用 给出的每个替代方案print "$_\n" for sort grep /XML/, keys %INC;
似乎都指向 XML::SAX::Expat 默认情况下使用 cjm 所说的(因为所有其他替代方案都因错误而退出,并且 XML::SAX :Expat 的行为与两个文件中的原始问题完全相同。明确要求 XML::Simple 进入分配我所有内存的循环)。
我很感谢学习了不同的 XML 解析器,并且 XML::Simple 会自动选择不同的解析器。我原来的问题的两个部分都有些保留:
- 为什么程序的行为不同?即使我
$XML::SAX::ParserPackage = "XML::SAX::Expat"
在两个程序中都明确设置,一个崩溃(使用open
)而另一个工作。 - 我应该使用另一种方法来接收来自外部命令的输出吗?期望 XMLin() 可以使用它甚至是错误的
open
(但是为什么它在一种情况下可以工作呢?)?
或者它们是简单的“错误”问题(即不相关)?
更新:一个多星期过去了,这里没有一连串的活动,我现在解决它有点不同,没有问题。我将 cjm 的答案标记为正确,因为它让我在错误分析中更进一步。谢谢!
installation - 将 mathjax 支持添加到(本地)ikiwiki
有没有办法向 ikiwiki 添加 mathjax 支持?如果是这样,如何逐步进行(在linux中)来获得这个?
git - 拆分一个 ikiwiki
我正在尝试将 ikiwiki 拆分为两个 wiki。
假设我有一个名为 myiki 的 ikiwiki(比较来自 ikiwiki.info 的这个问题),其中包含页面
现在我想要两个名为myikiA
and的 wiki myikiB
,这样:
myikiA
包含pageA1,pageA2,...
历史记录myikiA
应该包含那些页面的全部历史记录,但没有历史记录pageB1,pageB2,...
和:
myikiB
包含 pageB1,pageB2,...
的历史记录myikiB
应该包含这些页面的全部历史记录,但没有历史记录pageA1,pageA2,...
在第一步中,我制作了我的副本scrdir
并尝试删除一个foo
这样命名的页面(请注意,其中scrdir
也有调用的文件foo.mdwn
和目录foo
)。
为此,我执行了以下命令:
任何想法有什么问题吗?
有没有办法提供页面列表并如上所述拆分 wiki?
lighttpd - lighttpd 上的 ikiwiki
我正在尝试在运行 lighttpd 的树莓派上安装 ikiwiki。
我可以在我的用户家中创建 wiki,但是一旦我尝试在网络服务器上查看它(地址+“~/username/wikiname”),它就会返回 404。
将 wiki 目录链接到会/var/www
导致 500 错误。
我做错了什么或错过了什么?
根据评论中的要求,这是我的 lighttpd.conf:
我还执行了此处突出显示的步骤:http: //ikiwiki.info/tips/dot_cgi/
perl - 与 Encode.pm 相关的 Perl 错误
我有以下软件:
Ubuntu Linux 14.04 LTS
Perl 5.18:
和 Encode.pm 2.49:
当我使用ikiwiki时,这是一个使用 Encode.pm 的包,我收到以下错误:
Encode.pm 的第 166 - 180 行内容如下:
有没有好心人知道如何解决这个问题?
templates - 将字体链接添加到 ikiwiki 模板
我想将以下内容添加到我的 ikiwiki 中所有 HTML 页面的所有标题中。
我尝试在自定义中添加这些行,templates/page.tmpl.mdwn
但每次部署 wiki 时,都不会添加这些行。
我究竟做错了什么?