Skip to content
This repository was archived by the owner on Dec 11, 2025. It is now read-only.

Conversation

@leonidborisenko
Copy link

Precompiling is useful for writing Sakefile in various compile-to-JS languages.

Precompiling is performed by JavaScript function from region embedded in Sakefile and bounded by required marker lines. Marker line format is inspilred by Vim modeline (but it's different).

Function region (along with marker lines) is suited to be located in comments of host language:

  • marker lines are independent of its prefixes,
  • prefix of start marker line is stripped from every following function source line.

Function must take one argument (string with Sakefile source) and return string with compiled source.

PR contains further restrictions to general idea:

  • only files without extension are searched for function region,
  • start marker must be located in first 5 lines of Sakefile,
  • function length is limited to 100 lines.
  • format of marker lines:
    • start marker line: <prefix><white>sakefile:<white*>{
    • end marker line: <prefix><white>sakefile:<white*>}
    • where <prefix> -- any characters,
      <white> -- one space or tab character,
      <white*> -- zero or more spaces or tab characters

Precompiling is useful for writing Sakefile in various compile-to-JS
languages.

Precompiling is performed by JavaScript function from region embedded
in Sakefile and bounded by required marker lines. Marker line format
is inspilred by Vim modeline (but it's different).

Function region (along with marker lines) is suited to be located in
comments of host language:
* marker lines are independent of its prefixes,
* prefix of start marker line is stripped from every following
  function source line.

Function must take one argument (string with Sakefile source) and
return string with compiled source.

This commit contains further restrictions to general idea:
* only files without extension are searched for function region,
* start marker must be located in first 5 lines of Sakefile,
* function length is limited to 100 lines.
* format of marker lines:
  - start marker line: <prefix><white>sakefile:<white*>{
  - end marker line:   <prefix><white>sakefile:<white*>}
  where <prefix> -- any characters
        <white>  -- one space or tab character
        <white*> -- zero or more spaces or tab characters
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant