This article will walk you through the process of claiming your ChronoGrapher account and how to set up your first project.
When you become a ChronoGrapher patron your default login will be the same email you have registered with your Patreon account. You will be able to login to ChronoGrapher directly with your Patreon email, if it supports google sign in. This is usually limited to gmail accounts. Your ChronoGrapher account is usually activated a few minutes after you’ve become a patron, but it can take up to a day for your account to become active. If you’re having any issues signing into your account please send me a message on Patreon.
If your Patreon email is not a gmail account you will still need to sign in with gmail to claim your ChronoGrapher account. ChronoGrapher stores all of your files in your google drive, and so requires gmail to function. Sign in with the gmail account you want to use with ChronoGrapher and you will be prompted to enter the email you registered with your Patreon account. When you have entered your email, hit the ‘Claim account’ button. If successful you will be automatically signed in to ChronoGrapher and you can start worldbuilding. If anything goes wrong you will see an error message on the top of the screen stating: ‘Failed to claim account’. If the issue persists please send me a message on Patreon.
To change your login email navigate to the settings slide by clicking the Settings (settings) button, located in the bottom left on desktop and the top right on mobile. Under the Session Settings (settings) tab you will find a button labelled ‘Change email’. When you press this button a prompt will popup explaining the process in more detail. When you click ‘Ok’ you will be prompted to sign in with the gmail account that you want to switch to. If successful you will be signed out of your current account. Normally you should be automatically signed in to your new account, but you may need to do this manually. If the process failed an error message will pop up at the top of your screen that reads: ‘Failed to change login account’.
To create a project you first need to navigate to the Projects () slide, by clicking the CG logo at the top left of your screen. Here you will find all of your projects, the public projects you have added, and all projects that have been shared with you. Clicking the ‘Create new’ button will display a prompt to add a new project. Two projects in the same google drive cannot have the same name.
ChronoGrapher automatically saves any unsaved changes every few minutes. You can always tell if you have unsaved files, and what files specifically are unsaved by looking at the Save Indicator (save), or in the Unsaved Files (save) tab in the Settings (settings) slide. On desktop the Save Indicator (save) indicator will be located in the bottom left of the screen. Hovering over it will show a list of unsaved files, and when clicked ChronoGrapher will try to save your files to google drive. If a file fails to save, the name will be displayed in red. On mobile the Settings (settings) slide icon, located in the top right, will change into the Save Indicator (save) icon when you have unsaved files. Clicking on the icon will open the Unsaved Files (save) tab. You can also find the list of unsaved files by opening the Unsaved Files (save) tab in the Settings (settings) slide. Files that have failed to save will appear in red. If you have unsaved changes you can click the ‘Save files’ button. If you don’t have any unsaved files the button will be greyed out and read ‘No unsaved changes’. If your files failed to save properly you can download them locally by clicking the ‘Download Files’ button. This will save all of the unsaved files directly to your device. This is a last resort to protect your work, and ensure that you never lose your progress due to technical difficulties or internet issues. When you have reloaded the page, or reestablished a stable connection, you can click the ‘Upload files’ button to upload the files to your project again.
This article explains the basics of the ChronoGrapher Wiki.
When you create a new project, a wiki home page will automatically be created. This article will have the same name as the project, and can always be quickly navigated to by clicking the Home (home) button on the Wiki (article) slide. If you delete this page it will automatically be recreated as an empty article.
There are two ways to create new articles. The first option is to click the ‘Create new’ button on the Wiki (article) slide. Doing so will prompt you to enter an article name, as well as selecting a blueprint for the article. The second is by creating a link to the article you want to create and then navigating to it.
There are several ways to navigate your project’s wiki:
The Favourites list, or Project Shortcuts (menu) tab, is located in the Search (search) slide. This is a customizable list of articles, giving you full control over how to organise your project visually.
To add an article to the list you will first need to navigate to your article and click the Star (grade) icon in the top right of the wiki. If the star is hollow, this indicates that the article is not currently in your favourites list, if the star is full this indicates that the article has been added to the list. Clicking on the full star will remove the article from the list. You can also remove articles directly from the list by clicking the star icon that is displayed while hovering over the article in the list.
When you have added articles to the list you can start to organise them. You can do this by dragging each article link vertically or horizontally. Dragging the article vertically will simply shift the vertical location of the article. Dragging the article horizontally will add or remove the article as a child from the article above it in the list. Setting articles as children of other articles can be useful to group and quickly navigate your project.
Blueprints are wiki pages containing a standardised layout and format. You could have an animal Blueprint for example, with headers, tables, an infobox and so on. Whenever you want to create an article about a new animal, you would create it using the animal Blueprint. On creation all of the content in the Blueprint will then be copied over to the new article, saving you time on the initial setup. Blueprints are distinct from Templates, even if they sound similar. A template is transcluded into the article when it's rendered. The purpose is to include the same content in multiple articles without having to edit those articles separately. The content of a Blueprint is copied into the article, and the new article is not updated when the blueprint is changed. To create a new Blueprint simply create a new wiki article, or rename an old one, and preface the article name with "Blueprint:". For example the character blueprint should be named: "Blueprint:Character".
This article explains the basics of ChronoGrapher Maps. Creating maps is only possible on desktop.
There are a few ways to create a new map. Firstly, when you don’t have a map loaded, you will see both a ‘Create tile map’ and a ‘Create atlas map’ button in the middle of the screen. You can also click the Maps (map) button in the left hand navigation bar. This will bring up a dialog box with the same options. Lastly you can create a map for a specific article by opening it in the Wiki Articles (article) slide, clicking More options (more_vert) and selecting the ‘Add Atlas’ or ‘Add Tile Grid’ options.
When creating a tile map you will need to specify the size and nature of your map.
Field | Description |
---|---|
Map name | The map name needs to be unique. If you are adding the map for a specific article, the new map will share the article’s name. |
Map Height | This is the number of vertical tiles for the map. |
Map Width | This is the number of horizontal tiles for the map. |
Map Depth | This is the number of detail layers possible for the map. |
Infinite Map | When this option is checked the map will have no limits in width and height. |
Infinite Depth | With this option checked the map will have no limits on the number of detail layers. |
Hexagon Orientation | This is the default orientation of the hexagons on detail layer 0. Each detail layer shifts the hexagon orientation in order to fit inside their parent layer. Because of this all even numbered detail layers will have the selected orientation, while all uneven detail layers will have the opposite. |
Indent tiles | This check will change the position of the top left hexagon of the grid, to either be indented or not. This flag is only relevant on maps with a fixed size. |
When creating an atlas map you will need to specify a unique name and an image. If you are adding the map for a specific article, the new map will share the article’s name.
When you have a map open you have a few tools to let you move around the map. You can drag your view around the map using the middle mouse button, or by selecting the ‘Navigation’ tool on the toolbar. When the Navigation tool is selected you can drag your view around the map with the left mouse button. Clicking the home button will recenter your view in the middle of your map. You can use your scrollbar to zoom in and out. In a tile map that has more than one detail layer you can move between detail layers in two different ways. The first is by selecting the ‘Move Up Layer’ or ‘Move Down Layer’ tool in the toolbar and clicking a tile. You can also move up or down detail layers by holding shift or control respectively and left clicking on a tile.
Control | Description |
---|---|
Navigation (front_hand) | Disables map editing and allows you to move your view by dragging the left mouse button. |
Home (my_location) | Recenters the view on the middle of the map. |
Pencil (edit) | Single tile drawing tool. |
Brush (brush) | Multi-tile drawing tool. |
Fill (format_color_fill) | Fills an entire area with a tile type. |
Sample (colorize) | Selects the tile type of the tile you sampled. |
Borders (border_style) | Edits the border type of a specific tile. |
Fill Tile (format_paint) | Fills a tile with the selected tile type. Normally a tile is protected from editing if it is a complex tile, but the Fill Tile tool overrides thai restriction. |
Rotate Left (rotate_left) | Rotates the tile or tile icon one step to the left. |
Rotate Right (rotate_right) | Rotates the tile or tile icon one step to the right. |
Undo (undo) | Undo the last edit. |
Redo (redo) | Redo the last undone edit. |
Move Up Layer (zoom_out) | Move up a detail layer |
Move Down Layer (zoom_in) | Move Down a detail layer |
Show/Hide Pins (room) | Displays or hides all pins on the map. |
Lock/Unlock Pins (lock_open) | When pins are unlocked they can be moved by dragging. |
Control | Description |
---|---|
Navigation (front_hand) | Disables map editing and allows you to move your view by dragging the left mouse button. |
Home (my_location) | Recenters the view on the middle of the map. |
Edit (edit) | Change the border of an atlas territory. |
Erase (delete) | Removes the last historical border for an atlas territory. |
Sample (colorize) | Selects the targeted border type from an atlas territory. |
Undo (undo) | Undo the last territory change. |
Redo (redo) | Redo the last undone edit. |
Show/Hide Pins (room) | Displays or hides all pins on the map. |
Lock/Unlock Pins (lock_open) | When pins are unlocked they can be moved by dragging. |
This article explains how to manage your project's images. You can do so both from ChronoGrapher and from Google Drive
To add an image to your ChronoGrapher project you first need to navigate to the Images slide. You can do this by clicking the Images (image) button in the Navigation bar. From there you can either drag and drop images onto the slide or click the ‘+’ button to open a file explorer window. When you add an image to your project the file will be uploaded to your google drive.
In order to use an image in a wiki article you will need the image path. The image path is the location of the image relative to the root image folder of your project. The simplest way to get your image path is to bring up the image context menu (right mouse click on desktop) and select the ‘Copy Path’ option.
You can rename an image by bringing up its context menu and selecting the ‘Rename’ option. Do note that renaming an image will not automatically update all references to your image. You will need to manually update your maps and articles anywhere that you have previously used the image you are renaming.
You can add a new subfolder to your current folder by bringing up the context menu and selecting ‘Create Folder’. You will be prompted to give your folder a unique name.
You can delete both folders and images by bringing up the context menu and selecting the ‘Delete’ option. This will permanently delete the image or the folder along with all of its contents. Note! The ChronoGrapher server does not have access to your images and does not create backups. It is not possible to undo a deletion of image resources.
If you prefer you can manage your images directly from Google Drive. Navigate to your project’s ‘Images’ folder located here: ‘ChronoGrapherWiki/<project name>/Images’. Whenever you make changes to your image folder from Google Drive you can go into the Images (image) slide in ChronoGrapher, bring up the context menu and select the ‘refresh’ option. ChronoGrapher will update the current folder with the latest changes from Google Drive.
Time is one of the fundamental features of ChronoGrapher, and the Calendar system is at the very heart of this. When you create a new project, ChronoGrapher will add a default master calendar, based on the Gregorian calendar. Using the Calendar (calendar_today) slide you can edit the default calendar, or create any number of new calendars.
DateTime is a term for the combination of Date and Time, and a DateTime string represents a single point in time. A DateTime strings is made up of six components:
Example: 1999-12-21 23:59:59 Everything in GhronoGrapher can be made to change based on time, and learning how to interact with the calendar system and DateTime strings is key to making full use of the tool. With ChronoGrapher you can get an extremely detailed account of events in your world, down to individual seconds.
Opening the Calendar (calendar_today) slide and clicking the button at the very top will present you with a dropdown list of your existing calendars. If you have not created a calendar before, the button will be labelled "Master", the name of the base calendar, and you will only have this single calendar in your list. Type the name you want to use for your new calendar into the search field and hit the plus button to create it.
On the Calendar (calendar_today) slide in the dropdown menu, type in the name of the calendar you want to delete and hit the minus button to delete it.
The master calendar is used internally by the tool to convert a datetime between your different calendars. Your created calendars will also always have a parent calendar for this reason.
Field | Description |
---|---|
Era | The era is a shorthand that can be used to identify a calendar, like AD for Anno Domini. |
Number of Months | The number of months in the calendar |
Months | Each month needs a name and a length in days (Example: January, 31) |
Days in Week: | The number of days in a week |
Days | Each day in the week needs a name |
First Day | This dropdown lets you specify the first weekday of the first year |
Year zero | When set to true the year 0 will be included in your calendar. If this field is set to false the year will jump from -1 to 1 instead. |
Style | This field lets you specify how your DateTime strings will be interpreted. Ether European ( Year-Month-Day ), or American ( Year-Day-Month ). |
Parent | This field lets you specify the parent of your calendar. This is used to build relationships between your calendars and to enable ChronoGrapher to convert a DateTime string from one calendar to another. |
Parent Offset | This field takes a DateTime string in the specified style format and records the offset from the parent. Another way to view this is that this field specifies when this calendar starts in the parent calendar. If this calendar starts ten years after your parent calendar, you would write "10-1-1 00:00:00". |
Number of Ages | This field determines the number of Ages used by this calendar. After the specified date and time, the calendar's name and abbreviation will be replaced with the values specified in each age. Ages do not have end dates, but instead last until another age starts. A new age can start in the middle of a year. |
The Timelines (query_builder) slide lets you create timelines to be used by the timeline slider at the bottom of the screen. On this slide you can specify a calendar, start and end time as well as a step size, so you can easily navigate and view your world's time periods
Time is one of the fundamental features of ChronoGrapher, and the Timelines are the main way to control time in the tool. Your active timeline is linked to the slider at the bottom of the screen, and you use the slider to navigate back and forth through time. Each timeline needs to specify the Calendar it's using.
Timelines are a set of datetimes, a start and an end time, as well as a step value. When you have chosen a time interval, for example year 1 to year 10, you then choose a step size, for example 1 year. ChronoGrapher then automatically calculates the number of steps in your timeline, in this case we get 10 steps. The steps are then used by the slider at the bottom of your screen, to let you set the project's current datetime. If you increase the range of the timeline, or decrease the step size, it can become difficult to accurately adjust your current time. If you were to change the step size to 1 day, and used a 4k monitor, each pixel of the slide would represent a new day. Changing the step size to 1 hour and you would not be able to accurately select a specific datetime at all. To resolve this issue you can create multiple timelines, each setting a specific datetime range, as well as a step size. You can set up a timeline with a step size 6 second to represent a combat turn in a pen-and-paper rpg, or 100 years to represent the passing of ages. Both the wiki and your maps can be made to reflect the current datetime, for example a wiki page can be written to always display the current king of a nation. Maps can alter their appearance, for example, a major fire may have raised parts of a village, and you could edit your map to reflect this only when viewing datetimes after the fire took place.
Opening the Timelines (query_builder) slide and clicking the button at the very top will present you with a dropdown list of your existing timelines. If you have not created a timeline before, the button will be labelled "Default", the name of the default timeline, and you will only have this single timeline in your list. Type the name you want to use for your new timeline into the search field and hit the plus button to create it.
On the Timelines (query_builder) slide in the dropdown menu, type in the name of the timeline you want to delete and hit the minus button to delete it.
Field | Description |
---|---|
Calendar | The calendar this timeline will use to interpret your start and end datetimes. This is important as months and years will have variable length in different calendars. |
Display format | The default format is y-M-d h:m:s A. This represents Year-Month-Day Hour:Minute:Second Age. You can add free text as well, and can escape datetime characters using /. Example: Current /year: y Note: format is case sensitive. |
Step size | The number of units each step will change the datetime. Example: The step unit is year, and the step size is 5, each step will be 5 years. |
Step unit | The unit of time for a step. |
Start Date | The start date. Format: 2006-12-24 |
Start Time | The start time. Format: 0:0:0 -> 24:59:59 |
End Date | The end date. Format: 2006-12-24 |
End Time | The end time Format: 0:0:0 -> 24:59:59 |
ChronoGrapher provides a set of licence free tiles and icons to create maps. You are free to use and share any maps you create in ChronoGrapher in any way you want. If you would like to have a different tileset for your maps, you can import them to your project.
Importing custom tilesets lets you determine the look and feel of your maps, as well as expanding the range of maps you can create. To create a new tileset you will firstly need a tilesheet. Tilesheets are images that hold a grid of tile images. The tiles are laid out in a grid pattern in the image and are used in map editors, games and more. The tilesheet is expected to have a uniform layout, where each icon is of equal size and shape, as well as being equally spaced from each other. If you are not planning on using your maps commercially, you can easily find lots of different tilesheets on the internet. If you are planning on using your maps commercially you should look into getting licence free images, or commissioning some yourself.
You can create both custom tiles and icons by opening the Edit Map (brush) slide, and then the Geography types (apps) tab or the Location Icons (account_balance) tab. Click the ‘Edit Tile Groups’ button and then the ‘Edit Tiles’ button. This will bring up the tileset editor window. The first step is to select an image, and you can do so by clicking the empty image button on the left. The image browser will open, displaying your project’s images. If you have not added any images before you can do so from here. If an image is already used as a tilesheet it will appear with a green ribbon titled ‘In Use’. Selecting an in use image will let you edit it, or remove tiles you have already created. Below you will find descriptions for each input field on the tile editor form. Some fields influence each other directly, for example, if you have 10 rows of cells on an image with a pixel width of 100, then each cell will be 10 pixels. A cell is a sub image in the sheet that will be used to create tiles.
Field | Description |
---|---|
Name | The name you want the tileset to have. |
Number of Tiles | The total number of tiles for this sheet. Reducing this number removes cells from the end of the sheet. |
Starting Index | The index of the first cell in the sheet. The index starts at 1 and increasing it will remove cells from the start of the sheet. |
Width(px) | The width of each cell in pixels. |
Height(px) | The height of each cell in pixels. |
Rows | The number of cell rows in the sheet. |
Columns | The number of cell columns in the sheet. |
Padding Width | Some tilesheets have borders in the image and don't start at the leftmost pixel of the image. This field lets you set the size of the border in pixels on the left of the image. |
Padding Height | This field lets you set the size of the border in pixels on the top of the image. |
Spacing Width | Some sheets have spacing between images. This field lets you set the size in pixels of the space between columns. |
Spacing Height | This field lets you set the size in pixels of the space between rows. |
Colour | This field is used to set the background colour for all cells. This field is only used when the images in the sheet are used as icons. The background colour can be set individually for each tile. |
Icon | This checkbox toggles the icon flag for all cells. When checked the image used in a cell will be displayed in the centre of the tile on a coloured background. If unchecked the image will be used as a texture for the tile and will fill the entire shape. The icon flag can be individually toggled for each tile. |
Tile Name | Set the name of the tile, this name will be displayed on the Map Edit slide. The name should describe the nature of the tile, for example Mountain, farm or sand dune. Note! The tile name should be unique, as it will be used in the map data to determine the texture to show on a tile. If you want to replace a tile texture with a new one, simply delete the old and give the new tile the same name. |
Tile Icon | Used to toggle using the image as an icon. |
Tile Colour | Used to set the background colour of the cell. |
You can customise your Edit Map (brush) slide by opening the Geography types (apps) tab or the Location Icons (account_balance) tab and clicking the ‘Edit Tile Groups’ button. You can create a collapsible group by clicking the ‘Add Group’ button. This is especially useful when you have multiple different tilesheets, to be able to quickly find the tiles that you want to use. Clicking the group label will let you rename it, and clicking on the trashcan symbols will let you delete the group. Deleting a group will not remove the tiles inside it. By holding and dragging a tile icon you can rearrange the layout of the tabs, dragging tiles in and out of groups, or change their order. When you are done click the ‘Done’ button to lock your changes.
Tile maps are maps that are made up of hexagon tiles that you can edit and customise. You can find a guide for creating a tile map here.
Tile maps allow you to create hexagon grid maps, and in the future, square grid maps. ChronoGrapher provides a default selection of tile types, and you are free to import any tileset you want. A tile map can, like most things in ChronoGrapher, be manipulated in time, and can change over the course of your world's history. Each time you edit a tile, the tile is changed on the current project DateTime, changing the project DateTime will also change the map accordingly. This tile map timeline feature is entirely optional. If you don’t want to edit your map in time, you can click the Lock/Unlock Timeline (horizontal_rule/private_connectivity) toggle in the bottom left of the screen to turn history editing off. With history editing off, you will only see what the map looks like at the start of year 1, or year 0 if your calendar allows for year 0. Toggling this on or off won’t affect your data, and can be quite useful even when you do use timeline editing, to create a base map. You can find an overview of the tile map controls here.
When you edit the tilemap it is useful to open the Edit Map (brush) slide. On this slide you find four tabs, Geography types (apps), Location Icons (account_balance), Borders (border_style) and Properties (build). The first three are used for editing different aspects of the map, and you can find descriptions of them below.
The Geography types (apps) tab holds all of your tile types, these are forest, mountain, cobblestone, dirt road ect. This is the main tab of the Map edit slide, as the geography tiles are the basis for the map. Clicking on a tile image will select that type for your brush. The active tile type is indicated by a green border. By default ChronoGrapher provides a set of tiles, but you can import any tileset you’d like and use instead. Each tile can hold a single tile type per second, excluding the concept of child views explained below. That means that the map can change entirely for each individual second on the timeline. Naturally this is not a likely scenario, but it does show the potential of the timeline.
The Location Icons (account_balance) tab holds all of your tile icons. Icons are symbols that are added on top of the tile type, these are used to denote points of interest, like cities, bridges, dungeons ect. In a lot of ways adding icons to your map functions in the same way as geographical tiles does. Icons can also be changed per second, they are locked in the same way when toggling of timeline edits and use the same painting tools. ChronoGrapher provides a set of icons to represent overworld locations, but you are free to import any set of icons you’d like.
The Borders (border_style) tab lets you select what border your drawing with. Borders are a generic term that refers to line indicators between tiles. They are obviously useful for defining the borders of a country, but can also be used to visualise the borders of languages, cultures, animal habitats and anything else.
Detail layers are hierarchical layers inside tile maps. You can think about the layers as increasing the zoom level of your map. Each time you go down a detail layer, the size of the map increases, and each time you go up it decreases. The idea is to let you create a map, and then drill down deeper into the details of the map, as far as you’d like. You could start in detail layer 0, the first layer, and create a map of your world. You could then dig down into the next detail layer and add the details for each country, mapping out where each city is and so on. Moving deeper down you could map out individual houses, roads, trees and people. Detail layers allow you to create a single map that can potentially hold your entire world, from the very top most overview, down to the most minute detail.
A child view is a tile image that displays the tiles of the detail layer under it. Each tile, when viewed in a detail layer lower, is made up of a set of child tiles. When you move down into the next detail layer and edit these child tiles, the changes will show up on the detail layer above. This feature lets you create maps with sub-tile details, building a map rich in detail.
Timeline edits can be hard to understand at first, but are relatively simple. Each time you edit a tile, the change is linked to the currently selected project DateTime. For example, if the tile was initially set to ‘Forest’ on 2006-12-24, you could then change it to ‘Forest Fire’ on 2006-12-25. Moving the Projects DateTime to 2006-12-30 you could change the tile to ‘Dead Forest’. None of your tiles previous data is deleted. If you move the project's DateTime back to 2006-12-24 the tile will still display as ‘Forest’. If you were to change the tile to ‘Pine Forest’ now this would override your previous ‘Forest’ tile. This is because you changed the tiles type on a DateTime that already had a value. The important thing to remember is that when you edit a tile, the change will carry on into the future, until another edit of the tile is made. Setting the tile to ‘Water’ on 1003-06-12 will cause the tile to display as water up until the next change, on 2006-12-24. Additionally, each tile will take the first chronological edit as its base type. In our example the first edit found is the ‘Water’ type on 1003-06-12. If the project’s DateTime is changed to 565-05-13 for example, the tile would still display as ‘Water’.
You can export your tilegrid map from the Properties (build) tab in the Edit Map slide. Clicking the ‘Export Scene’ button will create an image for you of your current view. Clicking the ‘Export Map’ button will let you specify the area of the map that you would like to export.
Map pins indicate points of interest on the map, and let you link the map to your wiki.
Map pins are similar to the pins you would find in real world map software. They indicate points of interest, cities, bridges, dungeons, shops, and anything else. Each pin links to a wiki article to quickly give you more information about the location. Clicking on a pin will bring up the linked article in the Wiki slide. Pins can be added to both Tilegrid maps and Atlas maps, and function in the same way on both.
To create a new pin, right click anywhere on the map to bring up the context menu and select the ‘Create pin’ option. This will bring up the pin creation menu. In this menu you can see a preview of the pin you are creating. When you have created your first pin, the context menu will have a new option ‘Duplicate pin’. Selecting it will create a new pin with the same settings as your last one. You can always update the pin later. There are multiple ways to customise your pins. There are three pin shapes, default, shield and diamond, with each you can toggle the pin icon. You can change the size of the pin, to create a visual hierarchy, and you can select the colour and icon as well. Lastly you can link an article to the pin. If no article is added the pin will by default be linked to a pin article that is shared by all other pins with the same icon.
You can remove a pin by right clicking it and selecting the ‘Delete pin’ option. Note! There is no way to undo deleting a pin. You will need to recreate it.
You can edit a pin by right clicking it and selecting the ‘Edit pin’ option. This will bring up the same menu used when creating it. Make your changes and click the ‘Update pin’ button to save them. You can drag your pins around by pressing down on them with the left mouse button.
Pin clustering happens when pins are close to each other, and is meant to reduce visual clutter. When two or more pins are close to each other in your view, they will cluster, creating a round icon with a number to indicate the number of pins the cluster contains. Clicking the cluster will zoom in the viewpoint to separate the pins.
There are two buttons located in the bottom left of your screen that control pin behaviour. The first toggles pin visibility on or off, letting you quickly declutter your view. The second locks pins from being dragged around the map, which is useful for preventing you from accidentally moving your pins.
Adding a Territory Overlay to your atlas maps enables you to visualise borders on a map, and show how they change over time. The territories can be anything, national borders, animal habitats, culture etc.
The Territory Overlay, or the Political map overlay, is a layer on top of your regular atlas map. Just like the border feature in the tile grid editor, you are able to create any number of layers. A layer can be anything, from national borders, to the influence of languages, cultures, or religions, to animal habitats. The Territory Overlay is integrated with the timeline, so that it can change over time, and reflect your kingdoms waxing and waning influences. This timeline feature is entirely optional. If you don’t want to edit your map in time, you can click the Lock/Unlock Timeline (horizontal_rule/private_connectivity) toggle in the bottom left of the screen to turn history editing off. With history editing off, you will only see what the map looks like at the start of year 1, or year 0 if your calendar allows for year 0. Toggling this on or off won’t affect your data, and can be quite useful even when you do use timeline editing, to create a base map.
First you will need to create a black and white version of your map, where white represents regions, black represents borders and transparent pixels are ignored. Adding a Territory Overlay to your Atlas can be done by opening to the Properties (build) tab in the Edit Map (brush) slide and clicking on the ‘Add Territory Map’ button.
Field | Description |
---|---|
Navigation (front_hand) | Lets you move around the map by dragging with the left mouse button. You can still use the middle mouse button to navigate in the same way. |
Home (my_location) | Re-centers the camera on your map. |
Edit (edit) | Lets you edit your maps Territories. |
Erase (delete) | Erases the currently displayed border information of a Territory. |
Sample (colorize) | Select the border of the Territory you click, so that you can use it for editing. |
Undo (undo) | Undo the last edit. |
Redo (redo) | Redo the last undone edit. |
To delete a Territory Overlay open the Properties (build) tab in the Edit Map (brush) slide. Click the ‘Delete Territory Map’ button. This will permanently delete the Territory Overlay along with all of its history.
ChronoMapper is a nodegraph system that enables you to create dynamic article properties. Article properties function similar to templates, in that they let you insert pre-formatted text into your article, but are specific to each article. The properties can in turn be used in other articles, enabling you to have one single source of information on certain details, like names, titles ect.
ChronoMapper works a little bit like a mind map, except it lets you store and chronologize information, as opposed to helping you brainstorm. With ChronoMapper you can add Properties to an article. These properties can then be referenced from anywhere using a Mention (@) markdown command. ChronoMapper Properties are connected to your project's timeline. You are able to add datetime restrictions to them, and let them change based on in-world time. As a simple example, you can add a property called ‘IsAlive’, and add three text options to it: 'Not born', 'Alive' and 'Dead'. Then connect a birth date and a death date to the property. Now you can mention the characters ‘IsAlive’ property in another article and the article will automatically update your characters status. Using this you could have an Article that lists your book's major characters, and keep track of if they could have ever met one another. You could also add a property called 'Location' and get a quick overview of whether two characters are currently in the same city. This can be done for anything: Titles, current equipment, romantic status, partners, if today is the characters birthday, kingdom population and more. This way you are able to include information about characters, objects, locations and anything else in multiple places while being able to edit the value from a single location. This can be done for anything, titles, favourite food, birthday or height for example.
A Mention markdown command consists of two parts, the first is a '@' sign followed directly by an article name, and a '.' followed by the name of the property. As a simple example, let's say you have an article for the character Sherlock Holmes. In the ChronoMapper editor for that article you are able to create an 'Occupation' Property, and then set it to 'Consulting detective'. Now, from any article, you are able to write a mention command, "@[Sherlock Holmes].Occupation", and it will fetch the information and display 'Consulting detective' instead. The square brackets are only required if the article name has spaces in it. If the article was simply named ‘Sherlock’ you could write "@Sherlock.Occupation" instead. By the same logic, if your property has a space in its name, "Current Occupation", you will need to surround the property name with square brackets, "@[Sherlock Holmes].[Current Occupation]". If you omit the article name entirely, "@.Occupation", it will be assumed to be referring to the current article.
You can open the ChronoMapper editor for an article from the Wiki view. Open the Articles (article) slide, click More options (more_vert) on the right side of the slide and select ‘Open ChronoMapper’. This will open the ChronoMapper editor for the selected article. You will see the name of the parent article in the top centre of the screen. If you want to edit a different article, navigate to the article in the Wiki view and select ‘Open ChronoMapper’ again.
When you have ChronoMapper open you can right click anywhere on the screen to bring up the context menu and select the node you want to spawn.
To move nodes press and drag them with the left mouse button. You can select a node by clicking it. If you hold down ctrl when clicking you will be able to select multiple nodes. All selected nodes will be moved when you move one of your selected nodes. To edit a node open the Properties (build) tab on the Edit Map (brush) slide, or by double clicking the node you want to edit. On the Properties tab you will find fields corresponding to the currently selected node(s). To connect two nodes together, press and drag the mouse from one of the nodes pins. A yellow line will appear. Dragging the line to a compatible pin, highlighted in green, will connect the two nodes. If a node pin is red, it indicates that it is incompatible with the current output pin.
To delete a node, select it and press the delete key on your keyboard.
The Property node is the main node in ChronoMapper. When you have created a new property node you will need to give it a name before you can reference it from the wiki editor. In the ‘Name’ field add the name of the property you will use in your wiki. The property node has two input pins by default, Time and Text. When a datetime is connected to the time pin the property will only be active and available in the wiki when the time condition is met. When a text node is connected to the property text pin a second text pin will appear. This way you can connect any number of text nodes to a property node. When displaying the text in the wiki the property will display all active text nodes in a sequential order. If no text node is connected to the property you will also see a Text input field in the properties tab. This field is used to add a static text to the property.
The time node is used to control when in your timeline a property is available, as well as controlling what text it will display. The time node has two fields, a name and a datetime. Giving your time nodes descriptive names can help you organise your ChronoMapper scene, but the name is not vital to the nodes function. As an example, it would be useful to name the time nodes that hold your characters birthdate to ‘Date of birth’, or something similar. The datetime field is used to set the actual datetime for the node. This value can then be used in two ways, as a datetime variable, or as plain text. The time node has multiple output pins, ‘As Text’ is used to output the datetime value as raw text. Next we have five datetime output pins. Each pin will output the datetime with the specified condition. For example, using the ‘Greater than’ output pin will mean that your property will only display your selected text when the project’s timeline is set to a datetime after the datetime of the node.
The time group node is used to combine multiple datetime nodes together in two different ways, ‘And’ and ‘Or’. When multiple datetime objects are linked to this node, they will be combined into a new condition. When the time group is set to ‘And’ all of the input datetime conditions must be true for the time group node’s statement to be true. For example, if the node is set to ‘And’, the current year is 2012, and the input dates are ‘Greater than 2008’ and ‘Lesser than 2022’, then the time group’s statement is true. When the time group is set to ‘Or’ only one of the conditions must be true. For example, if the node is set to ‘Or’, the current year is 2012, and the input dates are ‘Lesser than 2008’ and ‘Greater than 2022’ the statement would be false. But any date before 2008 and after 2022 would be true. You can chain multiple time groups together to create more complex conditions. You can give your time groups names to help you organise your ChronoMapper scene.
The text node lets you create static text fields that will be dynamically propagated to your properties nodes. The value of the text input field will only be propagated to the properties node if the input datetime condition is met. You can give your time groups names to help you organise your ChronoMapper scene.
Automatic lists are lists that you can define once, and the list will be automatically updated when you expand your project. An automatic list will find all of the articles that match your specified requirements, and create a list for you.
Automatic lists are a very powerful tool to organise and track parts of your project. They enable you to always keep an up to date repository of any subject. You could create a bestiary, including all of your world's animals, and each time you create a new article the list will find and include the newly created article in the list automatically. The lists use your article tags to include and exclude articles accordingly, and the requirement can be as complex as you want. For example you could have a list of main characters for your first book by adding the tags 'Book 1' and 'Main character' to all articles this applies to. If you want to narrow the scope of the list you could exclude all articles with the 'Spellcaster' tag, and now your list consists only of non magical main characters. Here is the example code for this specific list:
<list include="Book 1, Main character" exclude="Spellcaster"></list>
There are a few different styles of lists. If you don’t specify a style, the default will be used.
The default style will create a list that includes a link to the article, in the form of a header, and a short summary of the article. If the included article as an excerpt tag, the excerpt will be transcluded, if not the article summary will be transcludedinstead.
The simple list style only includes a link to each article. The list can be augmented using the prefix property to create header, or point lists for example.
The compact style adds a compact ToC before the list. An alphabetical list is then created, with each letter getting their own simple list. This style of list is most useful for quickly navigating a very large list.
Field | Description | Example |
---|---|---|
Include | Comma separated list of tag names that pages must have to be included in the list. | <list include="Book 1, Main character"></list> |
Exclude | Comma separated list of tag names that pages must NOT have to be included in the list | <list exclude="Spellcaster"></list> |
Style | The style of the list. Styles include: default, simple and compact. | <list include="Book 1, Main character" exclude="Spellcaster" style="simple"></list> |
Prefix | Adds a prefix to each entry, this can be useful for styling, appending '* ' for example will create a point list. When used for the default list style, the prefix will override the standard header. | <list include="Book 1, Main character" exclude="Spellcaster" style="simple" prefix="* "></list> |
Header | An override command to ignore the logical header size and force a specific header size. This is not supported for simple style lists. | <list include="Book 1, Main character" exclude="Spellcaster" header="###"></list> |
The calendar view enables you to create a custom calendar and populate it with events. This article contains references to two distinct features both relating to calendars:
In order to make use of the calendar view feature you will need to create the calendar system you want to use for it. You can find a guide for how to do so here. The default calendar system used by ChronoGrapher is the Gregorian calendar. If your world uses a similar calendar system, you can skip this step.
To create a calendar view you only need to know two html-like tags: <calendar> and <event>. Here is a minimalist example:
<calendar> <event name="Example" start="0-01-01"> </calendar>
This example code will give you a calendar view with a single event on the first day of the year 0. The event tag is used to add events to your calendar view, adding one event per tag. There are no limits to how many calendar views you can have in your project or on a single article page.
The calendar tag is the root of the entire calendar view and all other related tags must be placed inside them. The <calendar> tag has a few properties you can customize:
Property | Description | Example |
---|---|---|
calendar | By default the calendar view will display events date and time based on your currently selected calendar, by default the Gregorian. Using this property you can make sure the calendar view always renders based on a specific calendar. |
<calendar calendar="CalendarName"> ... </calendar> |
format |
This lets you specify the format that the time of an event will show.
The format can contain any text you want, but there are a few key letters are used to insert time.
The default format is this: h:m:s
The first occurance of any of theese three letters will be replaced by an integer.
|
<calendar format="h:m"> ... </calendar> |
Now that you have set up your calendar view you can start adding events. The <event> tag has a few properties you can customize:
Property | Description | Example |
---|---|---|
name (Required) | The name of the event, this will be displayed on the event itself | <event name="EventName"/> |
article | This is the name of the article that the event will link to when you click it. If you don't specify an article property, the name property will be used instead. | <event article="ArticleName"/> |
start (Required) | The start date and time of the event, in the following format: Year-Month-Day Hour:Minute:Second (2021-11-13 23:59:59) |
<event start="1999-12-31"/> <event start="1999-12-31 23:59:59"/> |
end | The end date and time of the event, events can span over several days. It must be accompanied by a start property. When combined with the repeat property this instead represents the last possible occurrence of the event, but not necessarily its actual last datetime. |
<event start="1999-12-31" end="2000-01-01"/> <event start="1999-12-31 23:59:59" end="2000-01-01 00:00:00"/> |
era | This field is used to convert the event from one calendar system to another. | <event era="CalendarName"/> |
type | This property lets you directly specify what event type this event belongs to. | <event type="ExampleType"/> |
tags | A comma (,) separated list of tags associated with this event. Used to automatically categorize events. | <event tags="Cultural, Roman, Rome"/> |
repeat | When this field is populated the event will recur at the end of every intervall. The valid intervals are day, week, month and year. | <event start="2000-01-01" repeat="year"/> |
repeatInterval | The repeat interval determines the timespan between event occurrences. If the repeat property is set to year, setting this property to 5 will cause the event to occur every 5 years. Default value: 1. | <event start="2000-01-01" Repeat="year" repeatInterval="5"/> |
repeatOn | This property takes the name of a weekday in your calendar system and ensures that the event always occurs on this day of the week, by finding the closest weekday in the same month. | <event start="2000-01-01" Repeat="year" repeatOn="Monday"/> |
findClosest | This property modifies the default behaviour of the repeatOn property. When a weekday is specified, by default the closest weekday, in the same month, will be found, moving the event date backward or forward. With this property you can limit the search to only move in a single direction, by specifying 'backward' or 'forward'. If a suitable date, in the same month, cannot be found for the event, it will be skipped. Default: both | <event start="2000-01-01" Repeat="year" repeatOn="Monday" findClosest="forward"/> |
repeatCount | This property controls the number of times an event will take place. This can be combined with the end property. When combined the event will stop occurring when either of the conditions have been met. | <event start="2000-01-01" Repeat="year" repeatCount="10"/> |
The event type tags let you group events together visually. This is done by color coding the text and event background in the calendar view, to let you quickly identify what kind of event you are looking at. The <eventType> tag has a few properties you can customize:
Property | Description | Example |
---|---|---|
name (Required) | The name of the type. It will be displayed in the legend sidebar | <eventType name="EventName"/> |
color | The color of the text on the events. Supports css colors |
<eventType color="red"/> <eventType color="#f00"/> <eventType color="rgb(255 0 0)"/> |
background | The background color of the events. Supports css colors |
<eventType background="blue"/> <eventType background="#00f"/> <eventType background="rgb(0 0 255)"/> |
isDefault | When set to true all events that don't have a type, or fit one using tags, will default to this type | <eventType isDefault=""/> |
include | A comma (,) separated list of event tags this event type includes | <eventType include="Cultural, Roman"/> |
exclude | A comma (,) separated list of event tags this event type excludes | <eventType exclude="Egypt, Alexandria"/> |
Note! Event tags are not to be confused with html tags. You can use tags to match events and event types together, instead of directly doing so with the type property. You can add a number of tags to an eventType and they will be matched against the tags listed in your events. This is done by checking if the event matches all the tags in an event type's include property, while not matching any tags in its exclude property. You could add the following events and eventTypes:
<event name="Festival in Alexandria" tags="Cultural, Roman, Alexandria"/> <event name="Festival in Rome" tags="Cultural, Roman, Rome"/> <eventType name="Culture in Rome" include="Cultural, Rome"/> <eventType name="Roman Culture outside of Rome" include="Cultural, Roman" exclude="Rome"/>This will result in "Festival in Rome" matching with "Culture in Rome" and "Festival in Alexandria" matching with "Roman Culture outside of Rome" Tags are especially useful when reusing events.
If you have a list of events that you want to use in multiple calendar views you can place them all in a single page and import them into your calendar view using templates. To do this, create a new page, for example "Earth events". Then you can add the entire page into your calendar view using the template command: {{:Earth events}} The event "era" field is especially useful when reusing events.
The calendar view will take the set of events that you have added and parse their start and end properties. When this is done, they will be interpreted by your currently selected calendar system or the calendar system used by the view, unless you have added an "era" property to your events. If you have specified an era on the event, it will be interpreted according to the specified calendar system. Next all events will be converted to the calendar system that the calendar view is using, by default your currently selected calendar system. For example, if you added an event on the 7th of Kartika 1943 of the Pancanga calendar, the event would show up on 16th of October 2021 of the Gregorian calendar. This is useful if you want to see when global or cosmic events took place in the calendars of different civilisations.
DateTime tags enable you to write time accurate articles, that change depending on the projects current DateTime.
The syntax for DateTime tag looks like this:
@2006-12-24 23:59:59{ Text }
The text inside a DateTime tag will only show up when the DateTime condition is met. That is when the project’s current DateTime fits the condition specified in the tag. In this case exactly on 2006-12-24 23:59:59, down to the second. Any other time, the text will be hidden. The following example is a lot more relaxed and will be true for any DateTime in the year 2006:
@2006{ Text }This system can have a very large range of applications. For example:
The current king of England is @827 >= & < 839{Egbert}@839 >= & < 858{Aethelwulf}@858 >= & < 860{Æthelbald}.
Will result in the following text in the year 851:
The current king of England is Aethelwulf.
DateTime tags can be small, like in the example above, but you can make them as large as you’d like. If the entire nature of an article changes over time, you can easily reflect this with DateTime Tags.
The default compare is the ‘equals’ statement. If nothing else is stated then the condition is met only when the current DateTime matches exactly. Because the statement can have a partial DateTime, for example just a year, this does not always need to be accurate down to the second. Next we have the less-than, greater-than, less-than-or-equal and greater-than-or-equal. The symbols used to indicate this are <, >, >= and <= respectively. You can place these compare statements on either side of the DateTime, both are valid, but mean the opposite thing.
Statment | Meaning |
---|---|
<2006-12-24 | Before the 2006-12-24 |
2006-12-24< | After the 2006-12-24 |
<=2006-12-24 | Up to and including the 2006-12-24 |
The and/or statements, represented by & for and, | for or, lets you link multiple statements together. The simplest version of this is to create a time interval, as in the king example above.
@827 >= & < 839{Egbert Is King}
This statement is only true when the year is both less than 839 and more then, or equal to, 827. If you want to inverse the statement to: Egbert is not currently king, that would look like this:
@<827 | >839{Egbert is not currently King}
Scoped statements are required and helpful when you want to make complex conditions. For example, if Egbert was ousted from the throne in 835, and regained it the next year, the statement could look like this.
@(<827 | >839) | 835{Egbert is not currently King}
The parentheses help you organise the statement, as well as letting you be more precise when writing complex statements. There is no limit on how complex you can make a DateTime condition.
You can nest multiple DateTime statements inside each other, up to three times. For example, if England did not have a King before 827, we could nest the entire statement in its own DateTime tag.
@827<={The current king of England is @827 >= & < 839{Egbert}@839 >= & < 858{Aethelwulf}@858 >= & < 860{Æthelbald}.}
Now the text will only show up if our current DateTime is after the year 826. Meaning year 827 or greater.
Footnotes or References can be used within an article to cite sources, provide tangential information and commentary, or provide other explanatory information. They will automatically generate a list of footnotes at the bottom of the article.
The basic concept of the <ref>
tag is that it inserts the text enclosed by the ref tags as a footnote in a designated section, which you indicate with the placeholder tag <references />
.
Additional placeholder <references />
tags can be inserted in the text, and all <ref>
tags up to that point, in that group, will be inserted there.
If you forget to include <references />
in the article, the footnotes will not disappear, but the references will be displayed at the end of the page.
This page itself uses footnotes, such as the one at the end of this sentence.[note 1]
Wikitext | Rendering |
---|---|
The Sun is pretty big.<ref> E. Miller, ''The Sun'', (New York: Academic Press, 2005), 23–25.</ref>
The Moon, however, is not so big.<ref> R. Smith, "Size of the Moon", ''Scientific American'', 46 (April 1978): 44–46.</ref>
**Notes**
<references />
|
The Sun is pretty big.[1] The Moon, however, is not so big.[2] Notes
|
To give a footnote a unique identifier, use <ref name="name">
.
You can then refer to the same footnote again by using a ref tag with the same name.
The text inside the second tag doesn't matter, because the text already exists in the first reference.
You can either copy the whole footnote, or you can use a terminated empty ref tag that looks like this: <ref name="name" />
.
In the following example, the same source is cited three times.
Wikitext | Rendering |
---|---|
This is an example of multiple references to the same footnote.
<ref name="multiple"> Remember that when you refer to the same footnote multiple times, the text from the first reference is used.</ref>
Such references are particularly useful if different statements come from the same source. <ref name="multiple" /> Any reused tag should not contain extra content, that will spawn an error. Only use empty tags in this role.
A concise way to make multiple references is to use empty ref tags, which have a slash at the end.
Although this may reduce redundant work, please be aware that if a future editor removes the first reference, this will result in the loss of all references using the empty ref tags.<ref name="multiple" />
**Notes**
<references />
|
This is an example of multiple references to the same footnote.[1] Such references are particularly useful when citing sources, if different statements come from the same source[1] Any reused tag should not contain extra content, that will spawn an error. Only use empty tags in this role. A concise way to make multiple references is to use empty ref tags, which have a slash at the end. Although this may reduce redundant work, please be aware that if a future editor removes the first reference, this will result in the loss of all references using the empty ref tags.[1] Notes
|
The <references />
tag inserts the text of all the citations which have been defined in <ref>
tags up to that point in the page.
For example, based on the citations above, there should be reference for the note group.
Wikitext | Rendering |
---|---|
<references group="note" />
|
|
If a page includes more than one <references />
list, each list includes the <ref>
tags defined after the previous references list.
The following example generates separate reference lists for citations and miscellaneous footnotes:
Wikitext | Rendering |
---|---|
According to scientists, the Sun is pretty big.
<ref> E. Miller, ''The Sun'', (New York: Academic Press, 2005), 23–25.</ref>
In fact, it is very big.<ref group="footnotes"> Take their word for it. Don't look directly at the sun!</ref>
**Notes**
<references group="footnotes" />
**References**
<references />
|
According to scientists, the Sun is pretty big.[1] In fact, it is very big.[footnotes 1]
Notes
References
|
The anonymous group works as before, while references destined for the named group will only show up in the designated <references />
element.
When several parts from the same work are used as references in an article, you can cluster them in the reference section. This gives readers a way to identify which references originate from the same source. It also allows you to cite different parts of the same source without repeating the entire source every time.
Wikitext | Rendering |
---|---|
According to scientists, the Sun is pretty big.
<ref name="Miller"> E.Miller, ''The Sun'', ( New York: Academic Press, 2005 ). </ref>
In fact, it is very big. <ref extends="Miller"> p. 123 </ref> Take their word for it. Don't look directly at the sun! <ref extends="Miller"> p. 42 </ref>
**References**
<references />
|
According to scientists, the Sun is pretty big. [1] In fact, it is very big. [1.1] Take their word for it. Don't look directly at the sun! [1.2]
References |
In-text references make it easy to copy the text to another page; on the other hand, they make it hard to read.
References containing a lot of data, quotes or elaborate citation templates can make up a significantly larger fraction of the source than the text that will actually be visible.
To avoid this ChronoGrapher allow moving some or all of the references into the <references />
section, to the place where they will actually appear to the reader.
Wikitext | Rendering |
---|---|
According to scientists, the Sun is pretty big.<ref name="miller" /> The Moon, however, is not so big.<ref name="smith" />
**Notes**
<references>
<ref name="miller">
E.Miller, ''The Sun'', ( New York: Academic Press, 2005 ), 23–25.</ref>
<ref name="smith">
R.Smith, "Size of the Moon", ''Scientific American'', 46( April 1978 ): 44–46.</ref>
</references>
|
According to scientists, the Sun is pretty big.[1] The Moon, however, is not so big.[2] Notes
|
A typical issue are references that span multiple pages in the source material.
These can be merged using a <ref name="name">
tag for the first part of the reference, and tagging the following parts with a tag <ref follow="name">
using the same name.
Example:
Wikitext | Rendering |
---|---|
This is an example of merging multiple texts into the same footnote.<ref name="main">
Remember that all the texts will be included into the reference containing the name = "…" attribute.</ref>
<ref follow="main">
Simply include the additional text in a tag with the follow="…" attribute, matching the first ref's name.</ref>
**References**
<references />
|
This is an example of merging multiple texts into the same footnote.[1]
References
|
When using this syntax, take care that the "follow" part of the footnote is included on the same page as the first part of the reference.
You can format your wiki text in ChronoGrapher by using markup code.
This consists of normal characters like asterisks, apostrophes or equal signs which have a special function in the wiki, sometimes depending on their position.
For example, to format a word in italic, you need to suround your text with asterisks like *this*
.
ChronoGrapher uses a markdown language called ShowDown, and you can find a more in deapth guide here.
Description | You type | You get |
---|---|---|
Character (inline) formatting – applies anywhere | ||
Italic text | *italic* |
italic |
Bold text | **bold** |
bold |
Bold and italic | ***bold & italic*** |
bold & italic |
Section formatting – only at the beginning of the line | ||
Section Headings of different levels |
## Level 2 ### Level 3 #### Level 4 ##### Level 5 ###### Level 6
|
Level 2Level 3Level 4Level 5Level 6 |
Bullet list |
* Start each line * with an asterisk (*). * Indenting the text, using tab or four spacees gives deeper * and deeper levels. * Line breaks <br />don't break levels. * But jumping levels does. Any other start ends the list. |
Any other start ends the list. |
To start a new paragraph, leave an empty line.
Some HTML tags are allowed in MediaWiki, for example <code>
, <div>
, and <span>
. These apply anywhere you insert them.
Description | You type | You get |
---|---|---|
Inserted (Displays as underline in most browsers) |
<ins>Inserted</ins> or <u>Underline</u> |
Inserted or Underline |
Deleted (Displays as strike-through in most browsers) |
<s>Strike-through</s> or <del>Deleted</del> |
or
|
Fixed width text |
<code>Source code</code> |
Source code |
Blockquotes |
Text before <blockquote>Blockquote</blockquote> Text after |
Text before
Text after |
Quotes |
<q>This is a quotation</q> |
This is a quotation |
Comment |
<!-- This is a comment --> Comments are visible only in the edit zone. |
Comments are visible only in the edit zone. |
Completely preformatted text |
<pre> Text is *preformatted* and **markups** ***cannot*** be done </pre> |
Text is '''preformatted''' and ''markups'' '''''cannot''''' be done |
Customized preformatted text |
<pre style="color: red;"> Text is '''preformatted''' with a style and ''markups'' '''''cannot''''' be done </pre> A CSS style can be named within the
style attribute. |
Text is '''preformatted''' with a style and ''markups'' '''''cannot''''' be done |
&euro;
→ €<span style="color: red; text-decoration: line-through;">Typo to be corrected</span>
→ Typo to be corrected<span style="color: red; text-decoration: line-through;">Typo to be corrected</span>
→ <span style="color: red; text-decoration: line-through;">Typo to be corrected</span>
This page explains the image syntax when editing the wiki.
Images that are stored in the projects image folder are rendered by using the File:
namespace prefix.
The following file formats are currently supported:
.jpg
or .jpeg
- bitmap image compressed in the standard JPEG format (this lossy format is most suitable for photographs)..png
- bitmap image in the Portable Network Graphics format (specified by the W3 Consortium)..gif
- bitmap image in the legacy Graphics Interchange Format.The full syntax for displaying an image is:
[[File:path/filename.extension|options|caption]]
The file name needs to be the full image path from your project image folder. The simplest way to get the path is to navigate to your image in the image slide, right click it and select 'Copy Path'.
The options field(s) can be zero or more of the following, separated by pipes (|):
If a parameter does not match any of the other possibilities, it is assumed to be the caption text. If more than one non-parameter string is present, the final non-parameter string will be used as the caption. Caption text shows as tooltip text. The actual default behavior is to display the multimedia file in its full size.
The Horizontal alignment option lets you control the horizontal placment of the image. The image will float in the specified direction. (left, right, center, none)
The vertical alignment options take effect only if the image is rendered as an inline element and is not floating. They alter the way the inlined image will be vertically aligned with the text present in the same block before and/or after this image on the same rendered row.
Note that the rendered line of text where inline images are inserted (and the lines of text rendered after the current one) may be moved down (this will increase the line-height conditionally by additional line spacing, just as it may occur with spans of text with variable font sizes, or with superscripts and subscripts) to allow the image height to be fully displayed with this alignment constraint.
The image caption is optional. This is the text that will display when hovering the mouse over the image.
There are two types of hypertext links in ChronoGrapher:
Please note that this list does not include file links, which are used to display images.
To create a internal link to a page in the project (a "wikilink"), use double square brackets wiki markup, [[like this]]
or if the link contains a single word, you can prefix a @ sign, @PageName
.
Note that @ links does not have the same flexibility as bracketed links, and do not work on page names containing spaces.
If the page does not exist the link will be red. You can create the page by clicking the link, and it will turn blue, indicating that the page exists.
To markup any arbitrary string of text (not necessarily a page title) as a link, use a "vertical bar" or "pipe" character, like this: [[Links|Links guide]]
results in the link Links guide.
The link target page name is case-sensitive, meaning links must be capitalized in the same way the original page is.
Name/Description | Syntax | Result |
---|---|---|
Internal link |
[[Links]]
@Links
|
|
Piped link |
[[Links|Links guide]]
Links to a section/anchor within the target page. [[Links#Internal links|Links guide]] Piped link to an anchor on the same page [[#Internal links|Links guide]] |
|
Link to an anchor on the same page |
[[#Internal links]] Anchors are provided automatically on section headings. |
Links |
Link to an anchor at another page |
[[Links#Internal links] |
Links |
To create an external link, usually to a page at a different website, enclose the URL followed by space and the link text in single square brackets (see examples below). When you save or preview the page, you will see a link rendered slightly differently than an internal wikilink. It may be a different color and/or be followed by an arrow icon to show that it may lead to another site.
Description | You type | You get |
---|---|---|
Bare external link |
https://www.patreon.com/ChronoGrapher |
https://www.patreon.com/ChronoGrapher |
External link with specified link text |
[Support the project!](https://www.patreon.com/ChronoGrapher) |
Support the project! |
External link by reference |
This is a [link to the ChronoGrapher patreon][1] [1]: https://www.patreon.com/ChronoGrapher This is a link to the ChronoGrapher [patreon][] [patreon]: https://www.patreon.com/ChronoGrapher |
This is a link to the ChronoGrapher patreon This is a link to the ChronoGrapher patreon |
External link to other host passing the pagename |
https://google.com/search?q={{PAGENAMEE}} |
https://google.com/search?q=Links |
Magic words are strings of text that ChronoGrapher associates with a return value or function, such as time, project details, or page information.
There are two general types of magic words:
__FOO__
.{{FOO}}
. As such, they look a lot like Templates.Page-dependent magic words will affect or return data about the current page, even if the word is added through a transcluded template.
A behavior switch controls the layout or behavior of the page and can often be used to specify desired omissions and inclusions in the content.
Word | Description |
---|---|
__NOTOC__ |
Hides the table of contents (TOC). |
__FORCETOC__ |
Forces the table of contents to appear at its normal position (before the first header, overriding __NOTOC__ ). |
__TOC__ |
Places a table of contents at the word's current position (overriding __NOTOC__ ). If this is used multiple times, the table of contents will appear at the first word's position. |
Variables return information about the current page, project, or date. Their syntax is similar to Templates.
If a template name conflicts with a variable, the variable will be used as it has higher priority in the tool.
The following variables return the current date and time of the project.
Variable | Output | Description | |
---|---|---|---|
Year | |||
{{CURRENTYEAR}} |
2012 | Year | |
Month | |||
{{CURRENTMONTH}} |
01 | Month (zero-padded number) | |
{{CURRENTMONTH1}} |
1 | Month (unpadded number) | |
{{CURRENTMONTHNAME}} |
January | Month (name) | |
Day | |||
{{CURRENTDAY}} |
2 | Day of the month (unpadded number) | |
{{CURRENTDAY2}} |
02 | Day of the month (zero-padded number) | |
{{CURRENTDOW}} |
4 | Day of the week (unpadded number) | |
{{CURRENTDAYNAME}} |
Thursday | Day of the week (name) | |
Time | |||
{{CURRENTTIME}} |
22:44 | Time (24-hour HH:mm format) | |
{{CURRENTHOUR}} |
22 | Hour (24-hour zero-padded number) | |
Other | |||
{{CURRENTWEEK}} |
1 | Week (number) | |
{{CURRENTTIMESTAMP}} |
2012-01-02 22:44:55 | YYYY-MM-DD HH:mm:ss timestamp |
Variable | Description |
---|---|
{{PAGENAME}} |
Page title. |
By default, a table of contents (abbreviated to TOC) is automatically generated on a page when more than three section headings are used. Typically, the table reproduces and numbers these headings.
Place __NOTOC__
anywhere on the page to hide its TOC.
Using certain templates, such as Template:CompactTOC
, will replace the regular Table of Contents functionality.
The default position of the TOC is directly above the first section heading.
Any prior text is placed before the TOC.
To place it elsewhere, use the magic word __TOC__
at the preferred position on the page.
If you have three or fewer headings but want to have a TOC, write either the magic word __FORCETOC__
anywhere on the page to make it display at the default location, or __TOC__
at the preferred position.
Templates are standard wiki pages whose content is designed to be transcluded (embedded) inside other pages. Templates follow a convention that the name is prefixed with "Template:
", besides this, you can create them like any other wiki page.
Wiki articles with this prefix will be placed in the template folder, and by default won't show up when searching for articles in your project.
The simplest use of templates is as follows. If you create a page called "Template:Welcome" with contents:
Hello! Welcome to the project.
you have created your first template! If you then insert the code:
{{Welcome}}
in any other page, when that page is viewed the text "Hello! Welcome to the project." will appear instead of {{Welcome}}
. The template content is "transcluded" into the other page, i.e. it is integrated in the page.
You can then insert {{Welcome}}
at any point of any page where you wish to welcome someone. Suppose it is used in 100 pages. If you then change the template contents to:
Hi there! Welcome to this wonderful project.
and revisit any of the 100 pages where the template was used, you'll see the new text instead of the original one. In this way, you have changed the content of 100 pages without editing them, because the template is transcluded into these pages. This is the basic mechanism. There are several additional features of transclusion that enrich this mechanism and make templates very useful.
Ordinary wiki pages can also be used as templates:
{{:Pagename}}
This will transclude the content of Pagename into the working wiki in the exact same way that template articles will:
{{Template:Pagename}}
You can choose to only include a part of an article by specifying one of the articles header names following a '#'-sign:
{{:Pagename#Page Header}}
In addition there are two special keywords: 'intro' and 'excerpt'. These will include the articles introductory text and the text inside the articles <excerpt>-tag respectively.
By default the partial template will render in the same context as the transcluding article, but this can be changed with the '¤'-sign. When you include the '¤'-sign, but do not specify an article name for the context, it will default to the transcluded article. The rendering context is important for properties and location specific templates like {{PAGENAME}}, and is mostly used when transcluding non-template articles.
{{Template:Pagename#Page Header¤OtherPagename}}
To enrich the mechanism of transclusion, ChronoGrapher allows parameters to be passed to a template when it is transcluded. Parameters allow the template to produce different contents or have different behaviors. Suppose you wish to insert a progress note in the beginning of your articles, such as:
This article is a stub, please expand it.
The progress note will have a status (in this case, "a stub") and an action ("expand it"). Allowing you to enforce a standard progress notification across your project. So that the note will look similar everywhere it is used, you can define a template called Template:Status, for example. Although the note should look similar whereever a user adds a status update, its specific contents (i.e. the status and the action) will be different. For that reason, you should pass them as parameters. The core content of the template will be this:
**This article is {{{1}}}**, please {{{2}}}.
Notice the use of {{{1}}}
and {{{2}}}
. This is the way to identify, within templates, the parameters that will be passed in when the template is used.
Note that, within the template, each parameter is surrounded by three braces: {{{ }}}
. This is different from normal template name usage.
When using the template on a page, you fill in the parameter values, separated by a "pipe" character (|
). ChronoGrapher allows parameters to be passed to the template in three ways: Anonymously, Numbered, and Named.
To pass in anonymous parameters, list the values of those parameters sequentially:
{{Status|complete|don't change it}}
In this case, the {{Status}}
template receives parameters {{{1}}}=complete
and {{{2}}}=don't change it
, producing:
This article is complete, please don't change it.
The order in which anonymous parameters are passed in is crucial to its behavior. Reversing the order of the parameters, like so:
{{Status|don't change it|complete}}
would produce this result:
This article is don't change it, please complete.
Identifying parameters by order (with {{{1}}}
, etc) works only with anonymous parameters. Any parameters identified by name, as shown below, will not be accessible to the template using ordinal numbers.
If an equal sign appears inside the argument to an anonymous template parameter, that parameter may be misinterpreted as a named parameter treating the text before the equal sign as the parameter name and the text after it as the argument value.
This is a common problem when you need to include an external link, or an HTML element with attributes. The workaround is to use named parameters instead, or even numbered parameters as explained in the following section.
To pass in parameters by number, identify each parameter when passing it:
{{Status|2=don't change it|1=complete}}
This time, template {{Status}}
receives parameters {{{1}}}=complete
and {{{2}}}=don't change it
, though they have been supplied in inverse order, and produces:
This article is complete, please don't change it.
This may also be useful when any of the numbered parameters contains an "=" sign. Examples
{{Status|1=add “=”|2=unfinished}}
produces:
This article is unfinished, please add “=”.
Do note that this also requires numbering each other parameter.
The third way of passing parameters is by name instead of numbers. In this case, the template contents would be changed to:
**This article is {{{status}}}**, please {{{action}}}.
Within the template, we use {{{status}}}
and {{{action}}}
to identify each parameter, instead of a number. To pass these parameters by name, identify each parameter when passing it:
{{Status|status=complete|action=don't change it}}
In this case, template {{Status}}
receives parameters {{{status}}}=complete
and {{{action}}}=don't change it
and produces:
This article is complete, please don't change it.
Named parameters are case-sensitive, so:
{{Status|status=complete|Action=add more information|action=don't change it}}
produces:
This article is complete, please don't change it.
The advantage of using named parameters in your template, besides also being flexible in the order parameters can be passed, is that it makes the template code much easier to understand if there are many parameters.
If you transclude a template that expects parameters, but do not provide their arguments, in this way:
{{Status}}
in the numbered parameters example above you would get the following:
This article is {{{1}}}, please {{{2}}}.
Since no arguments were passed in, the template presents the parameters themselves, instead of their respective values. In these cases, it may be useful to define default values for the parameters, i.e. values that will be used if no value is passed in. For example, if the template contents are changed to:
**This article is {{{status|a stub}}}**, please {{{action|expand it}}}.
then {{{status|a stub}}}
defines that if no argument is provided for parameter {{{status}}}
, then the value a stub
will be used.
Similarly, {{{action|expand it}}}
, default parameter {{{action}}}
to value expand it
.
Now, transcluding the template again without passing any argument results in the following:
This article is a stub, please expand it.
Often default values are used to specify alternate names of parameters.
For example, if you have {{{a|{{{b|}}} }}}
, the template will first look for a parameter named "a".
If it is not set, it will use the parameter named "b".
If neither "a" nor "b" is set, it will output nothing.
Including a template in itself won't throw ChronoGrapher into infinite recursion.
ChronoGrapher will stop the recursion, even if nested in other templates.
For example, if the content of Template:Aaaa is a {{Aaaa}} z
, the output will be:
a {{Aaaa}} z
By default, a template's content is displayed in its entirety, both when viewed directly and when included in another page.
However, you can control which parts of a template will be seen and included by the use of the <noinclude>
, <includeonly>
and <onlyinclude>
tags.
Anything between <noinclude>
and </noinclude>
will be seen only when the template's page is being viewed directly, but not when it is included in another page.
This is useful when you want to include text or code in a template that you do not want to propagate to any pages which include it, such as:
Likewise, anything between <includeonly>
and </includeonly>
will be processed and displayed only when the page is being included, but not when the template page is being viewed directly.
Usually this is used when you want to make sure that the template's code is not executed when viewing the template page itself.
Typically this is because it expects parameters, and its execution without parameters has an undesired result.
Everything outside <noinclude>
and <includeonly>
is processed and displayed normally; that is, both when the template page is being viewed directly and when the template is included in another page.
The focus is on what is inside these two tags.
Everything outside <onlyinclude>
tags is discarded in the transclusion.
Even sections tagged includeonly are discarded in the transclusion unless they are also tagged as onlyinclude.
The focus is on what is outside this tag.
Nesting of these tags is also possible.
The three partial transclusion tags enable all possible combinations of what is processed and rendered. Comments also fill a role.
To find all templates in a project you can open the search slider, click the 'Include Templates' box, and write 'Template:*' in the search bar.
To give usage information, include an example like this one on the template page:
<noinclude> == Usage == Inform users of the status of the article: {{Status|status=the article status|action=the action the article requires}} </noinclude>
Then, a user can simply copy and paste the example to use the template.
A template page can be linked to like any other wiki page.
If you want to link to the template 'Template:Status', you write [[Template:Status]]
.
The Timeline view enables you to create a custom timeline and populate it with events.
In order to make use of the timeline view feature you will need to create the calendar system you want to use for it. You can find a guide for how to do so here. The default calendar used by ChronoGrapher is the Gregorian calendar. If your world uses a similar calendar, you can skip this step.
To create a timeline view you only need to know two html-like tags: <timeline> and <event>. Here is a minimalist example:
<timeline> <event name="Example" start="0-01-01">; </timeline>
This example code will give you a timeline view with a single event on the first day of the year 0. The event tag is used to add events to your timeline, adding one event per tag. There are no limits to how many timeline views you can have in your project or a single article page.
The timeline tag is the root of the entire timeline and all other related tags must be placed inside them. The <timeline> tag has a few properties you can customize:
Property | Description | Example |
---|---|---|
calendar | By default the timeline view will display events date and time based on your currently selected calendar, by default the Gregorian. Using this property you can make sure the timeline always renders based on a specific calendar. | <timeline calendar="CalendarName"> ... </timeline> |
align | By default the timeline will switch between rendering an event on the left or right side of the timeline. By setting the property to "left" or "right" you can force the timeline to only render events on a single side. This may be usefull if the wiki article view is narrow. | <timeline align="left"> ... </timeline> |
format |
This lets you specify the format that the date and time of an event will show.
The format can contain any text you want, but there are a few key letters are used to insert date and time.
The default format is this: y-M-d h:m:s
The first occurance of any of theese six letters will be replaced by an integer.
|
<timeline format="y-M-d"> ... </timeline> |
Now that you have set up your timeline you can start adding events. The <event> tag has a few properties you can customize:
Property | Description | Example |
---|---|---|
name (Required) | The name of the event, this will be displayed on the event itself | <event name="EventName"/> |
article | This is the name of the article that the event will link to when you click it. If you don't specify an article property, the name property will be used instead. | <event article="ArticleName"/> |
start (Required) | The start date and time of the event, in a format like this: Year-Month-Day Hour:Minute:Second (2021-11-13 23:59:59) |
<event start="1999-12-31"/> <event start="1999-12-31 23:59:59"/> |
end | The end date and time of the event, events can span over several days. It must be accompanied by a start property. When combined with the repeat property this instead represents the last possible occurrence of the event, but not necessarily its actual last datetime. |
<event start="1999-12-31" end="2000-01-01"/> <event start="1999-12-31 23:59:59" end="2000-01-01 00:00:00"/> |
excerpt | If you do not include this property, the event will try to pull an excerpt from the article that the event is linking to. You can use this property to override the default page excerpt or simply add a short description of the event. |
<event excerpt="The end of the 90's culminated in the start of the 00's"/> |
era | The name of the calendar system to use when parsing the start and end properties, by default this will be the current calendar. However, your events will always be converted to the calendar used by the view itself, if they are not the same. | <event era="CalendarName"/> |
type | This property lets you directly specify what event type this event belongs to. | <event type="ExampleType"/> |
tags | A comma (,) separated list of tags associated with this event. Used to automatically categorize events. | <event tags="Cultural, Roman, Rome"/> |
repeat | When this field is populated the event will recur at the end of every intervall. The valid intervals are day, week, month and year. Because a timeline view is theoretically infinite, events must always have an end property. | <event start="2000-01-01" end="2200-01-01" repeat="year"/> |
repeatInterval | The repeat interval determines the timespan between event occurrences. If the repeat property is set to year, setting this property to 5 will cause the event to occur every 5 years. Default value: 1. | <event start="2000-01-01" end="2200-01-01" Repeat="year" repeatInterval="5"/> |
repeatOn | This property takes the name of a weekday in your calendar system and ensures that the event always occurs on this day of the week, by finding the closest weekday in the same month. | <event start="2000-01-01" end="2200-01-01" Repeat="year" repeatOn="Monday"/> |
findClosest | This property modifies the default behaviour of the repeatOn property. When a weekday is specified, by default the closest weekday, in the same month, will be found, moving the event date backward or forward. With this property you can limit the search to only move in a single direction, by specifying 'backward' or 'forward'. If a suitable date, in the same month, cannot be found for the event, it will be skipped. Default: both | <event start="2000-01-01" Repeat="year" repeatOn="Monday" findClosest="forward"/> |
repeatCount | This property controls the number of times an event will take place. This can be combined with the end property. When combined the event will stop occurring when either of the conditions have been met. | <event start="2000-01-01" end="2200-01-01" Repeat="year" repeatCount="10"/> |
The event type tags let you group events together visually. This is done by color coding the event border in the timeline view, to let you quickly identify what kind of event you are looking at. The <eventType> tag has a few properties you can customize:
Property | Description | Example |
---|---|---|
name (Required) | The name of the type. It will be displayed in the legend sidebar | <eventType name="EventName"/> |
color | The color of the border of the events. Supports css colors |
<eventType color="red"/> <eventType color="#f00"/> <eventType color="rgb(255 0 0)"/> |
isDefault | When set to true all events that don't have a type, or fit one using tags, will default to this type | <eventType isDefault="true"/> |
include | A comma (,) separated list of event tags this event type includes | <eventType include="Cultural, Roman"/> |
exclude | A comma (,) separated list of event tags this event type excludes | <eventType exclude="Egypt, Alexandria"/> |
Note! Event tags are not to be confused with html tags. You can use tags to match events and event types together, instead of directly doing so with the type property. You can add a number of tags to an eventType and they will be matched against the tags listed in your events. This is done by checking if the event matches all the tags in an event type's include property, while not matching any tags in its exclude property. You could add the following events and eventTypes:
<event name="Festival in Alexandria" tags="Cultural, Roman, Alexandria"/> <event name="Festival in Rome" tags="Cultural, Roman, Rome"/> <eventType name="Culture in Rome" include="Cultural, Rome"/> <eventType name="Roman Culture outside of Rome" include="Cultural, Roman" exclude="Rome"/>
This will result in "Festival in Rome" matching with "Culture in Rome" and "Festival in Alexandria" matching with "Roman Culture outside of Rome" Tags are especially useful when reusing events.
If you have a list of events that you want to use in multiple timelines you can place them all in a single page and import them into your timeline view using templates. To do this, create a new page, for example "Earth events". Then you can add the entire page into your timeline using the template command: {{:Earth events}} The event "era" field is especially useful when reusing events.
The timeline view will take the set of events that you have added and parse their start and end properties. When this is done, they will be interpreted by your currently selected calendar system or the calendar system used by the view, unless you have added an "era" property to your events. If you have specified an era on the event, it will be interpreted according to the specified calendar system. Next all events will be converted to the calendar system that the timeline view is using, by default your currently selected calendar system. For example, if you added an event on the 7th of Kartika 1943 of the Pancanga calendar, the event would show up on 16th of October 2021 of the Gregorian calendar. This is useful if you want to see when global or cosmic events took place in the calendars of different civilisations.