This sounds fantastic, Kaushal. I'm struggling to follow, so wl lask some questions inline. On Fri, Dec 8, 2017 at 2:58 PM, Kaushal Modi wrote: > On Fri, Dec 8, 2017, 2:29 PM Matt Price wrote: > >> Hi everyone, >> Feeling a little rude after a long absence in which I dropped all my >> non-work commitments -- but still here to ask a question! >> > > Hello! > > I'm setting up a new workflow using Kauhsal's ox-hugo. I keep all my >> course materials in a few org files & publish to hugo-flavoured markdown. >> > > Awesome! :D > > My source materials live in one git repo, and my website in another. >> After exporting any of my my courses to the local hugo directory, I'd like >> to run a shell script that I'll keep in my org-files directory. >> >> That script >> - cds to the website repo directory, commits changes to the website >> master branch, - runs hugo, >> - switches to the "public" directory of compiled html pages, which has a >> worktree checked out to the gh-pages branch, >> - commits changes there as well, and then >> - pushes both branches to github. >> >> The script seems to work OK, and now I would like to run it every time I >> export from the appropriate projects. Is there a good way for me to do >> this? I guess a hook that only runs under certain conditions? >> >> If I can get this to work, and then also auto export every time I commit >> the org-files to master (maybe with a post-commit git hook of ~emacsclient >> -e '(org-publish-project "course1"~ ?), then I will maybe be almost happy! >> > > I haven't yet got to ox-publish to work with ox-hugo, because of the > unique flow for subtree-based exports where we want to export only subtrees > with a specific property (EXPORT_FILE_NAME). > > But I was finally able to achieve something like that using a Makefile [1] > + Netlify (or GitHub Pages/Travis CI or GitLab CI). > ok, great. > > A very recent example (few days) is how I helped set up the use-package > website publishing flow. > > - ox-hugo + Hugo using Makefile + GitHub Pages. > > You *only* need to commit the use-package.org[2] to the GitHub repo, and > https://jwiegley.github.io/use-package/ updates in a minute or so. The > Travis CI simply calls "make doc". That takes care of: > - Installing dependencies if needed on the CI machine > - Exporting Org to Markdown using ox-hugo > - Running hugo > - Commiting published HTML to the gh-pages branch > - And the site gets deployed, just like that :) > > so, - the doc/ directory contains the full Hugo source directory, with config.toml, content/, layouts, etc., as well as the theme, which looks like it's statically installed - looks like maybe the hugo html ends up in public, but then it gets moved somehow (can't quite figure out how) - the ox-hugo files are kept somewhere I guess - presumably any personal config has to be replicated somewhere on the web where travis can access it - is there any more setup that needs to be done on Travis? - I have 4 main org files; 3 of them get copied per-header, and one as a whole file. Is that an issue? This all looks really ocol; too bad it's a bit out of my range, I'd like to understand it a little better! To me the shell script idea feels easier, but I guess it's also a little brittle > PS: I publish the ox-hugo package website[3] the same way too, but using > Netlify (/which is the better than GitHub Pages or Gitlab CI IMO -- free > too/). See the footer of that site for the 1-file Org source. > Sticking with Github for now since all my course stuff is there, probably easiest for my studnets ot have everything in the same place. thank you! > > [1]: https://github.com/jwiegley/use-package/blob/master/doc/Makefile > > [2]: https://github.com/jwiegley/use-package/blob/master/use-package.org > > [3]: https://ox-hugo.scripter.co/ > > -- > > Kaushal Modi >