mirror of
https://github.com/fluffos/fluffos
synced 2026-08-12 18:26:06 -04:00
Add local search and documentation guide for docs site (#1221)
* docs: add local full-text search and a contributor README Add @easyops-cn/docusaurus-search-local to the Docusaurus site so the docs get an offline search bar (index built at build time, no external service). English and zh-CN pages are both indexed, and matched terms are highlighted on the target page. Add docs/README.md describing the Docusaurus setup, local dev/build commands, search behavior, directory layout, and gotchas; exclude it from the published site alongside CLAUDE.md. Point the root README's docs/ entry at it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE * docs: remove dead framework leftovers, fix index generation, complete the nav Delete the VitePress (.vitepress/) and Jekyll (_layouts/, css/) leftovers, the one-shot migration scripts (fix_md_header.py, fix_seealso.py), and the stale keywords.json snapshot; prune the matching .gitignore entries and docusaurus exclude patterns. Rewrite gen_index.py for Docusaurus: it emitted dead .html links and legacy 'layout: doc' frontmatter, choked on non-markdown entries, and dropped nested categories — regenerating an index would have broken it. It now emits the extension-less links the site actually uses, links nested category indexes (restoring apply/* on the zh-CN index), and refuses to run on the docs root. Fix update_index.sh's copy-paste titles (zh-CN efun/build were titled 'APPLY'), stop it clobbering the hand-written lpc/index.md, and cover cli/. Regenerated indexes pick up the missing driver/ffi-plan entry. add_missing_efuns.py now takes the keywords.json path as an argument instead of requiring a stale copy. Move CNAME and the Google site-verification file into static/ so they actually reach the published build output. Complete the sidebar: link the CLI category to cli/index and add the missing portbind/symbol/generate_keywords pages, and expose the previously orphaned stdlib section under Reference. Promote onBrokenLinks to 'throw' now the build is warning-free, and drop the empty Demo section from the landing page. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE * docs: strip legacy 'layout: doc' frontmatter from all pages Mechanical sweep removing the Jekyll-era 'layout: doc' line from every doc page's frontmatter (Docusaurus ignores it), and the matching line from the templates in docs/CLAUDE.md so new pages don't reintroduce it. No content changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE --------- Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
parent
319b5ef300
commit
c914f03d66
1011 changed files with 837 additions and 6848 deletions
|
|
@ -159,7 +159,7 @@ The FluffOS documentation site lives in the `docs/` directory and is built with
|
|||
|
||||
### Framework & Build
|
||||
|
||||
* **Framework**: Docusaurus 3 (`@docusaurus/preset-classic`). Do **not** confuse with VitePress — the site was migrated from VitePress and `.vitepress/` is a dead directory that can be ignored.
|
||||
* **Framework**: Docusaurus 3 (`@docusaurus/preset-classic`). Do **not** confuse with VitePress or Jekyll — the site was migrated from those frameworks and their leftover directories (`.vitepress/`, `_layouts/`, `css/`) have been removed.
|
||||
* **Node**: Use NVM. The active version is managed via `~/.nvm`. Always `source "$NVM_DIR/nvm.sh"` before running npm commands.
|
||||
* **Key config files**:
|
||||
- `docs/docusaurus.config.ts` — site config, navbar, footer, docs plugin path
|
||||
|
|
|
|||
|
|
@ -303,7 +303,7 @@ cd testsuite
|
|||
- **`src/compiler/`**: LPC parsing engine (`grammar.y`, `lex.cc`, `generate.cc`).
|
||||
- **`src/packages/`**: Modular efun features (math, db, crypto, sockets, etc.).
|
||||
- **`testsuite/`**: Official testsuite containing LPC tests and configurations.
|
||||
- **`docs/`**: Markdown documentation.
|
||||
- **`docs/`**: Documentation site (Markdown, built with Docusaurus — see [docs/README.md](docs/README.md)).
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
5
docs/.gitignore
vendored
5
docs/.gitignore
vendored
|
|
@ -1,8 +1,3 @@
|
|||
/vendor
|
||||
/Gemfile.lock
|
||||
/_site
|
||||
/node_modules
|
||||
/.vitepress/cache
|
||||
/.vitepress/dist
|
||||
/build
|
||||
/.docusaurus
|
||||
|
|
|
|||
|
|
@ -1,53 +0,0 @@
|
|||
import { defineConfig } from 'vitepress'
|
||||
import SIDEBAR from "./sidebar";
|
||||
|
||||
// https://vitepress.dev/reference/site-config
|
||||
export default defineConfig({
|
||||
lang: 'en-US',
|
||||
title: "FluffOS Docs",
|
||||
description: "Docs for FluffOS Project",
|
||||
lastUpdated: true,
|
||||
sitemap: {
|
||||
hostname: 'https://www.fluffos.info'
|
||||
},
|
||||
themeConfig: {
|
||||
// https://vitepress.dev/reference/default-theme-config
|
||||
nav: [
|
||||
{ text: 'Github', link: 'https://github.com/fluffos/fluffos' }
|
||||
],
|
||||
sidebar: SIDEBAR,
|
||||
search: {
|
||||
provider: 'local',
|
||||
options: {
|
||||
miniSearch: {
|
||||
/**
|
||||
* @type {Pick<import('minisearch').Options, 'extractField' | 'tokenize' | 'processTerm'>}
|
||||
*/
|
||||
options: {
|
||||
},
|
||||
/**
|
||||
* @type {import('minisearch').SearchOptions}
|
||||
* @default
|
||||
* { fuzzy: 0.2, prefix: true, boost: { title: 4, text: 2, titles: 1 } }
|
||||
*/
|
||||
searchOptions: {
|
||||
fuzzy: 0.1,
|
||||
prefix: true,
|
||||
fields: [ 'relativePath', 'title' ],
|
||||
boost: {
|
||||
title: 4,
|
||||
text: 2,
|
||||
titles: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
socialLinks: [
|
||||
{ icon: 'github', link: 'https://github.com/fluffos/fluffos' }
|
||||
],
|
||||
editLink: {
|
||||
pattern: 'https://github.com/fluffos/fluffos/edit/master/docs/:path'
|
||||
},
|
||||
}
|
||||
})
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
const SIDEBAR = [
|
||||
{
|
||||
text: 'Introduction',
|
||||
collapsed: false,
|
||||
items: [
|
||||
{text: 'FluffOS', link: '/'},
|
||||
{text: 'Getting Started', link: '/build.html'},
|
||||
{text: 'Troubleshooting', link: '/bug.html'}
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'CLI',
|
||||
collapsed: false,
|
||||
items: [
|
||||
{text: 'driver', link: '/cli/driver.html'},
|
||||
{text: 'lpcc', link: '/cli/lpcc.html'},
|
||||
{text: 'o2json', link: '/cli/o2json.html'},
|
||||
{text: 'json2o', link: '/cli/json2o.html'}
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'LPC',
|
||||
items: [
|
||||
{text: 'LPC Language', link: '/lpc/'},
|
||||
{text: 'Driver', link: '/driver/'},
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Reference',
|
||||
items: [
|
||||
{
|
||||
text: 'Apply',
|
||||
link: '/apply/',
|
||||
collapsed: true,
|
||||
items: [
|
||||
{text: 'Master', link: '/apply/master/'},
|
||||
{text: 'Interactive', link: '/apply/interactive/'},
|
||||
{text: 'Object', link: '/apply/object/'},
|
||||
]
|
||||
},
|
||||
{text: 'EFUN', link: '/efun/'},
|
||||
{text: 'LPC Library', link: '/stdlib/'}
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Driver Internal',
|
||||
items: [
|
||||
{text: 'Concepts', link: '/concepts/'},
|
||||
{text: 'Notes', link: '/driver/'},
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '中文文档',
|
||||
items: [
|
||||
{text: '编译文档', link: '/zh-CN/build/'},
|
||||
{text: 'Apply 文档', link: '/zh-CN/apply/'},
|
||||
{text: 'EFUN 文档', link: '/zh-CN/efun/'},
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Historical',
|
||||
items: [
|
||||
{text: 'Build (v2017)', link: '/build_v2017.html'}
|
||||
]
|
||||
},
|
||||
]
|
||||
|
||||
export default SIDEBAR;
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
// https://vitepress.dev/guide/custom-theme
|
||||
import { h } from 'vue'
|
||||
import type { Theme } from 'vitepress'
|
||||
import DefaultTheme from 'vitepress/theme'
|
||||
import './style.css'
|
||||
|
||||
export default {
|
||||
extends: DefaultTheme,
|
||||
Layout: () => {
|
||||
return h(DefaultTheme.Layout, null, {
|
||||
// https://vitepress.dev/guide/extending-default-theme#layout-slots
|
||||
})
|
||||
},
|
||||
enhanceApp({ app, router, siteData }) {
|
||||
// ...
|
||||
}
|
||||
} satisfies Theme
|
||||
|
|
@ -1,139 +0,0 @@
|
|||
/**
|
||||
* Customize default theme styling by overriding CSS variables:
|
||||
* https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css
|
||||
*/
|
||||
|
||||
/**
|
||||
* Colors
|
||||
*
|
||||
* Each colors have exact same color scale system with 3 levels of solid
|
||||
* colors with different brightness, and 1 soft color.
|
||||
*
|
||||
* - `XXX-1`: The most solid color used mainly for colored text. It must
|
||||
* satisfy the contrast ratio against when used on top of `XXX-soft`.
|
||||
*
|
||||
* - `XXX-2`: The color used mainly for hover state of the button.
|
||||
*
|
||||
* - `XXX-3`: The color for solid background, such as bg color of the button.
|
||||
* It must satisfy the contrast ratio with pure white (#ffffff) text on
|
||||
* top of it.
|
||||
*
|
||||
* - `XXX-soft`: The color used for subtle background such as custom container
|
||||
* or badges. It must satisfy the contrast ratio when putting `XXX-1` colors
|
||||
* on top of it.
|
||||
*
|
||||
* The soft color must be semi transparent alpha channel. This is crucial
|
||||
* because it allows adding multiple "soft" colors on top of each other
|
||||
* to create a accent, such as when having inline code block inside
|
||||
* custom containers.
|
||||
*
|
||||
* - `default`: The color used purely for subtle indication without any
|
||||
* special meanings attched to it such as bg color for menu hover state.
|
||||
*
|
||||
* - `brand`: Used for primary brand colors, such as link text, button with
|
||||
* brand theme, etc.
|
||||
*
|
||||
* - `tip`: Used to indicate useful information. The default theme uses the
|
||||
* brand color for this by default.
|
||||
*
|
||||
* - `warning`: Used to indicate warning to the users. Used in custom
|
||||
* container, badges, etc.
|
||||
*
|
||||
* - `danger`: Used to show error, or dangerous message to the users. Used
|
||||
* in custom container, badges, etc.
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-c-default-1: var(--vp-c-gray-1);
|
||||
--vp-c-default-2: var(--vp-c-gray-2);
|
||||
--vp-c-default-3: var(--vp-c-gray-3);
|
||||
--vp-c-default-soft: var(--vp-c-gray-soft);
|
||||
|
||||
--vp-c-brand-1: var(--vp-c-indigo-1);
|
||||
--vp-c-brand-2: var(--vp-c-indigo-2);
|
||||
--vp-c-brand-3: var(--vp-c-indigo-3);
|
||||
--vp-c-brand-soft: var(--vp-c-indigo-soft);
|
||||
|
||||
--vp-c-tip-1: var(--vp-c-brand-1);
|
||||
--vp-c-tip-2: var(--vp-c-brand-2);
|
||||
--vp-c-tip-3: var(--vp-c-brand-3);
|
||||
--vp-c-tip-soft: var(--vp-c-brand-soft);
|
||||
|
||||
--vp-c-warning-1: var(--vp-c-yellow-1);
|
||||
--vp-c-warning-2: var(--vp-c-yellow-2);
|
||||
--vp-c-warning-3: var(--vp-c-yellow-3);
|
||||
--vp-c-warning-soft: var(--vp-c-yellow-soft);
|
||||
|
||||
--vp-c-danger-1: var(--vp-c-red-1);
|
||||
--vp-c-danger-2: var(--vp-c-red-2);
|
||||
--vp-c-danger-3: var(--vp-c-red-3);
|
||||
--vp-c-danger-soft: var(--vp-c-red-soft);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Button
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-button-brand-border: transparent;
|
||||
--vp-button-brand-text: var(--vp-c-white);
|
||||
--vp-button-brand-bg: var(--vp-c-brand-3);
|
||||
--vp-button-brand-hover-border: transparent;
|
||||
--vp-button-brand-hover-text: var(--vp-c-white);
|
||||
--vp-button-brand-hover-bg: var(--vp-c-brand-2);
|
||||
--vp-button-brand-active-border: transparent;
|
||||
--vp-button-brand-active-text: var(--vp-c-white);
|
||||
--vp-button-brand-active-bg: var(--vp-c-brand-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Home
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-home-hero-name-color: transparent;
|
||||
--vp-home-hero-name-background: -webkit-linear-gradient(
|
||||
120deg,
|
||||
#bd34fe 30%,
|
||||
#41d1ff
|
||||
);
|
||||
|
||||
--vp-home-hero-image-background-image: linear-gradient(
|
||||
-45deg,
|
||||
#bd34fe 50%,
|
||||
#47caff 50%
|
||||
);
|
||||
--vp-home-hero-image-filter: blur(44px);
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
:root {
|
||||
--vp-home-hero-image-filter: blur(56px);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
:root {
|
||||
--vp-home-hero-image-filter: blur(68px);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Custom Block
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-custom-block-tip-border: transparent;
|
||||
--vp-custom-block-tip-text: var(--vp-c-text-1);
|
||||
--vp-custom-block-tip-bg: var(--vp-c-brand-soft);
|
||||
--vp-custom-block-tip-code-bg: var(--vp-c-brand-soft);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Algolia
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
.DocSearch {
|
||||
--docsearch-primary-color: var(--vp-c-brand-1) !important;
|
||||
}
|
||||
|
||||
|
|
@ -40,7 +40,6 @@ Applies are callback functions that the driver calls on LPC objects in response
|
|||
**Apply Documentation Template:**
|
||||
```markdown
|
||||
---
|
||||
layout: doc
|
||||
title: category / apply_name
|
||||
---
|
||||
# apply_name
|
||||
|
|
@ -116,7 +115,6 @@ Efuns (external functions) are built-in C/C++ functions callable from LPC code.
|
|||
**Efun Documentation Template:**
|
||||
```markdown
|
||||
---
|
||||
layout: doc
|
||||
title: category / efun_name
|
||||
---
|
||||
# efun_name
|
||||
|
|
@ -183,7 +181,6 @@ Command-line tools included with FluffOS.
|
|||
**CLI Documentation Template:**
|
||||
```markdown
|
||||
---
|
||||
layout: doc
|
||||
title: cli / tool_name
|
||||
---
|
||||
# cli / tool_name
|
||||
|
|
@ -371,7 +368,6 @@ done
|
|||
**Front Matter:**
|
||||
```yaml
|
||||
---
|
||||
layout: doc
|
||||
title: category / name
|
||||
---
|
||||
```
|
||||
|
|
@ -512,7 +508,7 @@ npm run dev
|
|||
# Visit http://localhost:3000
|
||||
```
|
||||
|
||||
> **Note**: The `.vitepress/` directory is a leftover from a previous framework and can be ignored.
|
||||
> **Note**: Leftovers from previous frameworks (VitePress `.vitepress/`, Jekyll `_layouts/` and `css/`) have been removed — everything is Docusaurus now.
|
||||
|
||||
### Sidebar Format
|
||||
|
||||
|
|
|
|||
89
docs/README.md
Normal file
89
docs/README.md
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
# FluffOS Documentation
|
||||
|
||||
This directory contains the source for the FluffOS documentation site, published at
|
||||
[https://www.fluffos.info](https://www.fluffos.info).
|
||||
|
||||
The site is built with **[Docusaurus 3](https://docusaurus.io/)** (`@docusaurus/preset-classic`).
|
||||
Markdown files live directly in this directory (the docs plugin is configured with
|
||||
`path: '.'` and `routeBasePath: '/'`), so `docs/efun/strings/explode.md` becomes
|
||||
`/efun/strings/explode` on the site.
|
||||
|
||||
> This README is for contributors and is excluded from the published site
|
||||
> (see `exclude` in `docusaurus.config.ts`).
|
||||
|
||||
## Local Development
|
||||
|
||||
Requires Node.js 18+ (Node 22 recommended).
|
||||
|
||||
```bash
|
||||
cd docs
|
||||
npm install
|
||||
npm run dev # dev server on http://localhost:3000
|
||||
```
|
||||
|
||||
Other scripts:
|
||||
|
||||
```bash
|
||||
npm run build # production build → docs/build/
|
||||
npm run preview # serve the production build locally
|
||||
npm run clear # clear the Docusaurus cache
|
||||
```
|
||||
|
||||
## Search
|
||||
|
||||
Full-text search is provided by
|
||||
[`@easyops-cn/docusaurus-search-local`](https://github.com/easyops-cn/docusaurus-search-local),
|
||||
an offline/local search theme — the index is generated at build time and shipped with the
|
||||
site, so no external search service (e.g. Algolia) is needed.
|
||||
|
||||
Notes:
|
||||
|
||||
- The search index is only generated by `npm run build`. In the dev server
|
||||
(`npm run dev`) the search bar shows a hint instead of results; use
|
||||
`npm run build && npm run preview` to test search locally.
|
||||
- Both English and Chinese (`zh-CN/`) pages are indexed (`language: ['en', 'zh']`).
|
||||
- Search options live in the `themes` section of `docusaurus.config.ts`.
|
||||
|
||||
## Layout
|
||||
|
||||
| Path | Contents |
|
||||
|------|----------|
|
||||
| `docusaurus.config.ts` | Site config: navbar, footer, docs plugin, search theme |
|
||||
| `sidebars.ts` | Sidebar navigation tree (Docusaurus `SidebarsConfig` format) |
|
||||
| `src/css/custom.css` | Infima CSS variable overrides |
|
||||
| `static/` | Files copied verbatim to the site root (`CNAME`, Google site verification) |
|
||||
| `apply/` | Driver-to-LPC callback (apply) reference |
|
||||
| `efun/` | Built-in function (efun) reference, by category |
|
||||
| `stdlib/` | LPC standard-library reference |
|
||||
| `driver/` | Driver internals & configuration |
|
||||
| `lpc/` | LPC language reference |
|
||||
| `concepts/` | High-level LPC / MUD concepts |
|
||||
| `cli/` | Command-line tool docs |
|
||||
| `zh-CN/` | Chinese documentation |
|
||||
| `archive/` | Historical MudOS-era documents (not published) |
|
||||
|
||||
### Maintenance scripts
|
||||
|
||||
| Script | Purpose |
|
||||
|--------|---------|
|
||||
| `update_index.sh` | Regenerates all generated `index.md` listing pages (calls `gen_index.py`) |
|
||||
| `gen_index.py` | Writes an `index.md` for one doc tree (e.g. `./gen_index.py efun EFUN`) |
|
||||
| `gen_config_docs.py` | Regenerates `driver/config.md` from `src/base/internal/rc.cc` |
|
||||
| `add_missing_efuns.py` | Creates stub pages under `efun/general/` for undocumented efuns (needs a `keywords.json` from the `generate_keywords` tool) |
|
||||
|
||||
## Conventions & Gotchas
|
||||
|
||||
- **`driver/config.md` is auto-generated** from `src/base/internal/rc.cc` — never edit it
|
||||
by hand. Regenerate with `python3 docs/gen_config_docs.py`; CI fails if it is stale.
|
||||
- `.md` files are treated as standard CommonMark (`markdown.format: 'detect'`), but bare
|
||||
`{...}` in prose is still parsed as a JSX expression and breaks the build — escape it as
|
||||
`\{...\}` outside fenced code blocks.
|
||||
- Sidebar entries in `sidebars.ts` use doc IDs (relative path without extension), not URLs.
|
||||
- Generated `index.md` listing pages (efun/apply/stdlib/cli/concepts/driver/zh-CN) are
|
||||
rewritten by `./update_index.sh` — regenerate rather than hand-edit them.
|
||||
`lpc/index.md` is hand-written and deliberately not regenerated.
|
||||
- `onBrokenLinks` is set to `'throw'`: a broken internal link fails the build (and the
|
||||
Pages deploy) instead of shipping a 404.
|
||||
|
||||
See [`CLAUDE.md`](CLAUDE.md) for detailed documentation templates (applies, efuns, CLI
|
||||
tools) and the full contribution workflow.
|
||||
|
|
@ -1,137 +0,0 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<title>FluffOS - {{ page.title }}</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href={{ "/css/default.css" | relative_url }}>
|
||||
<link rel="stylesheet" href={{ "/css/rouge.css" | relative_url }}>
|
||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-2912700-7"></script>
|
||||
<script>
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
|
||||
function gtag() {
|
||||
dataLayer.push(arguments);
|
||||
}
|
||||
|
||||
gtag('js', new Date());
|
||||
|
||||
gtag('config', 'UA-2912700-7');
|
||||
</script>
|
||||
{% seo %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container col-12 col-md-10 col-lg-8">
|
||||
<header class="blog-header py-3">
|
||||
<div class="row flex-nowrap justify-content-between align-items-center">
|
||||
<div class="col-12 text-center">
|
||||
<a class="blog-header-logo text-dark"> {{ page.title }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<nav class="navbar navbar-expand-md navbar-light bg-light">
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-brand" href="/">FluffOS</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
|
||||
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse justify-content-center" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav mr-auto">
|
||||
<li>
|
||||
<a class="nav-link" href="/build.html">BUILD</a>
|
||||
</li>
|
||||
<li>
|
||||
<div class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" role="button" data-toggle="dropdown"
|
||||
aria-haspopup="true" aria-expanded="false">
|
||||
References
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown1">
|
||||
<a class="dropdown-item" href="/efun">EFUN</a>
|
||||
<a class="dropdown-item" href="/apply">APPLY</a>
|
||||
<a class="dropdown-item" href="/stdlib">STDLIB</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<a class="nav-link text-nowrap" href="/bug.html">Bug</a>
|
||||
</li>
|
||||
<li>
|
||||
<div class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown2" role="button" data-toggle="dropdown"
|
||||
aria-haspopup="true" aria-expanded="false">
|
||||
Other
|
||||
</a>
|
||||
<div class="dropdown-menu" aria-labelledby="navbarDropdown2">
|
||||
<a class="dropdown-item" href="/build_v2017.html">Build (v2017)</a>
|
||||
<a class="dropdown-item" href="/lpc">LPC Language</a>
|
||||
<a class="dropdown-item" href="/concepts">Concept</a>
|
||||
<a class="dropdown-item" href="/driver">Hack Notes</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<a class="nav-link text-nowrap" href="/zh-CN">中文文档</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div>
|
||||
<div class="gcse-search"></div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div id="content" class="text-justify px-2 py-2">
|
||||
{{ content }}
|
||||
</div>
|
||||
<div class="container">
|
||||
<div id='discourse-comments'></div>
|
||||
<script type="text/javascript">
|
||||
if (location.pathname.match(/\/(lpc|concepts|driver|apply|efun)\/.+/)) {
|
||||
DiscourseEmbed = {
|
||||
discourseUrl: 'https://forum.fluffos.info/',
|
||||
discourseEmbedUrl: location.href
|
||||
};
|
||||
|
||||
(function () {
|
||||
const d = document.createElement('script');
|
||||
d.type = 'text/javascript';
|
||||
d.async = true;
|
||||
d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
|
||||
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
|
||||
})();
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
<footer class="pt-md-4 my-2 border-top">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<img src="https://cdnjs.cloudflare.com/ajax/libs/octicons/8.5.0/svg/star.svg" /> Improve this page
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p class="card-text">Every page on this site is maintained by user like you!</p>
|
||||
<a href="{% github_edit_link %}" class="my-2"><img src="https://cdnjs.cloudflare.com/ajax/libs/octicons/8.5.0/svg/pencil.svg" /> Edit On Github</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
<!-- GCSE -->
|
||||
<script>
|
||||
(function () {
|
||||
var cx = '015880077353261870029:ujn3ynk194o';
|
||||
var gcse = document.createElement('script');
|
||||
gcse.type = 'text/javascript';
|
||||
gcse.async = true;
|
||||
gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
|
||||
var s = document.getElementsByTagName('script')[0];
|
||||
s.parentNode.insertBefore(gcse, s);
|
||||
})();
|
||||
</script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,11 +1,15 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Generate stub docs under efun/general/ for efuns that have no doc page.
|
||||
|
||||
# find all existing efuns through keywords.json, then generate doc under efun/general/
|
||||
Usage: add_missing_efuns.py path/to/keywords.json
|
||||
|
||||
keywords.json is produced by the generate_keywords tool from a compiled
|
||||
driver (run it in your build directory). Run this script from docs/.
|
||||
"""
|
||||
|
||||
import os
|
||||
import json
|
||||
|
||||
EFUNS_DOCS = set()
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def generate_signature(efun):
|
||||
|
|
@ -17,7 +21,6 @@ def generate_signature(efun):
|
|||
|
||||
def generate_doc(efun):
|
||||
return f"""---
|
||||
layout: doc
|
||||
title: general / {efun["name"]}
|
||||
---
|
||||
# {efun["name"]}
|
||||
|
|
@ -38,27 +41,26 @@ title: general / {efun["name"]}
|
|||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) != 2 or not os.path.isfile(sys.argv[1]):
|
||||
sys.exit(__doc__.strip().splitlines()[2]) # the Usage line
|
||||
|
||||
documented = set()
|
||||
for root, dirs, files in os.walk("./efun"):
|
||||
for file in files:
|
||||
if file.endswith(".md"):
|
||||
if file == "index.md":
|
||||
continue
|
||||
EFUNS_DOCS.add(file[:-3])
|
||||
print("EFUNS with docs: " + str(len(EFUNS_DOCS)))
|
||||
if file.endswith(".md") and file != "index.md":
|
||||
documented.add(file[:-3])
|
||||
print(f"EFUNS with docs: {len(documented)}")
|
||||
|
||||
keywords = json.load(open("./keywords.json"))
|
||||
keywords = json.load(open(sys.argv[1]))
|
||||
all_efuns = {keyword["name"]: keyword for keyword in keywords}
|
||||
print("ALL EFUNS: " + str(len(all_efuns)))
|
||||
print(f"ALL EFUNS: {len(all_efuns)}")
|
||||
|
||||
for efun in all_efuns:
|
||||
if efun.startswith("_"):
|
||||
for name, efun in all_efuns.items():
|
||||
if name.startswith("_") or name in documented:
|
||||
continue
|
||||
if efun in EFUNS_DOCS:
|
||||
continue
|
||||
print(f"Generating doc for {efun}")
|
||||
content = generate_doc(all_efuns[efun])
|
||||
with open(f"./efun/general/{efun}.md", "w") as f:
|
||||
f.write(content)
|
||||
print(f"Generating doc for {name}")
|
||||
with open(f"./efun/general/{name}.md", "w") as f:
|
||||
f.write(generate_doc(efun))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: APPLY
|
||||
---
|
||||
## interactive
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / catch_tell
|
||||
---
|
||||
# catch_tell
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / gmcp
|
||||
---
|
||||
# gmcp
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / gmcp_enable
|
||||
---
|
||||
# gmcp_enable
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive
|
||||
---
|
||||
* [catch_tell](catch_tell)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / logon
|
||||
---
|
||||
# logon
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / msdp
|
||||
---
|
||||
# gmcp
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / msdp_enable
|
||||
---
|
||||
# msdp_enable
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / msp_enable
|
||||
---
|
||||
# msp_enable
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / mxp_enable
|
||||
---
|
||||
# mxp_enable
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / mxp_tag
|
||||
---
|
||||
# mxp_tag
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / net_dead
|
||||
---
|
||||
# net_dead
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / process_input
|
||||
---
|
||||
# process_input
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / receive_ed
|
||||
---
|
||||
# receive_ed
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: apply / interactive / receive_environ
|
||||
---
|
||||
# receive_environ
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: apply / interactive / receive_message
|
||||
---
|
||||
# receive_message
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / receive_snoop
|
||||
---
|
||||
# receive_snoop
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / telnet_suboption
|
||||
---
|
||||
# telnet_suboption
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / terminal_colour_replace
|
||||
---
|
||||
# terminal_colour_replace
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / terminal_type
|
||||
---
|
||||
# terminal_type
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / window_size
|
||||
---
|
||||
# window_size
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / write_prompt
|
||||
---
|
||||
# write_prompt
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: interactive / zmp
|
||||
---
|
||||
# zmp_command
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / author_file
|
||||
---
|
||||
# author_file
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / compile_object
|
||||
---
|
||||
# compile_object
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / connect
|
||||
---
|
||||
# connect
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / crash
|
||||
---
|
||||
# crash
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / creator_file
|
||||
---
|
||||
# creator_file
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / domain_file
|
||||
---
|
||||
# domain_file
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / epilog
|
||||
---
|
||||
# epilog
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / error_handler
|
||||
---
|
||||
# error_handler
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / flag
|
||||
---
|
||||
# flag
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / get_bb_uid
|
||||
---
|
||||
# get_bb_uid
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / get_include_path
|
||||
---
|
||||
# get_include_path
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / get_mud_stats
|
||||
---
|
||||
# get_mud_stats
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / get_root_uid
|
||||
---
|
||||
# get_root_uid
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / get_save_file_name
|
||||
---
|
||||
# get_save_file_name
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master
|
||||
---
|
||||
* [author_file](author_file)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / log_error
|
||||
---
|
||||
# log_error
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / make_path_absolute
|
||||
---
|
||||
# make_path_absolute
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / object_name
|
||||
---
|
||||
# object_name
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / parser_error_message
|
||||
---
|
||||
# parser_error_message
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / preload
|
||||
---
|
||||
# preload
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / privs_file
|
||||
---
|
||||
# privs_file
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / retrieve_ed_setup
|
||||
---
|
||||
# retrieve_ed_setup
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / save_ed_setup
|
||||
---
|
||||
# save_ed_setup
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_bind
|
||||
---
|
||||
# valid_bind
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_database
|
||||
---
|
||||
# valid_database
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_hide
|
||||
---
|
||||
# valid_hide
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_link
|
||||
---
|
||||
# valid_link
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_object
|
||||
---
|
||||
# valid_object
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_override
|
||||
---
|
||||
# valid_override
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_read
|
||||
---
|
||||
# valid_read
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_save_binary
|
||||
---
|
||||
# valid_save_binary
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_seteuid
|
||||
---
|
||||
# valid_seteuid
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_shadow
|
||||
---
|
||||
# valid_shadow
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_socket
|
||||
---
|
||||
# valid_socket
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: master / valid_write
|
||||
---
|
||||
# valid_write
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object / __INIT
|
||||
---
|
||||
# __INIT
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object / clean_up
|
||||
---
|
||||
# clean_up
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object / create
|
||||
---
|
||||
# create
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object / heart_beat
|
||||
---
|
||||
# heart_beat
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object / id
|
||||
---
|
||||
# id
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object
|
||||
---
|
||||
* [__INIT](__INIT)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object / init
|
||||
---
|
||||
# init
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object / is_living
|
||||
---
|
||||
# is_living
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object / move_or_destruct
|
||||
---
|
||||
# move_or_destruct
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object / on_destruct
|
||||
---
|
||||
# on_destruct
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object / reset
|
||||
---
|
||||
# reset
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: object / virtual_start
|
||||
---
|
||||
# virtual_start
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: Troubleshooting
|
||||
---
|
||||
# Troubleshooting
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: Build
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: Build (v2017)
|
||||
---
|
||||
# build_v2017
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: cli / driver
|
||||
---
|
||||
# cli / driver
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: cli / generate_keywords
|
||||
---
|
||||
# cli / generate_keywords
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: cli
|
||||
---
|
||||
* [driver](driver)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: cli / json2o
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: cli / lpcc
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: cli / o2json
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: cli / portbind
|
||||
---
|
||||
# cli / portbind
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: cli / symbol
|
||||
---
|
||||
# cli / symbol
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: general / FluffOS driver
|
||||
---
|
||||
# The FluffOS driver
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: general / global_include_file
|
||||
---
|
||||
# global_include_file
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: general
|
||||
---
|
||||
* [fluffos_driver](fluffos_driver)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: general / lpc
|
||||
---
|
||||
# lpc
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: general / message_doc
|
||||
---
|
||||
# message_doc
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: general / objects
|
||||
---
|
||||
# objects
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: general / oop
|
||||
---
|
||||
# oop
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
---
|
||||
layout: doc
|
||||
title: general / preprocessor
|
||||
---
|
||||
# preprocessor
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue