1
0
mirror of https://github.com/typemill/typemill.git synced 2025-08-01 20:00:37 +02:00

Version 1.3.5 Consolidation

This commit is contained in:
trendschau
2020-04-21 08:01:28 +02:00
parent 2fb689c79d
commit c2c3c8166d
21 changed files with 1061 additions and 470 deletions

View File

@@ -0,0 +1,126 @@
describe('Typemill Setup', function()
{
it('validates form input', function ()
{
// visit setup form
cy.visit('/setup')
cy.url().should('include','/setup')
// add data and check attributes
cy.get('input[name="username"]')
.type('?1')
.should('have.value', '?1')
.and('have.attr', 'required')
cy.get('input[name="email"]')
.type('trendschau.net')
.should('have.value', 'trendschau.net')
.and('have.attr', 'required')
cy.get('input[name="password"]')
.type('pass')
.should('have.value', 'pass')
.and('have.attr', 'required')
// submit and get validation errors
cy.get('form').submit()
cy.get('#flash-message').should('contain', 'Please check your input and try again')
cy.get('.error').should('contain', 'invalid characters')
cy.get('.error').should('contain', 'e-mail is invalid')
cy.get('.error').should('contain', 'Length between 5 - 20')
})
it('fails without CSRF-token', function ()
{
cy.request({
method: 'POST',
url: '/setup', // baseUrl is prepended to url
form: true, // indicates the body should be form urlencoded and sets Content-Type: application/x-www-form-urlencoded headers
failOnStatusCode: false,
body: {
username: 'trendschau',
email: 'trendschau@gmail.com',
password: 'password'
}
})
.its('body')
.should('include', 'Failed CSRF check')
})
it('submits valid form data and visit welcome and settings page', function ()
{
cy.visit('/setup')
// enter correct data
cy.get('input[name="username"]').clear().type('trendschau')
cy.get('input[name="email"]').clear().type('trendschau@gmail.com')
cy.get('input[name="password"]').clear().type('password')
// submits valid form
cy.get('form').submit()
cy.url().should('include','/welcome')
cy.getCookie('typemill-session').should('exist')
Cypress.Cookies.preserveOnce('typemill-session')
// clicks link on welcome page to settings page
cy.get('.button').should('contain', 'Configure your website')
cy.get('.button').click()
cy.url().should('include', '/tm/settings')
})
it('creates default settings data', function()
{
cy.get('input[name="settings[title]"]')
.should('have.value', 'TYPEMILL')
.and('have.attr','required')
cy.get('input[name="settings[author]"]')
.should('have.value', 'Unknown')
cy.get('select[name="settings[copyright]"]')
cy.get('input[name="settings[year]"]')
.should('have.attr', 'required')
cy.get('select[name="settings[language]"]')
cy.get('input[name="settings[sitemap]"]')
.should('have.value', 'http://localhost/typemillTest/cache/sitemap.xml')
.and('have.attr','readonly')
Cypress.Cookies.preserveOnce('typemill-session')
})
it('creates default user data', function()
{
cy.visit('/tm/user/trendschau')
cy.url().should('include', '/tm/user/trendschau')
cy.get('input[name="showusername"]')
.should('have.value', 'trendschau')
.and('have.attr','disabled')
cy.get('input[name="username"]')
.should('have.value', 'trendschau')
cy.get('input[name="email"]')
.should('have.value', 'trendschau@gmail.com')
.and('have.attr','required')
cy.get('select[name="userrole"]')
.should('have.attr','required')
cy.get('input[name="password"]')
.should('have.value', '')
cy.get('input[name="newpassword"]')
.should('have.value', '')
})
it('logouts out', function()
{
// visits logout link
cy.visit('/tm/logout')
cy.url().should('include', '/tm/login')
// tries to open setup form again and gets redirected to login
cy.visit('/setup')
cy.url().should('include','/login')
})
it('redirects when tries to setup again', function()
{
// tries to open setup form again and gets redirected to login
cy.visit('/setup')
cy.url().should('include','/login')
})
})

View File

@@ -0,0 +1,148 @@
describe('Typemill Initial Frontend', function()
{
it('has startpage with buttons and links', function ()
{
/* visit homepage */
cy.visit('/')
/* has start and setup button */
cy.get('.actionLink').find('a').should(($a) => {
expect($a).to.have.length(1)
expect($a[0].href).to.match(/welcome/)
})
/* has start and setup button */
cy.get('.toc-nav').find('a').should(($a) => {
expect($a).to.have.length(5)
expect($a[0].href).to.match(/welcome/)
expect($a[1].href).to.match(/welcome\/setup/)
expect($a[2].href).to.match(/welcome\/write-content/)
expect($a[3].href).to.match(/welcome\/get-help/)
expect($a[4].href).to.match(/welcome\/markdown-test/)
})
})
it('has error page', function ()
{
cy.request({
url: '/error',
failOnStatusCode: false,
})
.then((resp) => {
/* should return 404 not found */
expect(resp.status).to.eq(404)
})
cy.visit('/error', { failOnStatusCode: false })
cy.url().should('include','/error')
cy.get('h1').contains('Not Found')
})
it('has no access to cache files', function ()
{
cy.request({
url: '/cache/structure.txt',
failOnStatusCode: false,
})
.then((resp) => {
// redirect status code is 302
expect(resp.status).to.eq(403)
})
})
it('has sitemap xml', function ()
{
cy.request({
url: '/cache/sitemap.xml',
})
.then((resp) => {
/* should return xml-format */
expect(resp.headers).to.have.property('content-type','application/xml')
})
})
it('has no access to dashboard', function ()
{
cy.visit('/tm/settings')
cy.url().should('include','/tm/login')
})
it('has proper markdown test page', function ()
{
cy.visit('/welcome/markdown-test')
cy.url().should('include','/welcome/markdown-test')
/* has navigation element */
cy.get('nav').should('exist')
/* check if toc exists */
cy.get('.TOC').within(($toc) =>{
/* check if a certain link in toc exists */
cy.get('a').eq(2).should('have.attr', 'href', '/typemillTest/welcome/markdown-test#headlines')
})
/* check if corresponding anchor exists */
cy.get('#headlines').should('exist')
/* soft linebreaks */
cy.get('br').should('exist')
/* emphasis */
cy.get('em').should('exist')
/* strong */
cy.get('strong').should('exist')
/* ordered list */
cy.get('ol').should('exist')
/* linebreak */
cy.get('hr').should('exist')
/* links exists? hard to test, any idea? We need to wrap it in a div... */
/* images */
cy.get('img').eq(0).should('have.attr', 'alt', 'alt-text')
cy.get('img').eq(0).should('have.attr', 'src', 'media/markdown.png')
cy.get('img').eq(2).should('have.id', 'myid')
.and('have.class', 'otherclass')
.and('have.attr', 'alt', 'alt-text')
.and('have.attr', 'title', 'my title')
.and('have.attr', 'width', '150px')
/* blockquote */
cy.get('blockquote').should('exist')
/* footnote */
cy.get('sup').eq(0).should('have.id', 'fnref1:1')
cy.get('sup').eq(0).within(($sup) =>{
cy.get('a').eq(0).should('have.attr', 'href', '/typemillTest/welcome/markdown-test#fn%3A1')
.and('have.class', 'footnote-ref')
})
/* abbreviation */
cy.get('abbr').should('exist')
/* definition list */
cy.get('dl').should('exist')
/* table */
cy.get('table').should('exist')
/* code */
cy.get('pre').should('exist')
cy.get('code').should('exist')
/* math */
cy.get('.math').should('exist')
/* footnote end */
cy.get('.footnotes').within(($footnotes) => {
cy.get('li').eq(0).should('have.id', 'fn:1')
cy.get('a').eq(0).should('have.class', 'footnote-backref')
.and('have.attr', 'href', '/typemillTest/welcome/markdown-test#fnref1%3A1')
.and('have.attr', 'rev', 'footnote')
})
})
})

View File

@@ -0,0 +1,109 @@
describe('Typemill System Settings', function()
{
before(function ()
{
cy.visit('/tm/login')
cy.url().should('include','/tm/login')
cy.get('input[name="username"]').type('trendschau')
cy.get('input[name="password"]').type('password')
cy.get('form').submit()
cy.url().should('include','/tm/content')
cy.getCookie('typemill-session').should('exist')
cy.visit('/tm/settings')
cy.url().should('include','/tm/settings')
})
beforeEach(function ()
{
Cypress.Cookies.preserveOnce('typemill-session')
})
it('validates the form', function()
{
// fill out valid data
cy.get('input[name="settings[title]"]')
.clear()
.type('Cypress<?')
.should('have.value', 'Cypress<?')
.and('have.attr', 'required')
// fill out valid data
cy.get('input[name="settings[author]"]')
.clear()
.type('trendschau')
.should('have.value', 'trendschau')
// fill out copyright data
cy.get('select[name="settings[copyright]"]')
.select('CC-BY')
.should('have.value', 'CC-BY')
// fill out valid data
cy.get('input[name="settings[year]"]')
.clear()
.type('2017')
.should('have.value', '2017')
.and('have.attr', 'required')
// fill out copyright data
cy.get('select[name="settings[language]"]')
.select('German')
.should('have.value', 'de')
// submit form
cy.get('form').submit()
cy.get('#flash-message').should('contain', 'Please correct the errors')
cy.get('.error').should('contain', 'Title contains invalid characters')
})
it('changes default values', function()
{
// fill out valid data
cy.get('input[name="settings[title]"]')
.clear()
.type('Cypress')
.should('have.value', 'Cypress')
.and('have.attr', 'required')
// fill out valid data
cy.get('input[name="settings[author]"]')
.clear()
.type('robot')
.should('have.value', 'robot')
cy.get('select[name="settings[copyright]"]')
.select('CC-BY-ND')
.should('have.value', 'CC-BY-ND')
// fill out copyright data
cy.get('select[name="settings[language]"]')
.select('English')
.should('have.value', 'en')
cy.get('form').submit()
cy.get('#flash-message').should('contain', 'Settings are stored')
// fill out valid data
cy.get('input[name="settings[title]"]')
.should('have.value', 'Cypress')
// fill out valid data
cy.get('input[name="settings[author]"]')
.should('have.value', 'robot')
// fill out copyright data
cy.get('select[name="settings[copyright]"]')
.should('have.value', 'CC-BY-ND')
// fill out valid data
cy.get('input[name="settings[year]"]')
.should('have.value', '2017')
// fill out copyright data
cy.get('select[name="settings[language]"]')
.should('have.value', 'en')
})
})

View File

@@ -0,0 +1,197 @@
describe('Typemill Theme Settings', function()
{
before(function ()
{
cy.visit('/tm/login')
cy.url().should('include','/tm/login')
cy.get('input[name="username"]').type('trendschau')
cy.get('input[name="password"]').type('password')
cy.get('form').submit()
cy.url().should('include','/tm/content')
cy.getCookie('typemill-session').should('exist')
cy.visit('/tm/themes')
cy.url().should('include','/tm/themes')
})
beforeEach(function ()
{
Cypress.Cookies.preserveOnce('typemill-session')
})
it('changes default values', function()
{
// open the form
cy.get('#typemill-toggle')
.should('contain', 'Settings')
.click()
// fill out valid data
cy.get('input[name="typemill[chapter]"]')
.should('have.value', 'Chapter')
.clear()
.type('Kapitel')
.should('have.value', 'Kapitel')
// fill out valid data
cy.get('input[name="typemill[start]"]')
.should('have.value', 'Start')
.clear()
.type('Run')
.should('have.value', 'Run')
// fill out valid data
cy.get('input[name="typemill[chapnum]"]')
.should('not.be.checked')
.and('not.be.visible')
.check({ force: true })
.should('be.checked')
// fill out valid data
cy.get('input[name="typemill[authorPosition][top]"]')
.should('not.be.checked')
.and('not.be.visible')
.check({ force: true })
.should('be.checked')
// fill out valid data
cy.get('input[name="typemill[authorIntro]"]')
.should('have.value', 'Author')
.clear()
.type('Writer')
.should('have.value', 'Writer')
// fill out valid data
cy.get('input[name="typemill[modifiedPosition][bottom]"]')
.should('not.be.checked')
.and('not.be.visible')
.check({ force: true })
.should('be.checked')
// fill out valid data
cy.get('input[name="typemill[modifiedText]"]')
.should('have.value', 'Last updated')
.clear()
.type('Final update')
.should('have.value', 'Final update')
cy.get('select[name="typemill[modifiedFormat]"]')
.should('have.value', 'd.m.Y')
.select('m/d/Y')
.should('have.value', 'm/d/Y')
cy.get('input[name="typemill[socialPosition][bottom]"]')
.should('not.be.checked')
.and('not.be.visible')
.check({ force: true })
.should('be.checked')
cy.get('input[name="typemill[socialButtons][facebook]"]')
.should('not.be.checked')
.and('not.be.visible')
.check({ force: true })
.should('be.checked')
cy.get('input[name="typemill[socialButtons][twitter]"]')
.should('not.be.checked')
.and('not.be.visible')
.check({ force: true })
.should('be.checked')
cy.get('input[name="typemill[socialButtons][xing]"]')
.should('not.be.checked')
.and('not.be.visible')
.check({ force: true })
.should('be.checked')
cy.get('input[name="typemill[gitPosition][top]"]')
.should('not.be.checked')
.and('not.be.visible')
.check({ force: true })
.should('be.checked')
cy.get('input[name="typemill[gitlink]"]')
.clear()
.type('https://github.com/typemill/docs')
.should('have.value', 'https://github.com/typemill/docs')
cy.get('#theme-typemill').submit()
cy.get('#flash-message').should('contain', 'Settings are stored')
// fill out valid data
cy.get('input[name="typemill[chapter]"]')
.should('have.value', 'Kapitel')
// fill out valid data
cy.get('input[name="typemill[start]"]')
.should('have.value', 'Run')
// fill out valid data
cy.get('input[name="typemill[chapnum]"]')
.should('be.checked')
// fill out valid data
cy.get('input[name="typemill[authorPosition][top]"]')
.should('be.checked')
// fill out valid data
cy.get('input[name="typemill[authorIntro]"]')
.should('have.value', 'Writer')
// fill out valid data
cy.get('input[name="typemill[modifiedPosition][bottom]"]')
.should('be.checked')
// fill out valid data
cy.get('input[name="typemill[modifiedText]"]')
.should('have.value', 'Final update')
cy.get('select[name="typemill[modifiedFormat]"]')
.should('have.value', 'm/d/Y')
cy.get('input[name="typemill[socialPosition][bottom]"]')
.should('be.checked')
cy.get('input[name="typemill[socialButtons][facebook]"]')
.should('be.checked')
cy.get('input[name="typemill[socialButtons][twitter]"]')
.should('be.checked')
cy.get('input[name="typemill[socialButtons][xing]"]')
.should('be.checked')
cy.get('input[name="typemill[gitPosition][top]"]')
.should('be.checked')
cy.get('input[name="typemill[gitlink]"]')
.should('have.value', 'https://github.com/typemill/docs')
})
it('validates input', function()
{
// open the form
cy.get('#typemill-toggle')
.should('contain', 'Settings')
.click()
// fill out valid data
cy.get('input[name="typemill[chapter]"]')
.should('have.value', 'Kapitel')
.clear()
.type('Kapitel<?')
.should('have.value', 'Kapitel<?')
// submit form
cy.get('#theme-typemill').submit()
cy.get('#flash-message').should('contain', 'Please correct the errors')
})
})

View File

@@ -0,0 +1,87 @@
describe('Typemill Login', function()
{
it('redirects if visits dashboard without login', function ()
{
cy.visit('/tm/content')
cy.url().should('include', '/tm/login')
})
it('submits a valid form and logout', function ()
{
// visits login page and adds valid input
cy.visit('/tm/login')
cy.url().should('include','/tm/login')
cy.get('input[name="username"]')
.type('trendschau')
.should('have.value', 'trendschau')
.and('have.attr', 'required')
cy.get('input[name="password"]')
.type('password')
.should('have.value', 'password')
.and('have.attr', 'required')
// can login
cy.get('form').submit()
cy.url().should('include','/tm/content')
cy.getCookie('typemill-session').should('exist')
Cypress.Cookies.preserveOnce('typemill-session')
})
it('redirects if visits login form when logged in', function ()
{
cy.visit('/tm/login')
cy.url().should('include', '/tm/content')
Cypress.Cookies.preserveOnce('typemill-session')
})
it('logs out', function ()
{
cy.contains('Logout').click()
cy.url().should('include', '/tm/login')
})
it('fails without CSRF-token', function ()
{
cy.request({
method: 'POST',
url: '/tm/login', // baseUrl is prepended to url
form: true, // indicates the body should be form urlencoded and sets Content-Type: application/x-www-form-urlencoded headers
failOnStatusCode: false,
body: {
username: 'trendschau',
password: 'password'
}
})
.its('body')
.should('include', 'Failed CSRF check')
})
it('blocks after 3 fails', function ()
{
cy.visit('/tm/login')
// validation fails first
cy.get('input[name="username"]').clear().type('wrong')
cy.get('input[name="password"]').clear().type('pass')
cy.get('form').submit()
cy.get('#flash-message').should('contain', 'wrong password or username')
cy.get('input[name="username"]').should('have.value', 'wrong')
cy.get('input[name="password"]').should('have.value', '')
// validation fails second
cy.get('input[name="password"]').clear().type('pass')
cy.get('form').submit()
cy.get('#flash-message').should('contain', 'wrong password or username')
// validation fails third and login is blocked
cy.get('input[name="password"]').clear().type('pass')
cy.get('form').submit()
cy.get('#flash-message').should('contain', 'Too many bad logins')
cy.contains('wait')
cy.contains('Forgot password')
})
})

View File

