feat: update README.md and vscode icons
This commit is contained in:
parent
0916b40cef
commit
a2248cb9be
17 changed files with 66 additions and 84 deletions
|
|
@ -1,7 +1,6 @@
|
|||
[workspace]
|
||||
resolver = "2"
|
||||
members = [
|
||||
".",
|
||||
"./orgize",
|
||||
"./orgize-cli",
|
||||
"./orgize-common",
|
||||
|
|
|
|||
79
README.md
79
README.md
|
|
@ -1,71 +1,24 @@
|
|||
# Orgize
|
||||
|
||||
[](https://crates.io/crates/orgize)
|
||||
[](https://docs.rs/orgize)
|
||||
[](https://github.com/PoiScript/orgize/actions/workflows/ci.yml)
|
||||

|
||||
|
||||
A Rust library for parsing org-mode files.
|
||||
Org-mode toolkit written in Rust.
|
||||
|
||||
Live Demo: <https://poiscript.github.io/orgize/>
|
||||
This repository contains several crates/packages:
|
||||
|
||||
## Parse
|
||||
| Crates/packages | Description |
|
||||
| ----------------------------- | ------------------------------------------------------------- |
|
||||
| [`orgize`] | A pure-rust library for parsing and exporting org-mode files. |
|
||||
| [`orgize-cli`] | Common line utility for org-mode files, builtin with orgize. |
|
||||
| [`orgize-lsp`] | Language server for org-mode files, builtin with orgize. |
|
||||
| [`orgize-lsp/editors/vscode`] | [`orgize-lsp`] client for vscode editor |
|
||||
| [`orgize-common`] | Shared code for [`orgize-cli`] and [`orgize-lsp`]. |
|
||||
| [`orgize-wasm`] | WebAssembly module for Browser or Node.js environment. |
|
||||
|
||||
To parse a org-mode string, simply invoking the `Org::parse` function:
|
||||
|
||||
```rust
|
||||
use orgize::{Org, rowan::ast::AstNode};
|
||||
|
||||
let org = Org::parse("* DONE Title :tag:");
|
||||
assert_eq!(
|
||||
format!("{:#?}", org.document().syntax()),
|
||||
r#"DOCUMENT@0..18
|
||||
HEADLINE@0..18
|
||||
HEADLINE_STARS@0..1 "*"
|
||||
WHITESPACE@1..2 " "
|
||||
HEADLINE_KEYWORD_DONE@2..6 "DONE"
|
||||
WHITESPACE@6..7 " "
|
||||
HEADLINE_TITLE@7..13
|
||||
TEXT@7..13 "Title "
|
||||
HEADLINE_TAGS@13..18
|
||||
COLON@13..14 ":"
|
||||
TEXT@14..17 "tag"
|
||||
COLON@17..18 ":"
|
||||
"#);
|
||||
```
|
||||
|
||||
use `ParseConfig::parse` to specific a custom parse config
|
||||
|
||||
```rust
|
||||
use orgize::{Org, ParseConfig, ast::Headline};
|
||||
|
||||
let config = ParseConfig {
|
||||
// custom todo keywords
|
||||
todo_keywords: (vec!["TASK".to_string()], vec![]),
|
||||
..Default::default()
|
||||
};
|
||||
let org = config.parse("* TASK Title 1");
|
||||
let hdl = org.first_node::<Headline>().unwrap();
|
||||
assert_eq!(hdl.todo_keyword().unwrap(), "TASK");
|
||||
```
|
||||
|
||||
## Render to html
|
||||
|
||||
Call the `Org::to_html` function to export org element tree to html:
|
||||
|
||||
```rust
|
||||
use orgize::Org;
|
||||
|
||||
assert_eq!(
|
||||
Org::parse("* title\n*section*").to_html(),
|
||||
"<main><h1>title</h1><section><p><b>section</b></p></section></main>"
|
||||
);
|
||||
```
|
||||
|
||||
Checkout `examples/html-slugify.rs` on how to customizing html export process.
|
||||
|
||||
## Features
|
||||
|
||||
- **`chrono`**: adds the ability to convert `Timestamp` into `chrono::NaiveDateTime`, disabled by default.
|
||||
|
||||
- **`indexmap`**: adds the ability to convert `PropertyDrawer` properties into `IndexMap`, disabled by default.
|
||||
[`orgize`]: ./orgize
|
||||
[`orgize-cli`]: ./orgize-cli
|
||||
[`orgize-lsp`]: ./orgize-lsp
|
||||
[`orgize-lsp/editors/vscode`]: ./orgize-lsp/editors/vscode
|
||||
[`orgize-common`]: ./orgize-common
|
||||
[`orgize-wasm`]: ./orgize-wasm
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ authors.workspace = true
|
|||
repository.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
description = "CLI tools for org-mode file, powered by orgize."
|
||||
description = "Common line utility for org-mode files, builtin with orgize."
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.75"
|
||||
|
|
|
|||
5
orgize-cli/README.md
Normal file
5
orgize-cli/README.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Orgize CLI
|
||||
|
||||
Common line utility for org-mode files, builtin with [`orgize`].
|
||||
|
||||
[`orgize`]: https://crates.io/crates/orgize
|
||||
|
|
@ -5,7 +5,7 @@ authors.workspace = true
|
|||
repository.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
description = "Shared code between orgize-lsp and orgize-lsp."
|
||||
description = "Shared code for orgize-cli and orgize-lsp"
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.75"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@ authors.workspace = true
|
|||
repository.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
description = "Language server for Org-mode, powered by orgize."
|
||||
description = "Language server for org-mode files, builtin with orgize."
|
||||
exclude = ["editors"]
|
||||
|
||||
[dependencies]
|
||||
orgize = { path = "../orgize" }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
# `orgize-lsp`
|
||||
|
||||
Language server for org-mode, powered by orgize.
|
||||
Language server for org-mode, builtin with [`orgize`].
|
||||
|
||||
[`orgize`]: https://crates.io/crates/orgize
|
||||
|
||||
## Install
|
||||
|
||||
|
|
@ -45,6 +47,10 @@ $ code --install-extension ./editors/vscode/orgize-lsp.vsix --force
|
|||
|
||||
- Evaluate source block
|
||||
|
||||
6. Commands
|
||||
6. Completion
|
||||
|
||||
- Various blocks: `<a`, `<c`, `<C`, `<e`, `<E`, `<h`, `<l`, `<q`, `<s`, `<v`, `<I`
|
||||
|
||||
7. Commands
|
||||
|
||||
- Show syntax tree
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
!dist/
|
||||
!syntaxes/
|
||||
!media/
|
||||
!images/
|
||||
!package.json
|
||||
!org.configuration.json
|
||||
!README.md
|
||||
9
orgize-lsp/editors/vscode/README.md
Normal file
9
orgize-lsp/editors/vscode/README.md
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# Orgize LSP
|
||||
|
||||
This extension provides language support for [Org-mode](https://orgmode.org/) files.
|
||||
|
||||
This extension only contains client part so you need to manually install the server:
|
||||
|
||||
```sh
|
||||
$ cargo install orgize-lsp
|
||||
```
|
||||
BIN
orgize-lsp/editors/vscode/images/extension-icon.png
Normal file
BIN
orgize-lsp/editors/vscode/images/extension-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
BIN
orgize-lsp/editors/vscode/images/language-dark-icon.png
Normal file
BIN
orgize-lsp/editors/vscode/images/language-dark-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
BIN
orgize-lsp/editors/vscode/images/language-light-icon.png
Normal file
BIN
orgize-lsp/editors/vscode/images/language-light-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
|
|
@ -1,10 +1,23 @@
|
|||
{
|
||||
"name": "orgize-lsp",
|
||||
"private": true,
|
||||
"version": "0.0.0-dev",
|
||||
"version": "0.10.0-alpha.0",
|
||||
"engines": {
|
||||
"vscode": "^1.75.0"
|
||||
},
|
||||
"displayName": "Orgize LSP",
|
||||
"description": "Language server for org-mode files, builtin with orgize.",
|
||||
"icon": "./images/extension-icon.png",
|
||||
"publisher": "PoiScript",
|
||||
"preview": true,
|
||||
"categories": [
|
||||
"Programming Languages",
|
||||
"Formatters"
|
||||
],
|
||||
"keywords": [
|
||||
"org",
|
||||
"org-mode"
|
||||
],
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
@ -55,7 +68,11 @@
|
|||
"extensions": [
|
||||
".org"
|
||||
],
|
||||
"configuration": "./org.configuration.json"
|
||||
"configuration": "./org.configuration.json",
|
||||
"icon": {
|
||||
"light": "./images/language-light-icon.png",
|
||||
"dark": "./images/language-dark-icon.png"
|
||||
}
|
||||
}
|
||||
],
|
||||
"grammars": [
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
a: c s
|
||||
|
||||
c:
|
||||
pnpm run -C client-vscode package --no-dependencies
|
||||
pnpm run -C client-vscode install --no-dependencies
|
||||
|
||||
s:
|
||||
cargo install --path ./server --offline
|
||||
|
|
@ -140,7 +140,7 @@ impl LanguageServer for Backend {
|
|||
async fn did_change_watched_files(&self, _: DidChangeWatchedFilesParams) {}
|
||||
|
||||
async fn completion(&self, params: CompletionParams) -> Result<Option<CompletionResponse>> {
|
||||
Ok(completion::completion(params, &self))
|
||||
Ok(completion::completion(params, self))
|
||||
}
|
||||
|
||||
async fn completion_resolve(&self, params: CompletionItem) -> Result<CompletionItem> {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "orgize",
|
||||
"version": "0.0.3",
|
||||
"version": "0.10.0-alpha.0",
|
||||
"license": "MIT",
|
||||
"author": "PoiScript <poiscript@gmail.com>",
|
||||
"scripts": {
|
||||
|
|
@ -10,8 +10,8 @@
|
|||
"type": "git",
|
||||
"url": "https://github.com/PoiScript/orgize"
|
||||
},
|
||||
"module": "orgize.js",
|
||||
"typings": "orgize.d.ts",
|
||||
"module": "./dist/orgize.js",
|
||||
"typings": "./dist/orgize.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/orgize.d.ts",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ readme = "README.md"
|
|||
edition.workspace = true
|
||||
license.workspace = true
|
||||
keywords = ["orgmode", "org-mode", "emacs", "parser"]
|
||||
exclude = ["/wasm", "/.github"]
|
||||
|
||||
[package.metadata.docs.rs]
|
||||
all-features = true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue