Getting Started with Markdown in WebFact

Welcome to ExtBit WebFact. WebFact decouples content creation from presentation, allowing you to manage your website entirely through version-controlled text files inside a private /content directory.

You write standard Markdown; WebFact compiles your repository into pre-rendered, lightning-fast static HTML, CSS, and JS chunks.

This guide covers everything you need to know about directory routing, metadata extraction, date management, and content authoring in WebFact.


πŸ“ Directory Structure & Automated Routing

Your /content directory is the single source of truth for your site’s architecture. WebFact maps your folder hierarchy directly to public URLs without requiring manual routing configurations or database lookups.

File Mapping Examples

Source File LocationCompiled Production URL
content/index.mdhttps://yourdomain.com/index.html
content/about.mdhttps://yourdomain.com/about.html
content/blog/index.jshttps://yourdomain.com/blog/index.html
content/blog/2026/08/14/release-notes.mdhttps://yourdomain.com/blog/2026/08/14/release-notes.html

πŸ’‘ Tip: Standard index.md, index.html, or index.js files serve as directory landing pages and directory feeds.


✍️ Writing Content Without Frontmatter

Traditional static site generators require verbose YAML or TOML "frontmatter" blocks at the top of every file. WebFact eliminates this friction by inferring page metadata directly from your document's natural Markdown structure.

# Building Zero-Maintenance Websites

Dynamic platforms require continuous patching, database management, and expensive hosting stacks. WebFact compiles text files straight into static edge bundles.

## Key Advantages

* **Zero Vulnerability Vectors:** No databases or server-side scripts to exploit.
* **Instant SEO:** Crawlers index pre-rendered HTML immediately without client-side rendering delays.

Metadata Extraction Rules

  1. Page Title (<title> & <h1>): Inferred automatically from the first # Heading 1 encountered in the file.
  2. Summary / Excerpt: Extracted from the first non-heading paragraph. This summary is automatically supplied to blog list feeds and social media meta tags.
  3. Internal Links: Write links using local .md paths (e.g., [Learn More](../about.md)). The build engine rewrites these to production .html references during compilation.

πŸ“… Publication Dates & Feed Metadata

WebFact feeds (such as blog indexes or changelogs) automatically sort items by date. You can define publication dates using two flexible approaches:

Method 1: Date-Based Path Routing (Recommended for Blogs)

Structure your post paths using standard /YYYY/MM/DD/ directory hierarchies:

content/
└── articles/
    └── 2026/
        └── 08/
            └── 14/
                └── zero-maintenance-guide.md

The WebFact build engine parses 2026, 08, and 14 directly from the directory path, assigning the timestamp to the article's list entry while maintaining collision-free, human-readable URLs.

Method 2: Inline <time> Tags

For standalone pages or files in flat directory structures, declare timestamps explicitly using an HTML <time> tag anywhere in the file (typically at the bottom):

*<time created="2026-08-14" updated="2026-08-15" />*
  • created: Initial publication date used for feed sorting.
  • updated: Revision date displayed on the page.
  • Localization: At build time, the engine converts this raw tag into a clean, localized string (e.g., August 14, 2026).

πŸš€ Publishing Your Content

Publishing changes with WebFact is fully integrated into your standard Git workflow.

1. Save and Preview

When developing locally using the WebFact Webpack engine, saving any Markdown file triggers instant hot-reloading in your browser:

make serve

2. Commit and Push

When your draft is complete, push your changes to your content repository:

git add content/
git commit -m "docs: add guide on writing in markdown"
git push origin main

3. Automated Edge Deployment

Your connected CI/CD pipeline (e.g., GitHub Actions) automatically triggers the WebFact factory compiler, builds your static bundle, and syncs the output to your edge hosting bucket (Cloudflare Pages, Google Cloud Storage, or S3).

Your updates go live globally in secondsβ€”with zero server maintenance required.