@@ -1,127 +1,139 @@
# English
# themes/typemill/typemill.yaml
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Activate Special Startpage-Design
AUTHOR_INTRO: Author Intro
BOTTOM: Bottom
BY: by
COUNT_CHAPTERS_IN_NAVIGATION?: Count chapters in navigation?
DIFFERENT_DESIGN_FOR_STARTPAGE: Different Design for Startpage
FACEBOOK: Facebook
FORMAT: Format
GITHUB: GitHub
LABEL_FOR_CHAPTER: Label for Chapter
LABEL_FOR_START_BUTTON: Label for Start Button
LAST_MODIFIED_FORMAT: Last Modified Format
LAST_MODIFIED: Last Modified
LAST_MODIFIED_TEXT: Last Modified Text
LINKEDIN: Linkedin
LINK_TO_GIT_REPOSITORY: Link to git repository
MAIL: Mail
POSITION_OF_AUTHOR: Position of Author
POSITION_OF_GIT_EDIT_LINK: Position of Git Edit Link
POSITION_OF_MODIFIED_TEXT: Position of Modified Text
POSITION_OF_SHARE_BUTTONS: Position of Share-Buttons
SELECT_SHARE_BUTTONS: Select Share Buttons
SHARE: Share
SHOW_CHAPTER_NUMBERS: Show Chapter Numbers
TOP: Top
TWITTER: Twitter
TYPEMILL_DESCRIPTION: The standard theme for Typemill. Responsive, minimal and without any dependencies. It uses the system fonts Calibri and Helvetica. No JavaScript is used.
WHATSAPP: WhatsApp
XING: Xing
# system/author/layouts/layoutBlox.twig
ADD: add
BOLD: bold
BULLET_LIST: Bullet List
CHECK: check
CODE: Code
COG: cog
CROSS: cross
DEFINITION: Definition List
DELETE_CLOSE: delete/close
DELETE: delete
EXTERNAL_LINK: external-link
FOLDER: folder
HEADLINE: Headline
HOME: home
HORIZONTAL_LINE: Horizontal Line
IMAGE: Image
ITALIC: italic
LINK: link
MOVE_VERTICAL: move vertical
NUMBERED_LIST: Numbered List
PARAGRAPH: Paragraph
POWER_OFF: power-off
QUOTES: Quote
TABLE_OF_CONTENTS: Table of Contents
TABLE: Table
TEXT_FILE: text-file
UPLOAD: upload
VIDEO: Video
# others
ACCOUNT: Account
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Activate Special Startpage-Design
ACTIVE: Active
ACTUAL_PASSWORD: Actual Password
ADD: add
ADD_CONTENT_BLOCK: add content-block
ADD_DEFINITION: add definition
ADD_FILE: add file
ADD_FOLDER: add folder
ADD_FOLDER_TO_BASE_LEVEL: add folder to base level
ADD_ITEM: add item
ADD_LEFT_COLUMN: add left column
ADD_RIGHT_COLUMN: add right column
ADD_ROW_ABOVE: add row above
ADD_ROW_BELOW: add row below
ALL_USERS: All users
ALT_TEXT: Alt-Text
AUTHOR: Author
AUTHOR_INTRO: Author Intro
BACK_TO_STARTPAGE: back to startpage
BOLD: bold
BOTTOM: Bottom
BROWSE: BROWSE
BULLET_LIST: Bullet List
BY: by
CANCEL: cancel
CAPTION: Caption
CELL: cell
CENTER: Center
CHECK: check
CHOOSE_FILE: Choose file
CODE: code
CLASS: Class
CLOSE_LIBRARY: Close Library
CODE: Code
COG: cog
CONTENT: Content
CONTENT: Content
COPYRIGHT: Copyright
COUNT_CHAPTERS_IN_NAVIGATION?: Count chapters in navigation?
CREATED_AT__READ_ONLY_: Created at (readonly)
CREATED_AT__READONLY_: Created at (read only)
CREATE_NEW_USER: Create New User
CREATE_USER: Create User
DEFINITION: definition
CROSS: cross
CUSTOM_CSS: Custom CSS
DEFINITION: Definition List
DEFINITION_LIST: Definition List
DELETE_CLOSE: delete/close
DELETE_COLUMN: delete column
DELETE_CONTENT_BLOCK: delete content-block
DELETE: delete
DELETE_PAGE: Delete page
DELETE_ROW: delete row
DELETE_USER: Delete User
DESCRIPTION: description
DIFFERENT_DESIGN_FOR_STARTPAGE: Different Design for Startpage
DISCARD_CHANGES: Discard Changes
DISCARD: Discard
DO_YOU_REALLY_WANT_TO_DELETE_THE_USER: Do you really want to delete the user
DO_YOU_REALLY_WANT_TO_DELETE_THIS_PAGE: Do you really want to delete this page?
DO_YOU_WANT_TO_DISCARD_YOUR_CHANGES_AND_SET_THE_CONTENT_BACK_TO_THE_LIVE_VERSION: Do you want to discard your changes and set the content back to the live version?
DRAFT: Draft
DRAG_A_PICTURE_OR_CLICK_TO_SELECT: upload an image
EDIT: edit
EDIT_USER: Edit User
E_G_: e.g.
E_MAIL: E-Mail
EXTERNAL_LINK: external-link
FACEBOOK: Facebook
FILE: File
FIRST_NAME: First Name
FOLDER: folder
FORGOT_PASSWORD: Forgot password
HEADLINE: headline
FORMAT: Format
GITHUB: GitHub
HEAD: Head
HEADLINE: Headline
HIDE: Hide
HIDE_PAGE_FROM_NAVIGATION: Hide page from navigation
HOME: home
HOMEPAGE: Homepage
HORIZONTAL_LINE: Horizontal Line
HR: hr
IMAGE: image
IF_NOT_FILLED__THE_DESCRIPTION_IS_EXTRACTED_FROM_CONTENT_: If not filled, the description is extracted from content.
IMAGE: Image
ITALIC: italic
LABEL_FOR_CHAPTER: Label for Chapter
LABEL_FOR_START_BUTTON: Label for Start Button
LANGUAGE: Language
LAST_MODIFIED_FORMAT: Last Modified Format
LAST_MODIFIED: Last Modified
LAST_MODIFIED_LIVE__READONLY_: Last modified live (readonly)
LAST_MODIFIED_TEXT: Last Modified Text
LAST_NAME: Last Name
LEFT: Left
LICENCE: Licence
LINKEDIN: Linkedin
LINK: Link
LINK_TO_GIT_REPOSITORY: Link to git repository
LINK_TO_VIDEO: Link to video
LOGIN: Login
LOGO_ON_STARTPAGE: Logo on startpage
LOGOUT: Logout
MAIL: Mail
MANUAL_DATE: Manual date
MARKDOWN: markdown
MENU: Menu
META_TITLE: meta title
META_DESCRIPTION: Meta description
META: meta
META_TITLE: Meta title
MISSING_REQUIREMENTS: Missing Requirements
MOVE_VERTICAL: move vertical
NAVIGATION_TITLE: Navigation Title
NEW_PASSWORD: New Password
NO_DESCRIPTION: No description
NO_PREVIEW: No Preview
NO_SETTINGS: No Settings
NOT_EDITABLE: not editable
NUMBERED_LIST: Numbered List
OLIST: olist
ONLY_THE_FOLLOWING_SPECIAL_CHARACTERS_ARE_ALLOWED: Only the following special characters are allowed:
PARAGRAPH: Paragraph
PASSWORD: Password
PLEASE_CONFIRM: Please confirm
PLEASE_CORRECT_THE_ERRORS_ABOVE: Please correct the errors above
PLUGINS: Plugins
PLUGIN_STORE: Plugin Store
POSITION_OF_AUTHOR: Position of Author
POSITION_OF_GIT_EDIT_LINK: Position of Git Edit Link
POSITION_OF_MODIFIED_TEXT: Position of Modified Text
POSITION_OF_SHARE_BUTTONS: Position of Share-Buttons
POWER_OFF: power-off
PUBLISH: Publish
QUOTE: quote
QUOTE: Quote
QUOTES: Quote
RAW_CONTENT_EDITOR: Raw Content Editor
RAW_MARKDOWN_EDITOR: Raw Markdown Editor
RAW_MODE: raw mode
@@ -129,30 +141,47 @@ RAW: raw
READONLY: Readonly
REMEMBER_TO_BOOKMARK_THIS_PAGE: Remember to bookmark this page
REQUIRED: Required
RIGHT: Right
ROLE: Role
SAVE_ALL_SETTINGS: Save All Settings
SAVED_SUCCESSFULLY: Saved successfully
SAVE: Save
SAVE_THEME: Save Theme
SELECT_SHARE_BUTTONS: Select Share Buttons
SETTINGS: Settings
SETTINGS_ARE_STORED: Settings are stored
SETUP: Setup
SHARE: Share
SHOW_CHAPTER_NUMBERS: Show Chapter Numbers
SHOW_LOGO_INSTEAD_OF_TITLE_ON_STARTPAGE: Show logo instead of title on startpage
STANDARD_EDITOR_MODE: Standard Editor Mode
START: Start
SYSTEM: System
TABLE: table
TABLE_OF_CONTENTS: Table of Contents
TABLE: Table
TAKEN_FROM_YOUR_USER_ACCOUNT_IF_SET_: Taken from your user account if set.
TERM: term
TEXT_FILE: text-file
THE_FORMAT_BUTTONS: The Format Buttons
THEMES: Themes
THEME_STORE: Theme Store
TITLE: Title
TOC: toc
TOP: Top
TWITTER: Twitter
TYPEMILL_DESCRIPTION: The standard theme for Typemill. Responsive, minimal and without any dependencies. It uses the system fonts Calibri and Helvetica. No JavaScript is used.
ULIST: ulist
UNKNOWN: Unknown
UPDATE_USER: Update User
UPLOAD: upload
UPLOAD_FILE: Upload a file
USE_2_TO_40_CHARACTERS: Use 2 to 40 characters.
USE_A_VALID_YEAR: Use a valid year
USED_AS_FALLBACK_WHEN_NO_MANUAL_DATE_IS_SET_: Used as fallback when no manual date is set.
USERNAME: Username
USERS: Users
USER: User
VIDEO: video
VIDEO: Video
VIEW_SITE: View Site
VISUAL_CONTENT_EDITOR: Visual Content Editor
VISUAL_EDITOR: Visual Editor
@@ -162,5 +191,8 @@ VISUAL: visual
WAIT: wait
WEBSITE_TITLE: Website Title
WEB: Web
WHATSAPP: WhatsApp
WRITING: Writing
YEAR: Year
XING: Xing
YEAR: Year
YOU_CAN_OVERWRITE_THE_THEME_CSS_WITH_YOUR_OWN_CSS_HERE_: You can overwrite the theme-css with your own css here.

View File

