Memos:一款开源的超高颜值备忘录,GitHub 星标 6.3k

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

a738e050620c88eb1b3a100b57f86663.png

这是一款完全开源的基于 B/S 的备忘录系统,目前从GitHub[1]6.3k可看出其是一款非常受喜爱的开源软件:

目前 memsos 主要具有以下功能:

  1. 永远免费且开源

  2. 支持自托管以及 Docker 等便捷式部署

  3. 支持一些 markdown 格式

  4. 可以将备忘录设置为私有或者公开

  5. 支持 RESTful API

  6. 支持使用 iframe 嵌入到其他网站

  7. 支持标签化分组

  8. 支持交互式日历视图

  9. 便捷的数据迁移以及备份

memos 的部署很简单,以下是使用 docker 部署

docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:latest

当然,部署在 k8s 中,也是相当简单

apiVersion: v1
kind: PersistentVolume
metadata:
  name: memos-pv
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/data/memos"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: memos-pvc
  namespace: blogs
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: memos
  labels:
    app: memos
  namespace: blogs
spec:
  replicas: 1
  template:
    metadata:
      name: memos
      labels:
        app: memos
    spec:
      containers:
        - name: memos
          image: neosmemo/memos:latest
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 5230
              name: http
          volumeMounts:
            - mountPath: /var/opt/memos
              name: memosdata
            - mountPath: /etc/localtime
              name: timezone
              readOnly: true
      restartPolicy: Always
      volumes:
        - name: memosdata
          persistentVolumeClaim:
            claimName: memos-pvc
        - name: timezone
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai
  selector:
    matchLabels:
      app: memos
---
apiVersion: v1
kind: Service
metadata:
  name: memos-svc
  namespace: blogs
spec:
  selector:
    app: memos
  ports:
    - port: 5230
      targetPort: http
  type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: memos-ingress
  namespace: blogs
  labels:
    exposed_by: ingress
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "25M"
    nginx.ingress.kubernetes.io/affinity: "cookie"
    nginx.ingress.kubernetes.io/session-cookie-name: "route"
spec:
  ingressClassName: nginx
  rules:
    - host: memos.devopsman.cn
      http:
        paths:
          - pathType: Prefix
            path: "/"
            backend:
              service:
                name: memos-svc
                port:
                  number: 5230

部署完成后,即可访问了。

memos 基本满足备忘录的基本功能,可以上传图片,配置 Tag 的方式过滤分组,同时可以设置访问权限为私有还是公有的。有兴趣的可以试试。

如果你不想部署,也可以先通过官方的演示站点:https://demo.usememos.com/ 先体验一下。 

资料参考

[1]

memos GitHub:"https://github.com/usememos/memos"

本文转载自:「云原生生态圈」,原文:https://url.hi-linux.com/i8hXH,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

36cc0003953a68c83cfb0d6d59058ca1.gif

最近,我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神,有兴趣的同学可以加入和我们一起交流技术,在 「奇妙的 Linux 世界」 公众号直接回复 「加群」 邀请你入群。

3b178582ba41305ca5d6291aa1312ed3.png

你可能还喜欢

点击下方图片即可阅读

5165ba650ca0b7c3971ea72781e173fc.jpeg

每日言论: 『乔布斯的营销方法』

652d2d9bffd0e4aaf248b0c0e071f8d9.png
点击上方图片,『美团|饿了么』外卖红包天天免费领

68895005a8160939a097bcd8db0f38cf.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 100 int main() { char memo[MAX_SIZE]; printf("请输入备忘录内容:\n"); fgets(memo, MAX_SIZE, stdin); printf("您输入的备忘录内容是:%s", memo); return ; } ### 回答2: 备忘录是一种用来记录用户要做事项的工具。用户可以在备忘录中添加、查看和删除事项,以帮助他们管理日常任务。 以下是一个用C语言编写的备忘录的简单示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_NOTES 100 struct Note { char content[100]; int id; }; struct Note notes[MAX_NOTES]; int noteCount = 0; void addNote() { char content[100]; printf("请输入备忘录内容:"); scanf("%s", content); struct Note newNote; strcpy(newNote.content, content); newNote.id = noteCount + 1; notes[noteCount] = newNote; noteCount++; printf("已成功添加备忘录!\n"); } void viewNotes() { if (noteCount == 0) { printf("备忘录为空。\n"); return; } printf("所有备忘录:\n"); for (int i = 0; i < noteCount; i++) { printf("%d. %s\n", notes[i].id, notes[i].content); } } void deleteNote() { int noteId; printf("请输入要删除的备忘录id:"); scanf("%d", &noteId); for (int i = 0; i < noteCount; i++) { if (notes[i].id == noteId) { for (int j = i; j < noteCount - 1; j++) { notes[j] = notes[j + 1]; } noteCount--; printf("已成功删除备忘录!\n"); return; } } printf("未找到该备忘录id。\n"); } int main() { int choice; while (1) { printf("\n备忘录菜单:\n"); printf("1. 添加备忘录\n"); printf("2. 查看所有备忘录\n"); printf("3. 删除备忘录\n"); printf("4. 退出\n"); printf("请输入你的选择:"); scanf("%d", &choice); switch (choice) { case 1: addNote(); break; case 2: viewNotes(); break; case 3: deleteNote(); break; case 4: exit(0); default: printf("无效的选择。\n"); } } return 0; } ``` 这个备忘录程序使用了结构体数组来存储备忘录事项,并提供了添加、查看和删除事项的功能。用户可以通过输入菜单选项,进行相应的操作。在程序中,使用`noteCount`来跟踪备忘录事项的数量,以便轻松添加和删除事项。 ### 回答3: C语言是一种非常强大的编程语言,可以用来开发各种应用程序,包括备忘录。下面是一个简单的用C语言编写的备忘录示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 100 typedef struct { char title[50]; char content[200]; } Memo; int main() { Memo memos[MAX_SIZE]; int numMemos = 0; while (1) { int choice; printf("备忘录操作:\n"); printf("1. 添加备忘录\n"); printf("2. 显示所有备忘录\n"); printf("3. 退出\n"); printf("请输入选项:"); scanf("%d", &choice); switch (choice) { case 1: if (numMemos < MAX_SIZE) { printf("请输入标题:"); scanf("%s", memos[numMemos].title); printf("请输入内容:"); scanf("%s", memos[numMemos].content); numMemos++; printf("备忘录已添加!\n"); } else { printf("备忘录已满,无法添加!\n"); } break; case 2: if (numMemos > 0) { printf("所有备忘录:\n"); for (int i = 0; i < numMemos; i++) { printf("标题:%s\n", memos[i].title); printf("内容:%s\n", memos[i].content); printf("---------------\n"); } } else { printf("没有备忘录可显示!\n"); } break; case 3: printf("退出备忘录程序!\n"); exit(0); default: printf("请输入有效选项!\n"); } } return 0; } ``` 这个简单的备忘录程序可以执行以下操作: 1. 添加备忘录:用户可以输入备忘录的标题和内容,最多可以添加100个备忘录。 2. 显示所有备忘录:程序会按照添加的顺序显示所有备忘录的标题和内容。 3. 退出:用户可以选择退出程序。 该备忘录程序使用了一个结构体来存储备忘录的标题和内容,并使用一个数组来保存所有的备忘录。在主循环中,根据用户的选择执行相应的操作,并根据需要输出相应的信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值