Utilize apaches mod_rewrite to append a database parameter to the fever
api script based on the requested URL. Basically everything after
/fever/ is treated as the desired database. E.g. using
https://www.miniflux.net/fever/custom.sqlite/ as server url selects this
database as sync source/target.
The user supplied database parameter is compared with the output of
Model\Database\get_all(), which ensures that only files within the
DATA_DIRECTORY can be referenced (prevents File Inclusion/Directory
Traversal vulnerabilities).
I've tested it against Reeder on iOS. Note that Reeder does not allow
the same user name to be used multiple times within the same domain
name, even if the used URLs are different.
Use CSS3 Animation for the "loading icon" blinking and move the definition of
the loading icon to CSS as well.
CSS3 Animations are supported by IE10, Firefox and using the -webkit prefix by
Chrome and Safari.
I've dropped the usage of element.classList in favour of supporting refreshing/
article downloading in IE9 (again). The classList stuff isn't necessarily
needed, as the elements in question only get one or no class assigned.
I've dropped no longer supported css options like:
the appearance option isn't supported by any browser, the -webkit-appearance
doesn't change anything visible.
-webkit-font-smoothing support was dropped in chrome 22 and font-smoothing
isn't specified anywhere.
The %e and %k modifiers are not supported in the Windows implementation of the
strftime function.
The workaround is from the strftime documention (Example #3).
As i can't imagine any other site than the bookmarks page where an article needs
to be hidden based on the bookmark status, I've hardwired it into the javascript
function.
When using the previous shortcut with the first article selected, the selection
is removed and no article is the current-item. Using the shortcut again, the
last article is the current-item (as expected on a new loaded page).
The same applies to the combination of last article and next shortcut.
The item id exists as data attribute or as element.id postfix on multiple
elements in an article.
The basic idea is to traverse the DOM tree - starting from the event firing
element - in reverse order till an article element is found.
This article element is passed to the JavaScript functions. These JavaScript
functions are getting the elements which they want to manipulate starting from
the article utilizing the JavaScript querySelector function.
The bootstrap themes had a conflicting and unused class style definied, which is
removed by now.
Unified the page-counters before.
This makes processing of counters in javascript way more easier. The minimum
required browser versions for the needed CSS3 selectors are IE9, Firefox 3.5
and Chrome 5. Confirmed working with IE9, Firefox 24.6, Chrome 36, Mobile Safari
on iOS6.
An unintended side effect of CSS brackets is that theme designers are able to
implement there idea of brackets.