From e25b53712bb10d58537bada6fef8cee69fb6306f Mon Sep 17 00:00:00 2001 From: dudaodong Date: Sun, 8 Oct 2023 11:19:44 +0800 Subject: [PATCH] doc: add play ground demo --- README.md | 5 +++++ README_zh-CN.md | 5 +++++ cryptor/crypto.go | 6 +++--- docs/api/packages/cryptor.md | 6 +++--- docs/api/packages/fileutil.md | 30 +++++++++++++++--------------- docs/api/packages/strutil.md | 14 +++++++------- docs/en/api/packages/cryptor.md | 6 +++--- docs/en/api/packages/fileutil.md | 30 +++++++++++++++--------------- docs/en/api/packages/strutil.md | 12 ++++++------ fileutil/file.go | 2 +- strutil/string.go | 1 + 11 files changed, 64 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index 56988d6..b033191 100644 --- a/README.md +++ b/README.md @@ -453,10 +453,14 @@ import "github.com/duke-git/lancet/v2/cryptor" [[play](https://go.dev/play/p/uef0q1fz53I)] - **GenerateRsaKeyPair** : creates rsa private and public key. [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/cryptor.md#GenerateRsaKeyPair)] + [[play](https://go.dev/play/p/sSVmkfENKMz)] - **RsaEncryptOAEP** : encrypts the given data with RSA-OAEP. [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/cryptor.md#RsaEncryptOAEP)] + [[play](https://go.dev/play/p/sSVmkfENKMz)] - **RsaDecryptOAEP** : decrypts the data with RSA-OAEP [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/cryptor.md#RsaDecryptOAEP)] + [[play](https://go.dev/play/p/sSVmkfENKMz)] +

7. Datetime package supports date and time format and compare.        index

@@ -1553,6 +1557,7 @@ import "github.com/duke-git/lancet/v2/strutil" [[play](https://go.dev/play/p/6zXRH_c0Qd3)] - **IsNotBlank** : checks if a string is not whitespace or not empty. [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/strutil.md#IsNotBlank)] + [[play](https://go.dev/play/p/e_oJW0RAquA)] - **HasPrefixAny** : checks if a string starts with any of an array of specified strings. [[doc](https://github.com/duke-git/lancet/blob/main/docs/en/api/packages/strutil.md#HasPrefixAny)] [[play](https://go.dev/play/p/8UUTl2C5slo)] diff --git a/README_zh-CN.md b/README_zh-CN.md index ce9b810..fad546b 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -453,10 +453,14 @@ import "github.com/duke-git/lancet/v2/cryptor" [[play](https://go.dev/play/p/uef0q1fz53I)] - **GenerateRsaKeyPair** : 创建rsa公钥私钥和key。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/cryptor.md#GenerateRsaKeyPair)] + [[play](https://go.dev/play/p/sSVmkfENKMz)] - **RsaEncryptOAEP** : rsa OAEP加密。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/cryptor.md#RsaEncryptOAEP)] + [[play](https://go.dev/play/p/sSVmkfENKMz)] - **RsaDecryptOAEP** : rsa OAEP解密。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/cryptor.md#RsaDecryptOAEP)] + [[play](https://go.dev/play/p/sSVmkfENKMz)] +

7. datetime 日期时间处理包,格式化日期,比较日期。       回到目录

@@ -1560,6 +1564,7 @@ import "github.com/duke-git/lancet/v2/strutil" [[play](https://go.dev/play/p/6zXRH_c0Qd3)] - **IsNotBlank** : 检查字符串是否不为空。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/strutil.md#IsNotBlank)] + [[play](https://go.dev/play/p/e_oJW0RAquA)] - **HasPrefixAny** : 检查字符串是否以指定字符串数组中的任何一个开头。 [[doc](https://github.com/duke-git/lancet/blob/main/docs/api/packages/strutil.md#HasPrefixAny)] [[play](https://go.dev/play/p/8UUTl2C5slo)] diff --git a/cryptor/crypto.go b/cryptor/crypto.go index 978ed87..3e911b7 100644 --- a/cryptor/crypto.go +++ b/cryptor/crypto.go @@ -508,14 +508,14 @@ func RsaDecrypt(data []byte, privateKeyFileName string) []byte { } // GenerateRsaKeyPair create rsa private and public key. -// Play: todo +// Play: https://go.dev/play/p/sSVmkfENKMz func GenerateRsaKeyPair(keySize int) (*rsa.PrivateKey, *rsa.PublicKey) { privateKey, _ := rsa.GenerateKey(rand.Reader, keySize) return privateKey, &privateKey.PublicKey } // RsaEncryptOAEP encrypts the given data with RSA-OAEP. -// Play: todo +// Play: https://go.dev/play/p/sSVmkfENKMz func RsaEncryptOAEP(data []byte, label []byte, key rsa.PublicKey) ([]byte, error) { encryptedBytes, err := rsa.EncryptOAEP(sha256.New(), rand.Reader, &key, data, label) if err != nil { @@ -526,7 +526,7 @@ func RsaEncryptOAEP(data []byte, label []byte, key rsa.PublicKey) ([]byte, error } // RsaDecryptOAEP decrypts the data with RSA-OAEP. -// Play: todo +// Play: https://go.dev/play/p/sSVmkfENKMz func RsaDecryptOAEP(ciphertext []byte, label []byte, key rsa.PrivateKey) ([]byte, error) { decryptedBytes, err := rsa.DecryptOAEP(sha256.New(), rand.Reader, &key, ciphertext, label) if err != nil { diff --git a/docs/api/packages/cryptor.md b/docs/api/packages/cryptor.md index 3578f4a..12bb688 100644 --- a/docs/api/packages/cryptor.md +++ b/docs/api/packages/cryptor.md @@ -1437,7 +1437,7 @@ func main() { func GenerateRsaKeyPair(keySize int) (*rsa.PrivateKey, *rsa.PublicKey) ``` -示例:> +示例:[运行](https://go.dev/play/p/sSVmkfENKMz) ```go package main @@ -1462,7 +1462,7 @@ func main() { func RsaEncryptOAEP(data []byte, label []byte, key rsa.PublicKey) ([]byte, error) ``` -示例:> +示例:[运行](https://go.dev/play/p/sSVmkfENKMz) ```go package main @@ -1505,7 +1505,7 @@ func main() { func RsaDecryptOAEP(ciphertext []byte, label []byte, key rsa.PrivateKey) ([]byte, error) ``` -示例:> +示例:[运行](https://go.dev/play/p/sSVmkfENKMz) ```go package main diff --git a/docs/api/packages/fileutil.md b/docs/api/packages/fileutil.md index bc8d530..31fb43f 100644 --- a/docs/api/packages/fileutil.md +++ b/docs/api/packages/fileutil.md @@ -843,7 +843,7 @@ func main() { ### ReadFile -

读取文件或者URL

+

读取文件或者URL。

函数签名: @@ -851,7 +851,7 @@ func main() { func ReadFile(path string) (reader io.ReadCloser, closeFn func(), err error) ``` -示例: +示例:[运行](https://go.dev/play/p/uNep3Tr8fqF) ```go package main @@ -862,19 +862,19 @@ import ( ) func main() { - reader, fn, err := ReadFile("https://httpbin.org/robots.txt") - if err != nil { - return - } - defer fn() + reader, fn, err := fileutil.ReadFile("https://httpbin.org/robots.txt") + if err != nil { + return + } + defer fn() - dat, err := io.ReadAll(reader) - if err != nil { - return - } - fmt.Println(string(dat)) - // Output: - // User-agent: * - // Disallow: /deny + dat, err := io.ReadAll(reader) + if err != nil { + return + } + fmt.Println(string(dat)) + // Output: + // User-agent: * + // Disallow: /deny } ``` \ No newline at end of file diff --git a/docs/api/packages/strutil.md b/docs/api/packages/strutil.md index 11a9c0e..3f67c0b 100644 --- a/docs/api/packages/strutil.md +++ b/docs/api/packages/strutil.md @@ -1080,13 +1080,13 @@ func main() {

Checks if a string is not whitespace or not empty.

-Signature: +函数签名: ```go func IsNotBlank(str string) bool ``` -Example: +示例:[运行](https://go.dev/play/p/e_oJW0RAquA) ```go import ( @@ -1095,11 +1095,11 @@ import ( ) func main() { - result1 := IsNotBlank("") - result2 := IsNotBlank(" ") - result3 := IsNotBlank("\t\v\f\n") - result4 := IsNotBlank(" 中文") - result5 := IsNotBlank(" world ") + result1 := strutil.IsNotBlank("") + result2 := strutil.IsNotBlank(" ") + result3 := strutil.IsNotBlank("\t\v\f\n") + result4 := strutil.IsNotBlank(" 中文") + result5 := strutil.IsNotBlank(" world ") fmt.Println(result1) fmt.Println(result2) diff --git a/docs/en/api/packages/cryptor.md b/docs/en/api/packages/cryptor.md index 95461d7..44a28bf 100644 --- a/docs/en/api/packages/cryptor.md +++ b/docs/en/api/packages/cryptor.md @@ -1437,7 +1437,7 @@ func main() { func GenerateRsaKeyPair(keySize int) (*rsa.PrivateKey, *rsa.PublicKey) ``` -Example:> +Example:[Run](https://go.dev/play/p/sSVmkfENKMz) ```go package main @@ -1462,7 +1462,7 @@ func main() { func RsaEncryptOAEP(data []byte, label []byte, key rsa.PublicKey) ([]byte, error) ``` -Example:> +Example:[Run](https://go.dev/play/p/sSVmkfENKMz) ```go package main @@ -1505,7 +1505,7 @@ func main() { func RsaDecryptOAEP(ciphertext []byte, label []byte, key rsa.PrivateKey) ([]byte, error) ``` -Example:> +Example:[Run](https://go.dev/play/p/sSVmkfENKMz) ```go package main diff --git a/docs/en/api/packages/fileutil.md b/docs/en/api/packages/fileutil.md index 48fbb70..30c3358 100644 --- a/docs/en/api/packages/fileutil.md +++ b/docs/en/api/packages/fileutil.md @@ -843,7 +843,7 @@ func main() { ### ReadFile -

Read File/URL

+

Read File or URL.

Signature: @@ -851,7 +851,7 @@ func main() { func ReadFile(path string) (reader io.ReadCloser, closeFn func(), err error) ``` -Example: +Example:[Run](https://go.dev/play/p/uNep3Tr8fqF) ```go package main @@ -862,19 +862,19 @@ import ( ) func main() { - reader, fn, err := ReadFile("https://httpbin.org/robots.txt") - if err != nil { - return - } - defer fn() + reader, fn, err := fileutil.ReadFile("https://httpbin.org/robots.txt") + if err != nil { + return + } + defer fn() - dat, err := io.ReadAll(reader) - if err != nil { - return - } - fmt.Println(string(dat)) - // Output: - // User-agent: * - // Disallow: /deny + dat, err := io.ReadAll(reader) + if err != nil { + return + } + fmt.Println(string(dat)) + // Output: + // User-agent: * + // Disallow: /deny } ``` diff --git a/docs/en/api/packages/strutil.md b/docs/en/api/packages/strutil.md index fe416a6..0aaf422 100644 --- a/docs/en/api/packages/strutil.md +++ b/docs/en/api/packages/strutil.md @@ -1087,7 +1087,7 @@ func main() { func IsNotBlank(str string) bool ``` -Example: +Example:[Run](https://go.dev/play/p/e_oJW0RAquA) ```go import ( @@ -1096,11 +1096,11 @@ import ( ) func main() { - result1 := IsNotBlank("") - result2 := IsNotBlank(" ") - result3 := IsNotBlank("\t\v\f\n") - result4 := IsNotBlank(" 中文") - result5 := IsNotBlank(" world ") + result1 := strutil.IsNotBlank("") + result2 := strutil.IsNotBlank(" ") + result3 := strutil.IsNotBlank("\t\v\f\n") + result4 := strutil.IsNotBlank(" 中文") + result5 := strutil.IsNotBlank(" world ") fmt.Println(result1) fmt.Println(result2) diff --git a/fileutil/file.go b/fileutil/file.go index a002a49..0cd4531 100644 --- a/fileutil/file.go +++ b/fileutil/file.go @@ -627,7 +627,7 @@ func WriteBytesToFile(filepath string, content []byte) error { } // ReadFile get file reader by a url or a local file -// Play: todo +// Play: https://go.dev/play/p/uNep3Tr8fqF func ReadFile(path string) (reader io.ReadCloser, closeFn func(), err error) { switch { case validator.IsUrl(path): diff --git a/strutil/string.go b/strutil/string.go index 17dbe07..42b7e62 100644 --- a/strutil/string.go +++ b/strutil/string.go @@ -409,6 +409,7 @@ func IsBlank(str string) bool { } // IsNotBlank checks if a string is not whitespace, not empty. +// Play: https://go.dev/play/p/e_oJW0RAquA func IsNotBlank(str string) bool { return !IsBlank(str) }