Skip to content

Latest commit

 

History

History
720 lines (479 loc) · 20.3 KB

TO-DO.adoc

File metadata and controls

720 lines (479 loc) · 20.3 KB

Fendo TO-DO

2013-06-04

In <fendo.markup.html.entities.fs>: The word &# parses a number and echoes the corresponding HTML entity.

2013-06-08

In <fendo.data.fs>: Can current_page be used instead of 'data?

2013-07-26

In <fendo.addon.forth_blocks_source_code.fs>: Character set conversions.

2013-08-14

Choose better names for different meanings of "content":

  1. raw content of the page (printable content and markups)

  2. printable content only, not executable markups

2013-08-15

defered words at the start (and end?) of tags, to let the website application insert hooks.

2013-11-09

In <fendo.addon.source_code.fs>: Syntax highlighting cache.

2013-11-26

In <fendo.shortcuts.fs>: Fix: 'unshortcut' sets 'href=', what sometimes is inconvenient.

2013-12-11

In <fendo.addon.source_code.fs>: Make (filename>filetype) configurable by the application.

2013-12-12

In <fendo.addon.forth_blocks_source_code.fs>: Abersoft Forth syntax.

2014-02-15

In <fendo.addon.forth_blocks_source_code.fs>: Fix: path of the Fendo addons is converted to relative.

2014-03-03

In <fendo.data.fs>:

: pid$>source  ( ca1 len1 -- ca2 len2 )
  \ Convert a page id to a source filename.
  \ xxx not used
  -anchor! +forth_extension +source_dir
  (* 2014-03-03: This word was tried in '(required_dat<pid$)', but
  adding the path to the filename makes the pages to be included into
  the list of included files (shown by '.included') with an absolute
  path. The solution is: the application has to add 'source_dir' to
  'fpath'.  *)
  ;

2014-03-03

Write an addon to create a list of rencent changes?

2014-03-08

New: meta markups ~- and ~+ to change the separation of the next item.

2014-03-12

Fix:

Add tag list to the project descriptions. This fails with projects of a different language than the current language, because tag links are built using the current language: a link to the English tag "X" built in a Spanish page will try to link to the missing page "es.etiqueta.X" instead of "en.tag.X".

2014-03-12

finish <fendo.addon.tag_cloud_by_regex.fs>

2014-03-12

Improvement:

Implement the automatic use of the alternative-language metadata (title.en, description.eo, etc) How? A special metadatum? Defer every metadatum?

Could be done also in tune_local_link.

2014-04-07

Idea:

Implement author and title for block quotes, like Asciidoctor, e.g.:

<[ s" Miguel de Cervantes" quote_author! s" El quijote" quote_title! ]>
""""
En un lugar de la Mancha.
""""

That would render a proper footer under the quote block. At the end of the block, the variables must be reseted.

2016-06-03

In <fendo.markup.fendo.passthrough.fs>: Add ~~ for inline passthrough.

2014-07-13

Idea:

Update the modified metadatum with the modification time of every source code file included into the page. This way, the target modification time will be that of the most recent source code, even if the page is older. This way the FTP updates will be easier. [Update, 2014-11-01: this has a drawback: a trivial modification of a source file would force the date of the webpage.]

For the same reason, update the modified metadatum of tag pages with the most recent time of any of its tagged pages. [Update, 2014-11-01: not very useful.]

2014-10-20

Bug:

In highlighted_##-zone (<fendo.markup.fendo.code.fs>), source_code_finished must be called at the end, but it’s defined in <fendo.addon.source.code.fs>.

2014-10-25

Problem in fendo.data.fs:

: data_already_got?  ( -- 0 | xt +-1 )
  \ XXX FIXME this check means pids of draft can not be created...
  \ XXX ...but they are useful to do some checkings, e.g. in
  \ Fendo-programandala's related_pages.
  current_pid$ known_pid$?
  ;

2014-11-01

Fix:

(Problem since 2014-03.)

Link parsing fails when the link text spans the next line.

Link parsing fails when "]]" is at the start of a new line!

Make it possible to split links in severals lines of text.

2014-11-06

Idea:

Create an addon to share the URL of the current page. Example:

Current URL:

http://www.iconarchive.com/show/whistlepuff-icons-by-firstfear/programs-icon.html

Share links:

http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.iconarchive.com%2Fshow%2Fwhistlepuff-icons-by-firstfear%2Fprograms-icon.html&t=Programs+Icon+%7C+Whistlepuff+Iconset+%7C+firstfear
http://twitter.com/home?status=http%3A%2F%2Fwww.iconarchive.com%2Fshow%2Fwhistlepuff-icons-by-firstfear%2Fprograms-icon.html
https://plus.google.com/share?url=http%3A%2F%2Fwww.iconarchive.com%2Fshow%2Fwhistlepuff-icons-by-firstfear%2Fprograms-icon.html
http://www.blogger.com/blog_this.pyra?t=&u=http%3A%2F%2Fwww.iconarchive.com%2Fshow%2Fwhistlepuff-icons-by-firstfear%2Fprograms-icon.html&n=Programs+Icon+%7C+Whistlepuff+Iconset+%7C+firstfear

2014-11-07

Check:

link_text_as_attribute? is the condition of an unbalanced [if] in <fendo.links.fs>. It has been fixed, but it has to be tested.

Idea:

Remove double spaces in (unmarkup) (defined in <fendo.markup.common.fs>)?

2014-11-17

Bug:

When lonely_tags_link_to_content is on, every shortcut than converts a virtual tag page to the actual content page has a side effect: it increases the count of the correspondent tag!

It will be easier to deactivate this system.

No, the problem is the virtual tag page exists!

2014-11-27

Fix:

Links to anchors in the same page are not recognized! See <es.programa.sbim.html>.

2014-11-27

In tune_local_link (<fendo.links.fs>), fetch alternative language title and description.

link_anchor+ should not be in <fendo.data.fs>'s target_file, but in an upper level.

2014-12-02

Añadir hreflang a todos los enlaces de Atom.

2014-12-02

Idea: bandera para crear versión local. Por ejemplo, para adaptar el atributo xml:base= usado en Atom. ¿Sirve de algo? Si xml:base= no se usa, ¿son los enlaces locales relativos al lugar del propio Atom?

Idea: a flag could be used to build a local version. For example, the xml:base= attribute used by Atom could be adapted that way. Would it be useful? (…​)

2014-12-05

Change the properties system: make it similar to tags: make properties executable; they should trigger a flag.

2014-12-07

Habiendo construido todas las páginas de Fendo-programandala, advierto que en algunas de ellas los listados de código en Vim no son coloreados correctamente. Pero el fallo se arregla al construir esas páginas individualmente…​

2014-12-12

Bug?:

unshortcut modifies href= even if there’s no actual unshortcuting.

This causes problems in Fendo-programandala’s related_pages module, because, when no list is created, the modified href= is added to the next HTML tag in the page. The solution was to clear href=.

But the question is: should href= be restored/cleared by unshortcut and related words when no unshortcuting was done?

2014-12-13

Improvement:

In <fendo.markup.html.tags.fs>, the echo_cr in the tags could be optional, configurable with a flag. This way the HTML would be more compact.

2015-01-30

Idea:

Fake temporary pages. Instead of creating and updating shortcuts for pages that does not exist yet, what can create errors, the actual document could be created, with its data but without content. A data field or command would make sure the page is recognized as a temporary fake.

2015-01-31

New:

Finish the implementation of new translations in <fendo.addon.zx_spectrum_charset.fs> for ZX Spectrum +3 unexpanded listings.

2015-02-01

Fix:

When a page leaves something on the stack, the problem is detected only when another page is built after it. No error happens when the page is the only one to be built.

2015-02-02

Change the metadata: create published to be used as the current created, and dedicate created to its actual meaning, the date the document was created (what Fendo-programandala uses started for; this must be renamed too).

2015-02-03

Improve the new planned <fendo.addon.project.fs> with metadata relative_dead_line and dead_line…​

2015-02-12

Remove the paragrap markup?

How? First, make it a noop, just for the tries. Implement it as an optional behaviour and see what happens:

At every empty line, close the previous paragraph, if any, and open a new one if needed (if the first word is not a block or list markup)…​

2015-02-12

Example of user macro that adds language markup to the word Spectrum in non-English pages:

macro: Forth
  current_lang# case
    en_language of
      s" Forth" _echo
    endof
    default-of
      _separate
      s" en((" evaluate_content
      s" Forth" echo
      s" ))" evaluate_content
    endof
  endcase
  ;

The problem is the word could be part of a expression already marked:

  en(( Spectrum Forth ))

And then nested markups would be created. Not a big problem, but there’s a possible solution:

The words created by language_markup: (defined in <fendo.markup.fendo.language.fs>) could set a flag. The flag should be reset by </span> and </div>. This flag could be used by user macros.

2015-12-10

Bug: When a hierarchical metadatum contains a draft page, the current page is used instead.

2017-02-06, 2018-09-28

Improve the related field: add its content to the field, in order to use it several times in the data header and avoid long lines.

Better yet: make datum: create a fieldname+ variant to do that.

2017-02-06

Note
Milestone: 0.6.0:

Add )), as a shortcut of the idiom )) ,.

2017-06-22

Move the common code from <fendo.addon.tag_cloud_by_prefix.fs> to <fendo.addon.tag_cloud.common.fs>

2017-06-22

