![Maven Central Adds Sigstore Signature Validation](https://cdn.sanity.io/images/cgdhsj6q/production/7da3bc8a946cfb5df15d7fcf49767faedc72b483-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
apostrophe
Advanced tools
ApostropheCMS is a full-featured, open source CMS built with Node.js that seeks to empower organizations by combining in-context editing and headless architecture in a full-stack JS environment.
Documentation »
Demo
·
Roadmap
·
Report Bug
ApostropheCMS is content software for everyone in an organization. It helps teams of all sizes create dynamic digital experiences with elegance and efficiency by blending powerful features, developer happiness, and a low learning curve for content creators. Apostrophe has powered websites and web apps for organizations large and small for over a decade.
To get started with Apostrophe 3, follow these steps to set up a local development environment. For more detail, refer to the A3 getting started guide in the documentation.
We recommend installing the following with Homebrew on macOS. If you're on Linux, you should use your package manager (apt or yum). If you're on Windows, we recommend the Windows Subsystem for Linux.
Software | Minimum Version | Notes |
---|---|---|
Node.js | 10.x | Or better |
npm | 6.x | Or better |
MongoDB | 3.6 | Or better |
Imagemagick | Any | Faster image uploads, GIF support (optional) |
Discord - Twitter - Discussions
We eagerly welcome open source contributions. Before submitting a PR, please read through our Contribution Guide
ApostropheCMS is released under the MIT License.
3.3.0 - 2021-08-30
AposCellDate
, which can be optionally used in manage views of pieces. Thanks to Miro Yovchev for this fix.B
with the draft contents of locale A
.prefix
and hostname
options, which are automatically recognized by middleware that removes the prefix dynamically where appropriate and sets req.locale
. In 3.x this works more like the global site prefix
option. This is a departure from 2.x which stored the prefix directly in the slug, creating maintenance issues.prefix
or hostname
. A helpful error message is displayed if this is not the case.title
or _url
).@apostrophecms/i18n
module now uses i18next
to implement static localization. All phrases in the Vue-based admin UI are passed through i18next
via this.$t
, and i18next
is also available via req.t()
in routes and __t()
in templates. Apostrophe's own admin UI phrases are in the apostrophe
namespace for a clean separation. An array of locale codes, such as en
or fr
or en-au
, can be specified using the locales
option to the @apostrophecms/i18n
module. The first locale is the default, unless the defaultLocale
option is set. If no locales are set, the locale defaults to en
. The i18next-http-middleware
locale guesser is installed and will select an available locale if possible, otherwise it will fall back to the default.v-tooltip
has been extended as v-apos-tooltip
, which passes phrases through i18next
.data.localizations
in any page template. Each element always has locale
, label
and homePageUrl
properties. Each element also has an available
property (if true, the current context document is available in that locale), title
and a small number of other document properties are populated, and _url
redirects to the context document in that locale. The current locale is marked with current: true
.this.$t
helper provided in Vue also accepts an object argument with a key
property. Additional properties may be used for interpolation.i18next
localization JSON files can be added to the i18n
subdirectory of any module, as long as its i18n
option is set. The i18n
object may specify ns
to give an i18next
namespace, otherwise phrases are in the default namespace, used when no namespace is specified with a :
in an i18next
call. The default namespace is yours for use at project level. Multiple modules may contribute to the same namespace.APOS_DEBUG_I18N=1
is set in the environment, the i18next
debug flag is activated. For server-side translations, i.e. req.t()
and __t()
, debugging output will appear on the server console. For browser-side translations in the Vue admin UI, debugging output will appear in the browser console.APOS_SHOW_I18N=1
is set in the environment, all phrases passed through i18next
are visually marked, to make it easier to find those that didn't go through i18next
. This does not mean translations actually exist in the JSON files. For that, review the output of APOS_DEBUG_I18N=1
.req.clone(properties)
method is now available. This creates a clone of the req
object, optionally passing in an object of properties to be set. The use of req.clone
ensures the new object supports req.get
and other methods of a true req
object. This technique is mainly used to obtain a new request object with the same privileges but a different mode or locale, i.e. mode: 'published'
.req.__()
, res.__()
and __()
localization helpers, which were never official or documented in 3.x but may be in use in projects ported from 2.x. These wrappers do not localize but do output the input they are given along with a developer warning. You should migrate them to use req.t()
(in server-side javascript) or __t()
(Nunjucks templates).FAQs
The Apostrophe Content Management System.
The npm package apostrophe receives a total of 2,484 weekly downloads. As such, apostrophe popularity was classified as popular.
We found that apostrophe demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.