From 4d4b98c5472381b756baede94b8590729a61bb89 Mon Sep 17 00:00:00 2001 From: Leyang Yu Date: Wed, 6 Oct 2021 12:31:30 -0400 Subject: [PATCH 1/5] Added json-simple --- .vscode/settings.json | 6 ++++++ json-simple-1.1.1.jar | Bin 0 -> 23737 bytes 2 files changed, 6 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 json-simple-1.1.1.jar diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..819610c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "java.project.referencedLibraries": [ + "lib/**/*.jar", + "json-simple-1.1.1.jar" + ] +} \ No newline at end of file diff --git a/json-simple-1.1.1.jar b/json-simple-1.1.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..66347a6c86b7d6442358ca7643e4dc484fb01866 GIT binary patch literal 23737 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 A{Qv*} literal 0 HcmV?d00001 From 30d6de57bb7cd0263369a439b3376156be4d7269 Mon Sep 17 00:00:00 2001 From: Leyang Yu Date: Wed, 6 Oct 2021 15:43:01 -0400 Subject: [PATCH 2/5] Added support for --config/-c flag --- src/com/company/Main.java | 111 +++++++++++++++++++++++++------------- 1 file changed, 73 insertions(+), 38 deletions(-) diff --git a/src/com/company/Main.java b/src/com/company/Main.java index 2c7cbfc..91af90c 100644 --- a/src/com/company/Main.java +++ b/src/com/company/Main.java @@ -7,7 +7,8 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; - +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; public class Main { @@ -30,53 +31,87 @@ public static void main(String[] args) { fileNameFull[i-1] = args[i]; } - String inputFile = fileNameReader(fileNameFull); - if(inputFile.endsWith(".txt")){ - //if input file is only one file - File file = new File(inputFile); - String fileName = file.getName(); - //create html - createHtml(file); + processInput(fileNameReader(fileNameFull), "dist"); - } - else if(inputFile.endsWith(".md")){ - try{ - //if input file is only one file - File file = new File(inputFile); - //create html - MDUtils.createHTMLFromMd(file); - } - catch(Exception ex){ - ex.printStackTrace(); + } else if(args[0].equals("--config") || args[0].equals("-c")) { + + //parses JSON file for input and output values + JSONParser parser = new JSONParser(); + + try { + Object configObject = parser.parse(new FileReader(args[1])); + JSONObject configJsonObject = (JSONObject) configObject; + + String input = ""; + String output = ""; + + if ((String) configJsonObject.get("input") == null) { + throw new Exception("Invalid input file/folder passed. Please pass a valid input"); + } else { + input = (String) configJsonObject.get("input"); } - } - else { - //if user added multiple files(directory) - try { - List allFiles = Files.walk(Paths.get(inputFile)) - .filter(Files::isRegularFile) - .map(Path::toFile) - .collect(Collectors.toList()); - List fileNames = new ArrayList<>() ; - for(File file :allFiles){ - createHtml(file); - } - - } catch (IOException e) { - e.printStackTrace(); + if ((String) configJsonObject.get("output") == null) { + output = "dist"; + } else { + output = (String) configJsonObject.get("output"); } + + processInput(input, output); + + } catch (FileNotFoundException ex) { + System.out.println("The config file could not be found"); + } catch (Exception ex) { + System.out.println(ex.getMessage() == null ? "The config file could not be parsed" : ex.getMessage()); } - }else { + } else { System.out.println("Invalid argument passed. Please pass a valid argument"); } } + private static void processInput (String inputFile, String output) { + if(inputFile.endsWith(".txt")){ + //if input file is only one file + File file = new File(inputFile); + String fileName = file.getName(); + //create html + createHtml(file, output); + + } + else if(inputFile.endsWith(".md")){ + try{ + //if input file is only one file + File file = new File(inputFile); + //create html + MDUtils.createHTMLFromMd(file); + } + catch(Exception ex){ + ex.printStackTrace(); + } + + } + else { + //if user added multiple files(directory) + try { + List allFiles = Files.walk(Paths.get(inputFile)) + .filter(Files::isRegularFile) + .map(Path::toFile) + .collect(Collectors.toList()); + List fileNames = new ArrayList<>() ; + for(File file :allFiles){ + createHtml(file, output); + } + + } catch (IOException e) { + e.printStackTrace(); + } + } + } private static String fileNameReader(String[] str) { //convert string array to string with the space @@ -87,7 +122,7 @@ private static String fileNameReader(String[] str) { return s.substring(0,s.length() -1); } - private static void createHtml(File fileName){ + private static void createHtml(File fileName, String output){ try{ //read file @@ -102,7 +137,7 @@ private static void createHtml(File fileName){ String[] getOnlyName = fName.split("\\\\"); String name = getOnlyName[getOnlyName.length-1]; - String htmlFileName = "dist/" + name + ".html"; + String htmlFileName = output + "/" + name + ".html"; //pre-formed html forms String beginParagraph = "

"; @@ -130,7 +165,7 @@ private static void createHtml(File fileName){ + ""; //create directory if not exist - new File("dist").mkdir(); + new File(output).mkdir(); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFileName),"UTF-8")); writer.write(htmlFormB); @@ -153,7 +188,7 @@ private static void createHtml(File fileName){ writer.close(); //for logging - System.out.println(name + ".html has been created in dist!"); + System.out.println(name + ".html has been created in " + output + "!"); }catch(IOException e) { e.printStackTrace(); From 26177d43a5dcfd693af2ecfbe8469e6ab8e0ff97 Mon Sep 17 00:00:00 2001 From: Leyang Yu Date: Wed, 6 Oct 2021 15:55:57 -0400 Subject: [PATCH 3/5] Updated --help flag --- src/com/company/Main.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/company/Main.java b/src/com/company/Main.java index 91af90c..4c69913 100644 --- a/src/com/company/Main.java +++ b/src/com/company/Main.java @@ -21,6 +21,7 @@ public static void main(String[] args) { System.out.println("---------------------------------------"); System.out.println("* -v OR --version - current version *"); System.out.println("* -i OR --input - input file or files *"); + System.out.println("* -c OR --config - JSON config file *"); System.out.println("---------------------------------------"); } else if(args[0].equals("--input") || args[0].equals("-i")){ @@ -41,7 +42,7 @@ public static void main(String[] args) { try { Object configObject = parser.parse(new FileReader(args[1])); JSONObject configJsonObject = (JSONObject) configObject; - + String input = ""; String output = ""; From 8ec668f70c14a84d0c98d15a719cc4e3e10691bb Mon Sep 17 00:00:00 2001 From: Leyang Yu Date: Wed, 6 Oct 2021 15:56:31 -0400 Subject: [PATCH 4/5] Updated ssgApplication.jar --- .../ssgApplication_jar/ssgApplication.jar | Bin 8185 -> 32280 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/out/artifacts/ssgApplication_jar/ssgApplication.jar b/out/artifacts/ssgApplication_jar/ssgApplication.jar index f363456dd2e769083f340e5a415f62ef1f4e610b..a0b53f035da5d684e9872b280551aaabe32d0edc 100644 GIT binary patch literal 32280 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 C4bYGP delta 7691 zcmY*;WmFu>(k<@p5G+Ut7Tnz#oZtj^x8Mv+aEHL)GPt`t1P>5oaCdit`#Wd7wZ40A z_m8gX-nF{=SMREw_5%AThN-3qk3ax}f`S6$3X({`bVEghfkA=!*8$7IQo;Yb+Q2fv zm!L|36Je!6IwS$SOBPZFyU)*3Mf#Et<+Ia7WrS)>geY)9a7|xEB($k-{g*|y(RsQSacsK>-;aeislRjcO2mY#WFZcHcFrou| zrsRX2VWI56v>I_PA{hgsIyy7Gfn@eUEnH?AZJA0??gWP;vlka%`bY^rS`s1REoA6C+iT9D2!H=< zB!*%PlwsR0Y+YQ*I+ox)niQmRFWAiCIK`RCgNfRaRVewzen1(qSDo2Wz?$HJRzwkP zHc~05L~BNSIcwaxD)TPC4zdk6bN}R2m}0}Wv7UEKSCtiX=q}vA^ZUIrp_|M53;1Bq zDT6D_pDSTWWs=l$qN;H;VtBlgD}mdA_I$q#B>RcZT?Tj|pRT6Xwn^f;Y~5wz(VVW# zallc6a#+7dN60NxTx`^P+xURKOWyCPYdWgr995nO<}`wO^cu78q`ON_GZ6Av7~+cJ+zSFNlK!?X(q^mrSV@W*l~-JkyTm ze$dXd2=shiogu``Y-o(~%I{BQcJAmc_*naK?WVY?i>IabDRLJm0jZxB#G852#amd1R%!mEVs>R&B8F zOeo3?qD30?DWzkX9-G+rDEwK^#BH38kz;^QaHG9M8v6-ml;L_{`Ykm*!3Ycn0c0lJ zi@PMg(rR#;NRTdalst?Fp2ff9u*jQo89P${VgS3l9pKBZ-G+2XdV4HHbR4S{vVHb@ zY{C-r`gL`v@fm7;Y3Pskj$f)C^&`S$_8uW4V#<8Mp30IrC@G-yrNZpgH=spaib3-5 z-fW5iiT$@0E@kvp5(+C&__?eKB=`jL0Sd=-ULaVmklPH`C)7IDAa(CrNMex8?VVqN z3MeRb3q?-8cV#4d#njKebAi=@#OZ%yrK&E|tPSpNJ}$tXI$v)<`obetP_GO5mJZ^( zF>j$`bViI#3fE1FQ+S)(W>>7H`89{o5EeRH|9ZktetY_a^ybZDhN;XBk`D{zwV0X+ zxEN^R54w<_yf55E?z^I`LWB&_AW#a|f9QKgI3&0ygR3&^$|ls@3h`laY?p^uX3=%D zx9>3$KdbM!V9Ry#iBIdVgelZv=#Ax0wt?o`GV0@lPC5*OGWc`WoW3YOkkB^Xj->fX zuw5!P9wP`Mq0_@*=avb9)L!Ei)DR7m1N|!(d;(PnJL>l^bXH%)DYBfGyM@^l_jmw4^MLQUmI_oLVb>&#yhUq9G_k{KTmZzU5Pj8$iL zyD`2Q7ndy+9RZIFb#Jr0ptV8kN4_Ui}F~ijbq#o!~(C0_R1*ek9wjV}M*lLQ%DC}3n8z|R^Ffd?r7?}Tj9K(JR z;A>zOaZ{Z zICrqJwq&-o$+OLzE)GS=fJgcH2}J=7pudZbkwown#X1)mC$5>%5f!tM4w204&Dm2& zA7Ibd^A^z5bkX&=e&2oKzwo?jf4~N}_zCM7?@_<9Bb9oSe zaAhhc8pJ>#d^D`_5DoJPsTlGxKoQ@>ce@3MiH7zhR;V(2>-QQzLu33Zpdpi*=4d&f z}YFUWO zgkwgkN)pIYj!T~~HD{5KH<^kfjVuT=AGr{oI#AIkZ6j^~o4!rU+6f9<=$28Q(+i-_ zwyX+!S8!N{;LF<42p8IUeJRG5JvyZ zz$Lz?)SNA)pH{Du-;_(x@1}`I@C-}csYZB`Wf}Jwp((NLvZuR06Yf4U z%QHTp#_Hlc{InfVmNPL2oTPpQ6=daq|I;c=Un=E-It{5zrdHp6GLN%u-G}7^R8%_X zm4MrcydG%W zyK@S-dip%TDHjGm-ZkkD*(uKz3XU_}1)lSf=>lG*iFs2WueizkUEw727-vSNI=DMy zbPfmd7!lvAwn`q-e?2K#nRy9j*P4a7i)WYm>d0BkS$Bvk0D(YoOc|~ zlpD4+W%`f057Y3^HDvf2 zfZW1X!zIrtj|HZrod#2u+Ynej^sbQ8;lHN-9;W7WCljb3oyE>_-3K!S#uFj|hq(a{ zcd@!y4=IO*0j&1Ch|ShdzAgrYP`Fru3$txOfyDbhBMD_YqJQe3)*-0FZeZfjCwM5#3W`LxW`P2F5O1tlw_w~r@Lxdn6iQl zFe;5!|)(x$M z(ZjFr?xVBKh=r8vzBS7g|3URtQuX;Yej|hSZRP)CErPDq5gQJia*Pzw{Og05d!{i-lVj zN-ZrMCvoA;ek29qsu<@B^y%xesX9b)mYlKv!g*AO(-$NS6dBa+qfs4T+^!0_Nmv@+ zAuGmn=w2jF#b0Tr{9#?N?HB)5m9{)rT3h;J+9#)O1iZ5+SS}9Bc8mp25%WUMyqF`9 z?v9tjmm?t~zJPcy@zkQkL=KP&zb7vtHnhnxs!=o`oAkrRDwucMHRE#<`>^5Y>XIEJbLUl1R=t_kMCn;OFy!ljS{OD%LrVq60^;sDYlbuW zp~nc=HTr6S_X09V_zLpc2X?UK5v~{fP+{F*YAg9&erS<88&a^4;vKBC6GzW%Gb)@6 zsvp4flodU2i>u^1yycitI%*RnF5zu=zwrQS>!wTXOY@rYw=qcEpD^)VV3ev)VpM4T33p>a=~I20A1f`!kzEEYG&cEXgb|3K$P9@%8b&5%eN z&%k5LT>C;Vy#`;4k?>J^oBLWW}^6H{`wN`}gK_bDzD2%#`!< zy&cf(-(x$IvbrwcgpQbu6nc6VrA4UP+XKRhg=vlkiCyrt^?5?wrQKeQ!5Z>EJso%*Ntd2W|2DYSXeSSycQ%u^AJgWaQsra zXN{WEi%ox5{}?>h6>MzRbr=mIXGZexve#!54N7*j2VTwdtQB}AN2V*XHD$|;tNEGi zvA|)|c*8a^EKi!ux!4eS;2IyY99v(e+=&ObbomB6vs7pFI^vxjlj@%BS-22Y2vi9~ zHyyZQx?nA&Yze!!>4S8_8f=8aZ!I6_GQ!w$9|uSss9(P?e#R+7(awUWvc=AqsOCjA zo0DYk;9q1vTQ=E;;!k839n1oQJAIuJ0+e)J*^u&qZ_@EpXK%ajn-^ET(%Qk*&Ad00S9CYM991(C^HgAQN7;J z>9uk@>1#L~N^J|k61w!4zBIqtB$R$MxgeZ7#LukNa5qUk>=RXJl5-d|s)L88iTW@g zis7f?CbYKeIeL4-UOH@kX^z2>1g^n$O(W0QXG8W&sc==w%}Qbx)}{9e&vR|5$(A50-aZXb|_*x<4Vnm!20I9(D`CBgZN0wryc!US$c+`=ly zqTp;mUCoQ2akldrt?ru9!AYEEBO6DX&ew&#|*5u$HN6!Dvhc)O1>A zKfZcK0U6fQ;>QbOlwyCg8UNbHC$0_csbV16T|jKk?!Dt${3n@c`CMxv=-=}#wcOO` z2)5tvF`z1^qn-n(94ZsM5UqlVj&$;mH3Ut>JLwlrJ2*d5-iAf5Q@A^@uNY_{2Sppw z3p--AiQyEXiChsJbIUh{5iHeve0NO(_n=&xh@3<6gt2`1-Y-QiODQRGuZe9*gnaES zJmR`Pt#fb}^d>wSi$TS>^bwGXDn&sDZD#070^QOW<+mJE26V(2f2yYLs!Crc&VP3- zNIlC3ofSA!a zm7*vMuLdljyF6LX?S=(Qth@AwbQGFAp=QtxE-SM-cjs9__wl~ENF|#!i0e_CHwEf?%(F0HVG3b zR>xkKT!%D(p<@gK{1E}g)`sq5(kFz)%E-u}+FU(6Joh$T8$8J-Qcq;hzSBRRo*MBb11Vp(RQ(&TM7YpdM)2UVzfU|)_;p`r zU%XD-Q$PaVwk=`Uda1NJN${EOOutHiWJ8fOdTkLk^6gQ5v_mmVQVxNvbOaVk6=}Vs zuxZIx`h+$8Czh*K`AGPj>(o23Oe&koOuU=pOvjf*S3VU#HfY(MH7-3r`h>@LmD>z- zajqAcF`t87d!ig$Re!8kNe=rlT^V(%4nAMO);$Gpf7k8}Cjjd9$`J_XZe|66kO_gB zy~6}RgI)##;Md*~3!wgx6du!dv7_%Ao@A9!JOJgM-&RV}W4bXmP||bNMefEmI&rxW zJY8kpZXe~UPIAX-WhCj(xo2ViGIn(5Q29P}2C>}}qOVkK3p*#3lY0VpRfEq|6-#ZE zA@e1-X-5OT%43H&_gUVH#D43q zvJ+esnRub$^7l`lc#R$X1)}?i{N-eJsza0&AEZsq`dngf95t<4Lja%w2g5w4Ust}_ zLD@#jof@s4xKKV_CSx#F>Xgg)U1X3g;&DZohzQSI%>l670vJ}PLS__XglB+2xds*V zJVPC&RN#DEkn@V}hcbFt5-I4~FVh6zrGPVNiV+fB$j7G6R7i8^XRHEHdGl4#gsPo~ zw(U5%P6<|%aHsMJr9h6U;&z>7&pbEgKeUI2*K}LLCbzEL=UA2Tyjk}z5itw+8F!+| zxiqT-H;Q$&KU57j?U&7T6g|d#Y09=P4u0xsm{u$9aGHs%@1VVk#c~)qorhj zNbhnd!7)CV#I@90#aa=GwRONB?8}N$v^aJTL|>x58{y?R+k?E7FxYlnF;zE(=t=?o zUUfMT<8>#x9YHP{1a2VqM(ULJTExud?%$_miIOeGx)tn8DN?cNOYQ)c9R{)hrkF=k z2=wy%OHeP>wbXoN1aUuYKmaz6I za)e8gShtbRAt?H}-lV)*XXf-cc_XviGcY@rK&k9$i@ZF84PhmGMVyl93v&jS zpYoqGgGt3IJQc5Wr}Si3lu8Z9XNoz%-wkToA_bPY9I7E4Ge*VCj!Kz~w8z+j8Pc{K z9?TimN9^sM&mF^2E5kBh-<~UG0~jX+9!bGOV_15I`#K@UBKj ze#hARVl>iL?cK!C4<%Mu=FWK%6>V;Muh*eLI0$Bk=Ig_2*beCDPuuqtbSrHnk5fkr zjo+9^PTE`JnYj`8>c2C9okJl7=|DVb=ZJ_s&?pf=PX!{Rd31E+@-g*$EO0#+qFm&g zG7WLo@rYv*?xBfmeaqGoW|$g_7Owh+Xzmi!)_QC4SgxTDYvsexu)D$NU9{)(c`*>{ zw`U676ds4y-|^ZsCnlDD2!Ych7CWHM@i` zmS6xYG42=25238~X}A*$y;O9ozEaJAMK^!)oRQ}TCt@+&?vY3S&HEzq!9@khWlz}Y z{?p1{*Z^i=UXV(}a1gdQxuF9yG&U84OHcF;|IzFRv>CAy(7X_~kBfCy7CWo`N9r7V z2we>+f6!=8T<(TOb5p!^hi1M$mRnjfUgDehTwqk#rSLq(&ksyw7Nh0FwQmpg5{_o1 z%8@1%$90g&ce2x6F$}+{zQ;5E7;U;p!9c8y!xgyxOE>bHSSkrP5n*`|tg9AKxPFV< zn(3Y7Y#n^pX(;1T6z!=De*>%>R8EdgJyd5i`R5Wm2cEwkqmgzXa#2TQoQu^yo}Db) zrC|W7M?q?>X`>_MEphD?oYV0|+Hf&6uw)94u-cYCoM}UVk1D6*@50?@p{C4WXoGaO z_{(@+0JY5mC5l|AeX}%GPQNcGuiO?Z$|iH=z;(q@LZXUkJCH$jdnytg2N zSMj@4H#)w1CbdDYQ}v?a@R?MS#K)j5_N6o09;vJkC1V(O48Lz|?;3VjifIk)aH`LW zHJYJo!QI!qGp16jKA2ag?fz*ZD;Ke~axDamYMWE-=I+a`adDEbY`kNj(ggK;Dk!wP z`sdcq82mt-#F!ywcVBOSbRb*uJ0jyp^AlXsmA=BDnnfBy>o(`K<@Yvu85>yE*Szzg z<}vK8HaQpjZ#xhlhx;BON`p_Z=mc}J`%qsj*0Uxd#v8-{a&*t-fs%+WW2GiGGoh%( zJ9>vk1V06(GyQ>~s6|7N;v#X1$$eDWnrO=MUDBV`Rio#8lQNuh!;Cftx^crLN(9&_ zy8FLI5jB$f=?jeMZ2J;`pl*b2dKNuJob7x03 zHAPss|2ot7XZ!yK#{XIW8rd*lDo--1f0R=V_N)K&&A@%pC#v(Ua Q$p6eKSQr?5%74B82kWbxLjV8( From 03e4e20cbd3a5e0cf452e23ea21c109bcca1e325 Mon Sep 17 00:00:00 2001 From: Leyang Yu <59708190+lyu4321@users.noreply.github.com> Date: Wed, 6 Oct 2021 16:15:09 -0400 Subject: [PATCH 5/5] Update README.md --- README.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d5920a0..b6c30f4 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,14 @@ argument option "-h" or "--help" will display the list of command options argument option "-i" or "--i" will allow user input the single file or files by passing the directory. It supports both .txt and .md (feature: Heading, Bold) +argument option "-c" or "--config" will allow users to specify a JSON config file that contains input and optional output values, such as: + +```bash +{ + "input": "docs", + "output": "web" +} +``` ---- ## Prerequisites @@ -27,12 +35,13 @@ java 2. run .jar file using java -jar with the argument ```bash java -jar out\artifacts\ssgApplication_jar\ssgApplication.jar -i +java -jar out\artifacts\ssgApplication_jar\ssgApplication.jar -c ``` ---- ## Output -You can find the generated outputs at \dist +You can find the generated outputs at \dist or the custom directory specified in the config file ---- ## Demo @@ -46,6 +55,7 @@ java -jar out\artifacts\ssgApplication_jar\ssgApplication.jar -h --------------------------------------- * -v OR --version - current version * * -i OR --input - input file or files * +* -c OR --config - JSON config file * --------------------------------------- ``` @@ -58,6 +68,15 @@ java -jar out\artifacts\ssgApplication_jar\ssgApplication.jar -i sources\Sherloc >The Red Headed League.html has been created in dist! ``` +```bash +java -jar out\artifacts\ssgApplication_jar\ssgApplication.jar -c config.json +>Silver Blaze.html has been created in web! +>The Adventure of the Six Napoleans.html has been created in web! +>The Adventure of the Speckled Band.html has been created in web! +>The Naval Treaty.html has been created in web! +>The Red Headed League.html has been created in web! +``` + ---- ##License MIT