In <fendo.markup.html.entities.fs>: The word &#
parses a number and
echoes the corresponding HTML entity.
Choose better names for different meanings of "content":
-
raw content of the page (printable content and markups)
-
printable content only, not executable markups
defered words at the start (and end?) of tags, to let the website application insert hooks.
In <fendo.addon.source_code.fs>: Make (filename>filetype)
configurable by the application.
In <fendo.addon.forth_blocks_source_code.fs>: Fix: path of the Fendo addons is converted to relative.
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'. *) ;
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".
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
.
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.
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.]
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>.
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$? ;
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.
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
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>)?
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!
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.
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? (…)
Change the properties system: make it similar to tags: make properties executable; they should trigger a flag.
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…
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?
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.
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.
New:
Finish the implementation of new translations in <fendo.addon.zx_spectrum_charset.fs> for ZX Spectrum +3 unexpanded listings.
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.
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).
Improve the new planned <fendo.addon.project.fs> with metadata
relative_dead_line
and dead_line
…
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)…
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.
Bug: When a hierarchical metadatum contains a draft page, the current page is used instead.
Addon to create Tweet links.
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.
Move the common code from <fendo.addon.tag_cloud_by_prefix.fs> to <fendo.addon.tag_cloud.common.fs>
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.
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.
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>.
-
Add also
?last_page
. -
Confirm why "up", "first" and "last" are not allowed in
<link>
. Add them tohierarchy_meta_links
. -
Make
create_pids_file
check if the file already exists. This will save only a little bit of time, though.
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.
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.
-
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?
Note
|
Milestone: 0.6.0: |
-
Fix: <fendo.addon.atom.fs> depends on
current_lang$
, which is defined in <fendo.addon.multilingual.fs>.
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
topageID
. -
Update stack notation pid to a.
-
Fix
pid$>upper
(in <fendo.data.fs>): Make it recursively ignore pages that don’t exist.
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.
Note
|
Milestone: 0.7.0: |
-
Improve table markup: make the cells per row configurable with a variable, instead of depeding on the layout.
Note
|
Milestone: 0.6.0: |
-
Make
datum: fieldname
create a new wordfieldname+
, which will add the parsed datum to the current contents.
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.
Search the following addons for common code and share it:
-
fendo.addon.source_code.common.fs
-
fendo.addon.asciidoctor.fs
-
fendo.addon.markdown.fs
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.
-
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>.
Fix: previous_page [calculated]
causes an error trying to access the
data of page "prev.fs"!
Fix: Image filenames used in {{
cause a memory error when they
contain accented characters.
Fix: atom_feed_subtitle
fails when the defered site_subtitle
is not configured.
Possible solutions:
-
Check if
site_subtitle
has no action defined yet. -
Define
site_subtitle
with a default action that returns an empty string.
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.
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>.
Finish <fendo.addon.images_by_wildcard.fs>. Test it in <programandala.net/es.programa.black_flag.fs>.
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: |
|
New link with code: |
|
Possible link with recognizers: |
|
Current image with parsing: |
`{{ FILE |
ALT |
attr="ATTR" }}` |
Current image with code: |
|
New image with code: |
|
Possible image with recognizers: |
|
The versions with recognizers need all of the HTML attributes to be
defined as recognizers prefixes, in order to allow attr="ATTR"
.
-
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>.
-
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.