0

我正在建立我的个人网站,我想在上面存储我的课程笔记。我的课程笔记目前在纸上,所以我将把它们打出来。我正在考虑将我的每门课程存储在其自己的 XML 文件中,其结构如下:破折号代表标签,忽略数字。

COURSE1.XML
-Title  -Topic 1
        - Sub Topic 1.1
            - Multimedia link
            - Code link
            - Actual Text
        - Sub Topic 1.2             
                    ...
        - Topic 2           
             ...

我的网站想法是,如果用户单击课程 1 链接,那么我的程序将找到 XML 解析它并显示其内容。

My Requirements:
    - Must be able to display on web sites

    - Parsing should be fast

    - In the future I might do other things so I want something that is flexible.

使用 XML 是一个好的设计决策吗?还是我可以做得更好?如果 XML 是一个好的设计决策:我应该保持当前每门课程 1 个 XML 的设计,还是为课程设置一个文件夹并为每个主题设置 1 个 XML?除了 XML,我还有什么其他选择?

希望这不是太主观...

4

1 回答 1

2

构建自己的 Web 框架解决方案非常困难。制作视觉上令人愉悦的东西并验证 html 标准是从头开始的大量工作。

您想要的称为 CMS 或内容管理系统。这将允许您专注于您的内容,而不是存储在服务器上的文档格式。大多数 CMS 使用数据库(例如 PostgreSQL 或 MySQL)来存储它们的内容,而不是位于文件系统上的文件。

此外,您声明您将使用 XML 文档的内在架构。XML 文档没有任何用于文档格式化的预定义层次结构。这将需要为您的文档定义一个结构,这将很容易忘记或绕过,从而导致文档不连贯。您最好使用已经为此类文档完成的语言(例如MarkdownRestructuredtext等)。这些语言中的大多数将能够使用它们的转换器生成 html 和 pdf 文档。

从一些简单的东西开始,您应该从一些 wiki 软件(例如这些软件)开始,这可能会给您所需的灵活性。

另一种解决方案是使用文档构建软件,例如Sphinx,它将从重组的文本源构建一个完整的网站。许多其他文档生成器可用,您应该查看它们。

最不重要的是,使用 WYSIWYG 工具( Typo3Joomla)或框架(wordpress、Django、Ruby on Rails 等)的成熟网络 CMS将允许您相对轻松地制作网站。

如果您真的想实现自己的网站框架/CMS,请记住您需要创建一个类似模型-视图-控制器的系统。这可以从头开始使用前端系统来显示 HTML(如bootstrap)或处理模板(如Jinja2)作为视图,数据库系统或原始文件(即 XML)作为模型和粘合前两者的控制器一起使用可以由 Web 服务器执行的编程语言(通过 CGI 或其他更好的方式,取决于您使用的语言),例如 nginx、apache、lighttpd 等。

于 2013-09-15T03:16:19.323 回答