Эксперимент по ускорению с помощью Java постинга в Jekyll
Я использую Jekyll для постинга в свой блог. Это генератор для статических страниц, которые можно размещать на Github Pages
Мне показалось, что я трачу слишком много времени на подготовку постов. Хочется, одной командой создать файл, записать мысли и одной командой отправить в блог.
Я написал вот такую страшненькую программку:
package ru.yamakarov.jekyll;
import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
public class Main {
public static void main(String[] args) {
if (args.length < 2) {
System.out.println("No command do nothing\n" +
"possible options:\n" +
"-n name Creates new post \n");
}
String command = args[0];
if ("-n".equals(command)) {
String name = args[1];
Date date = new Date(System.currentTimeMillis());
String template = "---\n" +
"layout: post\n" +
"title: \"\"\n" +
"date: " + new SimpleDateFormat("yyyy-MM-dd hh:mm").format(date) + "\n" +
"categories: \n" +
"---\n\n";
String fileName = new SimpleDateFormat("yyyy-MM-dd").format(date) +
"-" + name + ".markdown";
Path path = FileSystems.getDefault().getPath("_posts",
fileName);
try {
if (!Files.exists(path)) {
Files.createFile(path);
}
Files.write(path, Collections.singletonList(template));
} catch (IOException e) {
System.out.println("Exception writing file");
e.printStackTrace();
}
}
}
}
Этот файл я создал с её помощью. Я знаю только Java и выбрал её для решения задачи автоматизации. Я не уверен, что она долго проживет, потому что наверняка есть более простые решения. Но она вскрыла куча проблем, которые я постараюсь для себя раскрыть в будущем:
- Я знаю есть библиотека для работы с консольными приложениями
- Есть правила написания манов для Linux
- API Files из Java 1.7 прошло полностью мимо меня, я ни разу им не пользовался
- Логи это удобно, и без системы сборки собирать проекты это боль
- Я совсем не знаю Maven и Gradle и это боль начинать проект
Я засек время потраченное на написание программы 34 минуты. Мне надо сделать около 50 постов, чтобы оно окупилось, и надо чтобы в программе не нашлось новых багов.
Update: продолжение про Kotlin