aboutsummaryrefslogtreecommitdiffstats
path: root/filters/syntax-highlighting.sh
blob: 0429b0fef2c61e0398f5d3ff7013cac4cf1c28d8 (plain)
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#!/bin/sh
# This script can be used to implement syntax highlighting in the cgit
# tree-view by referring to this file with the source-filter or repo.source-
# filter options in cgitrc.
#
# This script requires a shell supporting the ${var##pattern} syntax.
# It is supported by at least dash and bash, however busybox environments
# might have to use an external call to sed instead.
#
# Note: the highlight command (http://www.andre-simon.de/) uses css for syntax
# highlighting, so you'll probably want something like the following included
# in your css file:
#
# Style definition file generated by highlight 2.4.8, http://www.andre-simon.de/
#
# table.blob .num  { color:#2928ff; }
# table.blob .esc  { color:#ff00ff; }
# table.blob .str  { color:#ff0000; }
# table.blob .dstr { color:#818100; }
# table.blob .slc  { color:#838183; font-style:italic; }
# table.blob .com  { color:#838183; font-style:italic; }
# table.blob .dir  { color:#008200; }
# table.blob .sym  { color:#000000; }
# table.blob .kwa  { color:#000000; font-weight:bold; }
# table.blob .kwb  { color:#830000; }
# table.blob .kwc  { color:#000000; font-weight:bold; }
# table.blob .kwd  { color:#010181; }
# @media only all and (prefers-color-scheme: dark) { /* cgit addition for dark mode */
# 	table.blob .num  { color:#ff814f; }
# 	table.blob .esc  { color:#f60; }
# 	table.blob .str  { color:#cc0; }
# 	table.blob .dstr { color:#ffff7e; }
# 	table.blob .slc  { color:#7f7c7f; }
# 	table.blob .com  { color:#7e7c7e; }
# 	table.blob .dir  { color:#7dff7d; }
# 	table.blob .sym  { color:#eeeeee; }
# 	table.blob .kwa  { color:#bb0; }
# 	table.blob .kwb  { color:#0a0; }
# 	table.blob .kwc  { color:#eeeeee; }
# 	table.blob .kwd  { color:#7e7efe; }
# }
#
#
# Style definition file generated by highlight 2.6.14, http://www.andre-simon.de/
#
# body.hl  { background-color:#ffffff; }
# pre.hl   { color:#000000; background-color:#ffffff; font-size:10pt; font-family:'Courier New';}
# .hl.num  { color:#2928ff; }
# .hl.esc  { color:#ff00ff; }
# .hl.str  { color:#ff0000; }
# .hl.dstr { color:#818100; }
# .hl.slc  { color:#838183; font-style:italic; }
# .hl.com  { color:#838183; font-style:italic; }
# .hl.dir  { color:#008200; }
# .hl.sym  { color:#000000; }
# .hl.line { color:#555555; }
# .hl.mark { background-color:#ffffbb;}
# .hl.kwa  { color:#000000; font-weight:bold; }
# .hl.kwb  { color:#830000; }
# .hl.kwc  { color:#000000; font-weight:bold; }
# .hl.kwd  { color:#010181; }
# @media only all and (prefers-color-scheme: dark) { /* cgit addition for dark mode */
# 	pre.hl  { color:#eeeeee; background-color:#111; }
# 	.hl.num  { color:#ff814f; }
# 	.hl.esc  { color:#f60; }
# 	.hl.str  { color:#cc0; }
# 	.hl.dstr { color:#ffff7e; }
# 	.hl.slc  { color:#7f7c7f; }
# 	.hl.com  { color:#7e7c7e; }
# 	.hl.dir  { color:#7dff7d; }
# 	.hl.sym  { color:#eeeeee; }
# 	.hl.line { color:#aaaaaa; }
# 	.hl.mark { background-color:#444400; }
# 	.hl.kwa  { color:#bb0; }
# 	.hl.kwb  { color:#a0a; }
# 	.hl.kwc  { color:#eeeeee; }
# 	.hl.kwd  { color:#7e7efe; }
# }
#
#
# Style definition file generated by highlight 3.8 / 3.13 / 3.41, http://www.andre-simon.de/
#
# table.blob .num { color:#b07e00; }
# table.blob .esc { color:#ff00ff; }
# table.blob .str { color:#bf0303; }
# table.blob .pps { color:#818100; }
# table.blob .slc { color:#838183; font-style:italic; }
# table.blob .com { color:#838183; font-style:italic; }
# table.blob .ppc { color:#008200; }
# table.blob .opt { color:#000000; }
# table.blob .ipl { color:#0057ae; }
# table.blob .lin { color:#555555; }
# table.blob .kwa { color:#000000; font-weight:bold; }
# table.blob .kwb { color:#0057ae; }
# table.blob .kwc { color:#000000; font-weight:bold; }
# table.blob .kwd { color:#010181; }
# @media only all and (prefers-color-scheme: dark) { /* cgit addition for dark mode */
# 	table.blob .num { color:#ff814f; }
# 	table.blob .esc { color:#f60; }
# 	table.blob .str { color:#cc0; }
# 	table.blob .pps { color:#ffff7f; }
# 	table.blob .slc { color:#7f7c7f; }
# 	table.blob .com { color:#7e7c7e; }
# 	table.blob .ppc { color:#8dd; }
# 	table.blob .opt { color:#eeeeee; }
# 	table.blob .ipl { color:#51a8ff; }
# 	table.blob .lin { color:#aaaaaa; }
# 	table.blob .kwa { color:#bb0; }
# 	table.blob .kwb { color:#0a0; }
# 	table.blob .kwc { color:#eeeeee; }
# 	table.blob .kwd { color:#7e7efe; }
# }
#
#
# The following environment variables can be used to retrieve the configuration
# of the repository for which this script is called:
# CGIT_REPO_URL        ( = repo.url       setting )
# CGIT_REPO_NAME       ( = repo.name      setting )
# CGIT_REPO_PATH       ( = repo.path      setting )
# CGIT_REPO_OWNER      ( = repo.owner     setting )
# CGIT_REPO_DEFBRANCH  ( = repo.defbranch setting )
# CGIT_REPO_SECTION    ( = section        setting )
# CGIT_REPO_CLONE_URL  ( = repo.clone-url setting )
#

# store filename and extension in local vars
BASENAME="$1"
EXTENSION="${BASENAME##*.}"

[ "${BASENAME}" = "${EXTENSION}" ] && EXTENSION=txt
[ -z "${EXTENSION}" ] && EXTENSION=txt

# map Makefile and Makefile.* to .mk
[ "${BASENAME%%.*}" = "Makefile" ] && EXTENSION=mk

# highlight versions 2 and 3 have different commandline options. Specifically,
# the -X option that is used for version 2 is replaced by the -O xhtml option
# for version 3.
#
# Version 2 can be found (for example) on EPEL 5, while version 3 can be
# found (for example) on EPEL 6.
#
# This is for version 2
exec highlight --force -f -I -X -S "$EXTENSION" 2>/dev/null

# This is for version 3
#exec highlight --force -f -I -O xhtml -S "$EXTENSION" 2>/dev/null