Git Product home page Git Product logo

phodal-archive / quake Goto Github PK

View Code? Open in Web Editor NEW

This project forked from phodal/quake

0.0 1.0 0.0 2.33 MB

Quake 是面向极客的知识管理元框架。它可以:自由的文本内容管理、建知识网络体系、抓住稍纵即逝的灵感、自由的呈现画布。基于 Git + Markdown 的文档代码化方式,提供无限可能的数据可能性。基于 WebComponent + 插件化,提供自由的呈现画布。

License: MIT License

Rust 76.01% HTML 3.32% CSS 0.16% TypeScript 16.59% JavaScript 3.93%

quake's Introduction

Quake

Build Coverage Status GitHub release (latest by date)

A meta knowledge management tool for geek.

Quake 是面向极客的知识管理元框架,它可以:

  • 自由的文本内容管理。Todo 清单、文章管理、书评、笔记等。
  • 构建知识网络体系。定制化 markdown 链接
  • 抓住稍纵即逝的灵感。支持快速启动(CLI、TUI)与全局搜索
  • 自由的呈现画布。DSL 与自由画板

文档示例:

  1. _fixtures

欢迎入群讨论:

Wechat Code

Introduction

Architecture:

Architecture

Screenshots:

Web Samples

Design principle

我使用了不同的工具来管理知识,Microsoft To Do 管理 idea、Phodit + Phodal.com 发布文章、Apple Notes 记录笔记等等,知识被分散在各个工具中。不利于我进行洞见,寻找灵感,与此同时,还缺乏书写和记录的方式。

我需要一个新的工具来融合到我的知识体系里,它应该是:

  • 开源的。可以自由扩展。
  • 分布式 + 本地化的。可以离线使用,方便于出差旅途中使用。
  • 版本化的。可以自由查看变更历史。
  • 开放的。可以自由与其它工具组合。如 Vim、VSCode 等。
  • 易于扩展。可以结合习惯用的工具。诸如于,基于 DSL 的编辑-发布分离的类 Web 模式,用于展示。如 MxGraph、Mermaid、Ledge Framework 等

愿景示例

  1. 在项目中添加自定义的 Entry,进行对应的 TUI 管理。
  2. 通过 Web Components,自定义 Entry 的展示。
  3. 通过自定义的编辑器,或者 Web 编辑器来对内容编辑。

Usage

CLI

  1. init in project dirs
quake init

.quake.yml for config, entries-define.yaml for define.

  1. add entry by type
quake cmd -i "todo.add: time support"
  1. edit entry by index
quake cmd -i "todo.edit(1)"
  1. list entry by type
quake cmd -i "todo.list"
  1. sync list
quake cmd -i "todo.sync"
  1. concept [tbd]

  2. network [tbd]

Web

  1. setup serach engine
brew install meilisearch

index

quake cmd -i "quake.feed"
  1. config .quake.yaml

  2. run server

quake server
  1. visit: http://localhost:8000/

GUI (TBD)

TBD

Query Syntax

more in: quake.pest

action_decl = {
    object ~ "." ~ action ~ parameters? ~ ":"? ~ " "* ~ text?
}

parameters = {
    "(" ~ parameter ~ ("," ~ parameter)* ~ ")"
}

Markdown Extends syntax [TBD]

  1. tag: #{tag}
  2. custom function: #{$block}, #{$toc}, #{$link}, #{$file = Hello.pptx}

Quake Output

examples output:

├── entries-define.yaml         # define all type data
├── web
│   ├── index.html
│   └── js
├── yarn.lock
└── yiki                        # data type
    ├── 0001-hello-world.md     # a `yiki` file
    ├── entries.csv             # tables for all `yiki`
    └── entry-node-info.yaml    # `yiki` node info

Development

Languages: Rust, TypeScript (Node.js 16)

Tech stacks:

  • Search Engine: MeiliSearch
  • Frontend:
    • MV* Frameworks: Stencil.js, TBD
    • Charts: D3.js, MxGraph, Echarts
    • Editor: Quill?
  • Database: Git + CSV + Yaml
  • Web API: Rocket.rs
  • Analysis API: Jieba.rs
  • TUI: tbd
  • GUI: tbd

Setup

  1. install quake from rust
  2. install meilisearch

Roadmap

MVP

  • 导入
    • Django/Mezzanine
    • Apple Notes
    • Microsoft Todo
    • Microsoft Onenote
  • 自定义条目类型
    • CRUD
    • dynamic update entries-define
  • CLI 交互与列表呈现
  • MVP API 设计
    • Web Server
    • GraphQL
  • 基于 Git 的数据存储
  • Search anywhere
    • search frameworks
    • auto suggest

1.0: Knowledge map

  • 嵌入式脚本语言
  • 知识空间
    • 自定义项目视图
    • 年份视图
  • 知识可视化
    • Mindmap from Ledge Framework?
    • Mindmap connect to Entry (${connect.todo("0001", "${title}"})
  • Dashboard
  • Editor (TBD)
    • markdown editor

License

@ 2021 This code is distributed under the MIT license. See LICENSE in this directory.

quake's People

Contributors

eliot00 avatar phodal avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.