像 jekyll 中帖子的按钮

like button for posts in jekyll

我想为我的 jekyll 博客主页上的每个 post 添加一个赞按钮 我没有找到任何插件。我不想要任何连接到公司“s/product 页面赞的 facebook 赞按钮。

我想要一个独立于任何社交平台且只与post有关的点赞按钮。

像这样

简答:你不能。

长答案:您的按钮会将 "likes" 存储在某处(通常是数据库),根据定义,这是一个动态过程。 Jekyll 只能生成静态数据。

您可以将按钮绑定到外部服务,例如LikeBtn 提供此类功能(免费提供缺少统计等高级功能)。

无论您选择什么服务,通常都可以通过添加 javascript 片段来实现,就像 google 分析一样。您可以了解如何使用 google 分析与 jekyll 来帮助您(例如 here)。

是的,可以通过将自定义 JavaScript 代码和数据库写入 Jekyll 生成的静态站点来添加“赞”按钮并跟踪赞数。

所以来到数据库,因为它是一个静态页面,不涉及任何服务器,不可能直接与数据库交互,但有一种方法。 就我而言,我正在使用 firebase。 Google 的 Firebase 为我们提供了许多功能,例如存储、数据库、托管以及使用函数访问无服务器架构。

那么进入正题,您需要做的就是注册 http://firebase.google.com 然后创建一个应用程序,然后在您的 JavaScript 的 head 标签中添加以下代码

<script src="https://www.gstatic.com/firebasejs/5.9.0/firebase.js"></script>
<script>
  // Initialize Firebase
  // TODO: Replace with your project's customized code snippet
  var config = {
    apiKey: "<API_KEY>",
    authDomain: "<PROJECT_ID>.firebaseapp.com",
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com",
    projectId: "<PROJECT_ID>",
    storageBucket: "<BUCKET>.appspot.com",
    messagingSenderId: "<SENDER_ID>",
  };
  firebase.initializeApp(config);

var timestamp = new Date().valueOf();
            var obj = {};
            obj[timestamp] = "1";

            firebase.database().ref('/').update(obj)
</script>

更多详情, 你可以访问我关于这个主题的博客

https://xyzcoder.github.io/firebase/2019/03/17/firebase-real-time-database.html

注意:我们还可以对谁可以读取和写入我们的 json 存储

数据实施安全限制

谢谢, 帕文