26 app.window = ui.window(
31 on_resize: fn (width int, height int, win &ui.Window){
39 width: int(ui.stretch)
40 //height: int(ui.stretch)
53 text: "Please enter URL"
72 text: "Please enter the title"
98 onclick: fn(w voidptr, b &ui.Button){
105 onclick: fn(_ voidptr, b &ui.Button){
106 mut title := b.ui.window.textbox("title_tb").text_
107 mut url := b.ui.window.textbox("url_tb").text_
109 create_article(url, title)
123 fn create_article(url string, title string){
124 //eprintln("まだ実装されてないンゴ")
125 mut now := time.now()
126 mut date := "${strc.v_sprintf("%02d", now.year)}${strc.v_sprintf("%02d", now.month)}${strc.v_sprintf("%02d", now.day)}"
127 mut filename := "posts/$date/$url/index.md"
128 mut command := ["hugo", "new", "\"$filename\""]
131 ui.message_box("Empty URL!")
135 mut result := os.execute(command.join(" "))
137 if result.exit_code !=0 {
138 ui.message_box(result.output)
141 mut re := regex.regex_opt('^title: ".*"$') or {return}
142 mut path := os.resource_abs_path("./src/content/${filename}")
144 mut article_md := os.read_lines(path) or {
145 ui.message_box("Failed to open \"$path\"")
150 for cnt,line in article_md{
151 if re.matches_string(line){
152 eprintln("書き換え対象を${cnt}行目に発見")
153 article_md[cnt] = re.replace(line, 'title: "$title"')
154 eprintln("${line} ==> title: \"$title\"")
159 os.write_file(path, article_md.join("\n")) or {
160 ui.message_box("Failed to write to $path")
166 fn cmd_available(c string) bool{
174 result := os.execute("${cmd} \"${c}\"")
175 return result.exit_code == 0
178 fn check_system_env(){
180 if ! cmd_available("hugo"){
181 eprintln("Hugo command was not found on this computer.")