> ## Documentation Index
> Fetch the complete documentation index at: https://nmem.guoxudong.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 来自社区

> 阅读社区文章与 X 原帖，看看大家如何用 Nowledge Mem 搭建自己的知识地图。

export const CommunityTweet = ({id, author, handle, locale = "en"}) => {
  const mount = useRef(null);
  const [status, setStatus] = useState("loading");
  useEffect(() => {
    const host = mount.current;
    let disposed = false;
    let generation = 0;
    let timer;
    if (!window.__communityXWidgets) {
      window.__communityXWidgets = new Promise((resolve, reject) => {
        if (window.twttr?.widgets) {
          resolve(window.twttr);
          return;
        }
        const script = document.createElement("script");
        script.src = "https://platform.twitter.com/widgets.js";
        script.async = true;
        const timeout = setTimeout(() => {
          script.remove();
          reject(new Error("X widgets timed out"));
        }, 15000);
        script.onload = () => {
          clearTimeout(timeout);
          if (window.twttr?.widgets) resolve(window.twttr); else reject(new Error("X widgets unavailable"));
        };
        script.onerror = () => {
          clearTimeout(timeout);
          script.remove();
          reject(new Error("X widgets unavailable"));
        };
        document.head.appendChild(script);
      });
      window.__communityXWidgets.catch(() => {
        delete window.__communityXWidgets;
      });
    }
    const widgets = window.__communityXWidgets;
    let theme = document.documentElement.classList.contains("dark") ? "dark" : "light";
    const render = () => {
      const version = ++generation;
      clearTimeout(timer);
      setStatus("loading");
      const target = document.createElement("div");
      host.replaceChildren(target);
      const current = () => !disposed && generation === version;
      timer = setTimeout(() => {
        if (current()) setStatus("unavailable");
      }, 20000);
      widgets.then(twitter => {
        if (!current()) return;
        return twitter.widgets.createTweet(id, target, {
          theme,
          lang: locale === "zh" ? "zh-cn" : "en",
          dnt: true,
          width: 550
        });
      }).then(element => {
        if (!current()) return;
        clearTimeout(timer);
        setStatus(element ? "ready" : "unavailable");
      }).catch(() => {
        if (!current()) return;
        clearTimeout(timer);
        setStatus("unavailable");
      });
    };
    render();
    const observer = new MutationObserver(() => {
      const next = document.documentElement.classList.contains("dark") ? "dark" : "light";
      if (next !== theme) {
        theme = next;
        render();
      }
    });
    observer.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => {
      disposed = true;
      clearTimeout(timer);
      observer.disconnect();
      host.replaceChildren();
    };
  }, [id, locale]);
  return <div className="community-tweet">
      <div ref={mount} className="community-tweet-embed" />
      {status !== "ready" && <div className="community-tweet-fallback">
          <span className="community-tweet-author">{author} <span>@{handle}</span></span>
          <p role="status">{status === "loading" ? locale === "zh" ? "正在加载 X 原帖…" : "Loading the original X post…" : locale === "zh" ? "暂时无法加载，可前往 X 阅读原帖。" : "This post could not load. Read the original on X."}</p>
          <a href={`https://x.com/${handle}/status/${id}`} target="_blank" rel="noopener noreferrer">
            {locale === "zh" ? "在 X 查看原帖" : "View original on X"} ↗
          </a>
        </div>}
    </div>;
};

<div className="community-hero">
  <p className="community-eyebrow">经验分享 · 不是一节课</p>
  <h1 className="community-display">大家如何用 Nowledge Mem 搭建自己的知识地图。</h1>
  <p className="community-lede">阅读完整的经验文章，或看看大家在 X 上的日常分享。</p>
</div>

<div className="community-jump-links" role="navigation" aria-label="社区内容">
  <a href="#articles">文章 <span>03</span></a>
  <a href="#x-posts">X 推文 <span>06</span></a>
</div>

<section className="community-section" aria-labelledby="articles">
  <div className="community-section-heading">
    <h2 id="articles">文章</h2>
    <p>搭建方式、工作流程与长期使用心得。</p>
  </div>

  <div className="community-articles">
    <a className="community-share-card" href="https://x.com/guoxudong_/status/2092604004245332474" target="_blank" rel="noopener noreferrer">
      <span className="community-share-source"><Icon icon="newspaper" /> X 文章</span>
      <span className="community-share-author">Xudong Guo · 中文 · 2026-08-26</span>
      <span className="community-share-title" role="heading" aria-level="3">让 Agent 不再从头开始：用 Nowledge Mem 搭建统一记忆中枢</span>
      <p className="community-share-excerpt" lang="zh-CN">把 Mac mini 作为常开的 Nowledge Mem 中枢，让 MacBook、Linux 服务器、手机和接入的 Agent 使用同一份长期记忆。</p>
      <span className="community-share-footer"><span>x.com</span><span>阅读全文 <span aria-hidden="true">↗</span></span></span>
    </a>

    <a className="community-share-card" href="https://x.com/HaraAmami/status/2091523661077561348" target="_blank" rel="noopener noreferrer">
      <span className="community-share-source"><Icon icon="newspaper" /> X 文章</span>
      <span className="community-share-author">Amami Hara · 日文 · 2026-08-23</span>
      <span className="community-share-title" role="heading" aria-level="3">世界首位用户眼中的 AI 项目记忆</span>
      <p className="community-share-excerpt" lang="ja">私は Nowledge Mem の世界初のユーザーだ。…分断された記憶は、長期プロジェクトにおいては記憶がないのとほとんど変わらない。</p>
      <span className="community-share-footer"><span>x.com</span><span>阅读全文 <span aria-hidden="true">↗</span></span></span>
    </a>

    <a className="community-share-card" href="https://x.com/hbyxabc/status/2093326775862599708" target="_blank" rel="noopener noreferrer">
      <span className="community-share-source"><Icon icon="newspaper" /> X 文章</span>
      <span className="community-share-author">HB · 中文 · 2026-08-28</span>
      <span className="community-share-title" role="heading" aria-level="3">Agent 时代，用户需要怎样的记忆产品？</span>
      <p className="community-share-excerpt" lang="zh-CN">「数字记忆」会成为下一代知识工作的基础设施。每个人都应该尽可能早地搭建自己的数字记忆系统。</p>
      <span className="community-share-footer"><span>x.com</span><span>阅读全文 <span aria-hidden="true">↗</span></span></span>
    </a>
  </div>
</section>

<section className="community-section" aria-labelledby="x-posts">
  <div className="community-section-heading">
    <h2 id="x-posts">X 推文</h2>
    <p>直接呈现原帖，保留原文、图片与视频。</p>
  </div>

  <div className="community-posts">
    <CommunityTweet id="2024709980474224830" author="海拉鲁编程客" handle="hylarucoder" locale="zh" />

    <CommunityTweet id="2087498315478991214" author="Asada-Yuki" handle="AsadaYuki_Art" locale="zh" />

    <CommunityTweet id="2088491404326801734" author="Amami Hara" handle="HaraAmami" locale="zh" />

    <CommunityTweet id="2094954769374978414" author="Xudong Guo" handle="guoxudong_" locale="zh" />

    <CommunityTweet id="2095446709790982626" author="Otter" handle="otterpal24" locale="zh" />

    <CommunityTweet id="2098395942001238493" author="YAYOI の 夢" handle="Yayoi_no_yume" locale="zh" />
  </div>
</section>

<p className="community-foot">写过自己的搭建方式或使用经验？分享到 <a href="https://x.com/NowledgeMem">X</a>，就有机会被收录。 · 回到学习 → <a href="/zh/essentials">Essentials</a></p>
