Static site generator for making web mixtapes in 2020.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

82 строки
2.4 KiB

  1. // Code generated by "inline -o templates.go -p cdr templates/parts.tmpl" -- DO NOT EDIT --
  2. package cdr
  3. import (
  4. "fmt"
  5. "io/ioutil"
  6. )
  7. func ReadAsset(file string, useLocal bool) ([]byte, error) {
  8. if useLocal {
  9. return ioutil.ReadFile(file)
  10. }
  11. if f, ok := files[file]; ok {
  12. return []byte(f), nil
  13. }
  14. return nil, fmt.Errorf("file doesn't exist.")
  15. }
  16. var files = map[string]string{
  17. "templates/parts.tmpl": `{{define "player"}}
  18. {{with $x := index . 0}}
  19. <audio id="player" preload="auto" tabindex="0" controls>
  20. <source src="{{$x.Filename}}">
  21. </audio>
  22. {{end}}
  23. <ol id="playlist">
  24. {{range $i, $el := .}}
  25. <li{{if eq $i 0}} class="active"{{end}}>
  26. <a href="{{$el.Filename}}">{{$el.Artist}} - {{$el.Title}}</a>
  27. </li>
  28. {{end}}
  29. </ol>
  30. {{end}}
  31. {{define "full-player"}}
  32. {{template "player" .}}
  33. {{template "playlist-js"}}
  34. {{end}}
  35. {{define "playlist-js"}}
  36. <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
  37. <script type="text/javascript">
  38. $(document).ready(function() {
  39. init();
  40. function init() {
  41. var current = 0;
  42. var $audio = $('#player');
  43. var $playlist = $('#playlist');
  44. var $tracks = $playlist.find('li a');
  45. var len = $tracks.length - 1;
  46. $playlist.on('click', 'a', function (e) {
  47. e.preventDefault();
  48. link = $(this);
  49. current = link.parent().index();
  50. run(link, $audio[0]);
  51. });
  52. $audio[0].addEventListener('ended', function (e) {
  53. current++;
  54. if (current == len) {
  55. current = 0;
  56. link = $playlist.find('a')[0];
  57. } else {
  58. link = $playlist.find('a')[current];
  59. }
  60. run($(link), $audio[0]);
  61. });
  62. }
  63. function run($link, $player) {
  64. $player.src = $link.attr('href');
  65. par = $link.parent();
  66. par.addClass('active').siblings().removeClass('active');
  67. $player.load();
  68. $player.play();
  69. }
  70. });
  71. </script>
  72. {{end}}`,
  73. }