chore: reorganize directories
This commit is contained in:
parent
42cb1d21bd
commit
14d1555fc1
88 changed files with 114 additions and 144 deletions
47
examples/html-slugify.rs
Normal file
47
examples/html-slugify.rs
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
//! ```bash
|
||||
//! cargo run --example html-slugify '* hello world!'
|
||||
//! ```
|
||||
|
||||
use orgize::{
|
||||
export::{Container, Event, HtmlExport, TraversalContext, Traverser},
|
||||
Org,
|
||||
};
|
||||
use slugify::slugify;
|
||||
use std::cmp::min;
|
||||
use std::env::args;
|
||||
|
||||
#[derive(Default)]
|
||||
struct MyHtmlHandler(pub HtmlExport);
|
||||
|
||||
impl Traverser for MyHtmlHandler {
|
||||
fn event(&mut self, event: Event, ctx: &mut TraversalContext) {
|
||||
if let Event::Enter(Container::Headline(headline)) = event {
|
||||
let level = min(headline.level(), 6);
|
||||
let title = headline.title().map(|e| e.to_string()).collect::<String>();
|
||||
self.0.push_str(format!(
|
||||
"<h{level}><a id=\"{0}\" href=\"#{0}\">",
|
||||
slugify!(&title)
|
||||
));
|
||||
for elem in headline.title() {
|
||||
self.element(elem, ctx);
|
||||
}
|
||||
self.0.push_str(format!("</a></h{level}>"));
|
||||
} else {
|
||||
// forwrad to default html export
|
||||
self.0.event(event, ctx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let args: Vec<_> = args().collect();
|
||||
|
||||
if args.len() < 2 {
|
||||
eprintln!("Usage: {} <org-mode-string>", args[0]);
|
||||
} else {
|
||||
let mut handler = MyHtmlHandler::default();
|
||||
Org::parse(&args[1]).traverse(&mut handler);
|
||||
|
||||
println!("{}", handler.0.finish());
|
||||
}
|
||||
}
|
||||
30
examples/parse.rs
Normal file
30
examples/parse.rs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
//! ```bash
|
||||
//! cargo run --example parse '* hello\n** /world/!'
|
||||
//! ```
|
||||
|
||||
use orgize::Org;
|
||||
use rowan::ast::AstNode;
|
||||
use std::env::args;
|
||||
use tracing_subscriber::fmt::format::FmtSpan;
|
||||
|
||||
fn main() {
|
||||
let args: Vec<_> = args().collect();
|
||||
|
||||
tracing_subscriber::fmt()
|
||||
.without_time()
|
||||
.with_file(true)
|
||||
.with_span_events(FmtSpan::NEW)
|
||||
.with_line_number(true)
|
||||
.with_max_level(tracing::Level::TRACE)
|
||||
.with_file(false)
|
||||
.with_line_number(false)
|
||||
.init();
|
||||
|
||||
if args.len() < 2 {
|
||||
eprintln!("Usage: {} <org-mode-string>", args[0]);
|
||||
} else {
|
||||
let s = &args[1].replace(r"\n", "\n").replace(r"\r", "\r");
|
||||
let org = Org::parse(s);
|
||||
println!("{:#?}", org.document().syntax());
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue