Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion demo/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions demo/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ site:

build:
content_dir: "content"
output_dir: "../dist"
output_dir: "./dist"
templates_dir: "templates"
static_dir: "static"

Expand All @@ -34,10 +34,10 @@ content_types:

generators:
rss:
enabled: true
enabled: false
path: "rss.xml"
template: "rss.xml"
sitemap:
enabled: true
enabled: false
path: "sitemap.xml"
template: "sitemap.xml"
31 changes: 14 additions & 17 deletions demo/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,51 +1,48 @@
use librawssg::markdown::PulldownMarkdown;
use librawssg::site::builder::SiteBuilder;
use librawssg::site::context::{TeraFeedContextBuilder, TeraSitemapContextBuilder};
use librawssg::site::TeraRenderer;
use librawssg::SiteBuilder;
use std::path::Path;

fn main() -> Result<(), Box<dyn std::error::Error>> {
tracing_subscriber::fmt::init();

// 1. Muat konfigurasi
let builder = SiteBuilder::new()
.load_config("config.yaml")
.expect("Gagal memuat config.yaml");

// 2. Siapkan template engine dan muat semua template
let mut tera = TeraRenderer::new();
let templates_dir = Path::new("templates");
for entry in std::fs::read_dir(templates_dir)? {
let entry = entry?;
let path = entry.path();
if path.is_file() {
let name = path.file_name().unwrap().to_string_lossy().into_owned();
let content = std::fs::read_to_string(&path)?;
tera.add_raw_template(&name, &content)?;
if templates_dir.exists() {
for entry in std::fs::read_dir(templates_dir)? {
let entry = entry?;
let path = entry.path();
if path.is_file() {
let name = path.file_name().unwrap().to_string_lossy().into_owned();
let content = std::fs::read_to_string(&path)?;
tera.add_raw_template(&name, &content)?;
}
}
}

// 3. Markdown renderer
let md = PulldownMarkdown;

// 4. Direktori konten dan output
let content_dir = Path::new("content");
let output_dir = Path::new("../dist");
let output_dir = Path::new("./dist");

// 5. Bangun site
let site = builder
.content_dir(content_dir)
.output_dir(output_dir)
.with_template_renderer(Box::new(tera))
.with_markdown_renderer(Box::new(md))
.with_feed_context_builder(Box::new(TeraFeedContextBuilder))
.with_sitemap_context_builder(Box::new(TeraSitemapContextBuilder))
.build()?;

// 6. Tampilkan info halaman
println!("Jumlah halaman: {}", site.pages().len());
for page in site.pages() {
println!(" {} -> {}", page.file_path, page.url);
}

// 7. Generate
site.generate()?;
println!("Situs berhasil dibuat di {}", output_dir.display());

Expand Down
2 changes: 1 addition & 1 deletion docs/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions docs/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use librawssg::markdown::PulldownMarkdown;
use librawssg::site::builder::SiteBuilder;
use librawssg::site::context::{TeraFeedContextBuilder, TeraSitemapContextBuilder};
use librawssg::site::TeraRenderer;
use librawssg::SiteBuilder;
use std::path::Path;

fn main() -> Result<(), Box<dyn std::error::Error>> {
Expand All @@ -24,6 +24,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
}

let md = PulldownMarkdown;

let content_dir = Path::new("content");
let output_dir = Path::new("dist");

Expand All @@ -45,4 +46,4 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("\nDocumentation built successfully in {}", output_dir.display());

Ok(())
}
}
Loading