chore: add orgize-{cli,common,lsp} package

This commit is contained in:
PoiScript 2023-12-20 21:56:10 +08:00
parent 6930640866
commit 4cc1130a17
No known key found for this signature in database
GPG key ID: 22C2B1249D99985E
131 changed files with 6577 additions and 56 deletions

View file

@ -1,47 +0,0 @@
//! ```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());
}
}

View file

@ -1,30 +0,0 @@
//! ```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());
}
}