@@ -1,123 +1,138 @@
# Italiano
# themes/typemill/typemill.yaml
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Attiva il disegno speciale della pagina iniziale
AUTHOR_INTRO: Introduzione dell'autore
BOTTOM: Sotto
BY: di
COUNT_CHAPTERS_IN_NAVIGATION?: Contare i capitoli nella navigazione?
DIFFERENT_DESIGN_FOR_STARTPAGE: Disegno diverso per la pagina iniziale
FACEBOOK: Facebook
FORMAT: Format
GITHUB: GitHub
LABEL_FOR_CHAPTER: Etichetta per capitolo
LABEL_FOR_START_BUTTON: Etichetta per il pulsante Comincia
LAST_MODIFIED_FORMAT: Ultimo formato modificato
LAST_MODIFIED_TEXT: Ultimo testo modificato
LAST_MODIFIED: Ultima modifica
LINKEDIN: Linkedin
LINK_TO_GIT_REPOSITORY: Collegamento al deposito git
MAIL: Mail
POSITION_OF_AUTHOR: Posizione dell'autore
POSITION_OF_GIT_EDIT_LINK: Posizione del collegamento modifica Git
POSITION_OF_MODIFIED_TEXT: Posizione del testo modificato
POSITION_OF_SHARE_BUTTONS: Posizione dei pulsanti di condivisione
SELECT_SHARE_BUTTONS: Seleziona i pulsanti pulsanti di condivisione
SHARE: Condividere
SHOW_CHAPTER_NUMBERS: Mostra i numeri dei capitoli
TOP: Sopra
TWITTER: Twitter
TYPEMILL_DESCRIPTION: Il tema standard per Typemill. Reattivo, minimo e senza dipendenze. Utilizza i caratteri di sistema Calibri ed Helvetica. Non viene utilizzato JavaScript.
WHATSAPP: WhatsApp
XING: Xing
# system/author/layouts/layoutBlox.twig
ADD: aggiungi
BOLD: grassetto
BULLET_LIST: Elenco puntato
CHECK: controllo
CODE: Codice
COG: ingranaggio
CROSS: croce
DEFINITION: Elenco delle definizioni
DELETE_CLOSE: elimina/chiudi
DELETE: elimina
EXTERNAL_LINK: collegamento esterno
FOLDER: cartella
HEADLINE: Titolo
HOME: home
HORIZONTAL_LINE: Linea orizzontale
IMAGE: Immagine
ITALIC: corsivo
LINK: collegamento
MOVE_VERTICAL: spostare in verticale
NUMBERED_LIST: Elenco numerato
PARAGRAPH: Paragrafo
POWER_OFF: spegni
QUOTES: Citazione
TABLE_OF_CONTENTS: Sommario
TABLE: Tabella
TEXT_FILE: file di testo
VIDEO: Video
ACCOUNT: Utenza
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Attiva il disegno speciale della pagina iniziale
ACTIVE: Attivo
ACTUAL_PASSWORD: Parola d'ordine corrente
ADD: aggiungi
ADD_CONTENT_BLOCK: aggiungi blocco contenuto
ADD_DEFINITION: aggiungi definizione
ADD_FILE: aggiungi file
ADD_FOLDER: aggiungi cartella
ADD_FOLDER_TO_BASE_LEVEL: aggiungi cartella al livello base
ADD_ITEM: aggiungi articolo
ADD_LEFT_COLUMN: aggiungi colonna a sinistra
ADD_RIGHT_COLUMN: aggiungi colonna a destra
ADD_ROW_ABOVE: aggiungi la riga sopra
ADD_ROW_BELOW: aggiungi la riga sotto
ALL_USERS: Tutti gli utenti
ALT_TEXT: Testo alternativo
AUTHOR: Autore
AUTHOR_INTRO: Introduzione dell'autore
BACK_TO_STARTPAGE: torna alla pagina iniziale
BOLD: grassetto
BOTTOM: Sotto
BROWSE: Sfoglia
BULLET_LIST: Elenco puntato
BY: di
CODE: codice
CANCEL: Annulla
CAPTION: Didascalia
CELL: cella
CENTER: Centro
CHECK: controllo
CHOOSE_FILE: Scegli il file
CLASS: Classe
CODE: Codice
COG: ingranaggio
CONTENT: Contenuto
CONTENT: Contenuto
COPYRIGHT: Diritti d'autore
COUNT_CHAPTERS_IN_NAVIGATION?: Contare i capitoli nella navigazione?
CREATED_AT__READ_ONLY_: Creato il (sola lettura)
CREATED_AT__READONLY_: Creato il (sola lettura)
CREATE_NEW_USER: Crea nuovo utente
CREATE_USER: Crea utente
DEFINITION: elenco di definizioni
CROSS: croce
CUSTOM_CSS: CSS personalizzato
DEFINITION: Elenco delle definizioni
DEFINITION_LIST: Elenco delle definizioni
DELETE_CLOSE: elimina/chiudi
DELETE_COLUMN: elimina colonna
DELETE_CONTENT_BLOCK: elimina blocco contenuto
DELETE: elimina
DELETE_PAGE: Elimina pagina
DELETE_ROW: elimina riga
DELETE_USER: Elimina utente
DESCRIPTION: descrizione
DIFFERENT_DESIGN_FOR_STARTPAGE: Disegno diverso per la pagina iniziale
DISCARD_CHANGES: Non salvare le modifiche
DISCARD: Scarta
DO_YOU_REALLY_WANT_TO_DELETE_THE_USER: Vuoi veramente eliminare l'utente
DO_YOU_REALLY_WANT_TO_DELETE_THIS_PAGE: Vuoi veramente cancellare questa pagina?
DO_YOU_WANT_TO_DISCARD_YOUR_CHANGES_AND_SET_THE_CONTENT_BACK_TO_THE_LIVE_VERSION: Vuoi annullare le modifiche e ripristinare i contenuti alla versione precedente?
DRAFT: Bozza
DRAG_A_PICTURE_OR_CLICK_TO_SELECT: trascina un'immagine o fai clic per selezionare
EDIT: modifica
EDIT_USER: Modifica utente
E_G_: per es.:
E_MAIL: Posta elettronica
EXTERNAL_LINK: collegamento esterno
FACEBOOK: Facebook
File: File
FIRST_NAME: Nome
FOLDER: cartella
FORGOT_PASSWORD: Parola d'ordine dimenticata
HEADLINE: titolo
FORMAT: Format
GITHUB: GitHub
HEAD: Intestazione
HEADLINE: Titolo
HIDE: Nascondi
HIDE_PAGE_FROM_NAVIGATION: Nasconde la pagina dalla navigazione
HOME: home
HOMEPAGE: Homepage
HR: linea orizzontale
IMAGE: immagine
HORIZONTAL_LINE: Linea orizzontale
HR: Linea orizzontale
IF_NOT_FILLED__THE_DESCRIPTION_IS_EXTRACTED_FROM_CONTENT_: Se non compilato, la descrizione viene estratta dal contenuto.
IMAGE: Immagine
ITALIC: corsivo
LABEL_FOR_CHAPTER: Etichetta per capitolo
LABEL_FOR_START_BUTTON: Etichetta per il pulsante Comincia
LANGUAGE: Lingua
LAST_MODIFIED_FORMAT: Ultimo formato modificato
LAST_MODIFIED_LIVE__READONLY_: Ultima modifica (sola lettura)
LAST_MODIFIED_TEXT: Ultimo testo modificato
LAST_MODIFIED: Ultima modifica
LAST_NAME: Cognome
LEFT: Sinistra
LICENCE: Licenza
LINK: Collegamento
LINKEDIN: Linkedin
LINK_TO_GIT_REPOSITORY: Collegamento al deposito git
LINK_TO_VIDEO: Collega al video
LOGIN: Accesso
LOGO_ON_STARTPAGE: Logo sulla pagina iniziale
LOGOUT: Disconnessione
MARKDOWN: markdown
MAIL: Mail
MANUAL_DATE: Data manuale
MARKDOWN: Markdown
MENU: Menu
META_TITLE: meta titolo
META_DESCRIPTION: Descrizione
META_TITLE: Titolo
META: Metadati
MISSING_REQUIREMENTS: Requisiti mancanti
MOVE_VERTICAL: spostare in verticale
NAVIGATION_TITLE: Titolo di navigazione
NEW_PASSWORD: Nuova parola d'ordine
NO_DESCRIPTION: Nessuna descrizione
NO_PREVIEW: Nessuna anteprima
NO_SETTINGS: Nessuna impostazione
NOT_EDITABLE: non modificabile
OLIST: elenchi ordinati
NUMBERED_LIST: Elenco numerato
OLIST: Elenchi ordinati
ONLY_THE_FOLLOWING_SPECIAL_CHARACTERS_ARE_ALLOWED: Sono ammessi solo i seguenti caratteri speciali:
PARAGRAPH: Paragrafo
PASSWORD: Parola d'ordine
PLEASE_CONFIRM: Per favore conferma
PLEASE_CORRECT_THE_ERRORS_ABOVE: Si prega di correggere gli errori sopra
PLUGINS: Plugin
PLUGIN_STORE: Deposito plugin
POSITION_OF_AUTHOR: Posizione dell'autore
POSITION_OF_GIT_EDIT_LINK: Posizione del collegamento modifica Git
POSITION_OF_MODIFIED_TEXT: Posizione del testo modificato
POSITION_OF_SHARE_BUTTONS: Posizione dei pulsanti di condivisione
POWER_OFF: spegni
PUBLISH: Pubblica
QUOTE: citazione
QUOTE: Citazione
QUOTES: Citazione
RAW_CONTENT_EDITOR: Editore contenuto grezzo
RAW: grezzo
RAW_MARKDOWN_EDITOR: Editore grezzo Markdown
@@ -125,30 +140,46 @@ RAW_MODE: modo grezzo
READONLY: Sola lettura
REMEMBER_TO_BOOKMARK_THIS_PAGE: Ricorda di aggiungere questa pagina ai segnalibri
REQUIRED: Richiesto
RIGHT: Destra
ROLE: Ruolo
SAVE_ALL_SETTINGS: Salva tutte le impostazioni
SAVED_SUCCESSFULLY: Salvato con successo
SAVE: Salva
SAVE_THEME: Salva tema
SELECT_SHARE_BUTTONS: Seleziona i pulsanti pulsanti di condivisione
SETTINGS: Impostazioni
SETTINGS_ARE_STORED: Le impostazioni sono memorizzate
SETUP: Configurazione
SHARE: Condividere
SHOW_CHAPTER_NUMBERS: Mostra i numeri dei capitoli
SHOW_LOGO_INSTEAD_OF_TITLE_ON_STARTPAGE: Mostra logo invece del titolo sulla pagina iniziale
STANDARD_EDITOR_MODE: Modalità editore standard
START: Comincia
SYSTEM: Sistema
TABLE: tabella
TABLE_OF_CONTENTS: Sommario
TABLE: Tabella
TAKEN_FROM_YOUR_USER_ACCOUNT_IF_SET_: Tratto dalla tua utenza, se impostata.
TERM: termine
TEXT_FILE: file di testo
THE_FORMAT_BUTTONS: pulsanti di formattazione
THEMES: Temi
THEME_STORE: Deposito temi
TITLE: Titolo
TOC: sommario
ULIST: elenchi non ordinati
TOC: Sommario
TOP: Sopra
TWITTER: Twitter
TYPEMILL_DESCRIPTION: Il tema standard per Typemill. Reattivo, minimo e senza dipendenze. Utilizza i caratteri di sistema Calibri ed Helvetica. Non viene utilizzato JavaScript.
ULIST: Elenchi non ordinati
UNKNOWN: Ignoto
UPDATE_USER: Aggiorna utente
UPLOAD: carica
USE_2_TO_40_CHARACTERS: Usa da 2 a 40 caratteri.
USE_A_VALID_YEAR: Usa un anno valido
USED_AS_FALLBACK_WHEN_NO_MANUAL_DATE_IS_SET_: Utilizzato come ripiego quando non è impostata alcuna data manuale.
USERNAME: Nome utente
USERS: Utenti
USER: Utente
VIDEO: video
VIDEO: Video
VIEW_SITE: Mostra sito
VISUAL_CONTENT_EDITOR: Editore contenuto visivo
VISUAL_EDITOR: Editore visivo
@@ -158,5 +189,8 @@ VISUAL: visivo
WAIT: aspetta
WEBSITE_TITLE: Titolo del sito
WEB: Sito
WHATSAPP: WhatsApp
WRITING: Scrittura
YEAR: Anno
XING: Xing
YEAR: Anno
YOU_CAN_OVERWRITE_THE_THEME_CSS_WITH_YOUR_OWN_CSS_HERE_: È possibile sovrascrivere il css del tema con il proprio CSS qui.

