From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/116524 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Hans Hagen via ntg-context Newsgroups: gmane.comp.tex.context Subject: Re: filling buffers in cld documents Date: Sun, 27 Nov 2022 14:04:39 +0100 Message-ID: <3d1614a8-3375-9faa-8436-533eae718db5@freedom.nl> References: <275c56b4bee1ed8bf6debfdbbaaa07a4@thiriet.web4me.fr> Reply-To: mailing list for ConTeXt users Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------BvYB9QEpnO3MigjdAWDa9oif" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25523"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Hans Hagen To: damien thiriet via ntg-context Original-X-From: ntg-context-bounces@ntg.nl Sun Nov 27 14:05:09 2022 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane-mx.org Original-Received: from zapf.boekplan.nl ([5.39.185.232] helo=zapf.ntg.nl) by ciao.gmane.io with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozHLI-0006QE-JH for gctc-ntg-context-518@m.gmane-mx.org; Sun, 27 Nov 2022 14:05:08 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id F3A62361160; Sun, 27 Nov 2022 14:04:47 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5447rGwymtfM; Sun, 27 Nov 2022 14:04:47 +0100 (CET) Original-Received: from zapf.ntg.nl (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id EC323361163; Sun, 27 Nov 2022 14:04:46 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 1FDB4361160 for ; Sun, 27 Nov 2022 14:04:45 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JREvbZIe6rFJ for ; Sun, 27 Nov 2022 14:04:44 +0100 (CET) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=185.233.34.146; helo=outbound.soverin.net; envelope-from=j.hagen@freedom.nl; receiver= Original-Received: from outbound.soverin.net (outbound.soverin.net [185.233.34.146]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id D73A536114E for ; Sun, 27 Nov 2022 14:04:43 +0100 (CET) Original-Received: from smtp.freedom.nl (c04smtp-lb01.int.sover.in [10.10.4.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by outbound.soverin.net (Postfix) with ESMTPS id 4NKpj73QWjz5c for ; Sun, 27 Nov 2022 13:04:43 +0000 (UTC) Original-Received: from smtp.freedom.nl (smtp.freedom.nl [10.10.4.108]) by freedom.nl (Postfix) with ESMTPSA id 4NKpj70x2kz9p for ; Sun, 27 Nov 2022 13:04:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=freedom.nl; s=default; t=1669554283; bh=MNPwcknE+1KdVYgvlakbgvbfAFoiXTb+fZN8LSpVsCY=; h=Date:Subject:To:References:From:In-Reply-To:From; b=iutwnrnVgPfX4m6mlO27Kfft9EnkWw9gyUrIUmQXhH/eUc7AfkeKjYLcgzZbwsNmj p1N9Mg0a9ZxLTtLJ+Sf5R8UEqiGDnBTQZOQOMremIidfgaNMH8QTWljM2sH2vRC5b6 aooEfLSP+IDIYoeMhOt1Y9HLvumoDBauuyoczfnk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freedom.nl; s=default; t=1669554283; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=syNT3s69yYQ9EFbcVUx+fiCkMwGCzNsJIcSRFC4UKho=; b=bS53od6zpchlSnHxo59tEbfW04Z8gMrtUKJTsbcVs7EI/hH/4kRwt1S/PYvLBZoaYXO18q gE0tfO2qcBYtpgNNMrQ0+1laOsbVPfxKN6QOJzHWcCcxGq1LzrXKmrnZfY8ISEk/VOvUKP oZun4MCTUQ9iePXS5SnhtH0D8hNbPDU= ARC-Seal: i=1; s=default; d=freedom.nl; t=1669554283; a=rsa-sha256; cv=none; b=VTDdQIa3UWa758ZQCDY/1D6e2Z59YVWe886b+SmdMxzuvRUWuXGzD9rRCoKgLjzWZHOckh E6DVgsMkPTkQ2zmCidyAiv4zcdiy1/N8r1zPDxlMGzGELase0eeK4WHugjRB+OqR6umcYK bpCPFvGPeFejnmX7Nf26Q7wdo3W7zHk= ARC-Authentication-Results: i=1; smtp.freedom.nl; auth=pass smtp.mailfrom=j.hagen@freedom.nl Content-Language: en-US X-Soverin-Authenticated: true In-Reply-To: <275c56b4bee1ed8bf6debfdbbaaa07a4@thiriet.web4me.fr> X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.26 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: "ntg-context" Xref: news.gmane.io gmane.comp.tex.context:116524 Archived-At: This is a multi-part message in MIME format. --------------BvYB9QEpnO3MigjdAWDa9oif Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 11/27/2022 1:05 PM, damien thiriet via ntg-context wrote: > Hi, > > > I am used to giving very extensive feedbacks to my pupils. > These are buffers with xtables flushing lua vectors. > Here is their basic structures: > > * an environment that stores xtables. Turned into MWE, look like: > >    \startenvironment env_corrige.mkiv > >    \startluacode >       userdata = userdata or {} >    function userdata.Critere (commentaire,note,notemax) >       context.startxcell {"width=11cm","height=2.75cm"} >          context(Eleve[commentaire]) >       context.stopxcell () >       context.startxcell {"width=1.5cm","align=flushright"} >          context(Eleve[note]) >          context("/") >          context(notemax) >       context.stopxcell () >    end >    \stopluacode > >    \startbuffer [grille] >    \startxtable >       \startxrow >          \startxcell >             \ctxlua {userdata.Critere ("structure","NoteStructure",2)} >          \stopxcell >       \stopxrow >    \stopxtable >    \stopbuffer >    \stopenvironment > > * The main file is divided in subjects, each one of them > being the feedback to one pupil. In a MWE fashion > >    \useenvironment [env_corrige] >    \starttext >    \startsubject[title={Astérix}] >    \startluacode >    Eleve = { >       structure = "analyse très fine", >       NoteStructure = 2, >    } >    \stopluacode >    \getbuffer [grille] >    \stopsubject > >    \startsubject[title={Obélix}] >    Eleve = { >       structure = "le détail doit être travaillé. Pensez à la finesse > de vos menhirs…" >       NoteStructure = 1, >    } >    \stopsubject >    \getbuffer [grille] >    \stoptext > > Since whatever I fill in those files is written > inside luacode environment, I tried to switch to > cld documents. > > Here is my main file in cld version > >    context.useenvironment({"env_corrige"}) > >    context.starttext() > >    context.startsubject({title="Asterix"}) > >    Eleve = { >       structure = "analyse très fine", >       NoteStructure = 2, >    } >    context.getbuffer({"ExoCorrection"}) >    context.stopsubsubject() > >    context.startsubject({title="Obélix"}) > >    Eleve = { >       structure = "le détail doit être travaillé. Pensez à la finesse > de vos menhirs…" >       NoteStructure = 1, >    } >    context.getbuffer({"ExoCorrection"}) >    context.stopsubsubject() >    context.stoptext() > > The troubles is that buffers are filled with > the last version of Eleve table. > I guess this is because the whole file > is parsed and then filled in buffers. > My understanding of the cld manuel is that > context.tobuffer() > and > context.direct() > > should be used, but couldn't figure out how. > Tried several times, also with context.step but > all failed. > I think I didn't properly understand the "temp" > and str of context.tobuffer description in manual. > > What changes should I introduce to my cld files? see attached ... it's more that you overload Eleve ... an alternative is to make a function that gets that table as (then local) argument but I don't want to touch your code too much the function wrapper sort of delays (immediate evaluation is a general problem, of function driven typesetting, which is why in the end a pure function driven one is not better / easier than tex) Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- --------------BvYB9QEpnO3MigjdAWDa9oif Content-Type: text/plain; charset=UTF-8; name="env_corrige.tex" Content-Disposition: attachment; filename="env_corrige.tex" Content-Transfer-Encoding: base64 XHN0YXJ0ZW52aXJvbm1lbnQgZW52X2NvcnJpZ2UNCg0KXHN0YXJ0bHVhY29kZQ0KDQp1c2Vy ZGF0YSA9IHVzZXJkYXRhIG9yIHt9DQoNCmZ1bmN0aW9uIHVzZXJkYXRhLkNyaXRlcmUgKGNv bW1lbnRhaXJlLG5vdGUsbm90ZW1heCkNCiAgY29udGV4dC5zdGFydHhjZWxsIHsgIndpZHRo PTExY20iLCAiaGVpZ2h0PTIuNzVjbSIgfQ0KICAgICBjb250ZXh0KHVzZXJkYXRhLkVsZXZl W2NvbW1lbnRhaXJlXSkNCiAgY29udGV4dC5zdG9weGNlbGwgKCkNCiAgY29udGV4dC5zdGFy dHhjZWxsIHsgIndpZHRoPTEuNWNtIiwgImFsaWduPWZsdXNocmlnaHQiIH0NCiAgICAgY29u dGV4dCgiJXMvJXMiLHVzZXJkYXRhLkVsZXZlW25vdGVdLCBub3RlbWF4KQ0KICBjb250ZXh0 LnN0b3B4Y2VsbCAoKQ0KZW5kDQoNClxzdG9wbHVhY29kZQ0KDQpcc3RhcnRidWZmZXIgW0V4 b0NvcnJlY3Rpb25dDQpcc3RhcnR4dGFibGUNCiAgXHN0YXJ0eHJvdw0KICAgICBcc3RhcnR4 Y2VsbA0KICAgICAgICBcY3R4bHVhIHt1c2VyZGF0YS5Dcml0ZXJlICgic3RydWN0dXJlIiwg Ik5vdGVTdHJ1Y3R1cmUiLCAyKX0NCiAgICAgXHN0b3B4Y2VsbA0KICBcc3RvcHhyb3cNClxz dG9weHRhYmxlDQpcc3RvcGJ1ZmZlcg0KDQpcc3RvcGVudmlyb25tZW50DQo= --------------BvYB9QEpnO3MigjdAWDa9oif Content-Type: text/plain; charset=UTF-8; name="test.cld" Content-Disposition: attachment; filename="test.cld" Content-Transfer-Encoding: base64 Y29udGV4dC51c2VlbnZpcm9ubWVudCB7ICJlbnZfY29ycmlnZSIgfQ0KDQpjb250ZXh0LnN0 YXJ0dGV4dCgpDQoNCiAgICBjb250ZXh0KGZ1bmN0aW9uKCkNCiAgICAgICBjb250ZXh0LnN0 YXJ0c3ViamVjdCB7IHRpdGxlID0gIkFzdGVyaXgiIH0NCiAgICAgICB1c2VyZGF0YS5FbGV2 ZSA9IHsNCiAgICAgICAgICBzdHJ1Y3R1cmUgICAgID0gImFuYWx5c2UgdHLDqHMgZmluZSIs DQogICAgICAgICAgTm90ZVN0cnVjdHVyZSA9IDIsDQogICAgICAgfQ0KICAgICAgIGNvbnRl eHQuZ2V0YnVmZmVyIHsgIkV4b0NvcnJlY3Rpb24iIH0NCiAgICAgICBjb250ZXh0LnN0b3Bz dWJzdWJqZWN0KCkNCiAgICBlbmQpDQoNCiAgICBjb250ZXh0KGZ1bmN0aW9uKCkNCiAgICAg ICAgY29udGV4dC5zdGFydHN1YmplY3QgeyB0aXRsZSA9ICJPYsOpbGl4IiB9DQogICAgICAg IHVzZXJkYXRhLkVsZXZlID0gew0KICAgICAgICAgIHN0cnVjdHVyZSAgICAgPSAibGUgZMOp dGFpbCBkb2l0IMOqdHJlIHRyYXZhaWxsw6kuIFBlbnNleiDDoCBsYSBmaW5lc3NlIGRlIHZv cyBtZW5oaXJz4oCmIiwNCiAgICAgICAgICBOb3RlU3RydWN0dXJlID0gMSwNCiAgICAgICAg fQ0KICAgICAgIGNvbnRleHQuZ2V0YnVmZmVyIHsgIkV4b0NvcnJlY3Rpb24iIH0NCiAgICAg ICBjb250ZXh0LnN0b3BzdWJzdWJqZWN0KCkNCiAgICBlbmQpDQoNCmNvbnRleHQuc3RvcHRl eHQoKQ0K --------------BvYB9QEpnO3MigjdAWDa9oif Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSWYgeW91ciBxdWVzdGlvbiBpcyBvZiBpbnRlcmVz dCB0byBvdGhlcnMgYXMgd2VsbCwgcGxlYXNlIGFkZCBhbiBlbnRyeSB0byB0aGUgV2lraSEKCm1h aWxsaXN0IDogbnRnLWNvbnRleHRAbnRnLm5sIC8gaHR0cHM6Ly93d3cubnRnLm5sL21haWxtYW4v bGlzdGluZm8vbnRnLWNvbnRleHQKd2VicGFnZSAgOiBodHRwczovL3d3dy5wcmFnbWEtYWRlLm5s IC8gaHR0cDovL2NvbnRleHQuYWFuaGV0Lm5ldAphcmNoaXZlICA6IGh0dHBzOi8vYml0YnVja2V0 Lm9yZy9waGcvY29udGV4dC1taXJyb3IvY29tbWl0cy8Kd2lraSAgICAgOiBodHRwczovL2NvbnRl eHRnYXJkZW4ubmV0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCg== --------------BvYB9QEpnO3MigjdAWDa9oif--