问题
我想写一个网站不错的设计,比如由 WordPress、SPIP 或基于 CSS 的高级模板生成的模板。同时,我希望在文本编辑器中写入内容(可能在文本模式下,例如使用 Emacs 或 vim)就像编写 LaTeX 文件一样。此外,我想使用版本控制以便轻松查看网站不同版本之间的变化。我应该说我想到的网站是不是博客;它更有条理,而且几个页面应该会随着时间而更新。我并不寻求高度复杂的解决方案,因为它是一个包含几十页(按“部分”、“子部分”甚至“子子部分”组织)的个人网站。
我想到的是 LaTeX 模型,您可以编写内容并让编译器生成漂亮的输出。LaTeX 代码相当简单,并且采用文本格式,因此应用版本控制很简单。
为什么经典解决方案似乎不起作用
WordPress 非常好,但据我所知,您无法真正从终端中的文本编辑器进行编辑。您必须使用某种图形界面。与 WordPress 一样,SPIP 将生成一个数据库,而版本控制(使用 Git 等)似乎不适合该数据库。
HTML/PHP/CSS 模板很不错,但内容和设计有点太复杂了。特别是,从一个模板切换到另一个模板并不容易,尤其是在没有标准的情况下。通常,模板不会演变,因为你只是在某个地方选择了它。此外,它提供的灵活性很低,可能缺少你需要自己添加的功能。例如,它可能永远不会制作移动版本,而聪明的导出器可能会这样做。
我知道 Emacs 下有 orgmode 之类的软件以及相应的导出器。但这更多是用于博客,而且最终的设计并不是很好。
我想我的问题在于是否有软件可以发布纯文本网页并组织这些网页(页面/子页面,带有菜单,漂亮的设计,...)。如果网页的整体组织必须由文本编辑器进行,那么这是可以接受的。如果软件足够聪明,网页仍然可以包含图像、方程式等。
我引用了 WordPress 和 SPIP,但我考虑了许多其他解决方案,例如 wiki(MediaWiki 或其他)、其他发布者(例如 Dotclear)、CMS(例如 Joomla)、CMF(例如 Drupal)或甚至框架(例如 Django)...... 也许其中一个实际上是解决方案,而我只是没有意识到这一点?
编辑
我想补充一个额外的约束/示例。假设您想要包含由外部软件(例如 Doxygen)生成的页面,用于某些软件的文档。然后您可能需要自动添加文档(针对新版本的软件)。这需要一定的灵活性,也许是脚本选项。
答案1
有很多简化的标记语言到 html/网站转换器项目。例如
- 有面向 Python 的 sphinx:将 ReST 文件转换为网站,并且
- 面向 ruby 的 jekyll:将 Markdown 文件转换为网站。
另外,既然您提到了 emacs:
- Org-mode 和
- emacs 缪斯
可以用简化的标记语言生成网站。
最后还有完整的网络框架,例如
- 面向 Python:Flask、Django、Pyramid
- 红宝石导向:padrino、scourched、pakyow
在每种情况下,您都可以将源文件置于版本控制之下。我自己使用 sphinx 和 twitter-bootstrap 主题:在研究中使用 Python。
答案2
答案3
我不认为这里适合问这种问题,因为答案数量庞大,而且根据你所说的“容易编写”的含义,解释也各不相同。我可以(并且曾经)用文本编辑器编写出相当不错的网站,但这并不容易,因为它需要对 CSS 和 HTML 有深入的了解。
话虽如此,既然您提到了 VIM,而且您的网站似乎是为“一人乐队”而不是团体活动而设,我发现使用 VI 在服务器(实时或测试)上开发它,然后使用 FSVS 和 SUBVERSION 存储库直接在 Linux 机器上对代码进行版本控制,而不到处留下“.svn”文件,这是很实用的。[fsvs 似乎更多地设计用于配置版本控制,但如果您不需要进行合并,它也可以很好地用于其他东西]