kaushalmodi / ox-hugo

A carefully crafted Org exporter back-end for Hugo
https://ox-hugo.scripter.co
GNU General Public License v3.0
871 stars 132 forks source link

Underscore is being URI encoded #236

Closed BloggerBust closed 2 years ago

BloggerBust commented 5 years ago

Actual Behavior

Underscore in URI is being encoded

Expected Behavior

The underscore is from the unreserved set of encodable characters. While it is technically not wrong to encode these characters it is discouraged since URI processors may not treate the encoded form and unencoded forms equivalently. See: percent-encoding unreserved characters from wikipedia.

So the expected behaviour should be that unreserved characters, which include the underscore, in a URI are not encoded.

How to Reproduce the Issue

Create a link with an underscore in the URI and then export the org file to markdown. When you inspect the markdown you will see that it has been percent encoded. If the URI links to a service that does not handle unreserved character encoding in an equivalent way then the URI request will return a 404.

Example Org File

Generated Markdown File or Error

Ox-Hugo Debug Information

Debug Info # Debug information for `ox-hugo` ## Emacs Version GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30) of 2018-11-10 ## Org Version Org mode version 9.1.14 (9.1.14-9-g131531-elpaplus @ /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/) ## Hugo Version Hugo Static Site Generator v0.48-456F5476CF9BF96C558448372058130FEE1F9330/extended linux/amd64 BuildDate: unknown ### Org `load-path` shadows **Warning**: Possible mixed installation of Org /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-capture hides /usr/share/emacs/26.1/lisp/org/org-capture /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-man hides /usr/share/emacs/26.1/lisp/org/ox-man /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-python hides /usr/share/emacs/26.1/lisp/org/ob-python /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-attach hides /usr/share/emacs/26.1/lisp/org/org-attach /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-shen hides /usr/share/emacs/26.1/lisp/org/ob-shen /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-picolisp hides /usr/share/emacs/26.1/lisp/org/ob-picolisp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-calc hides /usr/share/emacs/26.1/lisp/org/ob-calc /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-ctags hides /usr/share/emacs/26.1/lisp/org/org-ctags /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-forth hides /usr/share/emacs/26.1/lisp/org/ob-forth /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-matlab hides /usr/share/emacs/26.1/lisp/org/ob-matlab /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-docview hides /usr/share/emacs/26.1/lisp/org/org-docview /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-io hides /usr/share/emacs/26.1/lisp/org/ob-io /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-archive hides /usr/share/emacs/26.1/lisp/org/org-archive /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-bibtex hides /usr/share/emacs/26.1/lisp/org/org-bibtex /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-mscgen hides /usr/share/emacs/26.1/lisp/org/ob-mscgen /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-html hides /usr/share/emacs/26.1/lisp/org/ox-html /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-core hides /usr/share/emacs/26.1/lisp/org/ob-core /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-protocol hides /usr/share/emacs/26.1/lisp/org/org-protocol /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sed hides /usr/share/emacs/26.1/lisp/org/ob-sed /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-stan hides /usr/share/emacs/26.1/lisp/org/ob-stan /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-faces hides /usr/share/emacs/26.1/lisp/org/org-faces /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-agenda hides /usr/share/emacs/26.1/lisp/org/org-agenda /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-install hides /usr/share/emacs/26.1/lisp/org/org-install /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ocaml hides /usr/share/emacs/26.1/lisp/org/ob-ocaml /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-java hides /usr/share/emacs/26.1/lisp/org/ob-java /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-comint hides /usr/share/emacs/26.1/lisp/org/ob-comint /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-icalendar hides /usr/share/emacs/26.1/lisp/org/ox-icalendar /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-version hides /usr/share/emacs/26.1/lisp/org/org-version /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-gnus hides /usr/share/emacs/26.1/lisp/org/org-gnus /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-duration hides /usr/share/emacs/26.1/lisp/org/org-duration /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-latex hides /usr/share/emacs/26.1/lisp/org/ox-latex /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-texinfo hides /usr/share/emacs/26.1/lisp/org/ox-texinfo /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-groovy hides /usr/share/emacs/26.1/lisp/org/ob-groovy /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-vala hides /usr/share/emacs/26.1/lisp/org/ob-vala /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-tangle hides /usr/share/emacs/26.1/lisp/org/ob-tangle /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-maxima hides /usr/share/emacs/26.1/lisp/org/ob-maxima /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-footnote hides /usr/share/emacs/26.1/lisp/org/org-footnote /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-habit hides /usr/share/emacs/26.1/lisp/org/org-habit /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-list hides /usr/share/emacs/26.1/lisp/org/org-list /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-keys hides /usr/share/emacs/26.1/lisp/org/ob-keys /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-table hides /usr/share/emacs/26.1/lisp/org/ob-table /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-awk hides /usr/share/emacs/26.1/lisp/org/ob-awk /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ref hides /usr/share/emacs/26.1/lisp/org/ob-ref /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-eww hides /usr/share/emacs/26.1/lisp/org/org-eww /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-asymptote hides /usr/share/emacs/26.1/lisp/org/ob-asymptote /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-R hides /usr/share/emacs/26.1/lisp/org/ob-R /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-macs hides /usr/share/emacs/26.1/lisp/org/org-macs /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-info hides /usr/share/emacs/26.1/lisp/org/org-info /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-gnuplot hides /usr/share/emacs/26.1/lisp/org/ob-gnuplot /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-processing hides /usr/share/emacs/26.1/lisp/org/ob-processing /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-shell hides /usr/share/emacs/26.1/lisp/org/ob-shell /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-datetree hides /usr/share/emacs/26.1/lisp/org/org-datetree /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-publish hides /usr/share/emacs/26.1/lisp/org/ox-publish /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sass hides /usr/share/emacs/26.1/lisp/org/ob-sass /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-mouse hides /usr/share/emacs/26.1/lisp/org/org-mouse /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ditaa hides /usr/share/emacs/26.1/lisp/org/ob-ditaa /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-clojure hides /usr/share/emacs/26.1/lisp/org/ob-clojure /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-hledger hides /usr/share/emacs/26.1/lisp/org/ob-hledger /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ebnf hides /usr/share/emacs/26.1/lisp/org/ob-ebnf /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-css hides /usr/share/emacs/26.1/lisp/org/ob-css /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-timer hides /usr/share/emacs/26.1/lisp/org/org-timer /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-md hides /usr/share/emacs/26.1/lisp/org/ox-md /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-latex hides /usr/share/emacs/26.1/lisp/org/ob-latex /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-beamer hides /usr/share/emacs/26.1/lisp/org/ox-beamer /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-makefile hides /usr/share/emacs/26.1/lisp/org/ob-makefile /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-loaddefs hides /usr/share/emacs/26.1/lisp/org/org-loaddefs /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-exp hides /usr/share/emacs/26.1/lisp/org/ob-exp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-scheme hides /usr/share/emacs/26.1/lisp/org/ob-scheme /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-js hides /usr/share/emacs/26.1/lisp/org/ob-js /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-org hides /usr/share/emacs/26.1/lisp/org/ob-org /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-inlinetask hides /usr/share/emacs/26.1/lisp/org/org-inlinetask /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-id hides /usr/share/emacs/26.1/lisp/org/org-id /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-J hides /usr/share/emacs/26.1/lisp/org/ob-J /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-mhe hides /usr/share/emacs/26.1/lisp/org/org-mhe /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sql hides /usr/share/emacs/26.1/lisp/org/ob-sql /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-compat hides /usr/share/emacs/26.1/lisp/org/org-compat /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lisp hides /usr/share/emacs/26.1/lisp/org/ob-lisp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-plantuml hides /usr/share/emacs/26.1/lisp/org/ob-plantuml /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ruby hides /usr/share/emacs/26.1/lisp/org/ob-ruby /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lilypond hides /usr/share/emacs/26.1/lisp/org/ob-lilypond /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-odt hides /usr/share/emacs/26.1/lisp/org/ox-odt /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-lint hides /usr/share/emacs/26.1/lisp/org/org-lint /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-src hides /usr/share/emacs/26.1/lisp/org/org-src /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-ascii hides /usr/share/emacs/26.1/lisp/org/ox-ascii /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-mobile hides /usr/share/emacs/26.1/lisp/org/org-mobile /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-bbdb hides /usr/share/emacs/26.1/lisp/org/org-bbdb /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-fortran hides /usr/share/emacs/26.1/lisp/org/ob-fortran /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-abc hides /usr/share/emacs/26.1/lisp/org/ob-abc /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-crypt hides /usr/share/emacs/26.1/lisp/org/org-crypt /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-perl hides /usr/share/emacs/26.1/lisp/org/ob-perl /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-haskell hides /usr/share/emacs/26.1/lisp/org/ob-haskell /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-coq hides /usr/share/emacs/26.1/lisp/org/ob-coq /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-element hides /usr/share/emacs/26.1/lisp/org/org-element /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-indent hides /usr/share/emacs/26.1/lisp/org/org-indent /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-plot hides /usr/share/emacs/26.1/lisp/org/org-plot /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-dot hides /usr/share/emacs/26.1/lisp/org/ob-dot /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-colview hides /usr/share/emacs/26.1/lisp/org/org-colview /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-emacs-lisp hides /usr/share/emacs/26.1/lisp/org/ob-emacs-lisp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-rmail hides /usr/share/emacs/26.1/lisp/org/org-rmail /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-table hides /usr/share/emacs/26.1/lisp/org/org-table /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-org hides /usr/share/emacs/26.1/lisp/org/ox-org /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob hides /usr/share/emacs/26.1/lisp/org/ob /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-macro hides /usr/share/emacs/26.1/lisp/org/org-macro /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-eshell hides /usr/share/emacs/26.1/lisp/org/org-eshell /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lob hides /usr/share/emacs/26.1/lisp/org/ob-lob /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-w3m hides /usr/share/emacs/26.1/lisp/org/org-w3m /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-eval hides /usr/share/emacs/26.1/lisp/org/ob-eval /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-clock hides /usr/share/emacs/26.1/lisp/org/org-clock /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox hides /usr/share/emacs/26.1/lisp/org/ox /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-irc hides /usr/share/emacs/26.1/lisp/org/org-irc /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lua hides /usr/share/emacs/26.1/lisp/org/ob-lua /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-octave hides /usr/share/emacs/26.1/lisp/org/ob-octave /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-screen hides /usr/share/emacs/26.1/lisp/org/ob-screen /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org hides /usr/share/emacs/26.1/lisp/org/org /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-C hides /usr/share/emacs/26.1/lisp/org/ob-C /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-entities hides /usr/share/emacs/26.1/lisp/org/org-entities /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-pcomplete hides /usr/share/emacs/26.1/lisp/org/org-pcomplete /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sqlite hides /usr/share/emacs/26.1/lisp/org/ob-sqlite /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-feed hides /usr/share/emacs/26.1/lisp/org/org-feed /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ledger hides /usr/share/emacs/26.1/lisp/org/ob-ledger Study the output of `M-x list-load-path-shadows`. ## `ox-hugo` defcustoms
org-hugo-section "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-suppress-lastmod-period 0.0
org-hugo-front-matter-format "toml"
kaushalmodi commented 5 years ago

