GithubHelp home page GithubHelp logo

phodal / quake Goto Github PK

View Code? Open in Web Editor NEW
438.0 14.0 39.0 4.06 MB

Quake is a knowledge management meta-framework for geeks. Use meta-data + Transflow to CRUD data, Git + markdown to management content, Web Component for frontend-custom. Quake 是面向极客的知识管理元框架。

License: MIT License

Rust 63.81% HTML 5.36% CSS 3.28% TypeScript 23.44% JavaScript 3.68% Nix 0.14% Just 0.29%
content-management low-code knowledge-graph knowledge-management meta-framework meta-data meta-model

quake's Introduction

Quake

Build Coverage Status GitHub release (latest by date) Lint web

A meta knowledge management tool for geek.

Quake is a knowledge management meta-framework for geeks. It can:

  • freedom text content management. todo lists, article management, book reviews, notes, etc.
  • construct a knowledge network system. customized markdown link
  • fleeting inspiration.support quick start (CLI, TUI, Web, GUI) and global search
  • freely present the canvas. DSL and free Sketchpad
  • graph engine with feakin

Examples:

  1. examples
  2. ...

Online demo: https://quake-demo.inherd.org/

Architecture:

Architecture

Screenshots:

Web Samples

Roadmap: Roadmap

Install

GitHub release

download from Github release

cargo

if you has rust toolchains, use cargo install quake

Nix

for Nix user, use nix-env -iA nixos.inherd-quake, or nix-env -iA nixpkgs.inherd-quake in Non-NixOS environment

Usage

  1. download web from release
  2. init with quake init or skip step 1 and use quake init -d
  3. use quake cmd -i "todo.add: hello, world" to add new todo
  4. use quake server to start server (ps: need to install meilisearch for search entries).

more for Setup;

Features

Entry (meta-data for content)

Every content type in quake is call a entry.

run:

quake cmd -i "todo.add: hello, world"

will become:

.
├── entries-define.yaml       # entry defines
└── todo
    ├── 0001-hello-world.md   # entry content
    ├── entries.csv           # entry collections for display
    └── entry-node-info.yaml  # entry node infos

Markdown ecosystem: FrontMatter with markdown

a entry file will a front matter for meta-info, others will be content

---
title: hello, world
author:
created_date: 2021-12-10 20:24:25
updated_date: 2021-12-10 20:24:25
---

> a hello, world

Layout Engine: Custom layout for Dashboard

Quake will load web directory code, and start a web server.Everyone can build then pages with Quake.

Simple Layout Engine:

----------------------------------------------------------------
|      Calendar(flow("show_calendar"), 12x)                   |
----------------------------------------------------------------
| Empty(2x) | Timeline(flow("show_timeline"), 8x) | Empty(2x) |
----------------------------------------------------------------

Data Operators: Transflow

A DSL to connect entry data and component, then auto render it.

from('todo','blog').to(<quake-calendar>);

will fetch todo and blog, render to quake-calendar web component, and create route in page

also can filter data

from('todo','blog').to(<quake-calendar>).filter('created_date > 2021.01.01 AND created_date < 2021.12.31')

with map:

 from('todo','blog')
    .to(<quake-calendar>)
    .filter('created_date > 2021.01.01 and created_date < 2021.12.31')
    .map('blog.content => content | uppercase | substring(1, 150), blog.created_date => created_date');

Free sketchpad

by Web Component

To be design.

Powerful markdown: Chart with Markdown

Flowy to chart:

```transflow
from('todo','blog').to(<quake-network>);
```

Graph and chart in markdown

```@graph('bar')
|-----------|--------------|
| 1         |   12.0       |
| 2         |   2.0        |
| 3         |   4.0        |
```

Docs

DEVELOPMENT: see in DEVELOPMENT.md

欢迎入群讨论:

Wechat Code

License

markdown parser based on: https://github.com/zoni/obsidian-export with Apache and MIT

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

quake's People

Contributors

bingryan avatar dependabot[bot] avatar eliot00 avatar phodal avatar teobler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quake's Issues

Bug: entry_watcher ParseIntError

Describe the bug

WebApp create a new entry, server will get a error log: ERROR quake::helper::entry_watcher: watch error: ParseIntError { kind: InvalidDigit }, and action todo.show get a invalid date.

图片

