diff options
| author | Fuwn <[email protected]> | 2023-04-17 06:57:19 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2023-04-17 06:57:19 +0000 |
| commit | 3854c711b097b39e858d8ceabb4099a659f875a1 (patch) | |
| tree | eaeb6edb104306f17d2bbba3895ee9b93ec39036 /examples | |
| parent | chore(README): Update examples directory path (diff) | |
| download | germ-3854c711b097b39e858d8ceabb4099a659f875a1.tar.xz germ-3854c711b097b39e858d8ceabb4099a659f875a1.zip | |
refactor: remove seldom used procedural macros
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/ast.rs | 52 | ||||
| -rw-r--r-- | examples/ast_to_gemtext.rs | 53 | ||||
| -rw-r--r-- | examples/async_request.rs | 29 | ||||
| -rw-r--r-- | examples/convert.html | 6 | ||||
| -rw-r--r-- | examples/convert.md | 28 | ||||
| -rw-r--r-- | examples/html.rs | 54 | ||||
| -rw-r--r-- | examples/markdown.rs | 57 | ||||
| -rw-r--r-- | examples/meta.rs | 24 | ||||
| -rw-r--r-- | examples/request.rs | 24 | ||||
| -rw-r--r-- | examples/request_to_gemtext_from_ast.rs | 31 |
10 files changed, 358 insertions, 0 deletions
diff --git a/examples/ast.rs b/examples/ast.rs new file mode 100644 index 0000000..884bd91 --- /dev/null +++ b/examples/ast.rs @@ -0,0 +1,52 @@ +// This file is part of Germ <https://github.com/gemrest/germ>. +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// SPDX-License-Identifier: GPL-3.0-only + +const EXAMPLE_GEMTEXT: &str = r#"```This is alt-text +Here goes the pre-formatted text. + +This continues the pre-formatted text on a new line after a blank line. +``` + +# This is a heading + +This is some text. + +This is more text after a blank line. + +* This is a single list item. +* This is the next list item. + +* This is a new list. +* This is the next item on the new list. + +## This is a sub-heading + +> This is a blockquote. + +### This is a sub-sub-heading. + +=> gemini://gem.rest/ This is a link to GemRest +=> /somewhere + +That was a link without text."#; + +fn main() { + for node in germ::ast::Ast::from_string(EXAMPLE_GEMTEXT).inner() { + println!("{:?}", node); + } +} diff --git a/examples/ast_to_gemtext.rs b/examples/ast_to_gemtext.rs new file mode 100644 index 0000000..5ceef21 --- /dev/null +++ b/examples/ast_to_gemtext.rs @@ -0,0 +1,53 @@ +// This file is part of Germ <https://github.com/gemrest/germ>. +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// SPDX-License-Identifier: GPL-3.0-only + +const EXAMPLE_GEMTEXT: &str = r#"```This is alt-text +Here goes the pre-formatted text. + +This continues the pre-formatted text on a new line after a blank line. +``` + +# This is a heading + +This is some text. + +This is more text after a blank line. + +* This is a single list item. +* This is the next list item. + +* This is a new list. +* This is the next item on the new list. + +## This is a sub-heading + +> This is a blockquote. + +### This is a sub-sub-heading. + +=> gemini://gem.rest/ This is a link to GemRest +=> /somewhere + +That was a link without text."#; + +fn main() { + println!( + "{}", + germ::ast::Ast::from_string(EXAMPLE_GEMTEXT).to_gemtext() + ); +} diff --git a/examples/async_request.rs b/examples/async_request.rs new file mode 100644 index 0000000..604d6d4 --- /dev/null +++ b/examples/async_request.rs @@ -0,0 +1,29 @@ +// This file is part of Germ <https://github.com/gemrest/germ>. +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// SPDX-License-Identifier: GPL-3.0-only + +#[tokio::main] +async fn main() { + match germ::request::sync::request( + &url::Url::parse("gemini://fuwn.me").unwrap(), + ) + .await + { + Ok(response) => println!("{:?}", response), + Err(_) => {} + } +} diff --git a/examples/convert.html b/examples/convert.html new file mode 100644 index 0000000..cdfde66 --- /dev/null +++ b/examples/convert.html @@ -0,0 +1,6 @@ +<pre>Here goes the pre-formatted text. + +This continues the pre-formatted text on a new line after a blank line. +</pre><h1>This is a heading</h1><p>This is some text.</p><p>This is more text after a blank line.</p><ul><li>This is a single list item.</li> +<li>This is the next list item.</li></ul><ul><li>This is a new list.</li> +<li>This is the next item on the new list.</li></ul><h2>This is a sub-heading</h2><blockquote>This is a blockquote.</blockquote><h3>This is a sub-sub-heading.</h3><a href="gemini://gem.rest/">This is a link to GemRest</a><br><a href="/somewhere">/somewhere</a><br><p>That was a link without text.</p>
\ No newline at end of file diff --git a/examples/convert.md b/examples/convert.md new file mode 100644 index 0000000..ea553ee --- /dev/null +++ b/examples/convert.md @@ -0,0 +1,28 @@ +```This is alt-text +Here goes the pre-formatted text. + +This continues the pre-formatted text on a new line after a blank line. +``` + +# This is a heading + +This is some text. + +This is more text after a blank line. + +- This is a single list item. +- This is the next list item. + +- This is a new list. +- This is the next item on the new list. + +## This is a sub-heading + +> This is a blockquote. + +### This is a sub-sub-heading. + +[This is a link to GemRest](gemini://gem.rest/) +</somewhere> + +That was a link without text. diff --git a/examples/html.rs b/examples/html.rs new file mode 100644 index 0000000..541c01e --- /dev/null +++ b/examples/html.rs @@ -0,0 +1,54 @@ +// This file is part of Germ <https://github.com/gemrest/germ>. +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// SPDX-License-Identifier: GPL-3.0-only + +const EXAMPLE_GEMTEXT: &str = r#"```This is alt-text +Here goes the pre-formatted text. + +This continues the pre-formatted text on a new line after a blank line. +``` + +# This is a heading + +This is some text. + +This is more text after a blank line. + +* This is a single list item. +* This is the next list item. + +* This is a new list. +* This is the next item on the new list. + +## This is a sub-heading + +> This is a blockquote. + +### This is a sub-sub-heading. + +=> gemini://gem.rest/ This is a link to GemRest +=> /somewhere + +That was a link without text."#; + +fn main() { + std::fs::write( + "examples/convert.html", + germ::convert::from_string(EXAMPLE_GEMTEXT, &germ::convert::Target::HTML), + ) + .expect("could not write to file"); +} diff --git a/examples/markdown.rs b/examples/markdown.rs new file mode 100644 index 0000000..c14cdc5 --- /dev/null +++ b/examples/markdown.rs @@ -0,0 +1,57 @@ +// This file is part of Germ <https://github.com/gemrest/germ>. +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// SPDX-License-Identifier: GPL-3.0-only + +const EXAMPLE_GEMTEXT: &str = r#"```This is alt-text +Here goes the pre-formatted text. + +This continues the pre-formatted text on a new line after a blank line. +``` + +# This is a heading + +This is some text. + +This is more text after a blank line. + +* This is a single list item. +* This is the next list item. + +* This is a new list. +* This is the next item on the new list. + +## This is a sub-heading + +> This is a blockquote. + +### This is a sub-sub-heading. + +=> gemini://gem.rest/ This is a link to GemRest +=> /somewhere + +That was a link without text."#; + +fn main() { + std::fs::write( + "examples/convert.md", + germ::convert::from_string( + EXAMPLE_GEMTEXT, + &germ::convert::Target::Markdown, + ), + ) + .expect("could not write to file"); +} diff --git a/examples/meta.rs b/examples/meta.rs new file mode 100644 index 0000000..a9f4077 --- /dev/null +++ b/examples/meta.rs @@ -0,0 +1,24 @@ +// This file is part of Germ <https://github.com/gemrest/germ>. +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// SPDX-License-Identifier: GPL-3.0-only + +fn main() { + println!( + "{:?}", + germ::meta::Meta::from_string("text/gemini; hi=2; hi2=string=2") + ) +} diff --git a/examples/request.rs b/examples/request.rs new file mode 100644 index 0000000..e33710f --- /dev/null +++ b/examples/request.rs @@ -0,0 +1,24 @@ +// This file is part of Germ <https://github.com/gemrest/germ>. +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// SPDX-License-Identifier: GPL-3.0-only + +fn main() { + match germ::request::request(&url::Url::parse("gemini://fuwn.me").unwrap()) { + Ok(response) => println!("{:?}", response), + Err(_) => {} + } +} diff --git a/examples/request_to_gemtext_from_ast.rs b/examples/request_to_gemtext_from_ast.rs new file mode 100644 index 0000000..174abcf --- /dev/null +++ b/examples/request_to_gemtext_from_ast.rs @@ -0,0 +1,31 @@ +// This file is part of Germ <https://github.com/gemrest/germ>. +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// SPDX-License-Identifier: GPL-3.0-only + +fn main() { + match germ::request::request(&url::Url::parse("gemini://fuwn.me/").unwrap()) { + Ok(response) => + println!( + "{}", + germ::ast::Ast::from_string( + &*response.content().clone().unwrap_or_else(|| "".to_string()) + ) + .to_gemtext() + ), + Err(_) => {} + } +} |