github.com/matislovas/ratago@v0.0.0-20240408115641-cc0857415a7a/README.md (about)

     1  ratago
     2  ======
     3  
     4  [![Build Status](https://travis-ci.org/jbowtie/ratago.svg?branch=master)](https://travis-ci.org/jbowtie/ratago)
     5  [![codecov](https://codecov.io/gh/jbowtie/ratago/branch/master/graph/badge.svg)](https://codecov.io/gh/jbowtie/ratago)
     6  [![Go Report Card](https://goreportcard.com/badge/github.com/jbowtie/ratago)](https://goreportcard.com/report/github.com/jbowtie/ratago)
     7  [![GoDoc](https://godoc.org/github.com/jbowtie/ratago?status.svg)](https://godoc.org/github.com/jbowtie/ratago)
     8  
     9  Ratago is a (mostly-compliant) implementation of an XSLT 1.0 processor written in Go and released under an MIT license.
    10  
    11  Currently it should be seen as experimental - it lacks full compliance with the spec. It has been run successfully on a number of scripts of moderate complexity as of the 0.4-pre release.
    12  
    13  The test suite is derived from the test suite used by the libxslt library written by Daniel Veillard. See http://xmlsoft.org/XSLT/ for details on libxslt.
    14  
    15  Installation
    16  ----
    17  
    18  For MacOS:
    19  ```sh
    20  # Need pkg-config, see https://stackoverflow.com/a/36794452/700471
    21  brew install pkg-config 
    22  # Need libxml2 source, see https://github.com/mitmproxy/mitmproxy/issues/68#issuecomment-120301708
    23  brew install libxml2
    24  sudo ln -s /usr/local/opt/libxml2/include/libxml2/libxml /usr/local/include/libxml 
    25  # Install with Go Modules
    26  GO111MODULE=on go get github.com/jbowtie/ratago
    27  ```
    28  
    29  Example Usage
    30  ----
    31  
    32  ```sh
    33  ratago -indent transform.xslt data.xml > result.xml
    34  ```
    35  
    36  TODO
    37  ----
    38  
    39  There are several tasks remaining to reach full compliance. Until these tasks are complete the API is subject to change.
    40  
    41  * Implement xsl:decimal-format and format-number.
    42  * Ensure that errors are properly progogated in Go fashion.
    43