My personal-knowledge-system, with deeply integrated task tracking and long term goal planning capabilities.
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: installable via nix

+25 -3
+18
flake.nix
··· 80 80 ); 81 81 }; 82 82 83 + packages = forEachSupportedSystem ( 84 + { pkgs }: 85 + { 86 + default = pkgs.rustPlatform.buildRustPackage { 87 + pname = "fil"; 88 + version = "0.1.0"; 89 + src = ./.; 90 + cargoLock.lockFile = ./Cargo.lock; 91 + cargoLock.outputHashes = { 92 + "egui_graphs-0.30.0" = "sha256-mJuGENPnDeD8SDNBXZZpLwcqrKlLTxuM6yCCx+1dSko="; 93 + }; 94 + 95 + nativeBuildInputs = [ pkgs.pkg-config ]; 96 + buildInputs = [ pkgs.openssl ]; 97 + }; 98 + } 99 + ); 100 + 83 101 devShells = forEachSupportedSystem ( 84 102 { pkgs }: 85 103 {
+7 -3
src/tui/components/zk/mod.rs
··· 59 59 impl Zk<'_> { 60 60 pub async fn new(kh: KastenHandle) -> Result<Self> { 61 61 let kt = kh.read().await; 62 + let ws = kt.ws.clone(); 62 63 63 64 let fetch_all = async || -> Result<Vec<Zettel>> { 64 65 Ok(ZettelEntity::load() 65 66 .with(TagEntity) 66 67 .order_by_desc(ZettelColumns::ModifiedAt) 67 - .all(&kt.ws.db) 68 + .all(&ws.db) 68 69 .await? 69 70 .into_iter() 70 71 .map(Into::into) ··· 73 74 74 75 let mut zettels: Vec<Zettel> = fetch_all().await?; 75 76 77 + drop(kt); 76 78 if zettels.is_empty() { 77 - // we should have a welcome zettel 78 - Zettel::new("Welcome!", &kt.ws).await?; 79 + let z = Zettel::new("Welcome!", &ws).await?; 80 + kh.write().await.process_path(&z.absolute_path(&ws)).await?; 79 81 zettels = fetch_all().await?; 80 82 } 81 83 ··· 95 97 ) 96 98 // so technically this might not exist 97 99 .expect("There must always be one atleast one zettel"); 100 + 101 + let kt = kh.read().await; 98 102 99 103 let zettel = kt 100 104 .get_node_by_zettel_id(selected_zettel)