# Madeleine.js for Gitea

Madeleine.js Integration for Gitea. Does not work for ASCII files (in conjunction with gitea). You can convert ASCII files to binary using admesh. Admesh is available for Windows and Linux.

# Example
See https://gitea.fablabchemnitz.de/MarioVoigt/STL-Test/src/branch/master/Bunny-LowPoly.stl (https://www.thingiverse.com/thing:151081/files)

# HowTo Steps

## Convert ASCII to Binary STL
```
apt install admesh
admesh ascii-file.stl --write-binary-stl binary.stl
```

## Gitea config
```	
cd /opt/gitea/custom/templates/
mkdir base/
cd base/
```


```
vim /opt/gitea/custom/templates/base/footer.tmpl
```
```
<script>
function lS(src){
  return new Promise(function(resolve, reject) {
    let s = document.createElement('script')
    s.src = src
    s.addEventListener('load', () => {
      resolve()
    })
    document.body.appendChild(s)
  });
}

if($('.view-raw>a[href$=".stl" i]').length){
  $('body').append('<link href="/assets/Madeleine.js/src/css/Madeleine.css" rel="stylesheet">');
  Promise.all([lS("/assets/Madeleine.js/src/lib/stats.js"),lS("/assets/Madeleine.js/src/lib/detector.js"), lS("/assets/Madeleine.js/src/lib/three.min.js"), lS("/assets/Madeleine.js/src/Madeleine.js")]).then(function() {
    $('.view-raw').attr('id', 'view-raw').attr('style', 'padding: 0;margin-bottom: -10px;');
    new Madeleine({
      target: 'view-raw',
      data: $('.view-raw>a[href$=".stl" i]').attr('href'),
      path: '/assets/Madeleine.js/src'
    });
    $('.view-raw>a[href$=".stl"]').remove()
  });
}
</script>
```

```
chown git:git footer.tmpl
chmod 770 footer.tmpl
```

```
cd /opt/gitea/custom/
mkdir public/
cd public/
git clone https://github.com/JinJunho/Madeleine.js.git Madeleine.js/
chown -R git:git /opt/gitea/custom/public
```

```
service gitea restart
```

## Source code comes from http://jinjunho.github.io/Madeleine.js/