如何设计用于浏览文本手册页的Web界面?

时间:2009-04-08 07:13:35

标签: php ajax json documentation-system

我想设计一个Web应用程序,允许我对一组手册页进行排序,浏览和显示各种属性(例如标题,标签,描述)。

具体来说,它们是一个R包中的R documentation files,它包含一组数据集,由SVN存储库中的几个人维护。这些文件的格式是.Rd,它与LaTeX类似,但不同。

R具有将这些手册页转换为html或pdf的功能,但我希望能够拥有一个允许用户点击特定关键字的Web界面,并打开一个列表(以及简短的摘录)那些在\ keyword {}标记中包含该关键字的手册页。

此外,生成的html有点难看,我希望能够提供自己的CSS。

一个显而易见的选择是将我想要的所有元数据加载到像MySQL这样的数据库中,并设计我的站点来运行查询并获取适当的数据。

我想避免这种情况,以尽量减少未来维护人员的维护。文件数量很少(<500),数据量很小(每个文件只有几百行)。

我目前的倾向是拥有一个脚本,将每个文件中所需的元数据提取到摘要JSON文件中,然后在PHP中加载此summary.json文件,对其进行解码,并在数组中循环查找具有以下属性的项目:匹配当前查询(例如,所有文档都带有keyword1 AND keyword2)。

我是从这个方向开始的......

$contents=file_get_contents("summary.json");
$c=json_decode($contents,true);
foreach ($c as $ind=>$val ) { .... etc

另一个想法是编写一个脚本,将这些.Rd文件转换为xml。在这种情况下,是否有任何轻量级框架可以轻松排序和搜索一小部分xml文件?

我不确定xQuery是否过度杀伤,或者我是否有时间深入研究它......

我认为我患有所有AJAX诱惑的太多选项综合症。任何帮助是极大的赞赏。

我正在寻找一个超级简单的解决方案。你们中的一些人怎么会接近这个?

2 个答案:

答案 0 :(得分:1)

我的方法是解析关键字(从你的描述中我假设它们有一个特殊的符号来区分它们与正常的单词/文本)和文件,并将这些数据存储为searchindex。不一定是mySQL,sqlite对你的项目肯定是足够的。 搜索将非常简单。

解析文件可以自动作为post-commit-hook到您的subversion存储库。

答案 1 :(得分:0)

为什么不为每个摘要字段创建包含列的表SUMMARIES? 然后,您可以使用全文索引对其进行索引,为每个字段分配不同的权重。

您不需要MySQL,您可以使用内置Google全文索引(FTS3)的SQLite。