`require` is a compile-time command, but `for-each` doesn't happen until run time. So there is a timing mismatch.
I think you probably want `dynamic-require`, which lets you import identifiers at run time: ◊(map (λ (fileName) (dynamic-require fileName 'doc)) fileList) As for generating a list of files, you can do that whatever way suits you — don't overlook the `pagetree->list` function. > On Feb 14, 2019, at 8:11 AM, Ifeoluwapo Eleyinafe <eleyina...@gmail.com> > wrote: > > Or maybe just do this? > > ◊(define fileList (file->list index.ptree)) ;Not sure how to get the exact > path here > ◊(for-each (lambda (fileName) > ◊(require (prefix-in nextChapter: fileName)) ;???? > ◊nextChapter:doc > ) > fileList) > > On Thursday, February 14, 2019 at 10:32:22 AM UTC-5, Ifeoluwapo Eleyinafe > wrote: > I know this is an old post but I'm hoping anyone can help. I'm trying to see > is if this process can be automated for any files listed in the index.ptree. > I'm thinking the code should look something like this: > > ◊(define fileList (file->list index.ptree)) ;Not sure how to get the exact > path here > ◊(for-each (lambda (fileName) > ;all files suffixed with poly.pm so remove them and then convert the > string to symbol > ◊(define nextChapter (string->symbol (string-replace fileName ".poly.pm > <http://poly.pm/>" ""))) > ◊(require (prefix-in nextChapter: fileName)) ;???? > ◊nextChapter:doc > ) > fileList) > > > I know this is probably terrible cringeworthy code but I don't know racket so > well. Any help would be greatly appreciated. Thank you. > > On Sunday, September 24, 2017 at 3:53:34 PM UTC-4, Matthew Butterick wrote: > If you use the submodule technique, you need to `provide` the identifiers > from inside the submodule, then you also need to insert them in the body of > the source file: > > #lang pollen > > ◊(module art1-submod racket/base > (require "article1.html.pm <http://article1.html.pm/>") > (provide doc)) > ◊(require (prefix-in art1: 'art1-submod)) > > ◊art1:doc > > ◊(module art2-submod racket/base > (require "article2.html.pm <http://article2.html.pm/>") > (provide doc)) > ◊(require (prefix-in art2: 'art2-submod)) > > ◊art2:doc > > > Though looking at it now, I don't remember why I recommended submodules. You > can just do this: > > #lang pollen > > ◊(require (prefix-in art1: "article1.html.pm <http://article1.html.pm/>")) > > ◊art1:doc > > ◊(require (prefix-in art2: "article2.html.pm <http://article2.html.pm/>")) > > ◊art2:doc > > > > >> On Sep 24, 2017, at 10:32 AM, Karim Chellaoui <fogi...@gmail.com <>> wrote: >> >> I have four files: >> - article1.html.pm <http://article1.html.pm/> and article2.html.pm >> <http://article2.html.pm/> looking like this: >> #lang pollen >> ◊(define article1 "Article 1") >> ◊h2{◊article1} >> - index.html.pm <http://index.html.pm/> >> #lang pollen >> ◊(module art1-submod racket/base (require "article1.html.pm >> <http://article1.html.pm/>")) >> ◊(require (prefix-in art1: 'art1-submod)) >> ◊(module art2-submod racket/base (require "article2.html.pm >> <http://article2.html.pm/>")) >> ◊(require (prefix-in art2: 'art2-submod)) >> - template.html >> <html><head><meta charset="UTF-8"/></head> >> <body style="background: #f6f6f6"> >> <div style="background: white; margin: 3em; border:10px double gray; >> padding: 3em; font-size: 130%;"> >> <hr/> >> ◊(->html ◊doc) >> </div></body></html> >> >> With this configuration I end up with and empty page when rendering >> index.html.pm <http://index.html.pm/> . I guess I need to call for the >> art1-submod and art2-submod, I just don't know how to do it? > > > > >> On Sep 24, 2017, at 10:32 AM, Karim Chellaoui <fogi...@gmail.com <>> wrote: >> >> I have four files: >> - article1.html.pm <http://article1.html.pm/> and article2.html.pm >> <http://article2.html.pm/> looking like this: >> #lang pollen >> ◊(define article1 "Article 1") >> ◊h2{◊article1} >> - index.html.pm <http://index.html.pm/> >> #lang pollen >> ◊(module art1-submod racket/base (require "article1.html.pm >> <http://article1.html.pm/>")) >> ◊(require (prefix-in art1: 'art1-submod)) >> ◊(module art2-submod racket/base (require "article2.html.pm >> <http://article2.html.pm/>")) >> ◊(require (prefix-in art2: 'art2-submod)) >> - template.html >> <html><head><meta charset="UTF-8"/></head> >> <body style="background: #f6f6f6"> >> <div style="background: white; margin: 3em; border:10px double gray; >> padding: 3em; font-size: 130%;"> >> <hr/> >> ◊(->html ◊doc) >> </div></body></html> >> >> With this configuration I end up with and empty page when rendering >> index.html.pm <http://index.html.pm/> . I guess I need to call for the >> art1-submod and art2-submod, I just don't know how to do it? >> >> Le sam. 23 sept. 2017 à 16:33, Matthew Butterick <m...@mbtype.com <>> a >> écrit : >> >>> On Sep 23, 2017, at 3:29 AM, Karim Chellaoui <fogi...@gmail.com <>> wrote: >>> >>> I'm new to Pollen, I read the tutorial but couldn't find the way to apply >>> this answer. I'm getting confused: how to effectively insert submodule >>> ch1-submod in the main file? I tried different functions but it seems that >>> I'm missing something. >> >> Perhaps post an example of code that isn't working? That will make it easier >> to pinpoint the problem. > > > -- > You received this message because you are subscribed to the Google Groups > "Pollen" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to pollenpub+unsubscr...@googlegroups.com > <mailto:pollenpub+unsubscr...@googlegroups.com>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. -- You received this message because you are subscribed to the Google Groups "Pollen" group. To unsubscribe from this group and stop receiving emails from it, send an email to pollenpub+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.