Thank you for your help but the problem is solved for me with
the :before-end function
'my-muse-rewrite-html-links-to-point-to-same-directory in the second
style that i posted earlier.

On Thu, 2010-02-11 at 02:58 -0800, Stefan Schlee wrote:
> Sorry to bother the list again about this topic, but there is a bug in the 
> function I posted.  The function should read:
> 
> (defun my-muse-publish-muse-links-map ()
>   "Map every link target with a \".muse\"
> file extension contained in a muse link to a link target with a
> \".html\" extension.  The function applies to the current buffer."
>   (goto-char (point-min))
>   (while (search-forward ".muse][" nil t)
>     (replace-match ".html][" t t nil nil))
> 
>   (goto-char (point-min))
>   (while (search-forward ".muse]]" nil t)
>     (replace-match ".html]]" t t nil nil))
> 
>   (goto-char (point-min))
>   (while (search-forward ".muse#"  nil t)
>     (replace-match ".html#" t t nil nil)))
> 
> In the original version the second "(goto-char (point-min))" was missing.
> 
> Kind regards Stefan
> 
> --- On Tue, 2/9/10, Stefan Schlee <[email protected]> wrote:
> 
> > From: Stefan Schlee <[email protected]>
> > Subject: Re: [Muse-el-discuss] multiple publish directory problem
> > To: [email protected], "Discussion and help for Emacs Muse" 
> > <[email protected]>
> > Date: Tuesday, February 9, 2010, 4:59 PM
> > Hello!
> > 
> > I experienced a similar problem last summer and I was just
> > about to reply to your problem.  
> > 
> > In my project all my links contain the file extension
> > ".muse".  I have not found a setting that would
> > accomplish a correct publishing for this case.  To
> > generate correct links to html-files I explicitly rewrite
> > all the links before publishing .    I added a
> > somewhat crude hack to my project file
> > (`my-muse-publish-muse-links-map) which performs this
> > task.   This hack may be polished up by using
> > a somewhat more specific regular expression.  But it
> > works for me for the time being.  
> > 
> > As far as I understand the solution that I apply is
> > somewhat more general purpose, because the code works for
> > any directory structure withouth modification.
> > 
> > When I have enough time I will look into the muse code to
> > provide a more pleasant way to deal with this issue.
> > 
> > The test project that demonstrates the hack is contained in
> > the attached tar.gz-file.  Proceed as described in
> > "test-init.el" file.
> > 
> > Kind regards Stefan
> > 
> > --- On Tue, 2/9/10, Baranyi Péter <[email protected]>
> > wrote:
> > 
> > > From: Baranyi Péter <[email protected]>
> > > Subject: Re: [Muse-el-discuss] multiple publish
> > directory problem
> > > To: "Discussion and help for Emacs Muse" <[email protected]>
> > > Date: Tuesday, February 9, 2010, 11:34 AM
> > > Hi again, 
> > > 
> > > and thanks for your help, but I found it easier to
> > just
> > > write a
> > > before-end publish hook, which rewrites html links in
> > the
> > > second
> > > directory. Problem solved.
> > > 
> > > (muse-derive-style "html-one" "html"
> > >                
> > >    :maintainer "[email protected]")
> > > 
> > > (muse-derive-style "html-two" "html"
> > >                
> > >    :maintainer "[email protected]"
> > >        
> > >    :before-end
> > >
> > 'my-muse-rewrite-html-links-to-point-to-same-directory
> > > )
> > > 
> > > (defun
> > > my-muse-rewrite-html-links-to-point-to-same-directory
> > ()
> > >   "rewrite links in current buffer: <a
> > > href=\"../one/PageOne.html\"> -> <a
> > > href=\"PageOne.html\">"
> > >   (goto-char (point-min))
> > >   (while
> > >       (re-search-forward "<a
> > > href=\"../one/" nil t)
> > >     (replace-match "")
> > >     (muse-insert-markup "<a href=\"")
> > > ))
> > > 
> > > 
> > > 
> > > On Mon, 2010-02-08 at 08:27 +0100, Alex Ott wrote:
> > > > Hello
> > > > 
> > > > Baranyi Péter  at "Sun, 07 Feb 2010 23:37:18
> > > +0100" wrote:
> > > >  BP> Thank you for your comments but
> > > unfortunately this does not work for me.
> > > >  BP> I changed the index page to:
> > > > 
> > > >  BP>  - [[PageOne]]
> > > >  BP>  - [[PageTwo]]
> > > >  BP>  - [[./PageOne]]
> > > >  BP>  - [[./PageTwo]]
> > > > 
> > > >  BP> and all links still point to the one
> > > directory:
> > > > 
> > > >  BP> <a
> > > href="../one/PageOne.html">./PageOne</a>
> > > > 
> > > >  BP> But interestingly, if i use a
> > > [[./PageOne]] to a muse source file that
> > > >  BP> is in another directory, then the
> > result
> > > is:
> > > > 
> > > >  BP> <a
> > > href="./PageOne">./PageOne</a>
> > > > 
> > > >  BP> So it works in this case but the file
> > > extension is missing. Any help
> > > >  BP> please?
> > > > 
> > > > The main idea, that you should use relative file
> > > names, instead of just
> > > > page names.  For example, to point to file in
> > > other directory, you need to
> > > > put name like [[../other-dir/File]], etc.  You
> > > can look to sources of my
> > > > site - http://alexott.net, if you'll replace .html with
> > .muse,
> > > then you'll
> > > > see source code of it
> > > > 
> > > -- 
> > > Baranyi Péter <[email protected]>
> > > 
> > > 
> > > _______________________________________________
> > > Muse-el-discuss mailing list
> > > [email protected]
> > > https://mail.gna.org/listinfo/muse-el-discuss
> > >
> > 
> > 
> >       
> > -----Inline Attachment Follows-----
> > 
> > _______________________________________________
> > Muse-el-discuss mailing list
> > [email protected]
> > https://mail.gna.org/listinfo/muse-el-discuss
> > 
> 
> 
>       
> 
> _______________________________________________
> Muse-el-discuss mailing list
> [email protected]
> https://mail.gna.org/listinfo/muse-el-discuss
-- 
Baranyi Péter <[email protected]>


_______________________________________________
Muse-el-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/muse-el-discuss

Reply via email to