Remember to cover the basics, that is, what you expected to happen and what in fact did happen. You don't know how to make a good report? See https://orgmode.org/manual/Feedback.html#Feedback Your bug report will be posted to the Org mailing list. ------------------------------------------------------------------------ When publishing a website from org-mode there is no option to transform org-links to cool urls (without extension). There is the option to not switch to a .html extension, but no way to strip the extension alltogether. This is one of the two final pieces which prevent making the site really nice. I already have a hack for the sitemap with nice URLs, but that’s just that: a hack. ;; TODO: use cool uris, partially breaks local viewing, requires site/.htaccess. see http://www.w3.org/Provider/Style/URI (defun org-publish-sitemap-default-entry-cool-url (entry style project) "Default format for site map ENTRY, as a string. ENTRY is a file name. STYLE is the style of the sitemap. PROJECT is the current project." (cond ((not (directory-name-p entry)) (format "[[file:%s][%s]]" (file-name-sans-extension entry) ;; this is the cool url (org-publish-find-title entry project))) ((eq style 'tree) ;; Return only last subdir. (file-name-nondirectory (directory-file-name entry))) (t entry))) To make this work with every org-link would require hacking org-html-link to not only allow keeping the org-link (if :html-link-org-files-as-html is nil), but also to allow stripping the extension alltogether. It would be great to have this option, because then the org-documents would keep working while the export would work well (with the link from filename-sans-extension to html-file done transparently via htaccess). Best wishes, Arne PS: this is for https://www.draketo.de/index — not yet official, but already usable; I’ve been planning to switch to org-mode for my site for years, and now I’m almost there. Emacs : GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.10) Package: Org mode version 9.1.9 (release_9.1.9-65-g5e4542 @ /gnu/store/djza93lqjcndsldf4794bp8mvipd6fz4-emacs-26.3/share/emacs/26.3/lisp/org/) current state: ============== (setq org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-after-todo-state-change-hook '(org-clock-out-if-current) org-metadown-hook '(org-babel-pop-to-session-maybe) org-clock-out-hook '(org-clock-remove-empty-clock-drawer) org-html-format-inlinetask-function 'org-html-format-inlinetask-default-function org-time-stamp-custom-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>") org-enforce-todo-dependencies t org-odt-format-headline-function 'org-odt-format-headline-default-function org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-default org-blocker-hook '(org-block-todo-from-children-or-siblings-or-parent) org-mode-hook '(#[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-show-block-all append local] 5] #[0 "\300\301\302\303\304$\207" [add-hook change-major-mode-hook org-babel-show-result-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes) org-odt-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"] org-archive-hook '(org-attach-archive-delete-maybe) org-confirm-elisp-link-function 'yes-or-no-p org-agenda-before-write-hook '(org-agenda-add-entry-text) org-metaup-hook '(org-babel-load-in-session-maybe) org-bibtex-headline-format-function #[257 "\300\236A\207" [:title] 3 "\n\n(fn ENTRY)"] org-latex-format-drawer-function #[514 "\207" [] 3 "\n\n(fn _ CONTENTS)"] org-babel-pre-tangle-hook '(save-buffer) org-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-header-arg-expand) org-babel-load-languages '((C . t) (R . t) (asymptote) (awk) (calc) (clojure) (comint) (css) (ditaa . t) (dot . t) (emacs-lisp . t) (fortran) (gnuplot . t) (haskell) (io) (java) (js) (latex) (ledger) (lilypond) (lisp) (matlab) (maxima) (mscgen) (ocaml) (octave) (org . t) (perl) (picolisp) (plantuml) (python . t) (ref) (ruby) (sass) (scala) (scheme) (screen) (shell . t) (shen) (sql) (sqlite)) org-ascii-format-drawer-function #[771 "\207" [] 4 "\n\n(fn NAME CONTENTS WIDTH)"] org-feed-alist '(("Weltenwald, alt" "http://www.draketo.de/rss.xml" "external-rss.org.in" "Weltenwald, alt" :parse-feed org-feed-parse-rss-feed/nonreversed :template "\n* %h\n %U\n %(parse-html-string \"%description\")\n %a\n") ) org-occur-hook '(org-first-headline-recenter) org-structure-template-alist '(("k" "#+begin_kasten\n?\n#+end_kasten" "
?
") ("s" "#+BEGIN_SRC ?\n\n#+END_SRC") ("e" "#+BEGIN_EXAMPLE\n?\n#+END_EXAMPLE") ("q" "#+BEGIN_QUOTE\n?\n#+END_QUOTE") ("v" "#+BEGIN_VERSE\n?\n#+END_VERSE") ("V" "#+BEGIN_VERBATIM\n?\n#+END_VERBATIM") ("c" "#+BEGIN_CENTER\n?\n#+END_CENTER") ("C" "#+BEGIN_COMMENT\n?\n#+END_COMMENT") ("l" "#+BEGIN_EXPORT latex\n?\n#+END_EXPORT") ("L" "#+LaTeX: ") ("h" "#+BEGIN_EXPORT html\n?\n#+END_EXPORT") ("H" "#+HTML: ") ("a" "#+BEGIN_EXPORT ascii\n?\n#+END_EXPORT") ("A" "#+ASCII: ") ("i" "#+INDEX: ?") ("I" "#+INCLUDE: %file ?")) org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines org-optimize-window-after-visibility-change) org-speed-command-hook '(org-speed-command-activate org-babel-speed-command-activate) org-odt-format-inlinetask-function 'org-odt-format-inlinetask-default-function org-babel-tangle-lang-exts '(("python" . "py") ("D" . "d") ("C++" . "cpp") ("emacs-lisp" . "el") ("elisp" . "el")) org-confirm-shell-link-function 'yes-or-no-p org-link-parameters '(("id" :follow org-id-open) ("rmail" :follow org-rmail-open :store org-rmail-store-link) ("mhe" :follow org-mhe-open :store org-mhe-store-link) ("irc" :follow org-irc-visit :store org-irc-store-link) ("info" :follow org-info-open :export org-info-export :store org-info-store-link) ("gnus" :follow org-gnus-open :store org-gnus-store-link) ("docview" :follow org-docview-open :export org-docview-export :store org-docview-store-link) ("bibtex" :follow org-bibtex-open :store org-bibtex-store-link) ("bbdb" :follow org-bbdb-open :export org-bbdb-export :complete org-bbdb-complete-link :store org-bbdb-store-link) ("w3m" :store org-w3m-store-link) ("file+sys") ("file+emacs") ("doi" :follow org--open-doi-link) ("elisp" :follow org--open-elisp-link) ("file" :complete org-file-complete-link) ("ftp" :follow (lambda (path) (browse-url (concat "ftp:" path)))) ("help" :follow org--open-help-link) ("http" :follow (lambda (path) (browse-url (concat "http:" path)))) ("https" :follow (lambda (path) (browse-url (concat "https:" path)))) ("mailto" :follow (lambda (path) (browse-url (concat "mailto:" path)))) ("news" :follow (lambda (path) (browse-url (concat "news:" path)))) ("shell" :follow org--open-shell-link)) org-latex-format-headline-function 'org-latex-format-headline-default-function org-latex-format-inlinetask-function 'org-latex-format-inlinetask-default-function org-html-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME CONTENTS)"] org-html-format-headline-function 'org-html-format-headline-default-function org-publish-project-alist '(("arnebab-org-serviceworker" :base-directory "/home/arne/eigenes/Webseiten/arnebab-org/" :publishing-directory "/home/arne/eigenes/Webseiten/arnebab-org/site/" :base-extension "js" :recursive nil :publishing-function org-publish-attachment :include ["sw.js"]) ("arnebab-org-static-wissen" :base-directory "/home/arne/eigenes/Webseiten/arnebab-org/wissen" :publishing-directory "/home/arne/eigenes/Webseiten/arnebab-org/site/wissen" :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|webm\\|opus" :recursive t :publishing-function org-publish-attachment :exclude "org-templates\\|.*html\\|.*~\\|site\\|\\..*emacs\\.d\\|org-timestamps\\|arnebab-[0-9]\\.[0-9]\\.[0-9]") ("arnebab-org-static-software" :base-directory "/home/arne/eigenes/Webseiten/arnebab-org/software" :publishing-directory "/home/arne/eigenes/Webseiten/arnebab-org/site/software" :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|webm\\|opus" :recursive t :publishing-function org-publish-attachment :exclude "org-templates\\|.*html\\|.*~\\|site\\|\\..*emacs\\.d\\|org-timestamps\\|arnebab-[0-9]\\.[0-9]\\.[0-9]") ("arnebab-org-static-rollenspiel" :base-directory "/home/arne/eigenes/Webseiten/arnebab-org/rollenspiel" :publishing-directory "/home/arne/eigenes/Webseiten/arnebab-org/site/rollenspiel" :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|webm\\|opus" :recursive t :publishing-function org-publish-attachment :exclude "org-templates\\|.*html\\|.*~\\|site\\|\\..*emacs\\.d\\|org-timestamps\\|arnebab-[0-9]\\.[0-9]\\.[0-9]") ("arnebab-org-static-politik" :base-directory "/home/arne/eigenes/Webseiten/arnebab-org/politik" :publishing-directory "/home/arne/eigenes/Webseiten/arnebab-org/site/politik" :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|webm\\|opus" :recursive t :publishing-function org-publish-attachment :exclude "org-templates\\|.*html\\|.*~\\|site\\|\\..*emacs\\.d\\|org-timestamps\\|arnebab-[0-9]\\.[0-9]\\.[0-9]") ("arnebab-org-static-kreatives" :base-directory "/home/arne/eigenes/Webseiten/arnebab-org/kreatives" :publishing-directory "/home/arne/eigenes/Webseiten/arnebab-org/site/kreatives" :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|webm\\|opus" :recursive t :publishing-function org-publish-attachment :exclude "org-templates\\|.*html\\|.*~\\|site\\|\\..*emacs\\.d\\|org-timestamps\\|arnebab-[0-9]\\.[0-9]\\.[0-9]") ("arnebab-org-static-ich" :base-directory "/home/arne/eigenes/Webseiten/arnebab-org/ich" :publishing-directory "/home/arne/eigenes/Webseiten/arnebab-org/site/ich" :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|webm\\|opus" :recursive t :publishing-function org-publish-attachment :exclude "org-templates\\|.*html\\|.*~\\|site\\|\\..*emacs\\.d\\|org-timestamps\\|arnebab-[0-9]\\.[0-9]\\.[0-9]") ("arnebab-org-static-anderes" :base-directory "/home/arne/eigenes/Webseiten/arnebab-org/anderes" :publishing-directory "/home/arne/eigenes/Webseiten/arnebab-org/site/anderes" :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|webm\\|opus" :recursive t :publishing-function org-publish-attachment :exclude "org-templates\\|.*html\\|.*~\\|site\\|\\..*emacs\\.d\\|org-timestamps\\|arnebab-[0-9]\\.[0-9]\\.[0-9]") ("arnebab-org-static" :base-directory "/home/arne/eigenes/Webseiten/arnebab-org/assets" :publishing-directory "/home/arne/eigenes/Webseiten/arnebab-org/site/assets/" :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf\\|webm\\|opus" :recursive t :publishing-function org-publish-attachment :exclude "org-templates\\|.*html\\|.*~\\|site\\|\\..*emacs\\.d\\|org-timestamps\\|arnebab-[0-9]\\.[0-9]\\.[0-9]") ("arnebab-org-org" :base-directory "/home/arne/eigenes/Webseiten/arnebab-org" :publishing-directory "/home/arne/eigenes/Webseiten/arnebab-org/site/" :base-extension "org" :publishing-function org-html-publish-to-html :section-numbers nil :with-toc t :html-html5-fancy t :html-viewport nil :html-preamble nil :with-sub-superscript nil :broken-links t :recursive t :auto-sitemap t :sitemap-sort-files anti-chronologically :sitemap-sort-folders first :sitemap-format-entry org-publish-sitemap-default-entry-cool-url :exclude "org-templates\\|.*html\\|arnebab-[0-9]\\.[0-9]\\.[0-9]" :include ["index.org"]) ("arnebab-org" :components ("arnebab-org-static-anderes" "arnebab-org-static-ich" "arnebab-org-static-kreatives" "arnebab-org-static-politik" "arnebab-org-static-rollenspiel" "arnebab-org-static-software" "arnebab-org-static-wissen" "arnebab-org-static" "arnebab-org-org") ) ) )