View File

@@ -1,123 +1,131 @@
# Dutch
# themes/typemill/typemill.yaml
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Activeer speciaal startpagina-ontwerp
AUTHOR_INTRO: Auteur Intro
BOTTOM: bodem
BY: door
COUNT_CHAPTERS_IN_NAVIGATION?: Hoofdstukken tellen in navigatie?
DIFFERENT_DESIGN_FOR_STARTPAGE: ander ontwerp voor startpagina
FACEBOOK: Facebook
FORMAT: Formaat
GITHUB: GitHub
LABEL_FOR_CHAPTER: Label voor hoofdstuk
LABEL_FOR_START_BUTTON: label voor startknop
LAST_MODIFIED_FORMAT: Laatst gewijzigd formaat
LAST_MODIFIED: Laatst gewijzigd
LAST_MODIFIED_TEXT: Laatst gewijzigde tekst
LINKEDIN: Linkedin
LINK_TO_GIT_REPOSITORY: Link naar git repository
MAIL: Mail
POSITION_OF_AUTHOR: Positie van auteur
POSITION_OF_GIT_EDIT_LINK: Positie van Git Link bewerken
POSITION_OF_MODIFIED_TEXT: Positie van gemodificeerde tekst
POSITION_OF_SHARE_BUTTONS: Positie van Share-knoppen
SELECT_SHARE_BUTTONS: Selecteer Share-knoppen
SHARE: deel
SHOW_CHAPTER_NUMBERS: hoofdstuknummers tonen
TOP: Top
TWITTER: Twitter
TYPEMILL_DESCRIPTION: Het standaardthema voor typemill. Responsief, minimaal en zonder afhankelijkheden. Het gebruikt de systeemlettertypen Calibri en Helvetica. Er is geen JavaScript gebruikt.
WHATSAPP: Whatsapp
XING: Xing
# system/author/layouts/layoutBlox.twig
ADD: toevoegen
BOLD: vetgedrukt
BULLET_LIST: Bullet List
CHECK: check
CODE: Code
COG: tandwiel
CROSS: kruis
DEFINITION: Definitielijst
DELETE_CLOSE: verwijderen / sluiten
DELETE: verwijderen
EXTERNAL_LINK: externe link
FOLDER: map
HEADLINE: Kop
HOME: home
HORIZONTAL_LINE: Horizontale lijn
IMAGE: Afbeelding
ITALIC: cursief
LINK: link
MOVE_VERTICAL: verplaats verticaal
NUMBERED_LIST: Genummerde lijst
PARAGRAPH: Paragraaf
POWER_OFF: power-off
QUOTES: Citeren
TABLE_OF_CONTENTS: Inhoudsopgave
TABLE: tabel
TEXT_FILE: tekstbestand
VIDEO: Video
ACCOUNT: Account
ACTIVATE_SPECIAL_STARTPAGE_DESIGN: Activeer speciaal startpagina-ontwerp
ACTIVE: Actief
ACTUAL_PASSWORD: Actueel wachtwoord
ADD_CONTENT_BLOCK: inhoudblok toevoegen
ADD_DEFINITION: definitie toevoegen
ADD_FILE: Bestand toevoegen
ADD_FOLDER: Map toevoegen
ADD_FOLDER_TO_BASE_LEVEL: map toevoegen op basisniveau
ADD_ITEM: Item toevoegen
ADD_LEFT_COLUMN: linkerkolom toevoegen
ADD_RIGHT_COLUMN: rechter kolom toevoegen
ADD_ROW_ABOVE: rij boven toevoegen
ADD_ROW_BELOW: rij hieronder toevoegen
ADD: toevoegen
ALL_USERS: Alle gebruikers
ALT_TEXT: Alt-tekst
AUTHOR: Auteur
AUTHOR_INTRO: Auteur Intro
BACK_TO_STARTPAGE: terug naar startpagina
BOLD: vetgedrukt
BOTTOM: bodem
BULLET_LIST: Lijst met opsommingstekens
BY: door
CODE: code
CANCEL: annuleren
CAPTION: Bijschrift
CELL: cel
CENTER: Midden
CHECK: check
CLASS: Class
CODE: Code
COG: tandwiel
CONTENT: Inhoud
COPYRIGHT: Auteursrecht
COUNT_CHAPTERS_IN_NAVIGATION?: Hoofdstukken tellen in navigatie?
CREATED_AT__READ_ONLY_: Gemaakt om (alleen lezen)
CREATED_AT__READONLY_: Gemaakt om (alleen lezen)
CREATE_NEW_USER: Nieuwe gebruiker maken
CREATE_USER: Gebruiker maken
DEFINITION: definitie
DELETE: verwijderen
CROSS: kruis
DEFINITION: Definitielijst
DEFINITION_LIST: Definitielijst
DELETE_CLOSE: verwijderen / sluiten
DELETE_COLUMN: kolom verwijderen
DELETE_CONTENT_BLOCK: content-block verwijderen
DELETE_PAGE: pagina verwijderen
DELETE_ROW: rij verwijderen
DELETE_USER: Gebruiker verwijderen
DELETE: verwijderen
DESCRIPTION: omschrijving
DIFFERENT_DESIGN_FOR_STARTPAGE: ander ontwerp voor startpagina
DISCARD_CHANGES: Wijzigingen negeren
DISCARD: weggooien
DO_YOU_REALLY_WANT_TO_DELETE_THE_USER: Wilt u de gebruiker echt verwijderen
DO_YOU_REALLY_WANT_TO_DELETE_THIS_PAGE: Wilt u deze pagina echt verwijderen?
DO_YOU_WANT_TO_DISCARD_YOUR_CHANGES_AND_SET_THE_CONTENT_BACK_TO_THE_LIVE_VERSION: Wilt u uw wijzigingen annuleren en de inhoud terugzetten naar de live versie?
DRAFT: Ontwerp
DRAG_A_PICTURE_OR_CLICK_TO_SELECT: sleep een foto of klik om te selecteren
EDIT: bewerken
EDIT_USER: Gebruiker bewerken
E_G_: bijv.
E_MAIL: e-mail
EXTERNAL_LINK: externe link
FACEBOOK: Facebook
FIRST_NAME: Voornaam
FOLDER: map
FORGOT_PASSWORD: Wachtwoord vergeten
HEADLINE: kop
FORMAT: Formaat
GITHUB: GitHub
HEAD: Kop
HEADLINE: Kop
HOME: home
HOMEPAGE: Homepage
HORIZONTAL_LINE: Horizontale lijn
HORIZONTAL_LINE: Horizontale lijn
HR: hr
IMAGE: afbeelding
IF_NOT_FILLED__THE_DESCRIPTION_IS_EXTRACTED_FROM_CONTENT_: Indien niet ingevuld, wordt de beschrijving uit de inhoud gehaald.
IMAGE: Afbeelding
ITALIC: cursief
LABEL_FOR_CHAPTER: Label voor hoofdstuk
LABEL_FOR_START_BUTTON: label voor startknop
LANGUAGE: Taal
LAST_MODIFIED_FORMAT: Laatst gewijzigd formaat
LAST_MODIFIED: Laatst gewijzigd
LAST_MODIFIED_LIVE__READONLY_: Laatst gewijzigd live (alleen-lezen)
LAST_MODIFIED_TEXT: Laatst gewijzigde tekst
LAST_NAME: achternaam
LEFT: Links
LICENCE: Licentie
LINKEDIN: Linkedin
LINK: Link
LINK_TO_GIT_REPOSITORY: Link naar git repository
LINK_TO_VIDEO: Link naar video
LOGIN: Inloggen
LOGOUT: Uitloggen
MAIL: Mail
MANUAL_DATE: Handmatige datum
MARKDOWN: Markdown
MENU: Menu
META_DESCRIPTION: Metabeschrijving
META: meta
META_TITLE: metatitel
META_TITLE: Metatitel
MISSING_REQUIREMENTS: ontbrekende vereisten
MOVE_VERTICAL: verplaats verticaal
NEW_PASSWORD: Nieuw wachtwoord
NO_DESCRIPTION: Geen beschrijving
NO_PREVIEW: Geen voorbeeld
NO_SETTINGS: Geen instellingen
NOT_EDITABLE: niet bewerkbaar
NUMBERED_LIST: Genummerde lijst
OLIST: olist
ONLY_THE_FOLLOWING_SPECIAL_CHARACTERS_ARE_ALLOWED: alleen de volgende speciale tekens zijn toegestaan:
PARAGRAPH: Paragraaf
PASSWORD: Wachtwoord
PLEASE_CONFIRM: bevestig alstublieft
PLEASE_CORRECT_THE_ERRORS_ABOVE: Corrigeer bovenstaande fouten
PLUGINS: plug-ins
PLUGIN_STORE: Plugin Store
POSITION_OF_AUTHOR: Positie van auteur
POSITION_OF_GIT_EDIT_LINK: Positie van Git Link bewerken
POSITION_OF_MODIFIED_TEXT: Positie van gemodificeerde tekst
POSITION_OF_SHARE_BUTTONS: Positie van Share-knoppen
POWER_OFF: power-off
PUBLISH: Publiceren
QUOTE: quote
QUOTE: Citeren
QUOTES: Citeren
RAW_CONTENT_EDITOR: Raw Content Editor
RAW_MARKDOWN_EDITOR: Raw Markdown Editor
RAW_MODE: onbewerkte modus
@@ -125,30 +133,43 @@ RAW: rauw
READONLY: Alleen lezen
REMEMBER_TO_BOOKMARK_THIS_PAGE: vergeet deze pagina niet te bookmarken
REQUIRED: verplicht
RIGHT: Rechts
ROLE: rol
SAVE_ALL_SETTINGS: sla alle instellingen op
SAVED_SUCCESSFULLY: succesvol opgeslagen
SAVE: Opslaan
SAVE_THEME: Thema opslaan
SELECT_SHARE_BUTTONS: Selecteer Share-knoppen
SETTINGS: Instellingen
SETUP: Setup
SHARE: deel
SHOW_CHAPTER_NUMBERS: hoofdstuknummers tonen
STANDARD_EDITOR_MODE: Standaardeditormodus
START: Start
SYSTEM: Systeem
TABLE: tabel
TABLE_OF_CONTENTS: Inhoudsopgave
TABLE: Tabel
TAKEN_FROM_YOUR_USER_ACCOUNT_IF_SET_: Genomen uit uw gebruikersaccount indien ingesteld.
TERM: term
TEXT_FILE: tekstbestand
THE_FORMAT_BUTTONS: De opmaakknoppen
THEMAS: Thema's
THEME_STORE: Theme Store
TITLE: Titel
TOC: toc
TOP: Top
TWITTER: Twitter
TYPEMILL_DESCRIPTION: Het standaardthema voor typemill. Responsief, minimaal en zonder afhankelijkheden. Het gebruikt de systeemlettertypen Calibri en Helvetica. Er is geen JavaScript gebruikt.
ULIST: ulist
UNKNOWN: onbekend
UPDATE_USER: Gebruiker bijwerken
USE_2_TO_40_CHARACTERS: gebruik 2 tot 40 tekens.
USE_A_VALID_YEAR: Gebruik een geldig jaar
USED_AS_FALLBACK_WHEN_NO_MANUAL_DATE_IS_SET_: Gebruikt als fallback als er geen handmatige datum is ingesteld.
USER: Gebruiker
USERNAME: Gebruikersnaam
USERS: Gebruikers
USER: Gebruiker
VIDEO: video
VIDEO: Video
VIEW_SITE: Site bekijken
VISUAL_CONTENT_EDITOR: Visual Content Editor
VISUAL_EDITOR: visuele editor
@@ -158,5 +179,7 @@ VISUEEL: visueel
WAIT: wacht
WEBSITE_TITLE: Titel van de website
WEB: Web
WHATSAPP: Whatsapp
WRITING: schrijven
YEAR: Jaar
XING: Xing
YEAR: Jaar

