about summary refs log tree commit diff homepage
path: root/utils.jl
blob: 3e58dde8633a22497de4eee35c99bb065a4cf792 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using Printf: @sprintf
using Franklin: convert_html, path

function hfun_author_date()
  return readchomp(`git log -1 --date=short --format=%ad $(locvar(:fd_rpath))`)
end

function hfun_abslink(args)
  rpath = args[1]
  return @sprintf("<a href=/%s>%s</a>", rpath, pagevar(rpath, :title))
end

dir_url() = strip(dirname(locvar(:fd_url)), '/')
message_id() = @sprintf("<%s@cnx>", dir_url())
hfun_comments() = @sprintf("https://lists.sr.ht/~cnx/site?search=%s:%s",
                           "In-Reply-To", message_id())

function hfun_comment_rss()
  rpath = joinpath(dir_url(), "comments.xml")
  head_template = joinpath(path(:rss), "comment-head.xml")
  item_template = joinpath(path(:rss), "comment-item.xml")
  open(joinpath(path(:site), rpath), "w") do feed
    write(feed, convert_html(read(head_template, String)))
    write(feed, read(`python3 formbox.py mbox $(message_id()) $(item_template)`, String))
    write(feed, "</channel></rss>")
  end
  return joinpath(globvar(:website_url), rpath)
end

function hfun_mailto_comment()
  return @sprintf("mailto:%s?%s=%s&%s=Re: %s",
                  "~cnx/site@lists.sr.ht",
                  "In-Reply-To", message_id(),
                  "Subject", locvar(:title))
end

hfun_github(args) = @sprintf("<a href=https://github.com/%s>@%s</a>",
                             args[1], args[1])

function hfun_pep(args)
  postfix = length(args) < 2 ? "" : '#' * args[2]
  return @sprintf(
    "<a href=https://www.python.org/dev/peps/pep-%04d%s>PEP %s%s</a>",
    Meta.parse(args[1]), postfix, args[1], postfix)
end

function hfun_pip(args)
  content = length(args) < 2 ? "GH-" * args[1] : args[2]
  return @sprintf("<a href=https://github.com/pypa/pip/pull/%s>%s</a>",
                  args[1], content)
end