FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
anjuke.github.com/plugins/include_code.rb at source · anjuke/anjuke.github.com · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
anjuke
/
anjuke.github.com
Public
Notifications
You must be signed in to change notification settings
Fork
2
Star
1
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
anjuke.github.com
/
plugins
/
include_code.rb
Copy path
More file actions
More file actions
Latest commit
History
History
History
73 lines (64 loc) · 2.27 KB
Breadcrumbs
anjuke.github.com
/
plugins
/
include_code.rb
Copy path
File metadata and controls
73 lines (64 loc) · 2.27 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
# Title: Include Code Tag for Jekyll
# Author: Brandon Mathis http://brandonmathis.com
# Description: Import files on your filesystem into any blog post as embedded code snippets with syntax highlighting and a download link.
# Configuration: You can set default import path in _config.yml (defaults to code_dir: downloads/code)
#
# Syntax {% include_code path/to/file %}
#
# Example 1:
# {% include_code javascripts/test.js %}
#
# This will import test.js from source/downloads/code/javascripts/test.js
# and output the contents in a syntax highlighted code block inside a figure,
# with a figcaption listing the file name and download link
#
# Example 2:
# You can also include an optional title for the <figcaption>
#
# {% include_code Example 2 javascripts/test.js %}
#
# will output a figcaption with the title: Example 2 (test.js)
#
require
'./plugins/pygments_code'
require
'./plugins/raw'
require
'pathname'
module
Jekyll
class
IncludeCodeTag
<
Liquid
::
Tag
include
HighlightCode
include
TemplateWrapper
def
initialize
(
tag_name
,
markup
,
tokens
)
@title
=
nil
@file
=
nil
if
markup
.
strip
=~
/
\s
*lang:(
\w
+)/i
@filetype
=
$1
markup
=
markup
.
strip
.
sub
(
/lang:
\w
+/i
,
''
)
end
if
markup
.
strip
=~
/(.*)?(
\s
+|^)(
\/
*
\S
+)/i
@title
=
$1 ||
nil
@file
=
$3
end
super
end
def
render
(
context
)
code_dir
=
(
context
.
registers
[
:site
]
.
config
[
'code_dir'
]
.
sub
(
/^
\/
/
,
''
)
||
'downloads/code'
)
code_path
=
(
Pathname
.
new
(
context
.
registers
[
:site
]
.
source
)
+
code_dir
)
.
expand_path
file
=
code_path
+
@file
if
File
.
symlink?
(
code_path
)
return
"Code directory '
#{
code_path
}
' cannot be a symlink"
end
unless
file
.
file?
return
"File
#{
file
}
could not be found"
end
Dir
.
chdir
(
code_path
)
do
code
=
file
.
read
@filetype
=
file
.
extname
.
sub
(
'.'
,
''
)
if
@filetype
.
nil?
title
=
@title
?
"
#{
@title
}
(
#{
file
.
basename
}
)"
:
file
.
basename
url
=
"/
#{
code_dir
}
/
#{
@file
}
"
source
=
"<figure class='code'><figcaption><span>
#{
title
}
</span> <a href='
#{
url
}
'>download</a></figcaption>
\n
"
source
+=
"
#{
highlight
(
code
,
@filetype
)
}
</figure>"
safe_wrap
(
source
)
end
end
end
end
Liquid
::
Template
.
register_tag
(
'include_code'
,
Jekyll
::
IncludeCodeTag
)
Back
|
FazBrowse Home
|
New Git URL