2021-04-20 04:21:37 +02:00
# footnotes
2021-04-25 09:28:02 +01:00
<!-- markdownlint - disable MD013 -->
2021-04-18 22:29:58 +02:00
    
    
2021-04-30 13:37:50 +01:00
[](https://www.gnu.org/licenses/gpl-3.0)  [](https://github.com/markcheret/footnotes/actions/workflows/ossar-analysis.yml) [](https://github.com/markcheret/footnotes/actions/workflows/lint-code.yml)
2021-04-18 21:58:11 +02:00
2021-04-25 09:28:02 +01:00
[](http://commitizen.github.io/cz-cli/)
<!-- markdownlint - enable MD013 -->
2021-04-25 21:26:41 +01:00

2021-02-21 11:08:04 +00:00
2021-04-25 09:28:02 +01:00
**footnotes** aims to be the all-in-one solution for displaying an
automatically-generated list of references on your Page or Post. The Plugin
ships with a set of defaults while also empowering you to control how your
2021-04-14 23:21:01 +01:00
footnotes will be displayed.
2021-02-20 19:18:41 +00:00
2021-04-25 09:28:02 +01:00
**footnotes** gives you the ability to display well-formatted footnotes on your
2021-04-14 23:21:01 +01:00
WordPress Pages and Posts — those footnotes we know from offline publishing.
2021-02-20 19:18:41 +00:00
2021-04-18 21:58:11 +02:00
Featured on [wpmudev][wpmudev] — cheers for the review, folks!
2021-04-14 23:21:01 +01:00
## Table of Contents
2021-02-20 19:18:41 +00:00
2021-04-14 23:21:01 +01:00
* [Features ](#features )
* [Getting Started ](#getting-started )
* [Deploying ](#deploying )
* [Testing ](#testing )
* [Code Formatting ](#code-formatting )
* [Documentation ](#documentation )
* [Acknowledgments ](#acknowledgements )
* [License ](#license )
* [Contact Information ](#contact-information )
2021-02-20 20:55:46 +00:00
2021-04-14 23:21:01 +01:00
## Features
2021-02-20 20:55:46 +00:00
2021-04-14 23:21:01 +01:00
This Plugin provides:
2021-02-21 11:08:04 +00:00
2021-04-25 09:28:02 +01:00
* fully customizable footnote start and end shortcodes;
* stylable tooltips supporting hyperlinks and dedicated text;
* a responsive 'reference container', with customisable positioning;
* a wide choice of different numbering styles;
* a freely-configurable and optional backlink symbol;
* footnote appearance customisation via dashboard settings and custom CSS style
2021-04-14 23:21:01 +01:00
rules; and
2021-04-25 09:28:02 +01:00
* editor buttons for easily adding shortcode tags.
2021-04-14 23:21:01 +01:00
## Getting Started
2021-03-17 17:46:21 +00:00
2021-04-14 23:21:01 +01:00
1. Read the [contributing guidelines][contributing];
1. clone this repository (`git clone git@github.com:markcheret/footnotes.git` ):
2021-04-25 09:28:02 +01:00
* we recommend that you use [VVV][vvv] for your local testing environment.
2021-04-15 15:03:09 +01:00
1. install [Composer][composer] and [NPM][npm]; and
2021-04-14 23:21:01 +01:00
1. install all dependencies (`composer install` ):
2021-04-25 09:28:02 +01:00
* you will have to install `php-mbstring` manually if you do not already
2021-04-14 23:21:01 +01:00
have it.
2021-04-25 09:28:02 +01:00
2021-04-14 23:21:01 +01:00
## Deploying
2021-03-17 17:46:21 +00:00
2021-04-14 23:21:01 +01:00
Automated release deployments will be introduced soon.
2021-02-21 11:08:04 +00:00
2021-04-14 23:21:01 +01:00
### Building
Automatically generate new releases (#59)
* Adapt after the 2.5.9d1 accident.
* Corrections to changelog.
* Also added @revision and @timestamp PHPDOC tags
@revision and @timestamp used for SVN refs.
Full enumeration of added custom PHPDOC tags:
@accountable, @bib, @biblio, @callback, @commit, @committer, @contributor, @courtesy, @date, @datetime, @lastmodified, @modified, @publisher, @reporter, @revision, @timestamp, @user.Some tags like @reporter and @contributor are more used than others.
* Readme header upgrade.
* Create deploy-to-wordpress.org.yml
* Add distignore
* Comment out `build` command, replace npm with composer
* Remove placeholder comments
* Add build commands
* Fix typo
* Fix version number bug
* Make zip without top-level directory
* Append tag name to plugin zip
* Clean up a bit
* Rename workflow config
* Fix upload paths
* Append tag name to artifact
* Fix paths
* Revert path fix
* Try again
* Add wplm-config.xml to buildfiles
* Fix indentation
* Rename development/csscat.sh to css/csscat.sh
* Rename development/customized-documentation-schema.txt to customized-documentation-schema.txt
* Rename development/customized-template-stack.txt to customized-template-stack.txt
* Version number related fixes before pull request.
* Move csscat script to tools dir
* Rename csscat
* Refactor script
* Update customized-documentation-schema.txt
* Replace empty lines in help output
* Escape empty lines.
* Delete 3 items from `.distignore`
As mentioned, CONTRIBUTING.md and README.md should be included in distributions.
- As an invitation to the Community.
- As a tangible proof of goodwill after the 2.5.9d1 accident.
Also SECURITY.md so Footnotes users see that we’re concerned, and
can reach out without transiting via GitHub.
* Include CONTRIBUTING.md README.md SECURITY.md
* Update sync w/ 5.7 tested.
* Update
* Update composerfiles
Co-authored-by: pewgeuges <73141620+pewgeuges@users.noreply.github.com>
2021-03-12 17:53:49 +00:00
2021-04-14 23:21:01 +01:00
1. Run `_tools/build-stylesheets.sh -c` to concatenate stylesheets;
1. manually minify the output files in `css/tmp/` , saving them as `.min.css` files:
2021-04-25 09:28:02 +01:00
* the intention is to replace this with automated minification, meaning that
Automatically generate new releases (#59)
* Adapt after the 2.5.9d1 accident.
* Corrections to changelog.
* Also added @revision and @timestamp PHPDOC tags
@revision and @timestamp used for SVN refs.
Full enumeration of added custom PHPDOC tags:
@accountable, @bib, @biblio, @callback, @commit, @committer, @contributor, @courtesy, @date, @datetime, @lastmodified, @modified, @publisher, @reporter, @revision, @timestamp, @user.Some tags like @reporter and @contributor are more used than others.
* Readme header upgrade.
* Create deploy-to-wordpress.org.yml
* Add distignore
* Comment out `build` command, replace npm with composer
* Remove placeholder comments
* Add build commands
* Fix typo
* Fix version number bug
* Make zip without top-level directory
* Append tag name to plugin zip
* Clean up a bit
* Rename workflow config
* Fix upload paths
* Append tag name to artifact
* Fix paths
* Revert path fix
* Try again
* Add wplm-config.xml to buildfiles
* Fix indentation
* Rename development/csscat.sh to css/csscat.sh
* Rename development/customized-documentation-schema.txt to customized-documentation-schema.txt
* Rename development/customized-template-stack.txt to customized-template-stack.txt
* Version number related fixes before pull request.
* Move csscat script to tools dir
* Rename csscat
* Refactor script
* Update customized-documentation-schema.txt
* Replace empty lines in help output
* Escape empty lines.
* Delete 3 items from `.distignore`
As mentioned, CONTRIBUTING.md and README.md should be included in distributions.
- As an invitation to the Community.
- As a tangible proof of goodwill after the 2.5.9d1 accident.
Also SECURITY.md so Footnotes users see that we’re concerned, and
can reach out without transiting via GitHub.
* Include CONTRIBUTING.md README.md SECURITY.md
* Update sync w/ 5.7 tested.
* Update
* Update composerfiles
Co-authored-by: pewgeuges <73141620+pewgeuges@users.noreply.github.com>
2021-03-12 17:53:49 +00:00
all of these steps can be rolled into a single `build` command.
2021-04-14 23:21:01 +01:00
1. run `_tools/build-stylesheets.sh -d` to deploy the minified files to `dist/` :
2021-04-25 09:28:02 +01:00
* **this will delete any existing `dist/` folder!**
2021-04-14 23:21:01 +01:00
1. run `composer run build` to move over the remaining files to `dist/` :
2021-04-25 09:28:02 +01:00
* currently, the files to include in a distribution are hard-coded in
2021-04-14 23:21:01 +01:00
`_tools/build.sh` ; but
2021-04-25 09:28:02 +01:00
* the intention is to replace this with a proper parsing of the `.distignore`
2021-04-14 23:21:01 +01:00
file
### Releasing
1. Ensure that you have configured your Git config. with SVN credentials;
1. run the above [build ](#building ) commands; and
1. run `composer run release` and follow the prompts.
2021-04-25 09:28:02 +01:00
2021-04-14 23:21:01 +01:00
## Testing
Automated testing will be introduced soon.
Automatically generate new releases (#59)
* Adapt after the 2.5.9d1 accident.
* Corrections to changelog.
* Also added @revision and @timestamp PHPDOC tags
@revision and @timestamp used for SVN refs.
Full enumeration of added custom PHPDOC tags:
@accountable, @bib, @biblio, @callback, @commit, @committer, @contributor, @courtesy, @date, @datetime, @lastmodified, @modified, @publisher, @reporter, @revision, @timestamp, @user.Some tags like @reporter and @contributor are more used than others.
* Readme header upgrade.
* Create deploy-to-wordpress.org.yml
* Add distignore
* Comment out `build` command, replace npm with composer
* Remove placeholder comments
* Add build commands
* Fix typo
* Fix version number bug
* Make zip without top-level directory
* Append tag name to plugin zip
* Clean up a bit
* Rename workflow config
* Fix upload paths
* Append tag name to artifact
* Fix paths
* Revert path fix
* Try again
* Add wplm-config.xml to buildfiles
* Fix indentation
* Rename development/csscat.sh to css/csscat.sh
* Rename development/customized-documentation-schema.txt to customized-documentation-schema.txt
* Rename development/customized-template-stack.txt to customized-template-stack.txt
* Version number related fixes before pull request.
* Move csscat script to tools dir
* Rename csscat
* Refactor script
* Update customized-documentation-schema.txt
* Replace empty lines in help output
* Escape empty lines.
* Delete 3 items from `.distignore`
As mentioned, CONTRIBUTING.md and README.md should be included in distributions.
- As an invitation to the Community.
- As a tangible proof of goodwill after the 2.5.9d1 accident.
Also SECURITY.md so Footnotes users see that we’re concerned, and
can reach out without transiting via GitHub.
* Include CONTRIBUTING.md README.md SECURITY.md
* Update sync w/ 5.7 tested.
* Update
* Update composerfiles
Co-authored-by: pewgeuges <73141620+pewgeuges@users.noreply.github.com>
2021-03-12 17:53:49 +00:00
2021-04-14 23:21:01 +01:00
## Code Formatting
2021-02-20 20:55:46 +00:00
2021-04-25 09:28:02 +01:00
This repo. uses pre-commit code formatting and linting on all staged files.
2021-04-14 23:21:01 +01:00
This ensures that only style-conformant code can be committed.
2021-02-20 20:55:46 +00:00
2021-04-15 03:20:38 +01:00
The individual commands can also be called manually:
2021-04-25 09:28:02 +01:00
* Run `composer run format` to run all format commands.
* Run `composer run format:fix` to attempt to automatically fix all formatter warnings
2021-04-15 03:20:38 +01:00
and errors.
2021-04-25 09:28:02 +01:00
* Run `composer run lint` to run all linting commands.
* Run `composer run lint:fix` to attempt to automatically fix all linter warnings
and errors.
2021-02-21 11:08:04 +00:00
2021-04-14 23:21:01 +01:00
### PHP Code
2021-02-21 11:08:04 +00:00
2021-04-14 23:21:01 +01:00
PHP code must follow the [WordPress PHP Coding Standards][wpcs-php].
2021-02-20 19:18:41 +00:00
2021-04-14 23:21:01 +01:00
1. Run `composer run lint:php` to lint all JS/TS files with [PHP CodeSniffer][phpcs]
2021-04-25 09:28:02 +01:00
1. Run `composer run lint:php:fix` to attempt to automatically fix warnings and
2021-04-14 23:21:01 +01:00
errors with the PHP Code Beautifier and Formatter.
### JavaScript Code
2021-02-20 19:18:41 +00:00
2021-04-14 23:21:01 +01:00
JavaScript code must follow the [WordPress JavaScript Coding Standards][wpcs-js].
2021-02-20 19:18:41 +00:00
2021-04-25 09:28:02 +01:00
* Run `composer run format:js` to format all JS files with [Prettier][prettier].
* Run `composer run format:js:fix` to attempt to automatically fix warnings and errors.
2021-04-15 03:20:38 +01:00
2021-04-25 09:28:02 +01:00
* Run `composer run lint:js` to lint all JS files with [ESLint][eslint].
* Run `composer run lint:js:fix` to attempt to automatically fix warnings and errors.
2021-04-15 03:20:38 +01:00
Prettier configuration settings are found in `.prettierrc` .
ESLint configuration settings are found in `.eslintrc.js` . File ignore rules are
found in `.eslintignore` .
2021-04-14 23:21:01 +01:00
### CSS Stylesheets
2021-02-20 19:18:41 +00:00
2021-04-14 23:21:01 +01:00
JavaScript code must follow the [WordPress CSS Coding Standards][wpcs-css].
2021-02-20 19:18:41 +00:00
2021-04-25 09:28:02 +01:00
* Run `composer run lint:css` to format all CSS files with [stylelint][stylelint].
* Run `npcomposerm run lint:css:fix` to attempt to automatically fix warnings and
errors.
2021-04-15 03:20:38 +01:00
stylelint configuration settings are found in `.stylelint.json` .
2021-02-20 19:18:41 +00:00
2021-04-14 23:21:01 +01:00
## Documentation
2021-04-25 09:28:02 +01:00
Run `composer run docs` to automatically generate HTML documentation with
2021-04-14 23:21:01 +01:00
[phpDocumentor][phpdocumentor].
View the current docs [here][footnotes-docs].
2021-02-20 19:18:41 +00:00
## Acknowledgements
2021-04-25 09:28:02 +01:00
Huge thanks to every **footnotes user** , contributor, bug reporter, feature
2021-04-14 23:21:01 +01:00
requester and fan!
## License
This project is licensed under the [GNU GPL v3][gpl-v3].
2021-04-25 09:28:02 +01:00
## Contact Information
2021-04-14 23:21:01 +01:00
| Name | Link(s) |
|---------------|-----------------------|
2021-04-25 09:28:02 +01:00
|Mark Cheret | [Email][mcheret] |
2021-04-14 23:21:01 +01:00
[wpmudev]: http://premium.wpmudev.org/blog/12-surprisingly-useful-wordpress-plugins-you-dont-know-about/
[php]: https://www.php.net/
[contributing]: https://github.com/markcheret/footnotes/blob/main/CONTRIBUTING.md
[vvv]: https://varyingvagrantvagrants.org/
[composer]: https://getcomposer.org/download/
2021-04-15 15:03:09 +01:00
[npm]: https://www.npmjs.com/
2021-04-14 23:21:01 +01:00
[wpcs-php]: https://developer.wordpress.org/coding-standards/wordpress-coding-standards/php/
[phpcs]: https://github.com/squizlabs/PHP_CodeSniffer
[wpcs-js]: https://developer.wordpress.org/coding-standards/wordpress-coding-standards/javascript/
[wpcs-css]: https://developer.wordpress.org/coding-standards/wordpress-coding-standards/css/
2021-04-15 03:20:38 +01:00
[prettier]: https://prettier.io/
[eslint]: https://eslint.org/
[stylelint]: https://stylelint.io/
2021-04-14 23:21:01 +01:00
[phpdocumentor]: https://phpdoc.org/
[footnotes-docs]: https://markcheret.github.io/footnotes/
[gpl-v3]: https://www.gnu.org/licenses/gpl-3.0.en.html
[mcheret]: mailto:mark@cheret .de