In <fendo.addon.tag_cloud_by_regex.fs>:

  • Move tag_cloud_by_regex to <fendo.addon.tag_cloud_by_regex.fs>.

  • Move the common code to <fendo.addon.tag_cloud.common.fs>.

  • Code the font sizes depending on the tag counts.

2017-06-22

In <fendo.markup.fendo.list.fs>: Nested lists.

2017-06-24

An old problem: Gforth does not processes all files passed as parameters.

Example command, created by the Makefile of Fendo-programandala:

echo gforth pages.source/en.program.solo_forth.fs
pages.source/en.program.solo_forth.history.2015.06.fs
pages.source/en.program.solo_forth.history.2015.07.fs
pages.source/en.program.solo_forth.history.2015.08.fs
pages.source/en.program.solo_forth.history.2015.09.fs
pages.source/en.program.solo_forth.history.2015.10.fs
pages.source/en.program.solo_forth.history.2015.11.fs
pages.source/en.program.solo_forth.history.2015.12.fs
pages.source/en.program.solo_forth.history.2016.01.fs
pages.source/en.program.solo_forth.history.2016.03.fs
pages.source/en.program.solo_forth.history.2016.04.fs
pages.source/en.program.solo_forth.history.2016.05.fs
pages.source/en.program.solo_forth.history.2016.06.fs
pages.source/en.program.solo_forth.history.2016.10.fs
pages.source/en.program.solo_forth.history.2016.11.fs
pages.source/en.program.solo_forth.history.2016.12.fs
pages.source/en.program.solo_forth.history.fs
pages.source/en.program.solo_forth.readme.fs
pages.source/en.program.solo_forth.screenshots.fs
pages.source/eo.programo.solo_forth.ekranfotoj.fs
pages.source/eo.programo.solo_forth.fs
pages.source/es.programa.solo_forth.fs
pages.source/es.programa.solo_forth.pantallazos.fs -e bye

Result:

pages.source/en.program.solo_forth.fs
pages.source/en.program.solo_forth.history.2015.06.fs
pages.source/en.program.solo_forth.history.2015.08.fs
pages.source/en.program.solo_forth.history.2015.10.fs
pages.source/en.program.solo_forth.history.2015.12.fs
pages.source/en.program.solo_forth.history.2016.03.fs
pages.source/en.program.solo_forth.history.2016.05.fs
pages.source/en.program.solo_forth.history.2016.10.fs
pages.source/en.program.solo_forth.history.2016.12.fs
pages.source/eo.programo.solo_forth.ekranfotoj.fs

Many input files are ignored. I didn’t find any pattern yet. No clue if the problem is in Gforth or in Fendo.

2017-06-26

Factor code common to the Asciidoctor and Markdown addons.

2017-10-04

In <fendo.markup.fendo.list.fs>, the alias "*" still is temporary.

2018-08-20

Asciidoctor 1.5.7.1 throws error because the "--compact" option is not accepted. But it’s still in the documentation. The option has been commented out from <fendo.addon.asciidoctor.fs>.

2018-09-28

  • Add also ?last_page.

  • Confirm why "up", "first" and "last" are not allowed in <link>. Add them to hierarchy_meta_links.

  • Make create_pids_file check if the file already exists. This will save only a little bit of time, though.

2018-12-07

Note
Milestone: 0.7.0:
  • Deprecate the old {CONTENT} markup (defined in <fendo.parser.fs>) and replace it with <[ contents ]>, after the new method has been fully tested.

2018-12-08

Note
Milestone: 0.7.0:
  • Replace underscores with hyphens in all words.

  • Change the naming convention of flags: use a question mark suffix only when the word returns a flag. Use value when possible.

  • Integrate the markup table into the manual.

2018-12-13

  • Don’t abort in set_image_type (fendo.markup.fendo.image.fs). This way any format will be supported.

  • variable wild-match$ (fendo.addon.wild-match.fs) should not be a dynamic string variable?

2018-12-18

Note
Milestone: 0.6.0:
  • Rename content to echo_content.

2018-12-19

Note
Milestone: 0.6.0:
  • Fix: <fendo.addon.atom.fs> depends on current_lang$, which is defined in <fendo.addon.multilingual.fs>.

2018-12-20

Note
Milestone: 0.6.0:
  • Fix: "invalid memory" errors arised trying to access empty fields in two websites. No error pattern found. The errors vanished when the fields were defined in <fendo.data.fs> instead of the website applications. Maybe it has to do with with initialization of dynamic strings, but datum: was used in both cases.

  • Make metadata fields more versatile, e.g. add a variant to accept strings. This way, long strings could be used with s"" …​ "".

  • Improve <fendo.addon.atom.fs> to add the full page contents, or until a conventional mark included in the page.

  • Rename link_text?!. Perhasp ?link_text!.

  • Improve: pid#>lang# uses "_language", i.e. it forces the naming of language numerical IDs. Fix this by creating a language defining word.

  • Update locals notation pid to pageID.

  • Update stack notation pid to a.

  • Fix pid$>upper (in <fendo.data.fs>): Make it recursively ignore pages that don’t exist.