Steps to reproduce (please include code)

  1. create a new foler and cd
  2. run path of target/debug/quake init -d
  3. run meilisearch
  4. run quake server -w
  5. open webapp and create a new entry by action todo.add: hello
  6. click save button

Environment

  • quake version: git hash 20ec718
  • Rust version: 1.57
  • OS: macos 11.2.1

assets issue for web.zip

Describe the bug

A clear and concise description of what the bug is.

Steps to reproduce (please include code)

Environment

  • quake version:
  • Rust version:
  • OS: [e.g. OSX 10.13.4, Windows 10]

Compiler error

Describe the bug

294 | fn new<F: EventHandler>(event_handler: F, config: config::Config) -> Result
| ^^^
help: provide the argument
|
17 ~ let mut watcher = RecommendedWatcher::new(move |res| {
18 + futures::executor::block_on(async {
19 + tx.send(res).await.unwrap();
20 + })
21 ~ }, /* notify::Config */)?;
|

error[E0599]: no associated item named OngoingEvents found for struct notify::Config in the current scope
--> /Users/jiaxianwang/.cargo/registry/src/index.crates.io-6f17d22bba15001f/quake-0.5.0/src/helper/entry_watcher.rs:23:47
|
23 | ...notify::Config::OngoingEvents(Some(Duration::from_secs(2))));
| ^^^^^^^^^^^^^ associated item not found in Config

Some errors have detailed explanations: E0061, E0432, E0599.
For more information about an error, try rustc --explain E0061.
error: could not compile quake (bin "quake") due to 3 previous errors
error: failed to compile quake v0.5.0, intermediate artifacts can be found at /var/folders/wh/xcyljq_n6913b1554sp8vbsw0000gn/T/cargo-installHXhzaA

Environment

  • quake version:
  • Rust version: stable-aarch64-apple-darwin (default)
  • OS: MacOS

The "quake.feed" action is missing in the windows system

Describe the bug

The "quake.feed" file is missing in the windows system

Steps to reproduce (please include code)

quake-windows.exe cmd -i "quake.feed"

Environment

  • cargo 1.57.0 (b2e52d7ca 2021-10-21)
  • rustc 1.57.0 (f1edd0429 2021-11-29)
  • OS: Windows 10

融入dendron

dendron里面融入了神经网络这个概念,也包含xmind。希望有这些功能,还希望有在线部署的功能

bug: setup error

Describe the bug

I run "quake server" in terminal, then I got an error:

image

Steps to reproduce (please include code)

  1. quake init.
  2. quake cmd -i "todo.add: hello, world".
  3. quake server.
tree -C -L 2 .             
.
├── entries-define.yaml
└── todo
    ├── 0001-hello-world.md
    ├── entries.csv
    └── entry-node-info.yaml

Environment

  • coco version: cargo 1.57.0 (b2e52d7ca 2021-10-21)
  • Rust version: rustc 1.57.0 (f1edd0429 2021-11-29)
  • OS: [e.g. OSX 10.13.4, Windows 10]: macOS Big Sur 11.6.0

Bug: entry_watcher throw `no such file` error while create a new entry

Steps to reproduce (please include code)

  1. mkdir quake_test && cd quake_test
  2. run quake init -d
  3. run meilisearch
  4. run quake server -w
  5. open webapp and create a new entry by action todo.add: hello
  6. edit and click save button
  7. open console see the log: ERROR quake::helper::entry_watcher: watch error: Os { code: 2, kind: NotFound, message: "No such file or directory" }

Environment

  • quake version: git hash 20ec718
  • Rust version: 1.57
  • OS: macos 11.2.1

Bug: feed error if all entries created by web

Describe the bug

If all entries are created by webapp, it wouldn't create entries.csv file,feed will pass it:

let table = entry.path().join(EntryPaths::entries_csv());
if !table.exists() {
continue;
}

this will cause a runtime error:

fs::write(temp_file, map)?;
meili_exec::feed_documents(&conf.search_url, &entry_type)?;
meili_exec::feed_settings(&conf.search_url, &define)?;
info!("done '{:}' feed", &entry_type);
}
fs::remove_file(temp_file)?;

remove temp file after loop, but it hasn't the tmp file beacuse all entry_type has not entries.csv

Steps to reproduce (please include code)

Environment

  • quake version:
  • Rust version:
  • OS: [e.g. OSX 10.13.4, Windows 10]

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.