From afc034d92460f3784c85f5fd9ae36c8ab69a8e21 Mon Sep 17 00:00:00 2001 From: Ayush Singh Date: Tue, 4 Jan 2022 19:14:43 +0530 Subject: [PATCH] Using cargo readme to generate README. --- README.md | 36 +++++++++++++++++++++--------------- README.tpl | 5 +++++ src/lib.rs | 33 +++++++++++++++++++++++++++------ 3 files changed, 53 insertions(+), 21 deletions(-) create mode 100644 README.tpl diff --git a/README.md b/README.md index 79a8ba3..ca6ab83 100644 --- a/README.md +++ b/README.md @@ -2,30 +2,36 @@ [![Crates.io](https://img.shields.io/crates/v/ki18n)](https://crates.io/crates/ki18n) [![Documentation](https://docs.rs/ki18n/badge.svg)](https://docs.rs/ki18n/) -KI18n is a cross-platform internationalization framework used by KDE applications. This crate is meant to allow using KI18n with Rust and [qmetaobject-rs](https://github.com/woboq/qmetaobject-rs) crate. +## Introduction +KI18n is a cross-platform internationalization framework used by KDE applications. This crate +is meant to allow using KI18n with Rust and [qmetaobject-rs](https://github.com/woboq/qmetaobject-rs) crate. -# Motivation -I love KDE. I have been using it as my primary DE for quite a while. I also like Rust Programming Language. Currently, it is nearly impossible to use any KDE frameworks from Rust without some C++ FFI. While FFI is never easy, complexity with C++ is exponentially more than plain C due to the Object-Oriented nature of C++, which is entirely different from Rust's somewhat functional design. +## Motivation +I love KDE. I have been using it as my primary DE for quite a while. I also like Rust Programming Language. +Currently, it is nearly impossible to use any KDE frameworks from Rust without some C++ FFI. While FFI is +never easy, complexity with C++ is exponentially more than plain C due to the Object-Oriented nature of C++, +which is entirely different from Rust's somewhat functional design. -If possible, I would like the Tier-1 KDE Frameworks to be usable from pragmatic Rust in a somewhat natural fashion. I am currently interested in KDE frameworks that are usable with QML. +If possible, I would like the Tier-1 KDE Frameworks to be usable from pragmatic Rust in a somewhat natural +fashion. I am currently interested in KDE frameworks that are usable with QML. -# Requirements +## Requirements This crate requires KF5I18n to be installed or at least present in the system. -## Ubuntu +### Ubuntu ``` shell sudo apt install libkf5i18n-dev -``` +```rust ## Arch Linux ``` shell sudo pacman -S ki18n ``` -# Custom Location for KF5I18n -The crate searches from KF5I18n using either the environment variables (KF5_I18n_INCLUDE_PATH and KF5_I18n_LIBRARY_PATH) if they are set or just -searches at /usr/include /usr/library +## Custom Location for KF5I18n +The crate searches from KF5I18n using either the environment variables (`KF_VERSION`, +`KF_INCLUDE_PATH` and `KF_LIBRARY_PATH`) if they are set or uses `kf5-config` to find the paths. -# Example +## Example ```rust use cstr::cstr; use qmetaobject::prelude::*; @@ -39,19 +45,19 @@ fn main() { import QtQuick.Controls 2.0 as Controls import QtQuick.Layouts 1.2 import org.kde.kirigami 2.13 as Kirigami - + // Base element, provides basic features needed for all kirigami applications Kirigami.ApplicationWindow { // ID provides unique identifier to reference this element id: root - + // Window title // i18nc is useful for adding context for translators, also lets strings be changed for different languages title: i18nc("@title:window", "Hello World") - + // Initial page to be loaded on app load pageStack.initialPage: Kirigami.Page { - + Controls.Label { // Center label horizontally and vertically within parent element anchors.centerIn: parent diff --git a/README.tpl b/README.tpl new file mode 100644 index 0000000..896d9c9 --- /dev/null +++ b/README.tpl @@ -0,0 +1,5 @@ +# KI18n Crate for Rust +[![Crates.io](https://img.shields.io/crates/v/ki18n)](https://crates.io/crates/ki18n) +[![Documentation](https://docs.rs/ki18n/badge.svg)](https://docs.rs/ki18n/) + +{{readme}} diff --git a/src/lib.rs b/src/lib.rs index 107fc87..e105a3b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,13 +1,34 @@ -//! # KI18n-rs -//! KI18n is a cross-platform internationalization framework used by KDE applications. This crate is meant to allow using KI18n with -//! Rust and [qmetaobject-rs](https://github.com/woboq/qmetaobject-rs) crate. +//! # Introduction +//! KI18n is a cross-platform internationalization framework used by KDE applications. This crate +//! is meant to allow using KI18n with Rust and [qmetaobject-rs](https://github.com/woboq/qmetaobject-rs) crate. +//! +//! # Motivation +//! I love KDE. I have been using it as my primary DE for quite a while. I also like Rust Programming Language. +//! Currently, it is nearly impossible to use any KDE frameworks from Rust without some C++ FFI. While FFI is +//! never easy, complexity with C++ is exponentially more than plain C due to the Object-Oriented nature of C++, +//! which is entirely different from Rust's somewhat functional design. +//! +//! If possible, I would like the Tier-1 KDE Frameworks to be usable from pragmatic Rust in a somewhat natural +//! fashion. I am currently interested in KDE frameworks that are usable with QML. +//! +//! # Requirements +//! This crate requires KF5I18n to be installed or at least present in the system. +//! ## Ubuntu +//! ``` shell +//! sudo apt install libkf5i18n-dev +//! ``` +//! ## Arch Linux +//! ``` shell +//! sudo pacman -S ki18n +//! ``` //! //! # Custom Location for KF5I18n -//! The crate searches from KF5I18n using either the environment variables (KF5_I18n_INCLUDE_PATH and KF5_I18n_LIBRARY_PATH) if they are set or just -//! searches at /usr/include /usr/library +//! The crate searches from KF5I18n using either the environment variables (`KF_VERSION`, +//! `KF_INCLUDE_PATH` and `KF_LIBRARY_PATH`) if they are set or uses `kf5-config` to find the paths. +//! //! //! # Example -//! ```ignore +//! ```rust //! use cstr::cstr; //! use qmetaobject::prelude::*; //! use ki18n::KLocalizedContext;