View File

@@ -1,53 +0,0 @@
# English
en:
add content-block: add content-block
add definition: add definition
add left column: add left column
add right column: add right column
add row above: add row above
add row below: add row below
Alt-Text: Alt-Text
author: author
Bullet List: Bullet List
cancel: cancel
Caption: Caption
cell: cell
Center: Center
Class: Class
Code: Code
Content: Content
Created at (readonly): Created at (readonly)
Definition List: Definition List
delete column: delete column
delete content-block: delete content-block
delete row: delete row
description: description
drag a picture or click to select: upload an image
Head: Head
Headline: Headline
Horizontal Line: Horizontal Line
If not filled, the description is extracted from content.: If not filled, the description is extracted from content.
Image: Image
Last modified live (readonly): Last modified live (readonly)
Left: Left
Link: Link
Link to video: Link to video
Manual date: Manual date
Meta description: Meta description
meta: meta
Meta title: Meta title
Numbered List: Numbered List
Paragraph: Paragraph
Please correct the errors above: Please correct the errors above
Quote: Quote
Right: Right
Saved successfully: Saved successfully
save: save
save: save
table of contents: Table of Contents
Table: Table
Taken from your user account if set.: Taken from your user account if set.
term: term
Title: Title
Used as fallback when no manual date is set.: Used as fallback when no manual date is set.
Video: Video

View File

@@ -1,53 +0,0 @@
# Italiano
it:
add content-block: aggiungi blocco contenuto
add definition: aggiungi definizione
add left column: aggiungi colonna a sinistra
add right column: aggiungi colonna a destra
add row above: aggiungi la riga sopra
add row below: aggiungi la riga sotto
Alt-Text: Testo alternativo
author: autore
Bullet List: Elenco puntato
cancel: Annulla
Caption: Didascalia
cell: cella
Center: Centro
Class: Classe
Code: Codice
Content: Contenuto
Created at (readonly): Creato il (sola lettura)
Definition List: Elenco delle definizioni
delete column: elimina colonna
delete content-block: elimina blocco contenuto
delete row: elimina riga
description: descrizione
drag a picture or click to select: trascina un'immagine o fai clic per selezionare
Head: Intestazione
Headline: Titolo
Horizontal Line: Linea orizzontale
If not filled, the description is extracted from content.: Se non compilato, la descrizione viene estratta dal contenuto.
Image: Immagine
Last modified live (readonly): Ultima modifica (sola lettura)
Left: Sinistra
Link: Collegamento
Link to video: Collega al video
Manual date: Data manuale
Meta description: Descrizione
meta: Metadati
Meta title: Titolo
Numbered List: Elenco numerato
Paragraph: Paragrafo
Please correct the errors above: Si prega di correggere gli errori sopra
Quote: Citazione
Right: Destra
Saved successfully: Salvato con successo
save: salva
save: Salva
table of contents: Sommario
Table: Tabella
Taken from your user account if set.: Tratto dalla tua utenza, se impostata.
term: termine
Title: Titolo
Used as fallback when no manual date is set.: Utilizzato come ripiego quando non è impostata alcuna data manuale.
Video: Video

View File

@@ -1,52 +0,0 @@
# Dutch
nl:
add content-block: inhoudblok toevoegen
add definition: definitie toevoegen
add left column: linkerkolom toevoegen
add right column: rechter kolom toevoegen
add row above: rij boven toevoegen
add row below: rij hieronder toevoegen
Alt-Text: Alt-tekst
author: auteur
Bullet List: Lijst met opsommingstekens
cancel: annuleren
Caption: Bijschrift
cell: cel
Center: Midden
Class: Class
Code: Code
Content: inhoud
Created at (readonly): Gemaakt om (alleen lezen)
Definition List: Definitielijst
delete column: kolom verwijderen
delete content-block: content-block verwijderen
delete row: rij verwijderen
description: omschrijving
drag a picture or click to select: sleep een foto of klik om te selecteren
Head: Kop
Headline: Kop
Horizontal Line: Horizontale lijn
If not filled, the description is extracted from content.: Indien niet ingevuld, wordt de beschrijving uit de inhoud gehaald.
Image: Afbeelding
Last modified live (readonly): Laatst gewijzigd live (alleen-lezen)
Left: Links
Link: Link
Link to video: Link naar video
Manual date: Handmatige datum
Meta description: Metabeschrijving
meta: meta
Meta title: Metatitel
Numbered List: Genummerde lijst
Paragraph: Paragraaf
Please correct the errors above: Corrigeer bovenstaande fouten
Quote: Citeren
Right: Rechts
Saved successfully: succesvol opgeslagen
save: opslaan
table of contents: inhoudsopgave
Table: Tabel
Taken from your user account if set.: Genomen uit uw gebruikersaccount indien ingesteld.
term: term
Title: Titel
Used as fallback when no manual date is set.: Gebruikt als fallback als er geen handmatige datum is ingesteld.
Video: video

View File

@@ -42,7 +42,6 @@ class Settings
# load the strings of the set language
$language = $settings['language'];
$settings['labels'] = self::getLanguageLabels($language);
$settings['vuejsLabels'] = self::getVuejsLabels($language);
# We know the used theme now so create the theme path
$settings['themePath'] = $settings['rootPath'] . $settings['themeFolder'] . DIRECTORY_SEPARATOR . $settings['theme'];
@@ -81,7 +80,7 @@ class Settings
'contentFolder' => 'content',
'cache' => true,
'cachePath' => $rootPath . 'cache',
'version' => '1.3.4',
'version' => '1.3.5',
'setup' => true,
'welcome' => true,
'images' => ['live' => ['width' => 820], 'thumbs' => ['width' => 250, 'height' => 150]],

View File

@@ -12,7 +12,7 @@
v-bind:key="tab"
v-bind:class="['tab-button', { active: currentTab === tab }]"
v-on:click="currentTab = tab"
>${ tab|translate }</button>
>${ tab|translate }</button>
<component
class="tab"

View File

