Syntax Highlighting with Pygments
{% highlight language="java" %}
public abstract class OrchidGenerator extends Prioritized implements OptionsHolder {
protected final String key;
protected final OrchidContext context;
@Inject
public OrchidGenerator(OrchidContext context, String key, int priority) {
super(priority);
this.key = key;
this.context = context;
}
/**
* A callback to build the index of content this OrchidGenerator intends to create.
*
* @return a list of pages that will be built by this generator
*/
public abstract List<? extends OrchidPage> startIndexing();
/**
* A callback to begin generating content. The index is fully built and should not be changed at this time. The
* list of pages returned by `startIndexing` is passed back in as an argument to the method.
*
* @param pages the pages to render
*/
public abstract void startGeneration(Stream<? extends OrchidPage> pages);
}
{% endhighlight %}
1 public abstract class OrchidGenerator extends Prioritized implements OptionsHolder {
2
3 protected final String key;
4
5 protected final OrchidContext context;
6
7 @Inject
8 public OrchidGenerator(OrchidContext context, String key, int priority) {
9 super(priority);
10 this.key = key;
11 this.context = context;
12 }
13
14 /**
15 * A callback to build the index of content this OrchidGenerator intends to create.
16 *
17 * @return a list of pages that will be built by this generator
18 */
19 public abstract List<? extends OrchidPage> startIndexing();
20
21 /**
22 * A callback to begin generating content. The index is fully built and should not be changed at this time. The
23 * list of pages returned by `startIndexing` is passed back in as an argument to the method.
24 *
25 * @param pages the pages to render
26 */
27 public abstract void startGeneration(Stream<? extends OrchidPage> pages);
28 }
Embed Github Gist
{% gist user="cjbrooks12" id="83a11f066388c9fe905ee1bab47ecca8" %}
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Create specified number of articles for Hugo benchmarks | |
from datetime import datetime | |
import random | |
import string | |
from sys import argv | |
import os | |
def generateWord(min_length = 1, max_length = 10): | |
length = random.randint(min_length, max_length) | |
word = ''.join(random.choice(string.letters) for _ in range(length)) | |
return word | |
def generateSentence(words): | |
return ' '.join([generateWord() for i in range(words)]) | |
def getRandomDate(): | |
year = random.choice(range(startYear, endYear)) | |
month = random.choice(range(1, 13)) | |
day = random.choice(range(1, 29)) | |
hours = random.choice(range(0, 24)) | |
minutes = random.choice(range(0, 60)) | |
seconds = random.choice(range(0, 60)) | |
return datetime(year, month, day, hours, minutes, seconds).strftime("%Y-%m-%d_%H-%M-%S") | |
def generateTagList(): | |
return '["' + '","'.join([random.choice(tags) for i in range(numTagsPerPost)]) + '"]' | |
def createPost(outputDir): | |
title = generateSentence(8) | |
desc = generateSentence(20) | |
tagsList = generateTagList() | |
year = random.choice(range(startYear, endYear)) | |
month = random.choice(range(1, 13)) | |
day = random.choice(range(1, 29)) | |
slug = str(year).rjust(2, '0') + '-' + str(month).rjust(2, '0') + '-' + str(day).rjust(2, '0') + '-' + title.replace(' ', '-').lower() | |
slug = ''.join(c for c in slug if c.isalnum() or c == '-') | |
with open('%s/%s.md' % (outputDir, slug), 'w') as f: | |
f.write('+++\n') | |
f.write('title = "%s"\n' % title) | |
f.write('description = "%s"\n' % desc) | |
f.write('tags = %s\n' % tagsList) | |
# Use UTC time to avoid having to mess with timezones and daylight saving time | |
f.write('date = "%s"\n' % datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S-00:00")) | |
f.write('slug = "%s"\n' % slug) | |
f.write('+++\n\n') | |
# Generate blocks of random words | |
num_paragraphs = random.randint(5, 10) | |
for i in range(num_paragraphs): | |
f.write(generateSentence(random.randint(50, 100))) | |
f.write('\n\n') | |
dir_path = os.path.dirname(os.path.realpath(__file__)) | |
# Set defaults | |
outputDir = dir_path + '/posts' | |
numPosts = 500 | |
numTags = 30 | |
numTagsPerPost = 5 | |
startYear = 1950 | |
endYear = 2020 | |
# Generate random categories | |
tags = [generateWord(6, 14) for i in range(numTags)] | |
# ensure directory exists | |
if not os.path.exists(outputDir): | |
os.makedirs(outputDir) | |
for i in range(numPosts): | |
createPost(outputDir) |