javascript - 这是在 GitHub Pages 上实现博客功能的好方法吗?

标签 javascript python html git blogs

我正在考虑使用 GitHub Pages 来实现一个博客,并且我有点想重新发明轮子。我从头开始构建了我的网站,我不想使用 Jekyll,因为它似乎无法集成到具有您自己的主题的现有网站中(如果我错了,请纠正我)。我想要以下功能:

  • 博客中包含文章,但无需自己不断更新 html
  • 能够在我的计算机上以纯文本编写,并在推送到 git 存储库时让我的网站解析数据并集成到网站的 html 中
  • 网站上的一项功能,可显示最近三篇博客文章的预览
  • 能够通过 Google 搜索我的页面上托管的特定博客文章

我正在考虑静态和动态解决方案。静态解决方案是编写一个 python 脚本,以文本格式读取我的博客,并通过向博客 html 页面添加更多 html 来更新博客页面以包含这篇新文章。动态解决方案将使我的博客页面从 github 存储库中获取文章并将它们实时集成到我的博客中。这还允许按需获取更多文章(例如,当用户向下滚动我的页面时)。这是否过于复杂,或者作为一个小项目这样做是否有意义?任何意见将不胜感激!

最佳答案

几年前我编写了一个静态站点生成器作为 Grunt 插件,所以我可以在这里提供一些好的建议。

静态站点生成器会将源文件(通常是 Markdown 或类似的帖子和页面格式以及您选择的模板语言中的模板)转换为平面 HTML,然后将其推送到服务器。它还可能包括用于将其推送到站点托管位置的脚本。如果您想在 Python 中执行此操作,有很多合适的模块 - Jinja 将是合适模板系统的一个很好的示例,有多种 Markdown 实现,如果您需要语法突出显示,Pygments 是一个不错的选择。

实际上可以在客户端进行搜索。我的网站为此使用 Lunr.js - 在构建过程中,它会生成一个用于搜索的索引文件,然后使用 jQuery 将其与页面的其余部分一起加载。

无需服务器端脚本,无限滚动也应该是可能的,因为它只是使用 Javascript 获取相同的内容。 Paul Irish 的无限滚动插件不再维护,但理论上它能够做到这一点,并且可能有替代方案。

您可能想查看article I wrote about it寻求想法。静态解决方案对我来说效果很好——托管成本低且易于部署。如果需要,您也可以使用 Disqus 或 Facebook 评论。

一个简单的静态站点生成器是一个实用的周末项目,它应该是实现您想要的目标的好方法。

关于javascript - 这是在 GitHub Pages 上实现博客功能的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43988393/

相关文章:

javascript - 将默认数据传递给 Vue 表单组件

python - 在二维数据上拟合抛物线——已编辑

html - 如何对齐 CSS 导航栏中间的元素?

javascript - 在 jQuery 中注入(inject) HTML 的元素中使用 Javascript

javascript - JS if else 语句和计时器

python - solaris 的 Anaconda 发行版?

javascript - 使用 jquery 或 javascript 在悬停图像时更改 href 属性

html - 单击按钮时 CSS 变换旋转

javascript - 运行多个 requestAnimation 循环来发射多个球?

python - 什么更快 : temporary SQL tables or Python dicts for session data?