@@ -6,8 +6,8 @@ const contentComponent = Vue.component('content-block', {
'<div v-if="newblock" class="newblock-info">Choose a content-type <button class="newblock-close" @click.prevent="closeNewBlock($event)">close</button></div>' +
'<div class="blox-wrapper" :class="{ editactive: edit }">' +
'<div class="sideaction" slot="header" v-if="body">' +
'<button class="add" :disabled="disabled" :title="$t(\'add content-block\')" @mousedown.prevent="disableSort()" @click.prevent="addNewBlock($event)"><svg class="icon icon-plus"><use xlink:href="#icon-plus"></use></svg></button>' +
'<button class="delete" :disabled="disabled" :title="$t(\'delete content-block\')" @mousedown.prevent="disableSort()" @click.prevent="deleteBlock($event)"><svg class="icon icon-close"><use xlink:href="#icon-close"></use></svg></button>' +
'<button class="add" :disabled="disabled" :title="\'add content-block\'|translate" @mousedown.prevent="disableSort()" @click.prevent="addNewBlock($event)"><svg class="icon icon-plus"><use xlink:href="#icon-plus"></use></svg></button>' +
'<button class="delete" :disabled="disabled" :title="\'delete content-block\'|translate" @mousedown.prevent="disableSort()" @click.prevent="deleteBlock($event)"><svg class="icon icon-close"><use xlink:href="#icon-close"></use></svg></button>' +
'</div>' +
'<div class="background-helper" @keyup.enter="submitBlock" @click="getData">' +
'<div class="component" ref="component">' +
@@ -15,8 +15,8 @@ const contentComponent = Vue.component('content-block', {
'<component :disabled="disabled" :compmarkdown="compmarkdown" @updatedMarkdown="updateMarkdown" :is="componentType"></component>' +
'</transition>' +
'<div class="blox-buttons" v-if="edit">' +
'<button class="edit" :disabled="disabled" @click.prevent="saveBlock">{{ $t(\'save\') }}</button>' +
'<button class="cancel" :disabled="disabled" @click.prevent="switchToPreviewMode">{{ $t(\'cancel\') }}</button>' +
'<button class="edit" :disabled="disabled" @click.prevent="saveBlock">{{ \'save\'|translate }}</button>' +
'<button class="cancel" :disabled="disabled" @click.prevent="switchToPreviewMode">{{ \'cancel\'|translate }}</button>' +
'</div>' +
'</div>' +
'<div :class="preview" ref="preview"><slot><format-component></format-component></slot></div>' +
@@ -938,25 +938,25 @@ const tableComponent = Vue.component('table-component', {
'<tr v-for="(row, rowindex) in table">' +
'<td v-if="rowindex === 0" v-for="(value,colindex) in row" contenteditable="false" class="noteditable" @click="switchcolumnbar(value)">{{value}} ' +
'<div v-if="columnbar === value" class="columnaction">' +
'<div class="actionline" @click="addrightcolumn(value)">{{ $t(\'add right column\') }}</div>' +
'<div class="actionline" @click="addleftcolumn(value)">{{ $t(\'add left column\') }}</div>' +
'<div class="actionline" @click="deletecolumn(value)">{{ $t(\'delete column\') }}</div>' +
'<div class="actionline" @click="addrightcolumn(value)">{{ \'add right column\'|translate }}</div>' +
'<div class="actionline" @click="addleftcolumn(value)">{{ \'add left column\'|translate }}</div>' +
'<div class="actionline" @click="deletecolumn(value)">{{ \'delete column\'|translate }}</div>' +
'</div>' +
'</td>' +
'<th v-if="rowindex === 1" v-for="(value,colindex) in row" :contenteditable="colindex !== 0 ? true : false" @click="switchrowbar(value)" @blur="updatedata($event,colindex,rowindex)" :class="colindex !== 0 ? editable : noteditable">' +
'<div v-if="colindex === 0 && rowbar === value" class="rowaction">' +
'<div class="actionline" @click="addaboverow(value)">{{ $t(\'add row above\') }}</div>' +
'<div class="actionline" @click="addbelowrow(value)">{{ $t(\'add row below\') }}</div>' +
'<div class="actionline" @click="deleterow(value)">{{ $t(\'delete row\') }}</div>' +
'<div class="actionline" @click="addaboverow(value)">{{ \'add row above\'|translate }}</div>' +
'<div class="actionline" @click="addbelowrow(value)">{{ \'add row below\'|translate }}</div>' +
'<div class="actionline" @click="deleterow(value)">{{ \'delete row\'|translate }}</div>' +
'</div>' +
'{{ $t(value) }}</th>' +
'{{ value|translate }}</th>' +
'<td v-if="rowindex > 1" v-for="(value,colindex) in row" :contenteditable="colindex !== 0 ? true : false" @click="switchrowbar(value)" @blur="updatedata($event,colindex,rowindex)" :class="colindex !== 0 ? editable : noteditable">' +
'<div v-if="colindex === 0 && rowbar === value" class="rowaction">' +
'<div class="actionline" @click="addaboverow(value)">{{ $t(\'add row above\') }}</div>' +
'<div class="actionline" @click="addbelowrow(value)">{{ $t(\'add row below\') }}</div>' +
'<div class="actionline" @click="deleterow(value)">{{ $t(\'delete row\') }}</div>' +
'<div class="actionline" @click="addaboverow(value)">{{ \'add row above\'|translate }}</div>' +
'<div class="actionline" @click="addbelowrow(value)">{{ \'add row below\'|translate }}</div>' +
'<div class="actionline" @click="deleterow(value)">{{ \'delete row\'|translate }}</div>' +
'</div>' +
'{{ $t(value) }}</td>' +
'{{ value|translate }}</td>' +
'</tr>' +
'</tbody>' +
'</table>' +
@@ -1135,13 +1135,13 @@ const definitionComponent = Vue.component('definition-component', {
'<draggable v-model="definitionList" :animation="150" @end="moveDefinition">' +
'<div class="definitionRow" v-for="(definition, dindex) in definitionList" :key="definition.id">' +
'<svg class="icon icon-arrows-v"><use xlink:href="#icon-arrows-v"></use></svg>' +
'<input type="text" class="definitionTerm" v-bind:placeholder="$t(\'term\')" :value="definition.term" :disabled="disabled" @input="updateterm($event,dindex)" @blur="updateMarkdown">' +
'<input type="text" class="definitionTerm" v-bind:placeholder="\'term\'|translate" :value="definition.term" :disabled="disabled" @input="updateterm($event,dindex)" @blur="updateMarkdown">' +
'<svg class="icon icon-dots-two-vertical"><use xlink:href="#icon-dots-two-vertical"></use></svg>' +
'<textarea class="definitionDescription" v-bind:placeholder="$t(\'description\')" v-html="definition.description" :disabled="disabled" @input="updatedescription($event, dindex)" @blur="updateMarkdown"></textarea>' +
'<textarea class="definitionDescription" v-bind:placeholder="\'description\'|translate" v-html="definition.description" :disabled="disabled" @input="updatedescription($event, dindex)" @blur="updateMarkdown"></textarea>' +
'<button class="delDL" @click.prevent="deleteDefinition(dindex)"><svg class="icon icon-minus"><use xlink:href="#icon-minus"></use></svg></button>' +
'</div>' +
'</draggable>' +
'<button class="addDL" @click.prevent="addDefinition()"><svg class="icon icon-plus"><use xlink:href="#icon-plus"></use></svg> {{ $t(\'add definition\') }}</button>' +
'<button class="addDL" @click.prevent="addDefinition()"><svg class="icon icon-plus"><use xlink:href="#icon-plus"></use></svg> {{ \'add definition\'|translate }}</button>' +
'<div v-if="load" class="loadwrapper"><span class="load"></span></div>' +
'</div>',
mounted: function(){
@@ -1211,8 +1211,8 @@ const videoComponent = Vue.component('video-component', {
props: ['compmarkdown', 'disabled', 'load'],
template: '<div class="video dropbox">' +
'<div class="contenttype"><svg class="icon icon-play"><use xlink:href="#icon-play"></use></svg></div>' +
'<label for="video">{{ $t(\'Link to video\') }}: </label><input type="url" ref="markdown" placeholder="https://www.youtube.com/watch?v=" :value="compmarkdown" :disabled="disabled" @input="updatemarkdown">' +
'<div v-if="load" class="loadwrapper"><span class="load"></span></div>' +
'<label for="video">{{ \'Link to video\'|translate }}: </label><input type="url" ref="markdown" placeholder="https://www.youtube.com/watch?v=" :value="compmarkdown" :disabled="disabled" @input="updatemarkdown">' +
'<div v-if="load" class="loadwrapper"><span class="load"></span></div>' +
'</div>',
mounted: function(){
@@ -1242,7 +1242,7 @@ const imageComponent = Vue.component('image-component', {
'<input type="hidden" ref="markdown" :value="compmarkdown" :disabled="disabled" @input="updatemarkdown" />' +
'<div class="imageupload">' +
'<input type="file" name="image" accept="image/*" class="input-file" @change="onFileChange( $event )" /> ' +
'<p><svg class="icon icon-upload baseline"><use xlink:href="#icon-upload"></use></svg> {{ $t(\'drag a picture or click to select\') }}</p>' +
'<p><svg class="icon icon-upload baseline"><use xlink:href="#icon-upload"></use></svg> {{ \'drag a picture or click to select\'|translate }}</p>' +
'</div>' +
'<button class="imageselect" @click.prevent="openmedialib()"><svg class="icon icon-image baseline"><use xlink:href="#icon-image"></use></svg> select from medialib</button>' +
'<transition name="fade-editor">' +
@@ -1254,12 +1254,12 @@ const imageComponent = Vue.component('image-component', {
'<img class="uploadPreview" :src="imgpreview" />' +
'<div v-if="load" class="loadwrapper"><span class="load"></span></div>' +
'<div class="imgmeta" v-if="imgmeta">' +
'<label for="imgalt">{{ $t(\'Alt-Text\') }}: </label><input name="imgalt" type="text" placeholder="alt" @input="createmarkdown" v-model="imgalt" max="100" />' +
'<label for="imgtitle">{{ $t(\'Title\') }}: </label><input name="imgtitle" type="text" placeholder="title" v-model="imgtitle" @input="createmarkdown" max="64" />' +
'<label for="imgcaption">{{ $t(\'Caption\') }}: </label><input title="imgcaption" type="text" placeholder="caption" v-model="imgcaption" @input="createmarkdown" max="140" />' +
'<label for="imgurl">{{ $t(\'Link\') }}: </label><input title="imgurl" type="url" placeholder="url" v-model="imglink" @input="createmarkdown" />' +
'<label for="imgclass">{{ $t(\'Class\') }}: </label><select title="imgclass" v-model="imgclass" @change="createmarkdown"><option value="center">{{ $t(\'Center\') }}</option><option value="left">{{ $t(\'Left\') }}</option><option value="right">{{ $t(\'Right\') }}</option></select>' +
'<input title="imgid" type="hidden" placeholder="id" v-model="imgid" @input="createmarkdown" max="140" />' +
'<label for="imgalt">{{ \'Alt-Text\'|translate }}: </label><input name="imgalt" type="text" placeholder="alt" @input="createmarkdown" v-model="imgalt" max="100" />' +
'<label for="imgtitle">{{ \'Title\'|translate }}: </label><input name="imgtitle" type="text" placeholder="title" v-model="imgtitle" @input="createmarkdown" max="64" />' +
'<label for="imgcaption">{{ \'Caption\'|translate }}: </label><input title="imgcaption" type="text" placeholder="caption" v-model="imgcaption" @input="createmarkdown" max="140" />' +
'<label for="imgurl">{{ \'Link\'|translate }}: </label><input title="imgurl" type="url" placeholder="url" v-model="imglink" @input="createmarkdown" />' +
'<label for="imgclass">{{ \'Class\'|translate }}: </label><select title="imgclass" v-model="imgclass" @change="createmarkdown"><option value="center">{{ \'Center\'|translate }}</option><option value="left">{{ \'Left\'|translate }}</option><option value="right">{{ \'Right\'|translate }}</option></select>' +
'<input title="imgid" type="hidden" placeholder="id" v-model="imgid" @input="createmarkdown" max="140" />' +
'</div></div>',
data: function(){
return {
@@ -1534,7 +1534,7 @@ const fileComponent = Vue.component('file-component', {
'<input type="hidden" ref="markdown" :value="compmarkdown" :disabled="disabled" @input="updatemarkdown" />' +
'<div class="imageupload">' +
'<input type="file" accept="*" name="file" class="input-file" @change="onFileChange( $event )" /> ' +
'<p><svg class="icon icon-upload baseline"><use xlink:href="#icon-upload"></use></svg> {{ $t(\'upload file\') }}</p>' +
'<p><svg class="icon icon-upload baseline"><use xlink:href="#icon-upload"></use></svg> {{ \'upload file\'|translate }}</p>' +
'</div>' +
'<button class="imageselect" @click.prevent="openmedialib()"><svg class="icon icon-paperclip baseline"><use xlink:href="#icon-paperclip"></use></svg> select from medialib</button>' +
'<transition name="fade-editor">' +
@@ -1545,7 +1545,7 @@ const fileComponent = Vue.component('file-component', {
'<div class="contenttype"><svg class="icon icon-paperclip"><use xlink:href="#icon-paperclip"></use></svg></div>' +
'<div v-if="load" class="loadwrapper"><span class="load"></span></div>' +
'<div class="imgmeta relative" v-if="filemeta">' +
'<label for="filetitle">{{ $t(\'Title\') }}: </label>' +
'<label for="filetitle">{{ \'Title\'|translate }}: </label>' +
'<input name="filetitle" type="text" placeholder="Add a title for the download-link" v-model="filetitle" @input="createmarkdown" max="64" />' +
'<input title="fileid" type="hidden" placeholder="id" v-model="fileid" @input="createmarkdown" max="140" />' +
'</div></div>',
@@ -1725,7 +1725,7 @@ const medialib = Vue.component('medialib', {
template: '<div class="medialib">' +
'<div class="mt3">' +
'<div class="w-30 dib v-top ph4 pv3">' +
'<button class="f6 link br0 ba ph3 pv2 mb2 w-100 dim white bn bg-tm-red" @click.prevent="closemedialib()">{{ $t(\'close library\') }}</button>' +
'<button class="f6 link br0 ba ph3 pv2 mb2 w-100 dim white bn bg-tm-red" @click.prevent="closemedialib()">{{ \'close library\'|translate }}</button>' +
'<div class="w-100 relative">' +
'<div><input v-model="search" class="w-100 border-box pa2 mb3 br0 ba b--light-silver"><svg class="icon icon-search absolute top-1 right-1 pa1 gray"><use xlink:href="#icon-search"></use></svg></div>' +
'</div>' +
@@ -1895,13 +1895,16 @@ const medialib = Vue.component('medialib', {
var searchimages = this.search;
var filteredImages = {};
var images = this.imagedata;
Object.keys(images).forEach(function(key) {
var searchindex = key + ' ' + images[key].name;
if(searchindex.toLowerCase().indexOf(searchimages.toLowerCase()) !== -1)
{
filteredImages[key] = images[key];
}
});
if(images)
{
Object.keys(images).forEach(function(key) {
var searchindex = key + ' ' + images[key].name;
if(searchindex.toLowerCase().indexOf(searchimages.toLowerCase()) !== -1)
{
filteredImages[key] = images[key];
}
});
}
return filteredImages;
},
filteredFiles() {
@@ -1909,13 +1912,16 @@ const medialib = Vue.component('medialib', {
var searchfiles = this.search;
var filteredFiles = {};
var files = this.filedata;
Object.keys(files).forEach(function(key) {
var searchindex = key + ' ' + files[key].name;
if(searchindex.toLowerCase().indexOf(searchfiles.toLowerCase()) !== -1)
{
filteredFiles[key] = files[key];
}
});
if(files)
{
Object.keys(files).forEach(function(key) {
var searchindex = key + ' ' + files[key].name;
if(searchindex.toLowerCase().indexOf(searchfiles.toLowerCase()) !== -1)
{
filteredFiles[key] = files[key];
}
});
}
return filteredFiles;
}
},
@@ -2217,12 +2223,7 @@ for(var i = 0; i < formatConfig.length; i++)
}
}
let editor = new Vue({
i18n: new VueI18n({
locale: language,
messages: vuejsLabels
}),
let editor = new Vue({
delimiters: ['${', '}'],
el: '#blox',
/* components: componentList, */

File diff suppressed because one or more lines are too long

View File

@@ -17,8 +17,8 @@
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="{{ base_url }}/system/author/img/apple-touch-icon-152x152.png" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/tachyons.min.css?20200405" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200405" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/tachyons.min.css?20200420" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200420" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/color-picker.min.css" />
</head>
<body>
@@ -56,7 +56,7 @@
</article>
<footer></footer>
</div>
<script src="{{ base_url }}/system/author/js/color-picker.min.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/author.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/color-picker.min.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/author.js?20200420"></script>
</body>
</html>

View File

@@ -18,7 +18,7 @@
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="{{ base_url }}/system/author/img/apple-touch-icon-152x152.png" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200405" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200420" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/color-picker.min.css" />
</head>
<body>
@@ -54,6 +54,6 @@
{% block content %}{% endblock %}
</div>
<script src="{{ base_url }}/system/author/js/auth.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/auth.js?20200420"></script>
</body>
</html>

View File

@@ -17,7 +17,7 @@
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="{{ base_url }}/system/author/img/apple-touch-icon-152x152.png" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200405" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200420" />
</head>
<body>
<svg style="position: absolute; width: 0; height: 0; overflow: hidden" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

View File

@@ -18,7 +18,7 @@
<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/tachyons.min.css" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200405" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200420" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/color-picker.min.css" />
{{ assets.renderCSS() }}
@@ -196,28 +196,27 @@
const myaxios = axios.create();
myaxios.defaults.baseURL = "{{ base_url }}";
</script>
<script src="{{ base_url }}/system/author/js/typemillutils.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue.min.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue-i18n.min.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/autosize.min.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/author.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue-blox-config.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/typemillutils.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/vue.min.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/autosize.min.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/author.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/vue-blox-config.js?20200420"></script>
<script>
let formatConfig = {{ settings.formats|json_encode() }};
let language = {{ settings.language|json_encode() }};
let vuejsLabels = {{ settings.vuejsLabels|json_encode() }};
let labels = {{ settings.labels|json_encode() }};
let navigation = {{ navigation|json_encode() }};
</script>
{{ assets.renderEditorJS() }}
<script src="{{ base_url }}/system/author/js/vue-blox.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue-posts.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/sortable.min.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vuedraggable.umd.min.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue-navi.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue-meta.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue-blox.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/vue-posts.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/sortable.min.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/vuedraggable.umd.min.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/vue-navi.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/vue-meta.js?20200420"></script>
{{ assets.renderJS() }}

View File

@@ -18,7 +18,7 @@
<link rel="stylesheet" href="{{ base_url }}/system/author/css/normalize.css" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200405" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/style.css?20200420" />
<link rel="stylesheet" href="{{ base_url }}/system/author/css/color-picker.min.css" />
{{ assets.renderCSS() }}
@@ -83,29 +83,29 @@
</article>
<footer></footer>
</div>
<script src="{{ base_url }}/system/author/js/axios.min.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/axios.min.js?20200420"></script>
<script>
const myaxios = axios.create();
myaxios.defaults.baseURL = "{{ base_url }}";
</script>
<script src="{{ base_url }}/system/author/js/vue.min.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/autosize.min.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/sortable.min.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vuedraggable.umd.min.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/author.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue.min.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/autosize.min.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/sortable.min.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/vuedraggable.umd.min.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/author.js?20200420"></script>
<script>
let language = {{ settings.language|json_encode() }};
let labels = {{ settings.labels|json_encode() }};
let labels = {{ settings.labels|json_encode() }};
let navigation = {{ navigation|json_encode() }};
</script>
{{ assets.renderEditorJS() }}
<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue-editor.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue-meta.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue-navi.js?20200405"></script>
<script src="{{ base_url }}/system/author/js/vue-publishcontroller.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/vue-editor.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/vue-meta.js?20200420"></script>
<script src="{{ base_url }}/system/author/js/vue-navi.js?20200420"></script>
{{ assets.renderJS() }}

View File

@@ -62,7 +62,7 @@
{% endif %}
{% if field.description %}<div class="description">{{field.description}}</div>{% endif %}
{% if field.description %}<div class="description">{{ __(field.description) }}</div>{% endif %}
{% if errors[itemName][field.name] %}
<span class="error">{{ errors[itemName][field.name] | first }}</span>