我正在使用GitHub页面发布项目中的文件。这些文件是Java源代码文件,我可以将它们作为静态文件作为集合添加到Jekyll中。我需要将布局应用于这些文件,例如,代码格式化。我无法做到这一点。
我的静态源代码文件位于_config.yml中定义的集合中
collections_dir: material
collections:
cse-solutions:
output: true我的站点的这一部分运行得很好:material/_cse-solutions下的.java-files出现在静态站点上的/cse-solutions中。
但是,我需要包括一个标题和代码格式。为此,我尝试将布局应用于这些静态文件。我目前的努力有以下几点。首先,在_config.yml中我设置了
defaults:
- scope:
path: ""
type: "cse-solutions"
values:
layout: java-code然后,为了简单起见,我有一个包含内容的文件_layouts/java-code.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test title </title>
</head>
<body>
<h1> Test code page heading </h1>
{{ content }}
</body>
</html>但是,此布局对站点上的.java文件没有影响。老实说,如果布局是有效的,我甚至不知道输出是否会有.java-suffix。不过,我在这个网站上也找不到任何对应的.html-pages。
这可以做到吗?如果可以,我做错了什么?
编辑:我怀疑Jekyll只是忽略了静态文件的布局。使用来自Liquid的jsonify,我实际上可以打印这个集合的值,在那里我可以看到系统已经为这些静态文件正确设置了:
”layout”:”java_code”但是对这些文件的格式化绝对没有影响。
(下划线,即用java_code代替java-code在这里不是一个错误,因为我注意到Jekyll的某些部分不喜欢标识符中的破折号,所以我把所有地方的破折号都改成了下划线。我认为Ruby不允许在标识符中使用破折号。)
发布于 2019-12-05 12:25:50
我想你可能把事情搞得有点复杂了。如果我没理解错的话,你只是想在你的页面上显示实际的源代码,对吗?例如,您希望代码看起来像这样:
class HelloWorld
{
public static void main(String args[])
{
System.out.println("Hello, World");
}
} 如果是这种情况,您可以简单地将编写的源代码保存为markdown文件(.md),并让kramdown标记转换器正确地处理它的显示。为此,您需要确保在_config.yml文件中包含以下内容:
kramdown:
# Use GitHub flavored markdown, including triple backtick fenced code blocks
input: GFM
# Jekyll 3 and GitHub Pages now only support rouge for syntax highlighting
syntax_highlighter: rouge这将确保kramdown被启用,并将使用rouge进行语法突出显示。
然后,对于您想要的每个页面,只需创建一个pagename.md文件,并在页面顶部至少添加以下front matter:
---
layout: java-code
title: "Here is my source code page"
---这将告诉jekyll使用您已经创建的"java-code“布局,并将页面的标题定义为您在引号中放置的任何内容。在前面的事情之后,只需将源代码复制到代码块中以进行标记即可。它非常简单,你所需要做的就是在你编码之前和之后用```写一行代码。您可以选择将第一行设置为```java,以告知rouge突出显示java语法,以使其更易于阅读。
您也可以将任何标记文本放在代码块之外。这意味着您可以对代码进行描述,甚至可以将代码分成多个部分,每个部分之前都有文本描述。
要把所有这些放在一起,你的文件应该看起来像这样:
---
layout: java-code
title: "Here is my source code page"
---
Here is my simple "Hello, world" program:
```javaHelloWorld类
{
public static void main(String args[]) { System.out.println("Hello, World"); } }
查看jekyll网站上的docs page for posts获取更多信息,如果你不熟悉markdown,如果你在谷歌上进行快速搜索,有大量的指南可以用它来编写(这就是stackoverflow答案的格式!)。
https://stackoverflow.com/questions/59183365
复制相似问题