Hello,

I'm aware of this issue. I have tried this issue to GitHub, but they have decided to do nothing about this.

I need to percentage encode to work around a Blackfriday bug. Blackfriday treats underscores in links as the underscore markup char! The anomaly shows up if you italicize links with underscores.

So far, GitHub server is the only place where the percentage encoding is treated literally.

Let me know if you have a good suggestion to get around that Blackfriday bug .. else I might just maintain a list of domains in ox-blackfriday.el where the percentage encoding should be disallowed (and hope that the user does not italicize those links).

I'm traveling, so I wouldn't be able to commit any fix for about 3 weeks.

On Mon, Nov 12, 2018, 3:20 AM BloggerBust <notifications@github.com wrote:

Actual Behavior

Underscore in URI is being encoded Expected Behavior

The underscore is from the unreserved set of encodable characters. While it is technically not wrong to encode these characters it is discouraged since URI processors may not treate the encoded form and unencoded forms equivalently. See: percent-encoding unreserved characters https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_unreserved_characters from wikipedia.

So the expected behaviour should be that unreserved characters, which include the underscore, in a URI are not encoded. How to Reproduce the Issue

Create a link with an underscore in the URI and then export the org file to markdown. When you inspect the markdown you will see that it has been percent encoded. If the URI links to a service that does not handle unreserved character encoding in an equivalent way then the URI request will return a 404. Example Org File

-

link to example org file here is a link to an example org file. https://raw.githubusercontent.com/BloggerBust/bloggerbust.ca/a85b159b871d2a81f35e7384a9bc85a1a465395b/content-org/post/licensed-nauci-base-entry-with-apache-version-2.org

Here is an org snippet that has the issue Today I [[https://github.com/BloggerBust/nauci_base_init/][released the nauci base init source]] under Apache version 2.0.

Generated Markdown File or Error

-

Here is the final html output

https://raw.githubusercontent.com/BloggerBust/bloggerbust.github.io/c7c64667721ee098788d41f1bcb063bc28feb697/post/licensed-nauci-base-entry-with-apache-version-2/index.html

Here is the generated markdown Today I released the nauci base init source https://github.com/BloggerBust/nauci%5Fbase%5Finit/ under Apache version 2.0.

Ox-Hugo Debug Information Debug Info Debug information for ox-hugo Emacs Version

GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30) of 2018-11-10

Org Version

Org mode version 9.1.14 (9.1.14-9-g131531-elpaplus @ /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/)

Hugo Version

Hugo Static Site Generator v0.48-456F5476CF9BF96C558448372058130FEE1F9330/extended linux/amd64 BuildDate: unknown

Org load-path shadows

Warning: Possible mixed installation of Org

/home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-capture hides /usr/share/emacs/26.1/lisp/org/org-capture /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-man hides /usr/share/emacs/26.1/lisp/org/ox-man /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-python hides /usr/share/emacs/26.1/lisp/org/ob-python /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-attach hides /usr/share/emacs/26.1/lisp/org/org-attach /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-shen hides /usr/share/emacs/26.1/lisp/org/ob-shen /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-picolisp hides /usr/share/emacs/26.1/lisp/org/ob-picolisp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-calc hides /usr/share/emacs/26.1/lisp/org/ob-calc /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-ctags hides /usr/share/emacs/26.1/lisp/org/org-ctags /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-forth hides /usr/share/emacs/26.1/lisp/org/ob-forth /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-matlab hides /usr/share/emacs/26.1/lisp/org/ob-matlab /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-docview hides /usr/share/emacs/26.1/lisp/org/org-docview /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-io hides /usr/share/emacs/26.1/lisp/org/ob-io /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-archive hides /usr/share/emacs/26.1/lisp/org/org-archive /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-bibtex hides /usr/share/emacs/26.1/lisp/org/org-bibtex /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-mscgen hides /usr/share/emacs/26.1/lisp/org/ob-mscgen /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-html hides /usr/share/emacs/26.1/lisp/org/ox-html /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-core hides /usr/share/emacs/26.1/lisp/org/ob-core /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-protocol hides /usr/share/emacs/26.1/lisp/org/org-protocol /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sed hides /usr/share/emacs/26.1/lisp/org/ob-sed /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-stan hides /usr/share/emacs/26.1/lisp/org/ob-stan /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-faces hides /usr/share/emacs/26.1/lisp/org/org-faces /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-agenda hides /usr/share/emacs/26.1/lisp/org/org-agenda /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-install hides /usr/share/emacs/26.1/lisp/org/org-install /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ocaml hides /usr/share/emacs/26.1/lisp/org/ob-ocaml /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-java hides /usr/share/emacs/26.1/lisp/org/ob-java /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-comint hides /usr/share/emacs/26.1/lisp/org/ob-comint /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-icalendar hides /usr/share/emacs/26.1/lisp/org/ox-icalendar /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-version hides /usr/share/emacs/26.1/lisp/org/org-version /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-gnus hides /usr/share/emacs/26.1/lisp/org/org-gnus /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-duration hides /usr/share/emacs/26.1/lisp/org/org-duration /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-latex hides /usr/share/emacs/26.1/lisp/org/ox-latex /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-texinfo hides /usr/share/emacs/26.1/lisp/org/ox-texinfo /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-groovy hides /usr/share/emacs/26.1/lisp/org/ob-groovy /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-vala hides /usr/share/emacs/26.1/lisp/org/ob-vala /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-tangle hides /usr/share/emacs/26.1/lisp/org/ob-tangle /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-maxima hides /usr/share/emacs/26.1/lisp/org/ob-maxima /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-footnote hides /usr/share/emacs/26.1/lisp/org/org-footnote /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-habit hides /usr/share/emacs/26.1/lisp/org/org-habit /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-list hides /usr/share/emacs/26.1/lisp/org/org-list /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-keys hides /usr/share/emacs/26.1/lisp/org/ob-keys /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-table hides /usr/share/emacs/26.1/lisp/org/ob-table /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-awk hides /usr/share/emacs/26.1/lisp/org/ob-awk /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ref hides /usr/share/emacs/26.1/lisp/org/ob-ref /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-eww hides /usr/share/emacs/26.1/lisp/org/org-eww /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-asymptote hides /usr/share/emacs/26.1/lisp/org/ob-asymptote /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-R hides /usr/share/emacs/26.1/lisp/org/ob-R /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-macs hides /usr/share/emacs/26.1/lisp/org/org-macs /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-info hides /usr/share/emacs/26.1/lisp/org/org-info /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-gnuplot hides /usr/share/emacs/26.1/lisp/org/ob-gnuplot /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-processing hides /usr/share/emacs/26.1/lisp/org/ob-processing /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-shell hides /usr/share/emacs/26.1/lisp/org/ob-shell /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-datetree hides /usr/share/emacs/26.1/lisp/org/org-datetree /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-publish hides /usr/share/emacs/26.1/lisp/org/ox-publish /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sass hides /usr/share/emacs/26.1/lisp/org/ob-sass /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-mouse hides /usr/share/emacs/26.1/lisp/org/org-mouse /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ditaa hides /usr/share/emacs/26.1/lisp/org/ob-ditaa /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-clojure hides /usr/share/emacs/26.1/lisp/org/ob-clojure /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-hledger hides /usr/share/emacs/26.1/lisp/org/ob-hledger /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ebnf hides /usr/share/emacs/26.1/lisp/org/ob-ebnf /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-css hides /usr/share/emacs/26.1/lisp/org/ob-css /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-timer hides /usr/share/emacs/26.1/lisp/org/org-timer /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-md hides /usr/share/emacs/26.1/lisp/org/ox-md /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-latex hides /usr/share/emacs/26.1/lisp/org/ob-latex /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-beamer hides /usr/share/emacs/26.1/lisp/org/ox-beamer /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-makefile hides /usr/share/emacs/26.1/lisp/org/ob-makefile /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-loaddefs hides /usr/share/emacs/26.1/lisp/org/org-loaddefs /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-exp hides /usr/share/emacs/26.1/lisp/org/ob-exp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-scheme hides /usr/share/emacs/26.1/lisp/org/ob-scheme /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-js hides /usr/share/emacs/26.1/lisp/org/ob-js /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-org hides /usr/share/emacs/26.1/lisp/org/ob-org /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-inlinetask hides /usr/share/emacs/26.1/lisp/org/org-inlinetask /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-id hides /usr/share/emacs/26.1/lisp/org/org-id /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-J hides /usr/share/emacs/26.1/lisp/org/ob-J /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-mhe hides /usr/share/emacs/26.1/lisp/org/org-mhe /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sql hides /usr/share/emacs/26.1/lisp/org/ob-sql /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-compat hides /usr/share/emacs/26.1/lisp/org/org-compat /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lisp hides /usr/share/emacs/26.1/lisp/org/ob-lisp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-plantuml hides /usr/share/emacs/26.1/lisp/org/ob-plantuml /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ruby hides /usr/share/emacs/26.1/lisp/org/ob-ruby /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lilypond hides /usr/share/emacs/26.1/lisp/org/ob-lilypond /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-odt hides /usr/share/emacs/26.1/lisp/org/ox-odt /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-lint hides /usr/share/emacs/26.1/lisp/org/org-lint /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-src hides /usr/share/emacs/26.1/lisp/org/org-src /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-ascii hides /usr/share/emacs/26.1/lisp/org/ox-ascii /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-mobile hides /usr/share/emacs/26.1/lisp/org/org-mobile /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-bbdb hides /usr/share/emacs/26.1/lisp/org/org-bbdb /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-fortran hides /usr/share/emacs/26.1/lisp/org/ob-fortran /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-abc hides /usr/share/emacs/26.1/lisp/org/ob-abc /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-crypt hides /usr/share/emacs/26.1/lisp/org/org-crypt /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-perl hides /usr/share/emacs/26.1/lisp/org/ob-perl /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-haskell hides /usr/share/emacs/26.1/lisp/org/ob-haskell /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-coq hides /usr/share/emacs/26.1/lisp/org/ob-coq /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-element hides /usr/share/emacs/26.1/lisp/org/org-element /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-indent hides /usr/share/emacs/26.1/lisp/org/org-indent /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-plot hides /usr/share/emacs/26.1/lisp/org/org-plot /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-dot hides /usr/share/emacs/26.1/lisp/org/ob-dot /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-colview hides /usr/share/emacs/26.1/lisp/org/org-colview /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-emacs-lisp hides /usr/share/emacs/26.1/lisp/org/ob-emacs-lisp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-rmail hides /usr/share/emacs/26.1/lisp/org/org-rmail /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-table hides /usr/share/emacs/26.1/lisp/org/org-table /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-org hides /usr/share/emacs/26.1/lisp/org/ox-org /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob hides /usr/share/emacs/26.1/lisp/org/ob /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-macro hides /usr/share/emacs/26.1/lisp/org/org-macro /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-eshell hides /usr/share/emacs/26.1/lisp/org/org-eshell /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lob hides /usr/share/emacs/26.1/lisp/org/ob-lob /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-w3m hides /usr/share/emacs/26.1/lisp/org/org-w3m /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-eval hides /usr/share/emacs/26.1/lisp/org/ob-eval /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-clock hides /usr/share/emacs/26.1/lisp/org/org-clock /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox hides /usr/share/emacs/26.1/lisp/org/ox /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-irc hides /usr/share/emacs/26.1/lisp/org/org-irc /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lua hides /usr/share/emacs/26.1/lisp/org/ob-lua /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-octave hides /usr/share/emacs/26.1/lisp/org/ob-octave /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-screen hides /usr/share/emacs/26.1/lisp/org/ob-screen /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org hides /usr/share/emacs/26.1/lisp/org/org /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-C hides /usr/share/emacs/26.1/lisp/org/ob-C /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-entities hides /usr/share/emacs/26.1/lisp/org/org-entities /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-pcomplete hides /usr/share/emacs/26.1/lisp/org/org-pcomplete /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sqlite hides /usr/share/emacs/26.1/lisp/org/ob-sqlite /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-feed hides /usr/share/emacs/26.1/lisp/org/org-feed /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ledger hides /usr/share/emacs/26.1/lisp/org/ob-ledger

Study the output of M-x list-load-path-shadows. ox-hugo defcustoms org-hugo-section "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-suppress-lastmod-period 0.0 org-hugo-front-matter-format "toml"

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kaushalmodi/ox-hugo/issues/236, or mute the thread https://github.com/notifications/unsubscribe-auth/ADaZVZEDtjdQfDT8pIsnOrPp0KRXjji5ks5uuJvBgaJpZM4YYtLP .

kaushalmodi commented 5 years ago

To add, to get around this GitHub issue, one way is to use a link shortener that creates a link pointing to that GitHub URL.

You'll find one example here: https://scripter.co/nim-deploying-static-binaries/#fn:fn-4

On Mon, Nov 12, 2018, 8:08 AM Kaushal Modi <kaushal.modi@gmail.com wrote:

Hello,

I'm aware of this issue. I have tried this issue to GitHub, but they have decided to do nothing about this.

I need to percentage encode to work around a Blackfriday bug. Blackfriday treats underscores in links as the underscore markup char! The anomaly shows up if you italicize links with underscores.

So far, GitHub server is the only place where the percentage encoding is treated literally.

Let me know if you have a good suggestion to get around that Blackfriday bug .. else I might just maintain a list of domains in ox-blackfriday.el where the percentage encoding should be disallowed (and hope that the user does not italicize those links).

I'm traveling, so I wouldn't be able to commit any fix for about 3 weeks.

On Mon, Nov 12, 2018, 3:20 AM BloggerBust <notifications@github.com wrote:

Actual Behavior

Underscore in URI is being encoded Expected Behavior

The underscore is from the unreserved set of encodable characters. While it is technically not wrong to encode these characters it is discouraged since URI processors may not treate the encoded form and unencoded forms equivalently. See: percent-encoding unreserved characters https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_unreserved_characters from wikipedia.

So the expected behaviour should be that unreserved characters, which include the underscore, in a URI are not encoded. How to Reproduce the Issue

Create a link with an underscore in the URI and then export the org file to markdown. When you inspect the markdown you will see that it has been percent encoded. If the URI links to a service that does not handle unreserved character encoding in an equivalent way then the URI request will return a 404. Example Org File

-

link to example org file here is a link to an example org file. https://raw.githubusercontent.com/BloggerBust/bloggerbust.ca/a85b159b871d2a81f35e7384a9bc85a1a465395b/content-org/post/licensed-nauci-base-entry-with-apache-version-2.org

Here is an org snippet that has the issue Today I [[https://github.com/BloggerBust/nauci_base_init/][released the nauci base init source]] under Apache version 2.0.

Generated Markdown File or Error

-

Here is the final html output

https://raw.githubusercontent.com/BloggerBust/bloggerbust.github.io/c7c64667721ee098788d41f1bcb063bc28feb697/post/licensed-nauci-base-entry-with-apache-version-2/index.html

Here is the generated markdown Today I released the nauci base init source https://github.com/BloggerBust/nauci%5Fbase%5Finit/ under Apache version 2.0.

Ox-Hugo Debug Information Debug Info Debug information for ox-hugo Emacs Version

GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30) of 2018-11-10

Org Version

Org mode version 9.1.14 (9.1.14-9-g131531-elpaplus @ /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/)

Hugo Version

Hugo Static Site Generator v0.48-456F5476CF9BF96C558448372058130FEE1F9330/extended linux/amd64 BuildDate: unknown

Org load-path shadows

Warning: Possible mixed installation of Org

/home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-capture hides /usr/share/emacs/26.1/lisp/org/org-capture /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-man hides /usr/share/emacs/26.1/lisp/org/ox-man /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-python hides /usr/share/emacs/26.1/lisp/org/ob-python /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-attach hides /usr/share/emacs/26.1/lisp/org/org-attach /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-shen hides /usr/share/emacs/26.1/lisp/org/ob-shen /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-picolisp hides /usr/share/emacs/26.1/lisp/org/ob-picolisp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-calc hides /usr/share/emacs/26.1/lisp/org/ob-calc /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-ctags hides /usr/share/emacs/26.1/lisp/org/org-ctags /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-forth hides /usr/share/emacs/26.1/lisp/org/ob-forth /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-matlab hides /usr/share/emacs/26.1/lisp/org/ob-matlab /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-docview hides /usr/share/emacs/26.1/lisp/org/org-docview /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-io hides /usr/share/emacs/26.1/lisp/org/ob-io /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-archive hides /usr/share/emacs/26.1/lisp/org/org-archive /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-bibtex hides /usr/share/emacs/26.1/lisp/org/org-bibtex /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-mscgen hides /usr/share/emacs/26.1/lisp/org/ob-mscgen /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-html hides /usr/share/emacs/26.1/lisp/org/ox-html /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-core hides /usr/share/emacs/26.1/lisp/org/ob-core /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-protocol hides /usr/share/emacs/26.1/lisp/org/org-protocol /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sed hides /usr/share/emacs/26.1/lisp/org/ob-sed /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-stan hides /usr/share/emacs/26.1/lisp/org/ob-stan /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-faces hides /usr/share/emacs/26.1/lisp/org/org-faces /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-agenda hides /usr/share/emacs/26.1/lisp/org/org-agenda /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-install hides /usr/share/emacs/26.1/lisp/org/org-install /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ocaml hides /usr/share/emacs/26.1/lisp/org/ob-ocaml /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-java hides /usr/share/emacs/26.1/lisp/org/ob-java /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-comint hides /usr/share/emacs/26.1/lisp/org/ob-comint /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-icalendar hides /usr/share/emacs/26.1/lisp/org/ox-icalendar /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-version hides /usr/share/emacs/26.1/lisp/org/org-version /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-gnus hides /usr/share/emacs/26.1/lisp/org/org-gnus /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-duration hides /usr/share/emacs/26.1/lisp/org/org-duration /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-latex hides /usr/share/emacs/26.1/lisp/org/ox-latex /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-texinfo hides /usr/share/emacs/26.1/lisp/org/ox-texinfo /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-groovy hides /usr/share/emacs/26.1/lisp/org/ob-groovy /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-vala hides /usr/share/emacs/26.1/lisp/org/ob-vala /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-tangle hides /usr/share/emacs/26.1/lisp/org/ob-tangle /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-maxima hides /usr/share/emacs/26.1/lisp/org/ob-maxima /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-footnote hides /usr/share/emacs/26.1/lisp/org/org-footnote /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-habit hides /usr/share/emacs/26.1/lisp/org/org-habit /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-list hides /usr/share/emacs/26.1/lisp/org/org-list /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-keys hides /usr/share/emacs/26.1/lisp/org/ob-keys /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-table hides /usr/share/emacs/26.1/lisp/org/ob-table /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-awk hides /usr/share/emacs/26.1/lisp/org/ob-awk /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ref hides /usr/share/emacs/26.1/lisp/org/ob-ref /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-eww hides /usr/share/emacs/26.1/lisp/org/org-eww /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-asymptote hides /usr/share/emacs/26.1/lisp/org/ob-asymptote /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-R hides /usr/share/emacs/26.1/lisp/org/ob-R /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-macs hides /usr/share/emacs/26.1/lisp/org/org-macs /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-info hides /usr/share/emacs/26.1/lisp/org/org-info /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-gnuplot hides /usr/share/emacs/26.1/lisp/org/ob-gnuplot /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-processing hides /usr/share/emacs/26.1/lisp/org/ob-processing /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-shell hides /usr/share/emacs/26.1/lisp/org/ob-shell /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-datetree hides /usr/share/emacs/26.1/lisp/org/org-datetree /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-publish hides /usr/share/emacs/26.1/lisp/org/ox-publish /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sass hides /usr/share/emacs/26.1/lisp/org/ob-sass /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-mouse hides /usr/share/emacs/26.1/lisp/org/org-mouse /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ditaa hides /usr/share/emacs/26.1/lisp/org/ob-ditaa /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-clojure hides /usr/share/emacs/26.1/lisp/org/ob-clojure /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-hledger hides /usr/share/emacs/26.1/lisp/org/ob-hledger /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ebnf hides /usr/share/emacs/26.1/lisp/org/ob-ebnf /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-css hides /usr/share/emacs/26.1/lisp/org/ob-css /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-timer hides /usr/share/emacs/26.1/lisp/org/org-timer /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-md hides /usr/share/emacs/26.1/lisp/org/ox-md /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-latex hides /usr/share/emacs/26.1/lisp/org/ob-latex /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-beamer hides /usr/share/emacs/26.1/lisp/org/ox-beamer /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-makefile hides /usr/share/emacs/26.1/lisp/org/ob-makefile /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-loaddefs hides /usr/share/emacs/26.1/lisp/org/org-loaddefs /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-exp hides /usr/share/emacs/26.1/lisp/org/ob-exp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-scheme hides /usr/share/emacs/26.1/lisp/org/ob-scheme /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-js hides /usr/share/emacs/26.1/lisp/org/ob-js /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-org hides /usr/share/emacs/26.1/lisp/org/ob-org /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-inlinetask hides /usr/share/emacs/26.1/lisp/org/org-inlinetask /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-id hides /usr/share/emacs/26.1/lisp/org/org-id /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-J hides /usr/share/emacs/26.1/lisp/org/ob-J /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-mhe hides /usr/share/emacs/26.1/lisp/org/org-mhe /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sql hides /usr/share/emacs/26.1/lisp/org/ob-sql /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-compat hides /usr/share/emacs/26.1/lisp/org/org-compat /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lisp hides /usr/share/emacs/26.1/lisp/org/ob-lisp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-plantuml hides /usr/share/emacs/26.1/lisp/org/ob-plantuml /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ruby hides /usr/share/emacs/26.1/lisp/org/ob-ruby /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lilypond hides /usr/share/emacs/26.1/lisp/org/ob-lilypond /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-odt hides /usr/share/emacs/26.1/lisp/org/ox-odt /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-lint hides /usr/share/emacs/26.1/lisp/org/org-lint /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-src hides /usr/share/emacs/26.1/lisp/org/org-src /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-ascii hides /usr/share/emacs/26.1/lisp/org/ox-ascii /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-mobile hides /usr/share/emacs/26.1/lisp/org/org-mobile /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-bbdb hides /usr/share/emacs/26.1/lisp/org/org-bbdb /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-fortran hides /usr/share/emacs/26.1/lisp/org/ob-fortran /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-abc hides /usr/share/emacs/26.1/lisp/org/ob-abc /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-crypt hides /usr/share/emacs/26.1/lisp/org/org-crypt /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-perl hides /usr/share/emacs/26.1/lisp/org/ob-perl /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-haskell hides /usr/share/emacs/26.1/lisp/org/ob-haskell /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-coq hides /usr/share/emacs/26.1/lisp/org/ob-coq /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-element hides /usr/share/emacs/26.1/lisp/org/org-element /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-indent hides /usr/share/emacs/26.1/lisp/org/org-indent /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-plot hides /usr/share/emacs/26.1/lisp/org/org-plot /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-dot hides /usr/share/emacs/26.1/lisp/org/ob-dot /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-colview hides /usr/share/emacs/26.1/lisp/org/org-colview /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-emacs-lisp hides /usr/share/emacs/26.1/lisp/org/ob-emacs-lisp /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-rmail hides /usr/share/emacs/26.1/lisp/org/org-rmail /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-table hides /usr/share/emacs/26.1/lisp/org/org-table /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox-org hides /usr/share/emacs/26.1/lisp/org/ox-org /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob hides /usr/share/emacs/26.1/lisp/org/ob /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-macro hides /usr/share/emacs/26.1/lisp/org/org-macro /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-eshell hides /usr/share/emacs/26.1/lisp/org/org-eshell /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lob hides /usr/share/emacs/26.1/lisp/org/ob-lob /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-w3m hides /usr/share/emacs/26.1/lisp/org/org-w3m /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-eval hides /usr/share/emacs/26.1/lisp/org/ob-eval /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-clock hides /usr/share/emacs/26.1/lisp/org/org-clock /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ox hides /usr/share/emacs/26.1/lisp/org/ox /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-irc hides /usr/share/emacs/26.1/lisp/org/org-irc /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-lua hides /usr/share/emacs/26.1/lisp/org/ob-lua /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-octave hides /usr/share/emacs/26.1/lisp/org/ob-octave /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-screen hides /usr/share/emacs/26.1/lisp/org/ob-screen /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org hides /usr/share/emacs/26.1/lisp/org/org /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-C hides /usr/share/emacs/26.1/lisp/org/ob-C /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-entities hides /usr/share/emacs/26.1/lisp/org/org-entities /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-pcomplete hides /usr/share/emacs/26.1/lisp/org/org-pcomplete /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-sqlite hides /usr/share/emacs/26.1/lisp/org/ob-sqlite /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/org-feed hides /usr/share/emacs/26.1/lisp/org/org-feed /home/dustfinger/.emacs.d/.cask/26.1/elpa/org-plus-contrib-20181105/ob-ledger hides /usr/share/emacs/26.1/lisp/org/ob-ledger

Study the output of M-x list-load-path-shadows. ox-hugo defcustoms org-hugo-section "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-suppress-lastmod-period 0.0 org-hugo-front-matter-format "toml"

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/kaushalmodi/ox-hugo/issues/236, or mute the thread https://github.com/notifications/unsubscribe-auth/ADaZVZEDtjdQfDT8pIsnOrPp0KRXjji5ks5uuJvBgaJpZM4YYtLP .

kaushalmodi commented 5 years ago

Ref: https://github.com/russross/blackfriday/issues/278

BloggerBust commented 5 years ago

I understand the dilemma between trying to work around the blackfriday defect and Github's treatment of the underscore encoding. Another possible way to achieve full italics of such sentences is to italicize each segment individually. To take your example from the Blackfriday issue #278.

Instead of: /What is a [[https://en.wikipedia.org/wiki/Two%27s_complement][two's complement]]?/

Which would export to: _What is a [two's complement](https://en.wikipedia.org/wiki/Two%27s_complement)?_

You could do this: /What is a/ [[https://en.wikipedia.org/wiki/Two%27s_complement][/two's complement/]] /?/

Which would export to: _What is a_ [_two's complement_](https://en.wikipedia.org/wiki/Two%27s_complement) _?_

Unfortunately that leads to another issue where you have to have an additional space separating the italicized question mark from the closing parentheses. Annoying!

Thank you for the tip to use a URI shortener. I wish I thought of that :-P I am happy with that solution and am going to close this issue.

I am going to attempt to get setup to contribute to your project. I am super busy myself, but you have helped me a number of times and I appreciate your time. I found another issue that I am going to post shortly. I will see if I can resolve it before you return from your trip in 3 weeks :-)

Have a safe trip!

punchagan commented 5 years ago

FWIW, Twitter also has a problem with _ being replaced by %5F. I ended up using the tinyurl hack.

RJSent commented 3 years ago

Now that Goldmark has replaced Blackfriday as the default rendering engine, is there any chance of this issue being reopened?

kaushalmodi commented 3 years ago

@RJSent Goldmark has been the default renderer for a while. Related: https://github.com/kaushalmodi/ox-hugo/pull/403

I want to get to this eventually, but lack of a solid plan for this is preventing me.

kaushalmodi commented 2 years ago

This is now fixed in https://github.com/kaushalmodi/ox-hugo/pull/494.