#nodeview
LIST.ANS, 1997-08-30 from ftp.wwiv.com (FTP)
June 10, 2026 at 8:45 PM
This project looks to be very hopeful at fixing this, but does come with the same drawbacks as our current implementation (and our react binding is better)

github.com/prosekit/pro...
GitHub - prosekit/prosemirror-adapter: Universal adapter to create prosemirror nodeview from modern UI frameworks.
Universal adapter to create prosemirror nodeview from modern UI frameworks. - prosekit/prosemirror-adapter
github.com
December 11, 2024 at 1:34 PM
Check this out!!!

Here is a new #Ergo explorer option, called NodeView. Run your own indexed node and use this as your frontend. Super cool.

Check out the repo here: https://github.com/jellymlg/nodeview.xyz

or see it in action here: https://nodeview.xyz
February 7, 2025 at 9:01 PM
Minor performance update in Tiptap React: we removed flushSync from the NodeView renderer. This brings us back in line with React 18’s automatic batching and improves support for React 19: github.com/ueberdosis/t...
remove flushSync in favor of queueMicrotask by bdbch · Pull Request #6538 · ueberdosis/tiptap
Changes Overview This PR removes flushSync from the React Nodeview renderer which should lead to better performance, less bugs when it comes to dangling Nodeviews still being reconciled by ProseMir...
github.com
July 3, 2025 at 8:44 AM
Esqueci de arrumar a merda da nodeview
September 11, 2024 at 12:39 AM
NODEVIEW.ANS, 1997-08-30 from ftp.wwiv.com (FTP)
December 12, 2025 at 4:45 PM
Three.jsという3D描写を可能とするライブラリを使って、ポートフォリオサイトを新しくしました!!
3D空間上に作品集やリンク、スキルをノードとして点在させ、それぞれを線で結ぶことで、自分の成果を可視化しています。
リンク先は返信欄からアクセスできます!
#portfolio #webportfolio #website #threejs #react #claude #nodeview
July 5, 2026 at 10:45 AM
Like a little planet system in my note galaxy : Motives of the research, a speach by Albert Einstein to the birthday of Max Planck.
#obsidian
October 30, 2023 at 6:00 PM
Why `Vec`'s `.iter()` iterator can outlive the lifetime of the reference use to construct it?
I tried to design a trait that can be implemented for any tree so that I can adapt it to any tree from other crates to perform traversal operations on it. I have come up with something like this // I could make this dyn compatible later pub trait NodeView: Sized { // Some tree may error like fs::read_dir() type Err; type ChildIter<'c>: Iterator<Item = Result<Self, Self::Err>> + 'c where Self: 'c; fn children<'c>(&'c self) -> Result<Self::ChildIter<'c>, Self::Err>; fn parent(&self) -> Result<Option<Self>, Self::Err>; } But I encountered lifetime error: fn dfs_api_test<T: NodeView>(a: T) where T::Err: Debug, T: Debug, { let c = a.children().unwrap(); let mut stack = vec![]; stack.push(c); while let Some(cur) = stack.pop() { for item in cur { let node = item.unwrap(); // Do something with node... println!("We visited a node: {node:?}"); let c = node.children().unwrap(); stack.push(c); } } } error[E0597]: `node` does not live long enough --> tree_ast\src\lib.rs:80:21 | 75 | while let Some(cur) = stack.pop() { | ----- borrow later used here 76 | for item in cur { 77 | let node = item.unwrap(); | ---- binding `node` declared here ... 80 | let c = node.children().unwrap(); | ^^^^ borrowed value does not live long enough 81 | stack.push(c); 82 | } | - `node` dropped here while still borrowed From my understanding, basically it is required that `node` have to be alive as long as `c`. I tried to do something similar with a concrete type: struct Node { value: String, children: Vec<Node>, } struct Descendants<'a> { stack: Vec<std::slice::Iter<'a, Node>>, } impl<'a> Iterator for Descendants<'a> { type Item = &'a Node; fn next(&mut self) -> Option<Self::Item> { while let Some(top_iter) = self.stack.last_mut() { if let Some(node) = top_iter.next() { if !node.children.is_empty() { let c = &node.children; // Important part here let iter = c.iter(); self.stack.push(iter); } return Some(node); } else { self.stack.pop(); } } None } } In this snippet `iter` when expressed using opaque type, it should be `impl Iterator + 'a` // Code from std pub fn iter(&self) -> Iter<'_, T> { Iter::new(self) } However, `self.stack.push(iter);` complies without error. How is it allowed? And in general, what is a good trait definition to generalize any tree-like data structure to traverse them?
users.rust-lang.org
April 12, 2025 at 2:07 PM
Why `Vec`'s `.iter()` iterator can outlive the lifetime of the reference use to construct it?
> Why `Vec`’s `.iter()` iterator can outlive the lifetime of the reference use to construct it? It can’t. But it can _live as long as_ the lifetime from the reference used to construct it. In particular, in your “concrete type” version, when you have a `&'a Node` and call `node.children.iter()`, that gets you an `Iter<'a, Node>` — the lifetime is _equal_. On the other hand, your `NodeView` trait forces you to _borrow the view again:_ fn children<'c>(&'c self) -> Result<Self::ChildIter<'c>, Self::Err>; This means you have to supply it a `&'c &'a Node` and the child iter only lives for `'c`, which lifetime is only valid as long as the `&'a Node` — not the `Node` — you borrowed continues to exist. That lifetime shortening is why your code doesn’t compile — your trait has given `dfs_api_test` an obligation to keep `node` alive, but you haven’t done that (and can’t do that in a non-recursive implementation). A trait definition without this problem might be: pub trait NodeView: Sized { type Err; type ChildIter: Iterator<Item = Result<Self, Self::Err>>; fn children(self) -> Result<Self::ChildIter, Self::Err>; fn parent(self) -> Result<Option<Self>, Self::Err>; } Note that `self` is taken by value, and no lifetimes appear because the lifetimes are all in the _implementation_ , not the trait.
users.rust-lang.org
April 12, 2025 at 2:07 PM
Por curiosidade (e pra mostrar que eu sou razoavelmente organizada rs) essa é principal nodeview, a do arquivo 2 (o rough animation foi feito em um arquivo só, depois eu dividi o clean em 3 pra não correr risco de corromper e eu perder tudo de uma vez rs)
April 14, 2026 at 12:02 PM