Recent posts

#61
Features / Re: Node based automation like...
Last post by a.l.e - January 26, 2025, 12:10:21 PM
Let me rephrase a bit my question : - )

  • Who is the target for a visual programming environment?
  • What tasks would the target person want to achieve?
  • Can we create a visual programming environment that is pleasant to use for the target persons and for their tasks?

Personally, I suggested that power users who can't program (like utnik) could be part of the target population.

Let's see if we can find out more and make some progress in this quest : - )
#62
Features / Re: Node based automation like...
Last post by Nermander - January 26, 2025, 11:50:37 AM
The advantage I guess is that you don't need to remember command names and syntax, but it also makes some things a bit more difficult to accomplish.
#63
Announcements and Forum Rules / Re: Scribus 1.7.0 Released
Last post by a.l.e - January 26, 2025, 09:06:48 AM
wonderful!
#64
Announcements and Forum Rules / Re: Scribus 1.7.0 Released
Last post by utnik - January 26, 2025, 06:20:22 AM
great! – thanks!
#65
Announcements and Forum Rules / Scribus 1.7.0 Released
Last post by MrB - January 25, 2025, 11:33:49 PM
Hi

We released Scribus 1.7.0 today, 25/1/25.
https://www.scribus.net/scribus-1-7-0-released/

Download checksums in a similar story at https://wiki.scribus.net/canvas/1.7.0_Release

thanks
Craig

#66
Features / Re: Node based automation like...
Last post by utnik - January 25, 2025, 10:14:53 PM
hi ale

Quote from: a.l.e on January 25, 2025, 06:10:19 PM
  • i'd like to hear from scribus power users, who can't program at all (like utnik), if they think they would use such a system and, if yes,  what are the task they might want to automate.
i'm not sure if i'd use it. but i might play with it to find out...

what i would really like to have is a way to store and select presets for different tasks. i usually deal with document templates for similar jobs. but sometimes i need different .pdf files from the same .sla document. my individual set of output profiles would help here.

utnik
#67
MacOS / Re: Scribus 1.6.3 does not run...
Last post by MrB - January 25, 2025, 10:08:37 PM
I downloaded it again from SF and it works for me
#68
MacOS / [SOLVED] Scribus 1.6.3 does no...
Last post by dragginDaybrake - January 25, 2025, 06:36:16 PM
I downloaded the arm64.dmg from sourceforge.net. I checked the sha-1 hash and they match the arm64 build on the wiki.

But I get the following error when opening the .app:

QuoteYou can't use this version of the application "Scribus.app" with this version of macos.

It appears that it is not compiled for arm? Does anyone else have same experience or is it an issue on my end?

#69
Features / Re: Node based automation like...
Last post by a.l.e - January 25, 2025, 06:10:19 PM
i have mixed feeling about having a visual programming tool for/inside scribus.

i must admit that -- while i have some serious experience with Scratch (with kids) -- i have never used it in other contexts. (ok, except some experimenting with pure data many many moons ago)

from what i understand, visual programming seems to be somehow useful for chaining filters and actions on assets, but i'm not that sure it's a good way to automate (part of) flexible workflows like in scribus.
i fear that, at the end, there is often one critical feature that will be missing (or too hard to do for the user) and the overall experience will rather be bad.

but i might be completely wrong...

twp more remarks from my side:

  • i'd like to hear from scribus power users, who can't program at all (like utnik), if they think they would use such a system and, if yes,  what are the task they might want to automate.
  • personally, i would not implement a graph based system like martin is showing in the screenshot, but rather a single column, similar to what scratch offers.

Dialogo_scratch_Best_Friends_1.png

P.S.: Note to self: if we want to implement something similar to Scratch, QGraphicScene could be one approach to consider...
(for node based programming there would be https://github.com/paceholder/nodeeditor)
#70
Code / Re: Proposal for new SLA file ...
Last post by a.l.e - January 25, 2025, 04:46:20 PM
In order to have an idea about how a new Scribus file format would look like I played around with a schema in Relax NG format and a minimal .sla that would match it.

I've put the draft here:

https://github.com/aoloe/scribus-sla/tree/main/proposal

(it's not tested and might contain errors)

The minimal Scribus document for the element that are already defined would look like this:

<?xml version="1.0" encoding="UTF-8"?>
<scribus version="2.0" scribus="1.8.0.svn">
  <configuration>
    <document language="en_UK">
      <page unit="mm">
        <size name="ISOA_A04" />
        <margins top="10" bottom="10" left="10" right="10">
      </page>
      <layout pages="1" first-page="left" direction-horizontal="ltr" />
    </document>
    <colors>
      <color name="black" space="rgb" r="000000" g="000000" b="000000" />
    </colors>
  </configuration>
  <styles>
    <paragraph>
      <style name="default" id="0">
      </style>
    </paragraph>
    <character>
      <style name="default" id="0">
      </style>
    </character>
  </styles>
  <content>
    <page id="1">
    <page>
  </content>
</scribus>

And the schema is something like:

grammar {

  start = element-scribus

  element-scribus = element scribus {
    element-configuration,
    element-styles,
    element-colors,
    element-fonts,
    element-sections?,
    element-content,
  }

  # common elements

  element-page-size = element size {
      (
        attribute name { text } |
        (
          attribute width,
          attribute height,
        )
      )
  }

  element-shape-sides =
    attribute top { text },
    attribute bottom { text },
    attribute left { text },
    attribute right { text },

  # start of configuration / content

  element-configuration = element configuration {
    element-document,
    #...
  }

  element-document = element document {
    element language {
      attribute name { text }
    },
    element page {
      attribute unit { text },
      element size = element-page-size,
      element margins {
        attribute top { text },
        attribute bottom { text },
        (
          ( attribute left { text },
          attribute right { text } ) |
          ( attribute inside { text },
          attribute outside { text } ),
        )
      },
      element printer-margins {
        element-shape-sides
        attribute preset { text }
      }?,
      element bleeds {
        element-shape-sides
      }? # if not defined, all zeros
    },
    element layout {
      attribute pages { "1" | "2" },
      attribute first-page { "left" | "right" }
      attribute direction-horizontal { "ltr" | "rtl" }
      # attribute direction-vertical { string } # not implemented yet
    },
    element saving {
      attribute compressed { boolean }?,
      element auto-save {
        attribute automatic a:defaultValue="false" { xsd:boolean }?,
        attribute keep-backup a:defaultValue="false" { xsd:boolean }?,
        attribute countdown a:defaultValue="false" { xsd:boolean }?,
        element target-path { text }?
      }
    }?,
    element undo {
      attribute enabled a:defaultValue="true" { xsd:boolean }?,
      attribute history { text }?
    }?
  }

  element-style-base = element style {
    attribute id { text }
    attribute name { text }
  }

  element-style-paragraph = element-style-base {
  }

  element-style-character = element-style-base {
  }

  element-style-table = element-style-base {
  }

  element-styles = element styles {
    element-style-paragraph+,
    element-style-character+,
    element-style-table*,
  }

  element-colors = element colors { element-color+ }

  element-color = element color {
    attribute name { text }
    atribute space { "cmyk" | "rgb" } # TODO: add the missing spaces
    (
      (
        attribute r { text },
        attribute g { text },
        attribute b { text }
      ) |
      (
        attribute c { text },
        attribute m { text },
        attribute y { text }
        attribute k { text }
      )

  }

  element-fonts = element fonts { element-font* }

  element-font = element font {
    attribute id { text },
    attribute name { text },
  }

  element-sections = { element-section* } # if no section is defined, use the default values

  element-section = element section {
    attribute id { text },
    attribute name { text }?,
  }

  element-page = element page {
    attribute id { text }
    attribute master-page a:defaultValue="false" { xsd:bool }?
    element size = element-page-size
  }

  element-content = element content {
    element-page+
  }
}

The README file next to those two files has a few more (but still not many) details.

p.s.: it's my first experience with Relax NG, but if it works out to be a good choice for us, i think we need a collaborative effort to document the current .sla format with it.
a boring but probably needed step for ensuring that the new format covers all the needs of the old one...