Documentation ¶
Overview ¶
Package utils provides utility functions for commonmeta.
Index ¶
- func DedupeSlice[T comparable](sliceList []T) []T
- func FindFromFormat(p params) string
- func FindFromFormatByDict(dct map[string]interface{}) string
- func FindFromFormatByExt(ext string) string
- func FindFromFormatByFilename(filename string) string
- func FindFromFormatByID(id string) string
- func FindFromFormatByString(str string) string
- func ISSNAsURL(issn string) string
- func NormalizeCCUrl(url string) (string, bool)
- func NormalizeID(pid string) string
- func NormalizeORCID(orcid string) string
- func NormalizeROR(ror string) string
- func NormalizeURL(str string, secure bool, lower bool) (string, error)
- func Sanitize(html string) string
- func URLToSPDX(url string) string
- func UnescapeUTF8(inStr string) (outStr string, err error)
- func ValidateORCID(orcid string) (string, bool)
- func ValidateROR(ror string) (string, bool)
- func ValidateURL(str string) string
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DedupeSlice ¶
func DedupeSlice[T comparable](sliceList []T) []T
DedupeSlice removes duplicates from a slice https://stackoverflow.com/questions/66643946/how-to-remove-duplicates-strings-or-int-from-slice-in-go/76948712#76948712
func FindFromFormat ¶
func FindFromFormat(p params) string
FindFromFormat finds the commonmeta read format
func FindFromFormatByDict ¶
FindFromFormatByDict finds the commonmeta reader from format by dictionary
func FindFromFormatByExt ¶
FindFromFormatByExt finds the commonmeta reader from format by file extension
func FindFromFormatByFilename ¶
FindFromFormatByFilename finds the commonmeta reader from format by filename
func FindFromFormatByID ¶
FindFromFormatByID finds the commonmeta reader from format by id
func FindFromFormatByString ¶
FindFromFormatByString finds the commonmeta reader from format by string
func ISSNAsURL ¶ added in v0.2.1
ISSNAsURL returns the ISSN expressed as URL
Example ¶
package main import ( "fmt" "github.com/front-matter/commonmeta/utils" ) func main() { s := utils.ISSNAsURL("2146-8427") fmt.Println(s) }
Output: https://portal.issn.org/resource/ISSN/2146-8427
func NormalizeCCUrl ¶
NormalizeCCUrl returns the normalized Creative Commons License URL
func NormalizeID ¶
NormalizeID checks for valid DOI or HTTP(S) URL and normalizes them
func NormalizeORCID ¶
NormalizeORCID returns a normalized ORCID URL
func NormalizeURL ¶ added in v0.2.1
NormalizeURL normalizes URL
func Sanitize ¶
Sanitize removes all HTML tags except for a whitelist of allowed tags. Used for title and description fields.
Example ¶
package main import ( "fmt" "github.com/front-matter/commonmeta/utils" ) func main() { s := utils.Sanitize("<p>The Origins of SARS-CoV-2: A <i>Critical</i> <a href=\"index.html\">Review</a></p>") fmt.Println(s) }
Output: The Origins of SARS-CoV-2: A <i>Critical</i> Review
func URLToSPDX ¶ added in v0.2.1
URLToSPDX provides the SPDX license ID given a Creative Commons URL
func UnescapeUTF8 ¶ added in v0.2.1
UnescapeUTF8 unescapes UTF-8 characters
Example ¶
package main import ( "fmt" "github.com/front-matter/commonmeta/utils" ) func main() { s, err := utils.UnescapeUTF8("capable of signi\"cance.") if err != nil { fmt.Println(err) } fmt.Println(s) }
Output: capable of signi"cance.
func ValidateORCID ¶
ValidateORCID validates an ORCID
func ValidateROR ¶
ValidateROR validates a ROR
Example ¶
package main import ( "fmt" "github.com/front-matter/commonmeta/utils" ) func main() { s, _ := utils.ValidateROR("https://ror.org/0342dzm54") fmt.Println(s) }
Output: 0342dzm54
func ValidateURL ¶ added in v0.2.1
ValidateURL validates a URL and checks if it is a DOI
Types ¶
This section is empty.