open-index/open-npm huggingface dataset:
npm package: @leadertechie/create-personal-site
Description: Scaffold a personal website powered by Cloudflare Workers and R2. Fetches GitHub profile to auto-populate content.
Latest version: 0.1.0-alpha.13

# create-personal-site

A CLI to scaffold a personal website powered by [@leadertechie/personal-site-kit](https://github.com/leadertechie/personal-site-kit).

## Features

- Interactive CLI prompts for project setup
- Auto-fetches GitHub profile to personalize content
- Generates project structure with Cloudflare Workers configuration
- Creates starter content (home page, about page, metadata)

## Usage

```bash
npx @leadertechie/create-personal-site [project-name]
```

Examples:

```bash
# Interactive prompts
npx @leadertechie/create-personal-site

# Specify project name upfront
npx @leadertechie/create-personal-site my-portfolio

# Use local package sources for debugging or development
npx @leadertechie/create-personal-site my-portfolio --local
```

The `--local` flag tells the generator to reference the local `@leadertechie/personal-site-kit` package instead of using the published `latest` package version.

## Requirements

- Node.js 20+
- npm

## What it creates

- `content/` - Your website content (pages, markdown files)
- `api/` - Cloudflare Worker API entry point
- `ui/` - Frontend entry point
- `prerender/` - Static prerendering setup
- `wrangler.toml` - Cloudflare Workers configuration
npm package: @leadertechie/md2html
Description: Markdown to HTML pipeline - parse markdown to AST, render to HTML or Lit templates
Latest version: 0.1.0-alpha.13

# @leadertechie/md2html

A configuration-driven markdown to HTML pipeline that parses markdown to an AST (ContentNode), then renders to HTML strings or Lit templates.

## Features

- **Parse markdown to AST** - Converts markdown to a structured JSON AST (ContentNode[])
- **Render to HTML string** - Convert AST to plain HTML strings
- **Render to Lit templates** - Convert AST to Lit TemplateResult for web components
- **Configuration-driven** - No hardcoded paths or content structure
- **SSR-ready** - Works in both Node.js and browser environments
- **Image path handling** - Configurable prefix and base URL for images

## Installation

```bash
npm install @leadertechie/md2html lit
```

> Note: `lit` is a peer dependency and required for rendering Lit templates.

## Usage

### Basic Usage

```typescript
import { MarkdownPipeline } from '@leadertechie/md2html';

const pipeline = new MarkdownPipeline();

const markdown = `# Hello World

This is a paragraph with **bold** and *italic* text.

- Item 1
- Item 2

![Alt text](image.jpg)
`;

// Parse markdown to AST
const ast = pipeline.parse(markdown);

// Render AST to HTML string
const html = pipeline.render(ast);
```

### Configuration

```typescript
import { MarkdownPipeline } from '@leadertechie/md2html';

const pipeline = new MarkdownPipeline({
  imagePathPrefix: 'images/',
  imageBaseUrl: 'https://cdn.example.com',
  parseOptions: {
    gfm: true,
    breaks: false,
    pedantic: false
  },
  styleOptions: {
    classPrefix: 'md-',
    customCSS: 'body { font-family: system-ui; }',
    addHeadingIds: true
  }
});
```

### Style Configuration Options

| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `classPrefix` | string | `''` | Prefix for CSS classes on elements |
| `customCSS` | string | `''` | Custom CSS string to inject (use `pipeline.getCustomCSS()` to retrieve) |
| `addHeadingIds` | boolean | `false` | Add ID attributes to headings based on their content for anchor links |

When `classPrefix` or `addHeadingIds` is set, CSS classes will be added to elements:
- Headings get level-specific classes: `md-h1`, `md-h2`, `md-h3`, etc.
- Other elements: `paragraph`, `list`, `list-item`, `image`, `code`, `container`, `blockquote`

Example output with `classPrefix: 'md-'` and `addHeadingIds: true`:
```html
<h1 id="hello-world" class="md-h1">Hello World</h1>
<h2 id="subheading" class="md-h2">Subheading</h2>
<p class="md-paragraph">This is a paragraph.</p>
<ul class="md-list">
  <li class="md-list-item">Item 1</li>
</ul>
```

### API

| Method | Description |
|--------|-------------|
| `parse(markdown)` | Parse markdown string to AST |
| `render(nodes)` | Render AST to HTML string |
| `renderMarkdown(markdown)` | Parse and render in one call |
| `renderPage(title, nodes, options?)` | Render AST to full HTML page |
| `getCustomCSS()` | Get custom CSS string from style config |
| `getConfig()` | Get current pipeline configuration |

## License

MIT
npm package: @leadertechie/personal-site-kit
Description: A high-performance personal website engine for Cloudflare Workers and R2
Author: Techie Leader
Latest version: 0.1.0-alpha.10

# @leadertechie/personal-site-kit

A high-performance, modular engine for building personal websites and professional portfolios. Powered by Cloudflare Workers, R2 Storage, and Lit Web Components.

## Features

- **🚀 Zero-to-Running**: Standardized architecture designed for quick deployment.
- **🛠️ 4-Section Engine**: Fully integrated logic for **API**, **UI**, **Prerender**, and **Admin**.
- **🎨 Modern Layout**: Semantic grid system with responsive `main-column` and `sidebar-column` components.
- **🌓 Theme Engine**: Built-in light/dark mode support with persistent user preferences.
- **📝 Content Driven**: Dynamic Markdown rendering with frontmatter support via `@leadertechie/md2html`.
- **⚙️ Remote Config**: Manage site settings (title, copyright, social links) directly from R2 without re-deploying.
- **🔍 SEO Optimized**: Server-side prerendering ensures search engines see your content perfectly.

## Architecture

The kit is divided into four logical subpaths:

1.  **/shared**: Common interfaces, types, and the reactive `SiteStore`.
2.  **/ui**: Web components for the Banner, Footer, About Me, and Admin Portal.
3.  **/api**: Standard handlers for Cloudflare Workers to manage R2 content.
4.  **/prerender**: SEO engine to generate static HTML for crawlers.

## Installation

```bash
npm install @leadertechie/personal-site-kit
```

## Quick Start (Usage)

### 1. API Worker (`api.ts`)
```typescript
import { handleAPIRoute } from '@leadertechie/personal-site-kit/api';

export default {
  async fetch(request, env) {
    return handleAPIRoute(request, env);
  }
};
```

### 2. UI Entry (`main.ts`)
```typescript
import { SiteStore } from '@leadertechie/personal-site-kit/shared';
import '@leadertechie/personal-site-kit/ui/banner';

const store = SiteStore.getInstance();
await store.init({ apiUrl: 'https://api.yourdomain.com' });
```

## Deployment

This kit is designed to be deployed to **Cloudflare**. Ensure your `wrangler.toml` is configured with an R2 bucket named `CONTENT_BUCKET`.

---

## License

MIT © [Techie Leader](https://github.com/leadertechie)