Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom front matter export lands in debugger #165

Closed
tsdye opened this issue Jun 13, 2018 · 5 comments
Closed

Custom front matter export lands in debugger #165

tsdye opened this issue Jun 13, 2018 · 5 comments

Comments

@tsdye
Copy link

tsdye commented Jun 13, 2018

Aloha Kaushal,

I'm trying to get an export that includes the menu = "main" line as in this exampleSite from the light-hugo theme:

+++
title = "(Hu)go Template Primer"
description = ""
tags = [
"go",
"golang",
"templates",
"themes",
"development",
]
date = "2014-04-02"
categories = [
"Development",
"golang",
]
menu = "main"
+++

I have this in the Org mode file:

  • FAQ
    :PROPERTIES:
    :EXPORT_HUGO_SECTION: post
    :EXPORT_HUGO_CUSTOM_FRONT_MATTER: :menu main
    :END:

When exporting with all subtrees to files, I land in the debugger like so:

Debugger entered--Lisp error: (wrong-type-argument listp "main")
assoc(menu "main")
org-hugo--gen-front-matter(((title . #("Why should undocumented immigrants be allowed to stay?" 0 54 (:parent (#("Why should undocumented immigrants be allowed to stay?" 0 54 (:parent #4)))))) (audio) (author "Hawaii J20") (description) (date . "2018-06-12T12:32:00-10:00") (publishDate) (expiryDate) (aliases) (images) (isCJKLanguage) (keywords) (layout) (lastmod . "2018-06-13T12:27:08-10:00") (linkTitle) (markup) (outputs) (series) (slug) (tags) (categories) (type) (url) (videos) (draft . "false") (headless) (creator) (locale) (blackfriday) (menu) (resources) (menu . "main")) "toml")

Here is the ox-hugo debugging information:

  • Debug information for =ox-hugo=
    ** Emacs Version
    #+begin_example
    GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21)
    of 2017-09-22, modified by Debian
    #+end_example
    ** Org Version
    #+begin_example
    Org mode version 9.1.13 (9.1.13-elpaplus @ /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/)
    #+end_example
    ** Hugo Version
    #+begin_example
    Hugo Static Site Generator v0.40.1 linux/amd64 BuildDate: 2018-04-25T17:16:11Z
    #+end_example
    *** Org =load-path= shadows
    Warning: Possible mixed installation of Org
    #+begin_example
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-js hides /usr/share/emacs/25.2/lisp/org/ob-js
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-octave hides /usr/share/emacs/25.2/lisp/org/ob-octave
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-calc hides /usr/share/emacs/25.2/lisp/org/ob-calc
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-emacs-lisp hides /usr/share/emacs/25.2/lisp/org/ob-emacs-lisp
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org hides /usr/share/emacs/25.2/lisp/org/org
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-matlab hides /usr/share/emacs/25.2/lisp/org/ob-matlab
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-docview hides /usr/share/emacs/25.2/lisp/org/org-docview
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-crypt hides /usr/share/emacs/25.2/lisp/org/org-crypt
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox-html hides /usr/share/emacs/25.2/lisp/org/ox-html
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-io hides /usr/share/emacs/25.2/lisp/org/ob-io
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-org hides /usr/share/emacs/25.2/lisp/org/ob-org
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-table hides /usr/share/emacs/25.2/lisp/org/org-table
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-mhe hides /usr/share/emacs/25.2/lisp/org/org-mhe
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-java hides /usr/share/emacs/25.2/lisp/org/ob-java
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-sqlite hides /usr/share/emacs/25.2/lisp/org/ob-sqlite
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-awk hides /usr/share/emacs/25.2/lisp/org/ob-awk
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-dot hides /usr/share/emacs/25.2/lisp/org/ob-dot
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-src hides /usr/share/emacs/25.2/lisp/org/org-src
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-lilypond hides /usr/share/emacs/25.2/lisp/org/ob-lilypond
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-mscgen hides /usr/share/emacs/25.2/lisp/org/ob-mscgen
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox-md hides /usr/share/emacs/25.2/lisp/org/ox-md
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-compat hides /usr/share/emacs/25.2/lisp/org/org-compat
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-ledger hides /usr/share/emacs/25.2/lisp/org/ob-ledger
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-tangle hides /usr/share/emacs/25.2/lisp/org/ob-tangle
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-timer hides /usr/share/emacs/25.2/lisp/org/org-timer
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-ditaa hides /usr/share/emacs/25.2/lisp/org/ob-ditaa
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox-beamer hides /usr/share/emacs/25.2/lisp/org/ox-beamer
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-latex hides /usr/share/emacs/25.2/lisp/org/ob-latex
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-macro hides /usr/share/emacs/25.2/lisp/org/org-macro
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-gnus hides /usr/share/emacs/25.2/lisp/org/org-gnus
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-C hides /usr/share/emacs/25.2/lisp/org/ob-C
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-clock hides /usr/share/emacs/25.2/lisp/org/org-clock
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-shen hides /usr/share/emacs/25.2/lisp/org/ob-shen
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-lisp hides /usr/share/emacs/25.2/lisp/org/ob-lisp
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-ruby hides /usr/share/emacs/25.2/lisp/org/ob-ruby
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-ctags hides /usr/share/emacs/25.2/lisp/org/org-ctags
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-lob hides /usr/share/emacs/25.2/lisp/org/ob-lob
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-screen hides /usr/share/emacs/25.2/lisp/org/ob-screen
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-core hides /usr/share/emacs/25.2/lisp/org/ob-core
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-habit hides /usr/share/emacs/25.2/lisp/org/org-habit
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-ocaml hides /usr/share/emacs/25.2/lisp/org/ob-ocaml
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-plot hides /usr/share/emacs/25.2/lisp/org/org-plot
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox-man hides /usr/share/emacs/25.2/lisp/org/ox-man
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-protocol hides /usr/share/emacs/25.2/lisp/org/org-protocol
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox-org hides /usr/share/emacs/25.2/lisp/org/ox-org
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-id hides /usr/share/emacs/25.2/lisp/org/org-id
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-entities hides /usr/share/emacs/25.2/lisp/org/org-entities
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-makefile hides /usr/share/emacs/25.2/lisp/org/ob-makefile
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-info hides /usr/share/emacs/25.2/lisp/org/org-info
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox-latex hides /usr/share/emacs/25.2/lisp/org/ox-latex
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-css hides /usr/share/emacs/25.2/lisp/org/ob-css
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-bbdb hides /usr/share/emacs/25.2/lisp/org/org-bbdb
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-sql hides /usr/share/emacs/25.2/lisp/org/ob-sql
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox-odt hides /usr/share/emacs/25.2/lisp/org/ox-odt
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-indent hides /usr/share/emacs/25.2/lisp/org/org-indent
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-version hides /usr/share/emacs/25.2/lisp/org/org-version
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-feed hides /usr/share/emacs/25.2/lisp/org/org-feed
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-fortran hides /usr/share/emacs/25.2/lisp/org/ob-fortran
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-picolisp hides /usr/share/emacs/25.2/lisp/org/ob-picolisp
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-datetree hides /usr/share/emacs/25.2/lisp/org/org-datetree
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-comint hides /usr/share/emacs/25.2/lisp/org/ob-comint
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-inlinetask hides /usr/share/emacs/25.2/lisp/org/org-inlinetask
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox-icalendar hides /usr/share/emacs/25.2/lisp/org/ox-icalendar
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-asymptote hides /usr/share/emacs/25.2/lisp/org/ob-asymptote
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-attach hides /usr/share/emacs/25.2/lisp/org/org-attach
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-clojure hides /usr/share/emacs/25.2/lisp/org/ob-clojure
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox-texinfo hides /usr/share/emacs/25.2/lisp/org/ox-texinfo
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-maxima hides /usr/share/emacs/25.2/lisp/org/ob-maxima
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-w3m hides /usr/share/emacs/25.2/lisp/org/org-w3m
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-ref hides /usr/share/emacs/25.2/lisp/org/ob-ref
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-list hides /usr/share/emacs/25.2/lisp/org/org-list
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-bibtex hides /usr/share/emacs/25.2/lisp/org/org-bibtex
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob hides /usr/share/emacs/25.2/lisp/org/ob
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-perl hides /usr/share/emacs/25.2/lisp/org/ob-perl
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-irc hides /usr/share/emacs/25.2/lisp/org/org-irc
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-eshell hides /usr/share/emacs/25.2/lisp/org/org-eshell
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-table hides /usr/share/emacs/25.2/lisp/org/ob-table
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-R hides /usr/share/emacs/25.2/lisp/org/ob-R
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-install hides /usr/share/emacs/25.2/lisp/org/org-install
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox-publish hides /usr/share/emacs/25.2/lisp/org/ox-publish
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-eval hides /usr/share/emacs/25.2/lisp/org/ob-eval
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-loaddefs hides /usr/share/emacs/25.2/lisp/org/org-loaddefs
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-archive hides /usr/share/emacs/25.2/lisp/org/org-archive
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-haskell hides /usr/share/emacs/25.2/lisp/org/ob-haskell
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-footnote hides /usr/share/emacs/25.2/lisp/org/org-footnote
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-sass hides /usr/share/emacs/25.2/lisp/org/ob-sass
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-agenda hides /usr/share/emacs/25.2/lisp/org/org-agenda
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox hides /usr/share/emacs/25.2/lisp/org/ox
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-mouse hides /usr/share/emacs/25.2/lisp/org/org-mouse
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-plantuml hides /usr/share/emacs/25.2/lisp/org/ob-plantuml
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-element hides /usr/share/emacs/25.2/lisp/org/org-element
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ox-ascii hides /usr/share/emacs/25.2/lisp/org/ox-ascii
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-macs hides /usr/share/emacs/25.2/lisp/org/org-macs
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-scheme hides /usr/share/emacs/25.2/lisp/org/ob-scheme
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-keys hides /usr/share/emacs/25.2/lisp/org/ob-keys
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-mobile hides /usr/share/emacs/25.2/lisp/org/org-mobile
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-faces hides /usr/share/emacs/25.2/lisp/org/org-faces
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-rmail hides /usr/share/emacs/25.2/lisp/org/org-rmail
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-capture hides /usr/share/emacs/25.2/lisp/org/org-capture
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-exp hides /usr/share/emacs/25.2/lisp/org/ob-exp
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-pcomplete hides /usr/share/emacs/25.2/lisp/org/org-pcomplete
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-python hides /usr/share/emacs/25.2/lisp/org/ob-python
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/org-colview hides /usr/share/emacs/25.2/lisp/org/org-colview
    /home/dk/.emacs.d/elpa/org-plus-contrib-20180611/ob-gnuplot hides /usr/share/emacs/25.2/lisp/org/ob-gnuplot
    #+end_example
    Study the output of =M-x list-load-path-shadows=.
    ** =ox-hugo= defcustoms
    |org-hugo-default-section-directory |"posts"|
    |org-hugo-use-code-for-kbd |nil|
    |org-hugo-preserve-filling |t|
    |org-hugo-delete-trailing-ws |t|
    |org-hugo-prefer-hyphen-in-tags |t|
    |org-hugo-allow-spaces-in-tags |t|
    |org-hugo-tag-processing-functions |(org-hugo--tag-processing-fn-replace-with-spaces-maybe org-hugo--tag-processing-fn-replace-with-hyphens-maybe)|
    |org-hugo-auto-set-lastmod |nil|
    |org-hugo-export-with-toc |nil|
    |org-hugo-export-with-section-numbers |nil|
    |org-hugo-front-matter-format |"toml"|
    |org-hugo-default-static-subdirectory-for-externals |"ox-hugo"|
    |org-hugo-external-file-extensions-allowed-for-copying |("jpg" "jpeg" "tiff" "png" "svg" "gif" "pdf" "odt" "doc" "ppt" "xls" "docx" "pptx" "xlsx")|
    |org-hugo-date-format |"%Y-%m-%dT%T%z"|
    |org-hugo-paired-shortcodes |""|
    |org-hugo-langs-no-descr-in-code-fences |nil|
    |org-hugo-front-matter-format |"toml"|

All the best,
Tom

@kaushalmodi
Copy link
Owner

Hello Tom,

menu is a special front-matter parameter.

You would set it using:

...
:EXPORT_HUGO_MENU: :menu main
...

That will generate something like:

[menu.main]
  weight = 2002  
  identifier = "your-post-title-sluggified"

The weight is auto-calculated by ox-hugo by default.

But this will still work with that theme.

I will add in a check to ensure that user is using HUGO_MENU for menu front-matter and not HUGO_CUSTOM_FRONT_MATTER.

Let me know if the above works. Even if it works, you can leave this issue open. I will close it once I add the check.

@kaushalmodi
Copy link
Owner

If you update ox-hugo to the latest master, it should fail more gracefully with a helpful error message.

I haven't documented menu front-matter yet.. but you can find a lot of examples in https://github.com/kaushalmodi/ox-hugo/raw/master/test/site/content-org/all-posts.org. Search for EXPORT_HUGO_MENU in there.

@tsdye
Copy link
Author

tsdye commented Jun 13, 2018

Hi Kaushal,

Yep, that works. Thanks!

All the best,
Tom

@kaushalmodi
Copy link
Owner

Awesome! I've opened another issue to track the pending documentation for menu front-matter.

After that last commit, you shouldn't get that debugger backtrace.

Thanks for reporting!

@kaushalmodi
Copy link
Owner

kaushalmodi commented Jun 14, 2018

If you like I have a Hugo exampleSite completely Orgified here it is: https://raw.githubusercontent.com/kaushalmodi/hugo-bare-min-theme/master/exampleSite/exampleSite.org.

As I was blindly converting that using pandoc, I noticed that some of the content in there is pretty outdated.. I might update that Org file at some point..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants