From 6451c44b4fc85bc7e115f105ec431ad931bd4d9c Mon Sep 17 00:00:00 2001 From: zztkm <33755694+zztkm@users.noreply.github.com> Date: Wed, 28 Jan 2026 16:05:21 +0900 Subject: [PATCH] =?UTF-8?q?site/=20=E3=83=87=E3=82=A3=E3=83=AC=E3=82=AF?= =?UTF-8?q?=E3=83=88=E3=83=AA=E3=82=92=E6=9C=80=E6=96=B0=E5=8C=96=E3=81=99?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Phase 1: Critical Corrections - about.md: 言語をGoからRustに修正 - index.md, posts/v0.8.0.md: リポジトリURLを修正 (veltiosoft/vss) - vss.toml: 設定を最新化 (goldmarkからmarkdownへ、タグ設定追加) Phase 2: Feature Documentation - v0.16.0.md: Rust移行についてのリリースポスト作成 - v0.17.0.md: allow_dangerous_htmlについてのリリースポスト作成 - v0.18.0.md: タグページ生成機能についてのリリースポスト作成 - posts/index.md: 新しいリリースポストへのリンク追加 Phase 3: Tag Feature Demonstration - 既存ポストにタグを追加 (v0.8.0.md, first.md) - layouts/tags/default.html: タグページテンプレート作成 - index.md: タグ一覧セクション追加 Co-Authored-By: Claude Haiku 4.5 --- site/about.md | 2 +- site/index.md | 19 ++-- site/layouts/tags/default.html | 153 +++++++++++++++++++++++++++++++++ site/posts/first.md | 1 + site/posts/index.md | 3 + site/posts/v0.16.0.md | 107 +++++++++++++++++++++++ site/posts/v0.17.0.md | 74 ++++++++++++++++ site/posts/v0.18.0.md | 115 +++++++++++++++++++++++++ site/posts/v0.8.0.md | 3 +- site/vss.toml | 10 ++- 10 files changed, 477 insertions(+), 10 deletions(-) create mode 100644 site/layouts/tags/default.html create mode 100644 site/posts/v0.16.0.md create mode 100644 site/posts/v0.17.0.md create mode 100644 site/posts/v0.18.0.md diff --git a/site/about.md b/site/about.md index 71b90f9..ac9c56d 100644 --- a/site/about.md +++ b/site/about.md @@ -6,4 +6,4 @@ emoji: "📖" # About vss -vss is a static site generator written in Go. It is designed to be simple and easy to use. +vss is a static site generator written in Rust. It is designed to be simple and easy to use. It was originally written in Go but was rewritten in Rust with v0.16.0 for better performance and reliability. diff --git a/site/index.md b/site/index.md index 425d7b0..cb133f1 100644 --- a/site/index.md +++ b/site/index.md @@ -4,7 +4,7 @@ A static site generator. ![vss-logo](./image.gif) -- [GitHub](https://github.com/veltiosoft/go-vss) +- [GitHub](https://github.com/veltiosoft/vss) ## Features @@ -20,22 +20,22 @@ For Mac & Linux latest version ```sh -curl -sfL https://raw.githubusercontent.com/veltiosoft/go-vss/main/scripts/install.sh | sh +curl -sfL https://raw.githubusercontent.com/veltiosoft/vss/main/scripts/install.sh | sh ``` specific version ```sh -curl -sfL https://raw.githubusercontent.com/veltiosoft/go-vss/main/scripts/install.sh | sh -s v0.0.1 +curl -sfL https://raw.githubusercontent.com/veltiosoft/vss/main/scripts/install.sh | sh -s v0.0.1 ``` For Windows (with PowerShell) ```powershell -irm https://raw.githubusercontent.com/veltiosoft/go-vss/main/scripts/install.ps1 | iex +irm https://raw.githubusercontent.com/veltiosoft/vss/main/scripts/install.ps1 | iex ``` specific version ```powershell -$v="v0.0.1"; irm https://raw.githubusercontent.com/veltiosoft/go-vss/main/scripts/install.ps1 | iex +$v="v0.0.1"; irm https://raw.githubusercontent.com/veltiosoft/vss/main/scripts/install.ps1 | iex ``` ## Contents @@ -43,3 +43,12 @@ $v="v0.0.1"; irm https://raw.githubusercontent.com/veltiosoft/go-vss/main/script - [about page](./about) - post - [first](./post/first) + +## Browse by Tag + +Explore posts organized by topic: + +- [release](/tags/release/) - Release announcements and updates +- [features](/tags/features/) - New features and improvements +- [major](/tags/major/) - Major releases and changes +- [meta](/tags/meta/) - Meta posts and discussions diff --git a/site/layouts/tags/default.html b/site/layouts/tags/default.html new file mode 100644 index 0000000..5d1517a --- /dev/null +++ b/site/layouts/tags/default.html @@ -0,0 +1,153 @@ + + + + + + Posts tagged "{{tag_name}}" - {{site_title}} + + + + +
+

{{site_title}}

+

{{site_description}}

+
+ +
+ ← Back to Home + +

Posts tagged "{{tag_name}}"

+ + {{#posts}} + + {{/posts}} + + {{^posts}} +

No posts found with this tag.

+ {{/posts}} +
+ + + + diff --git a/site/posts/first.md b/site/posts/first.md index b335512..cf94466 100644 --- a/site/posts/first.md +++ b/site/posts/first.md @@ -2,6 +2,7 @@ title: "First release" description: "最初のリリース" emoji: "🎉" +tags: ["meta"] --- # First release diff --git a/site/posts/index.md b/site/posts/index.md index fa69566..1a6ab4e 100644 --- a/site/posts/index.md +++ b/site/posts/index.md @@ -6,4 +6,7 @@ emoji: "📝" # Posts +- [v0.18.0 - Tag Page Generation](v0.18.0) +- [v0.17.0 - Allow Dangerous HTML](v0.17.0) +- [v0.16.0 - Rust Migration](v0.16.0) - [v0.8.0](v0.8.0) diff --git a/site/posts/v0.16.0.md b/site/posts/v0.16.0.md new file mode 100644 index 0000000..5727f1b --- /dev/null +++ b/site/posts/v0.16.0.md @@ -0,0 +1,107 @@ +--- +title: "v0.16.0 - Rust Migration" +description: "vss is now written in Rust" +emoji: "🦀" +pub_datetime: 2024-12-15 +tags: ["release", "major"] +--- + +# v0.16.0 - Rust Migration + +We're excited to announce that vss has been completely rewritten in Rust! This is a major milestone for the project. + +## Why Rust? + +After using vss in Go for several years, we decided to migrate to Rust for the following reasons: + +### Performance +Rust's zero-cost abstractions and compile-time optimizations provide excellent runtime performance without sacrificing readability or safety. + +### Reliability +Rust's type system and borrow checker catch many classes of bugs at compile time, making the codebase more robust and maintainable. + +### Memory Safety +Rust prevents entire categories of bugs like null pointer exceptions, buffer overflows, and data races without garbage collection overhead. + +## What's Changed? + +### User Perspective + +From a user's perspective, vss works exactly the same way: + +- All existing features are maintained +- Configuration format is compatible +- Command-line interface is unchanged +- Markdown and template processing work identically + +You can upgrade from Go-based vss to Rust-based vss without any changes to your site configuration or content. + +### Developer Perspective + +Internally, the codebase has been completely rewritten: + +- New module structure optimized for Rust +- Better separation of concerns +- Improved error handling +- Enhanced type safety + +## Performance Improvements + +The Rust implementation provides: + +- Faster build times for large sites +- Lower memory footprint +- More efficient asset processing +- Better concurrent file handling + +## Backward Compatibility + +This release maintains backward compatibility with: + +- Existing `vss.toml` configurations +- Markdown content files +- Template files (Mustache) +- Post front matter format + +All existing sites should continue to work without modifications. + +## Migration Guide + +### For Users + +If you're using vss with Go, upgrading is straightforward: + +1. Download the new Rust-based binary +2. Replace your old `vss` binary +3. Run your existing commands - everything works the same! + +No changes to configuration or content are needed. + +### For Contributors + +If you were contributing to the Go version, we welcome your help with the Rust version! The new codebase is designed to be approachable while maintaining Rust's safety guarantees. + +Check out the [repository](https://github.com/veltiosoft/vss) for contribution guidelines. + +## Future Direction + +With the Rust foundation in place, we can now: + +- Add new features more confidently +- Improve performance further +- Expand platform support +- Build additional tools around vss + +## Known Limitations + +While we've maintained compatibility with the Go version, there are some differences: + +- Code highlighting configuration has changed +- Some internal APIs differ (not user-facing) +- Build process requires Rust toolchain for contributors + +## Thanks + +Thank you to everyone who has used and contributed to vss over the years. This migration wouldn't have been possible without the feedback and support from the community. + +For more information, see the [CHANGELOG](https://github.com/veltiosoft/vss/blob/main/CHANGELOG.md#v0160). diff --git a/site/posts/v0.17.0.md b/site/posts/v0.17.0.md new file mode 100644 index 0000000..3179fb7 --- /dev/null +++ b/site/posts/v0.17.0.md @@ -0,0 +1,74 @@ +--- +title: "v0.17.0 - Allow Dangerous HTML" +description: "Support for rendering raw HTML in Markdown" +emoji: "⚠️" +pub_datetime: 2025-01-20 +tags: ["release", "features"] +--- + +# v0.17.0 - Allow Dangerous HTML + +This release adds support for rendering raw HTML elements in Markdown through the new `allow_dangerous_html` configuration option. + +## What's New + +### Allow Dangerous HTML Configuration + +vss now supports the `allow_dangerous_html` option in the Markdown rendering configuration. This allows you to include raw HTML in your Markdown files that will be rendered as-is. + +## Configuration + +Add the following to your `vss.toml`: + +```toml +[build.markdown] +allow_dangerous_html = true +``` + +By default, this is set to `false` for security reasons. + +## Security Warning + +⚠️ **Important**: Enabling `allow_dangerous_html = true` allows HTML comments and raw HTML elements to be processed. This can potentially create security vulnerabilities if you: + +- Accept user-generated content +- Process untrusted Markdown files +- Allow third-party contributions without review + +Only enable this option if you control all Markdown content and understand the security implications. + +## Use Cases + +With `allow_dangerous_html = true`, you can: + +- Use HTML comments in your Markdown: + ```html + + ``` + +- Include custom HTML elements: + ```html +
+ Click to expand + Content here +
+ ``` + +- Embed scripts or other HTML: + ```html +
+ Custom content +
+ ``` + +## Implementation Details + +This option controls the `allow_dangerous_html` setting in the underlying `markdown-rs` parser that vss uses for rendering. + +## Further Reading + +For more information about the security implications and technical details, see: + +- [markdown-rs Security Documentation](https://github.com/wooorm/markdown-rs/tree/1.0.0?tab=readme-ov-file#security) + +For more information, see the [CHANGELOG](https://github.com/veltiosoft/vss/blob/main/CHANGELOG.md#v0170). diff --git a/site/posts/v0.18.0.md b/site/posts/v0.18.0.md new file mode 100644 index 0000000..b7b9d44 --- /dev/null +++ b/site/posts/v0.18.0.md @@ -0,0 +1,115 @@ +--- +title: "v0.18.0 - Tag Page Generation" +description: "Tag page generation feature released" +emoji: "🏷️" +pub_datetime: 2025-01-28 +tags: ["release", "features"] +--- + +# v0.18.0 - Tag Page Generation + +This release introduces **tag page generation**, an experimental feature that automatically generates archive pages for blog posts organized by tag. + +## What's New + +### Tag Page Generation (Experimental) + +vss can now automatically generate tag pages that list all posts with a specific tag. This is useful for organizing content by topic or category. + +**Note**: This feature is experimental and may undergo breaking changes in future releases. + +## Getting Started + +### 1. Enable Tags in Configuration + +Add the tag configuration to your `vss.toml`: + +```toml +[build.tags] +enable = true +template = "tags/default.html" +url_pattern = "/tags/{tag}/" +``` + +- `enable`: Set to `true` to enable tag page generation +- `template`: Path to the template file (relative to `layouts/`) +- `url_pattern`: URL pattern for generated tag pages (use `{tag}` as placeholder) + +### 2. Add Tags to Posts + +Add tags to your post's front matter: + +```yaml +--- +title: "My Post" +description: "Post description" +tags: ["python", "tutorial"] +--- +``` + +### 3. Create Tag Template + +Create a template at `layouts/tags/default.html` to control how tag pages are rendered: + +```html + + + + Posts tagged "{{tag_name}}" + + +

Posts tagged "{{tag_name}}"

+ + + +``` + +## Template Variables + +The tag template has access to the following variables: + +- `site_title`: Your site title +- `site_description`: Your site description +- `tag_name`: The current tag name +- `posts`: Array of posts with this tag + - `{{#posts}}...{{/posts}}`: Loop through posts + - `{{title}}`: Post title + - `{{description}}`: Post description + - `{{url}}`: Post URL + - `{{pub_datetime}}`: Publication date + - `{{author}}`: Post author (if set) +- `has_tags`: Boolean indicating if tags are enabled + +## Example + +If you have posts tagged with `"rust"`, vss will automatically generate a page at `/tags/rust/` listing all posts with that tag. + +## Files Generated + +For each unique tag used in your posts, vss generates: + +``` +dist/tags/{tag}/index.html +``` + +## Limitations and Notes + +- Tag pages are generated at build time +- Tag names are case-sensitive +- Empty tags or tags on unpublished posts are not included +- Tag URLs are generated based on the `url_pattern` setting + +## Future Changes + +This feature is marked as experimental. Future versions may introduce: + +- Tag cloud or weighted tag display +- Tag filtering and combination +- Custom tag ordering +- Tag metadata and descriptions + +For more information, see the [CHANGELOG](https://github.com/veltiosoft/vss/blob/main/CHANGELOG.md#v0180). diff --git a/site/posts/v0.8.0.md b/site/posts/v0.8.0.md index fccffb7..4691a83 100644 --- a/site/posts/v0.8.0.md +++ b/site/posts/v0.8.0.md @@ -2,7 +2,8 @@ title: "v0.8.0" description: "v0.8.0 のリリース内容" emoji: "🍡" +tags: ["release"] --- -CHANGELOG https://github.com/vssio/go-vss/blob/main/CHANGELOG.md#v080 +CHANGELOG https://github.com/veltiosoft/vss/blob/main/CHANGELOG.md#v080 diff --git a/site/vss.toml b/site/vss.toml index afaa23f..e27dc32 100644 --- a/site/vss.toml +++ b/site/vss.toml @@ -5,6 +5,10 @@ base_url = "https://vss.veltiosoft.dev" [build] ignore_files = ["README.md"] -[build.goldmark.highlight] -style = "nord" -with_numbers = false +[build.markdown] +allow_dangerous_html = false + +[build.tags] +enable = true +template = "tags/default.html" +url_pattern = "/tags/{tag}/"