Summary Files Commits Branches @commit @diff @stats
path: root / awk-edits / File-type.awk
blob: 32e22b95658fb4c79a6da3d1a64638ab0f68403e (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# .*(misc|preserved).*html
#
# == About ==
#
# Each file list is a "details" element, that contains a table, each row being a different file
# or alternatively, just the table on it's own.
# 
# -- Result HTML --
#
# <details>
#   <summary>Folder Info</summary>
#   <table>
#     <tr>File Data</tr>
#   </table>
# </details>
# or
# <table>
#   <tr>File Data</tr>
# </table>

#
# == ftags ==
#
# &&folder     The text right afterwards is the title of the folder. All files
#              are hidden inside the collapsed details tag (click to show).
#              The file table is indented. You cannot have a folder inside a folder.
#              It can be omitted, and the files table will be shown as-is.
#
# &&file       Everything that follows this tag is the data for a file. You should
#              use &&fd to specify columns of information! Depending on the context,
#              it might be flrepllaced with the start of a table, closing the summary
#              and starting table, or closing and opening a table row.
#
# &&/files     This tag must exist at the bottom of a file list, no matter if it was
#              started with or without a &&folder.
#
# &&fd         Defines a column of information for a file (row). Practically, it is
#              flrepllaced with <td>, and </td> is added to the end of the line.
#              If you don't use it, make sure to have the leading and trailing td tags!
#
# &&ft-TYPE    Depending on TYPE, it inserts an image tag that contains the file "icon"
#              for the corresponding type.
#              Available values for TYPE: photo, text, zip, movie, markdown
#
# -- Placement/Flow --
#
# All ftags, except &&fd, can be placed on their own line (empty line above and below)
# or before/after another ftag.
# Folder title must be inside the same paragraph as the ftag itself. This means that,
# after
# every &&folder ftag, the text can continue directly next to it and/or on new lines,
# without there being any empty lines (you can add those with <br> or two spaces at
# line end).
#
# -- Example Usage --
#
# (I like to indent a bit &&fd ftags, for readability's sake, but you don't have to)
#
# &&file
#   &&ft-text
#   &&fd Notes
#   &&fd 10 KB
# &&/files
#
# &&folder Math
# &&file
#   &&ft-text
#   &&fd Homework 1
# &&file
#   &&ft-text
#   &&fd Homework 2
# &&/files
#
# &&folder Art Project<br>
# Status: 70% complete<br>
# Note: Reserach Van Gogh paintings
#
# &&file
#   &&fd Painting 1
#   &&fd 100% Complete
#
# &&file
#   &&fd Painting 2
#   &&fd 40% Complete
#
# &&/files

function flSub(name, repl) {
	sub("&#38;&#38;" name, "<span class=\"file-type-icon\">" repl "</span>")
}

/&#38;&#38;ft-photo/    { flSub("ft-photo",    "\\&#xeb0a;") }
/&#38;&#38;ft-text/     { flSub("ft-text",     "\\&#xeaa2;") }
/&#38;&#38;ft-zip/      { flSub("ft-zip",      "\\&#xed4e;") }
/&#38;&#38;ft-movie/    { flSub("ft-movie",    "\\&#xeafa;") }
/&#38;&#38;ft-markdown/ { flSub("ft-markdown", "\\&#xec41;") }
/&#38;&#38;ft-browser/  { flSub("ft-browser",  "\\&#xebb7;") }