This guide covers everything you need to know about developing with LinkPen.
linkpen/
├── logs/ # This folder is automatically generated and contains various debug logs
├── public/
│ ├── css/ # Stylesheets
│ ├── img/ # Images and assets
│ ├── templates/ # Templates
│ ├── js/ # JavaScript
│ └── docs/ # Documentation
├── routes/ # This folder contains various API routes
├── utils/ # This folder contains various tools
├── views/
│ ├── pages/ # EJS page templates
│ │ ├── admin/ # Admin page templates
│ │ ├── auth/ # Auth page templates
│ │ └── dashboard/ # Dashboard page templates
│ └── partials/ # Reusable EJS components
├── server.js # Main application file
├── config.js # Auth catch-all
├── global-variables.json # Global Variables
└── database.sqlite # SQLite Database (auto-generated)
# Install development dependencies
npm install
global-variables.json
:{
"rootDomain": "http://your-domain.com",
"hostPort": "5500",
"siteTitle": "LinkPen",
"discordInvite": "https://discord.gg/your-invite-link",
"database_key": "your_database_secret_key",
"isPublic": false
}
npm run dev
Templates are stored in public/templates/
. To create a new template:
mkdir public/templates/my-template
or right-click and “create new folder”
my-template/
├── template.ejs # Template markup
└── style.css # Template styles
Additionally, you will need to modify the config
file at public/templates/config.json
{
"default": {
"name": "Catppuccin Frappé (Default)",
"author": "Linkpen Dev team",
"description": "😸 Soothing pastel theme for the high-spirited!"
},
"your_theme": {
"name": "yourTheme",
"author": "You :)",
"description": "Wow, a description."
}
}
*replace your_theme
with your theme’s folder name and fill in the details according to your theme.
**For a more in-depth guide, navigate to Templates
git checkout -b feature/my-new-feature
git commit -am 'Add some feature'
git push origin feature/my-new-feature
/public/docs
where applicableSee our GitHub Issues for more details.