feat: update README.md and vscode icons

This commit is contained in:
PoiScript 2023-12-21 23:51:42 +08:00
parent 0916b40cef
commit a2248cb9be
No known key found for this signature in database
GPG key ID: 22C2B1249D99985E
17 changed files with 66 additions and 84 deletions

View file

@ -1,7 +1,6 @@
[workspace]
resolver = "2"
members = [
".",
"./orgize",
"./orgize-cli",
"./orgize-common",

View file

@ -1,71 +1,24 @@
# Orgize
[![Crates.io](https://img.shields.io/crates/v/orgize.svg)](https://crates.io/crates/orgize)
[![Documentation](https://docs.rs/orgize/badge.svg)](https://docs.rs/orgize)
[![Build status](https://img.shields.io/github/actions/workflow/status/PoiScript/orgize/ci.yml)](https://github.com/PoiScript/orgize/actions/workflows/ci.yml)
![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)
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

View file

@ -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
View file

@ -0,0 +1,5 @@
# Orgize CLI
Common line utility for org-mode files, builtin with [`orgize`].
[`orgize`]: https://crates.io/crates/orgize

View file

@ -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"

View file

@ -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" }

View file

@ -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

View file

@ -2,6 +2,7 @@
!dist/
!syntaxes/
!media/
!images/
!package.json
!org.configuration.json
!README.md

View 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
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -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": [

View file

@ -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

View file

@ -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> {

View file

@ -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",

View file

@ -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