Compare commits
4 commits
f99a9ae2ac
...
22901cf551
| Author | SHA1 | Date | |
|---|---|---|---|
| 22901cf551 | |||
| 7487c327cd | |||
| 42c3565902 | |||
|
|
a4039fd7ba |
8
.cz.toml
|
|
@ -1,8 +0,0 @@
|
|||
[tool.commitizen]
|
||||
name = "cz_conventional_commits"
|
||||
tag_format = "$version"
|
||||
version_scheme = "semver"
|
||||
version_provider = "npm"
|
||||
update_changelog_on_bump = true
|
||||
major_version_zero = true
|
||||
changelog_incremental = true
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
module.exports = {
|
||||
env: {
|
||||
browser: true,
|
||||
es2021: true,
|
||||
},
|
||||
extends: [
|
||||
'standard-with-typescript',
|
||||
'plugin:react/recommended',
|
||||
'plugin:cypress/recommended',
|
||||
'prettier',
|
||||
],
|
||||
overrides: [
|
||||
{
|
||||
env: {
|
||||
node: true,
|
||||
},
|
||||
files: ['.eslintrc.{js,cjs}'],
|
||||
parserOptions: {
|
||||
sourceType: 'script',
|
||||
},
|
||||
},
|
||||
],
|
||||
parserOptions: {
|
||||
ecmaVersion: 'latest',
|
||||
sourceType: 'module',
|
||||
project: ['./tsconfig.json'],
|
||||
},
|
||||
plugins: ['react', 'cypress'],
|
||||
rules: {},
|
||||
};
|
||||
5
.justfile
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
lint:
|
||||
zola check --drafts
|
||||
|
||||
dev:
|
||||
@zola serve --port 3000 --fast
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
module.exports = {
|
||||
tabWidth: 2,
|
||||
singleQuote: true,
|
||||
endOfLine: 'auto',
|
||||
'eol-last': 2,
|
||||
trailingComma: 'all',
|
||||
plugins: [require.resolve("prettier-plugin-astro")],
|
||||
overrides: [
|
||||
{
|
||||
files: "*.astro",
|
||||
options: {
|
||||
parser: "astro",
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[tools]
|
||||
node = "20"
|
||||
4
.vscode/extensions.json
vendored
|
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"recommendations": ["astro-build.astro-vscode"],
|
||||
"unwantedRecommendations": []
|
||||
}
|
||||
11
.vscode/launch.json
vendored
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"command": "./node_modules/.bin/astro dev",
|
||||
"name": "Development server",
|
||||
"request": "launch",
|
||||
"type": "node-terminal"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
when:
|
||||
- branch: main
|
||||
|
||||
steps:
|
||||
build-and-publish:
|
||||
when:
|
||||
branch: main
|
||||
image: node:20-alpine
|
||||
secrets:
|
||||
- codeberg_ssh_key
|
||||
commands:
|
||||
- apk add git openssh-client
|
||||
- git config --global user.email "woodpecker@bot.net"
|
||||
- git config --global user.name "woodpecker-bot"
|
||||
- git remote add codeberg-ssh git@codeberg.org:aleidk/personal-page.git
|
||||
- mkdir -p $HOME/.ssh
|
||||
- ssh-keyscan -t rsa codeberg.org >> $HOME/.ssh/known_hosts
|
||||
- echo "$CODEBERG_SSH_KEY" > $HOME/.ssh/id_rsa
|
||||
- chmod 0600 $HOME/.ssh/id_rsa
|
||||
- corepack enable
|
||||
- corepack prepare pnpm@latest --activate
|
||||
- pnpm install
|
||||
- pnpm build
|
||||
- |
|
||||
cat >dist/.domains <<EOL
|
||||
blog.panconpalta.win
|
||||
personal-page.aleidk.codeberg.page
|
||||
pages.personal-page.aleidk.codeberg.page
|
||||
EOL
|
||||
- pnpm exec gh-pages --dist dist --branch pages --dotfiles --remote codeberg-ssh
|
||||
|
Before Width: | Height: | Size: 823 B After Width: | Height: | Size: 823 B |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
|
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 373 KiB After Width: | Height: | Size: 373 KiB |
0
src/env.d.ts → _src/env.d.ts
vendored
|
|
@ -1,5 +0,0 @@
|
|||
/** @type {import('astro-i18next').AstroI18nextConfig} */
|
||||
export default {
|
||||
defaultLocale: 'en',
|
||||
locales: ['en', 'es'],
|
||||
};
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
import { defineConfig } from 'astro/config';
|
||||
|
||||
import react from '@astrojs/react';
|
||||
import astroI18next from 'astro-i18next';
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
prefetch: true,
|
||||
integrations: [react(), astroI18next()],
|
||||
experimental: {},
|
||||
redirects: {
|
||||
'/projects': '/projects/1',
|
||||
},
|
||||
});
|
||||
24
cog.toml
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
from_latest_tag = true
|
||||
ignore_merge_commits = false
|
||||
disable_changelog = false
|
||||
disable_bump_commit = false
|
||||
generate_mono_repository_global_tag = true
|
||||
branch_whitelist = []
|
||||
skip_ci = "[skip ci]"
|
||||
skip_untracked = false
|
||||
pre_bump_hooks = []
|
||||
post_bump_hooks = []
|
||||
pre_package_bump_hooks = []
|
||||
post_package_bump_hooks = []
|
||||
|
||||
[git_hooks]
|
||||
|
||||
[commit_types]
|
||||
|
||||
[changelog]
|
||||
path = "CHANGELOG.md"
|
||||
authors = []
|
||||
|
||||
[bump_profiles]
|
||||
|
||||
[packages]
|
||||
16
config.toml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# The URL the site will be built for
|
||||
base_url = "https://alecodes.page"
|
||||
|
||||
# Whether to automatically compile all Sass files in the sass directory
|
||||
compile_sass = true
|
||||
|
||||
# Whether to build a search index to be used later on by a JavaScript library
|
||||
build_search_index = true
|
||||
|
||||
[markdown]
|
||||
# Whether to do syntax highlighting
|
||||
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
|
||||
highlight_code = true
|
||||
|
||||
[extra]
|
||||
# Put all your custom variables here
|
||||
5
content/_index.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
+++
|
||||
|
||||
+++
|
||||
|
||||
# This is a awesome page :D
|
||||
5
content/garden/_index.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
+++
|
||||
title = "Garden"
|
||||
+++
|
||||
|
||||
foo
|
||||
5
content/garden/test.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
+++
|
||||
title = "test"
|
||||
+++
|
||||
|
||||
# This is a test :D
|
||||
5
content/portafolio/_index.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
+++
|
||||
title="Portafolio"
|
||||
+++
|
||||
|
||||
This is the Portafolio
|
||||
|
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 252 KiB |
|
Before Width: | Height: | Size: 258 KiB After Width: | Height: | Size: 258 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 213 KiB After Width: | Height: | Size: 213 KiB |
|
Before Width: | Height: | Size: 268 KiB After Width: | Height: | Size: 268 KiB |
2
content/post/_index.md
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
+++
|
||||
+++
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
import { defineConfig } from 'cypress';
|
||||
|
||||
export default defineConfig({
|
||||
e2e: {
|
||||
baseUrl: 'http://localhost:3000',
|
||||
setupNodeEvents(on, config) {
|
||||
// implement node event listeners here
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
describe('The Home Page', () => {
|
||||
beforeEach(() => {
|
||||
cy.visit('/');
|
||||
});
|
||||
|
||||
it('Successfully load', () => {
|
||||
cy.get('h1')
|
||||
.should('have.length', 1)
|
||||
.should('have.text', 'Alexander Navarro');
|
||||
});
|
||||
|
||||
it('Card components have content', () => {
|
||||
cy.get('.card')
|
||||
.should('have.length', 3)
|
||||
.each(($card) => {
|
||||
cy.wrap($card)
|
||||
.find('li')
|
||||
.should(($li) => expect($li).to.have.lengthOf.at.most(3))
|
||||
.find('a')
|
||||
.should('have.attr', 'href');
|
||||
|
||||
cy.wrap($card).contains('See more...');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"name": "Using fixtures to represent data",
|
||||
"email": "hello@cypress.io",
|
||||
"body": "Fixtures are a great way to mock data for responses to routes"
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
/// <reference types="cypress" />
|
||||
// ***********************************************
|
||||
// This example commands.ts shows you how to
|
||||
// create various custom commands and overwrite
|
||||
// existing commands.
|
||||
//
|
||||
// For more comprehensive examples of custom
|
||||
// commands please read more here:
|
||||
// https://on.cypress.io/custom-commands
|
||||
// ***********************************************
|
||||
//
|
||||
//
|
||||
// -- This is a parent command --
|
||||
// Cypress.Commands.add('login', (email, password) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This is a child command --
|
||||
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This is a dual command --
|
||||
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
|
||||
//
|
||||
//
|
||||
// -- This will overwrite an existing command --
|
||||
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
|
||||
//
|
||||
// declare global {
|
||||
// namespace Cypress {
|
||||
// interface Chainable {
|
||||
// login(email: string, password: string): Chainable<void>
|
||||
// drag(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
|
||||
// dismiss(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
|
||||
// visit(originalFn: CommandOriginalFn, url: string, options: Partial<VisitOptions>): Chainable<Element>
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
// ***********************************************************
|
||||
// This example support/e2e.ts is processed and
|
||||
// loaded automatically before your test files.
|
||||
//
|
||||
// This is a great place to put global configuration and
|
||||
// behavior that modifies Cypress.
|
||||
//
|
||||
// You can change the location of this file or turn off
|
||||
// automatically serving support files with the
|
||||
// 'supportFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/configuration
|
||||
// ***********************************************************
|
||||
|
||||
// Import commands.js using ES2015 syntax:
|
||||
import './commands'
|
||||
|
||||
// Alternatively you can use CommonJS syntax:
|
||||
// require('./commands')
|
||||
12
deploy.sh
|
|
@ -1,12 +0,0 @@
|
|||
#!/bin/env bash
|
||||
|
||||
pnpm run build
|
||||
|
||||
## Add domain to codeberg pages
|
||||
cat >dist/.domains <<EOL
|
||||
blog.panconpalta.win
|
||||
personal-page.aleidk.codeberg.page
|
||||
pages.personal-page.aleidk.codeberg.page
|
||||
EOL
|
||||
|
||||
pnpm exec gh-pages --dist dist --branch pages --dotfiles
|
||||
34
package.json
|
|
@ -2,42 +2,10 @@
|
|||
"name": "personal-page",
|
||||
"type": "module",
|
||||
"version": "0.3.0",
|
||||
"scripts": {
|
||||
"dev": "astro dev --port 3000",
|
||||
"start": "astro dev",
|
||||
"build": "astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro",
|
||||
"localize": "astro-i18next generate"
|
||||
},
|
||||
"scripts": { },
|
||||
"dependencies": {
|
||||
"@astrojs/react": "^3.0.7",
|
||||
"@astrojs/ts-plugin": "^1.3.1",
|
||||
"@types/react": "^18.0.21",
|
||||
"@types/react-dom": "^18.0.6",
|
||||
"astro": "^4.0.6",
|
||||
"astro-i18next": "1.0.0-beta.21",
|
||||
"i18next": "^22.5.1",
|
||||
"i18next-fs-backend": "^2.3.1",
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0",
|
||||
"sass": "^1.71.1",
|
||||
"sharp": "^0.32.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
||||
"cypress": "^13.6.1",
|
||||
"eslint": "^8.53.0",
|
||||
"eslint-config-prettier": "^8.10.0",
|
||||
"eslint-config-standard-with-typescript": "^35.0.0",
|
||||
"eslint-plugin-cypress": "^2.15.1",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"eslint-plugin-n": "^15.7.0",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-react": "^7.33.2",
|
||||
"gh-pages": "^5.0.0",
|
||||
"prettier": "^2.8.8",
|
||||
"prettier-plugin-astro": "^0.10.0",
|
||||
"typescript": "^5.2.2"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
6406
pnpm-lock.yaml
generated
10
public/elasticlunr.min.js
vendored
Normal file
|
|
@ -1,9 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
|
||||
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
|
||||
<style>
|
||||
path { fill: #000; }
|
||||
@media (prefers-color-scheme: dark) {
|
||||
path { fill: #FFF; }
|
||||
}
|
||||
</style>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 749 B |
1
public/foundation.min.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#eee;color:#000}.hljs-addition,.hljs-attribute,.hljs-emphasis,.hljs-link{color:#070}.hljs-emphasis{font-style:italic}.hljs-deletion,.hljs-string,.hljs-strong{color:#d14}.hljs-strong{font-weight:700}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-section,.hljs-title{color:#900}.hljs-class .hljs-title,.hljs-title.class_,.hljs-type{color:#458}.hljs-template-variable,.hljs-variable{color:#369}.hljs-bullet{color:#970}.hljs-meta{color:#34b}.hljs-code,.hljs-keyword,.hljs-literal,.hljs-number,.hljs-selector-tag{color:#099}.hljs-regexp{background-color:#fff0ff;color:#808}.hljs-symbol{color:#990073}.hljs-name,.hljs-selector-class,.hljs-selector-id,.hljs-tag{color:#070}
|
||||
684
public/highlight.min.js
vendored
Normal file
BIN
public/images/favicon.png
Normal file
|
After Width: | Height: | Size: 529 KiB |