2018-12-21

Note
Milestone: 0.6.0:
  • Write a smarter or configurable version of brother_pages?, in order to let pages like "lang.section.year#,month#,day#.title", with only "lang.section" in common, be considered as a match.

2019-01-03

Note
Milestone: 0.7.0:
  • Improve table markup: make the cells per row configurable with a variable, instead of depeding on the layout.

2019-01-09

Note
Milestone: 0.6.0:
  • Make datum: fieldname create a new word fieldname+, which will add the parsed datum to the current contents.

2019-01-09

Make the code of the design independent from the application, i.e. add a code file to the design. Use conventional filenames. Only the directory is needed to use the design.

Directory tree example:

src/designs/design_zero/code.fs
src/designs/design_zero/style.css
src/designs/design_zero/template.fs
src/designs/my_design/code.fs
src/designs/my_design/style.css
src/designs/my_design/template.fs

<code.fs> is loaded by the application. It contains the Forth code used in the template.

2019-01-19

Search the following addons for common code and share it:

  • fendo.addon.source_code.common.fs

  • fendo.addon.asciidoctor.fs

  • fendo.addon.markdown.fs

2019-03-12

Fix link_text?!: It can not work fine in shortcuts, because the link text is not set before the shortcut is decoded. For example in certain page [[ any-shortcut ]] will create a link with a text link already used in a previous operation, no matter link_text?! is used in the definiton of any-shortcut. [[ should clear any previous link text.

2019-03-14

  • Reuse the code highlighting: keep the file with a unique filename, based on its full path. Before highlighting a file, check if it exists. Keep them in a temporary directory of the application.

  • Use always <tmp> directory of the application instead of </tmp>.

2019-04-01

Write an addon to share the page’s URL.

2019-07-30

Fix: previous_page [calculated] causes an error trying to access the data of page "prev.fs"!

2020-07-06

Rename tag_section and tag_section_by_prefix?

2020-07-16

Fix: Image filenames used in {{ cause a memory error when they contain accented characters.

2020-10-02

Fix: atom_feed_subtitle fails when the defered site_subtitle is not configured.

Possible solutions:

  1. Check if site_subtitle has no action defined yet.

  2. Define site_subtitle with a default action that returns an empty string.

2020-10-05

Fix: a blank line before a [[ link is not ignored. No new <p> is added, but the previous paragraph is closed by a </p>. The part of the paragraph started by the link is not marked.

2020-10-09

Fix: The // markup (and probably others) at the start of a field adds a separating space before the datum when the field is evaluated. This was observed first in <fendo/websites/(…​)/trunk/src/pages/eo.kajero.2008.12.09.fs>.

2020-11-14

Finish <fendo.addon.images_by_wildcard.fs>. Test it in <programandala.net/es.programa.black_flag.fs>.

2020-11-15, 2020-11-29, 2022-09-05

Deprecate the default complex versions of link and image markup, replacing them with the simple Forth-code versions:

Current link with parsing:

`[[ URL

TXT

attr="ATTR" ]]`

Current link with code:

<[ "URL" "TXT" attr=" ATTR" link ]>

New link with code:

[[ "URL" "TXT" attr=" ATTR" ]]

Possible link with recognizers:

[[ "URL" "TXT" attr="ATTR" ]]

Current image with parsing:

`{{ FILE

ALT

attr="ATTR" }}`

Current image with code:

<[ "FILE" "ALT" attr=" ATTR" img ]>

New image with code:

{{ "FILE" "ALT" attr=" ATTR" }}

Possible image with recognizers:

{{ "FILE" "ALT" attr="ATTR" }}

The versions with recognizers need all of the HTML attributes to be defined as recognizers prefixes, in order to allow attr="ATTR".

2020-11-15

Why <[ … ]> are nestable? What’s the advantage?

2020-11-16, 2022-09-05

  • Move bl+ to Galope. It’s defined in <fendo.markup.fendo.forth.fs> and <fendo.markup.fendo.image.fs>, and required in <fendo.markup.fendo.link.fs>.

2021-12-05

  • Fix: make   omit also the space after it.

2022-03-17

  • Fix: When the "title" metadatum is empty and other page needs it, the process halts with "uncaught exception: Invalid memory address". Note: The page with the empty title can be built normally.

Note
Milestone: 0.7.0:
  • Simplify the handling of metadata: use [if] and [then] to delimitate metadata header.

2023-08-16

In <fendo.addon.source_code.common.fs>:

  • Check Vim or Neovim are installed and use of them.

  • Make the default editor configurable.