Currently a package will either implement versioning or it will not.
If a project implements versioning, the top level of the project there would be version folders.
Normal layout looks like this:
- package-folder - FPM.ftd - index.ftd - foo.ftd
- package-folder - FPM.ftd - v1/ - index.ftd - foo.ftd - v2/ - index.ftd
foo.ftd
does not exist in v2
folder, since it has not been edited in v2.FPM/v1/config.ftd
, FPM/v2/config
and so on (a version would be present only if it’s actually edited in that version).Since we implement fallback based organization, if a file is not found a version
folder, we search for the file in earler versions. If a file is supposed to be
marked as deleted in some version, a file named <foo.ftd>.deleted
should be
created in that folder.
If in a future version the file is revived, the broken chain is considered logically the same file, so in dropdown we will show them.
foo.com/v1/
(corresponding to index.ftd), foo.com/v1/foo/,
foo.com/v2/and
foo.com/v2/foo/(even though there is no
foo.ftdin
v2` folder).Further the latest version’s content would be reflected on top level, so we
have foo.com/
and foo.com/foo/
.
Top level URLs would use latest version as the canonical URL. NOT SURE ABOUT IT.
base
URLAll urls in markdown etc should use only be partial urls, so eg if index.ftd
is talking about foo.com/foo/
it should link to it using foo/
.
If the project was foo.com/bar
, the base URL is /bar/
, and full URLs of the
files mentioned above would be foo.com/bar/v1/
, foo.com/bar/v1/foo/
and so
on, so when linking we index.ftd
will continue to use foo/
as path, and base
URL would be set to /bar/v1/
etc, based on which file being built.
foo.com/v2/
not foo.com/
even though the two have same content.boolean fpm.versioned: false
optional string fpm.current-version
ftd.toc-item list fpm.versions
v1
, v2
, and so on. The link will point to the current document’s URL in that version. If the current document is not present in that version the link is not set.boolean fpm.modified-in-current-version
optional string fpm.previous-version
v1
.optional string fpm.current-version-diff
optional string fpm.version-last-synced-on
optional string fpm.previous-version-edited-on
option string fpm.version-last-diff
fpm version-status
fpm mark-upto-date <v-new> <v-old>
v2/foo.ftd
does not exist in English / Original package, it can not exist in Hindi / Translation package.In /-/version-status/
we will show all versions, and files in each version,
which files are fallback and which are edited in specific version.
Further we will show all files that are out of date compared to changes in previous version of that file.