Compare commits

...

No commits in common. "dev" and "master" have entirely different histories.
dev ... master

147 changed files with 14817 additions and 1539 deletions

28
.gitignore vendored
View File

@ -1,4 +1,24 @@
*#
*~
./public
public
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
.idea
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "themes/starter"]
path = themes/starter
url = https://github.com/jimfrenette/hugo-starter.git

12
.idea/horhik.dev.iml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>

6
.idea/misc.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="JSX" />
</component>
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/horhik.dev.iml" filepath="$PROJECT_DIR$/.idea/horhik.dev.iml" />
</modules>
</component>
</project>

9
.idea/vcs.xml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="$PROJECT_DIR$/src/when-module-doesnt-merge-your-pullrequest/figlet.js" vcs="Git" />
<mapping directory="$PROJECT_DIR$/src/when-module-dont-take-your-pullrequest/figlet.js" vcs="Git" />
<mapping directory="$PROJECT_DIR$/when-module-dont-take-your-pullrequest/figlet.js" vcs="Git" />
</component>
</project>

65
.idea/watcherTasks.xml Normal file
View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectTasksOptions" suppressed-tasks="Sass">
<TaskOptions isEnabled="false">
<option name="arguments" value="--write $FilePathRelativeToProjectRoot$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="js" />
<option name="immediateSync" value="false" />
<option name="name" value="Prettier" />
<option name="output" value="$FilePathRelativeToProjectRoot$" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="$ProjectFileDir$/node_modules/.bin/prettier" />
<option name="runOnExternalChanges" value="true" />
<option name="scopeName" value="Project Files" />
<option name="trackOnlyRoot" value="false" />
<option name="workingDir" value="$ProjectFileDir$" />
<envs />
</TaskOptions>
<TaskOptions isEnabled="false">
<option name="arguments" value="--write $FilePathRelativeToProjectRoot$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="tsx" />
<option name="immediateSync" value="false" />
<option name="name" value="Prettier" />
<option name="output" value="$FilePathRelativeToProjectRoot$" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="$ProjectFileDir$/node_modules/prettier" />
<option name="runOnExternalChanges" value="true" />
<option name="scopeName" value="Project Files" />
<option name="trackOnlyRoot" value="false" />
<option name="workingDir" value="$ProjectFileDir$" />
<envs />
</TaskOptions>
<TaskOptions isEnabled="false">
<option name="arguments" value="$FileName$:$FileNameWithoutExtension$.css" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="scss" />
<option name="immediateSync" value="true" />
<option name="name" value="SCSS" />
<option name="output" value="$FileNameWithoutExtension$.css:$FileNameWithoutExtension$.css.map" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="sass" />
<option name="runOnExternalChanges" value="true" />
<option name="scopeName" value="Project Files" />
<option name="trackOnlyRoot" value="true" />
<option name="workingDir" value="$FileDir$" />
<envs />
</TaskOptions>
</component>
</project>

318
.idea/workspace.xml Normal file
View File

@ -0,0 +1,318 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="BranchesTreeState">
<expand>
<path>
<item name="ROOT" type="e8cecc67:BranchNodeDescriptor" />
<item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" />
</path>
</expand>
<select />
</component>
<component name="ChangeListManager">
<list default="true" id="4b1db503-490b-4f06-812d-6b9b94d2764a" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/public/logo_source.svg" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="JsbtTreeLayoutManager">
<layout place="tools.popupnpm">
<scroll-view-position x="0" y="0" />
</layout>
</component>
<component name="ProjectId" id="1bkf3eRMu09dFeQzwAvqEBCHKtx" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
<property name="ASKED_SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="dart.analysis.tool.window.visible" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/public" />
<property name="node.js.detected.package.eslint" value="true" />
<property name="node.js.path.for.package.eslint" value="project" />
<property name="node.js.selected.package.eslint" value="(autodetect)" />
<property name="nodejs_package_manager_path" value="yarn" />
<property name="run.prettier.on.save" value="true" />
<property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors.Color Scheme Font" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/src/components/navigation" />
<recent name="$PROJECT_DIR$/src/components/elements/homepage" />
<recent name="$PROJECT_DIR$/src" />
<recent name="$PROJECT_DIR$/src/css" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/public" />
<recent name="$PROJECT_DIR$/src/reducers" />
<recent name="$PROJECT_DIR$/src/components/elements/homepage" />
<recent name="$PROJECT_DIR$/src/ascii" />
</key>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="4b1db503-490b-4f06-812d-6b9b94d2764a" name="Default Changelist" comment="" />
<created>1589180813247</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1589180813247</updated>
<workItem from="1589180814765" duration="287000" />
<workItem from="1589181883788" duration="9843000" />
<workItem from="1589253283370" duration="5339000" />
<workItem from="1589450996359" duration="6767000" />
<workItem from="1589583447607" duration="5148000" />
<workItem from="1590125952856" duration="14140000" />
<workItem from="1590359928462" duration="4688000" />
<workItem from="1590372993882" duration="19190000" />
<workItem from="1590539117687" duration="5804000" />
<workItem from="1591990547157" duration="817000" />
<workItem from="1592031143821" duration="48000" />
<workItem from="1592033216416" duration="71000" />
<workItem from="1592033332932" duration="312000" />
<workItem from="1592033666352" duration="776000" />
<workItem from="1592131255026" duration="5246000" />
<workItem from="1593730036206" duration="642000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="2" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="VcsManagerConfiguration">
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
</component>
<component name="WindowStateProjectService">
<state x="1959" y="284" width="565" height="385" key="#com.intellij.fileTypes.FileTypeChooser" timestamp="1592136869775">
<screen x="1280" y="0" width="1920" height="1080" />
</state>
<state x="681" y="304" width="565" height="385" key="#com.intellij.fileTypes.FileTypeChooser/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590363110452" />
<state x="1959" y="284" key="#com.intellij.fileTypes.FileTypeChooser/1280.0.1920.1080/0.0.1280.1024@1280.0.1920.1080" timestamp="1592136869775" />
<state x="691" y="270" width="528" height="493" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog" timestamp="1589182540220">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="691" y="270" width="528" height="493" key="#com.intellij.refactoring.safeDelete.UnsafeUsagesDialog/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1589182540220" />
<state x="534" y="251" width="706" height="433" key="EditFileWatcherDialog" timestamp="1589189510383">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="534" y="251" width="706" height="433" key="EditFileWatcherDialog/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1589189510383" />
<state x="737" y="239" width="428" height="476" key="FileChooserDialogImpl" timestamp="1589199972588">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="737" y="239" width="428" height="476" key="FileChooserDialogImpl/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1589199972588" />
<state width="1918" height="298" key="GridCell.Tab.0.bottom" timestamp="1589199973836">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state width="1918" height="298" key="GridCell.Tab.0.bottom/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1589199973836" />
<state width="1918" height="298" key="GridCell.Tab.0.center" timestamp="1589199973836">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state width="1918" height="298" key="GridCell.Tab.0.center/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1589199973836" />
<state width="1918" height="298" key="GridCell.Tab.0.left" timestamp="1589199973836">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state width="1918" height="298" key="GridCell.Tab.0.left/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1589199973836" />
<state width="1918" height="298" key="GridCell.Tab.0.right" timestamp="1589199973836">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state width="1918" height="298" key="GridCell.Tab.0.right/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1589199973836" />
<state x="1653" y="2" key="SettingsEditor" timestamp="1592033800617">
<screen x="1280" y="0" width="1920" height="1080" />
</state>
<state x="391" y="182" key="SettingsEditor/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590389869850" />
<state x="1653" y="2" key="SettingsEditor/1280.0.1920.1080/0.0.1280.1024@1280.0.1920.1080" timestamp="1592033800617" />
<state x="1802" y="-330" width="774" height="774" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser" timestamp="1592137639716">
<screen x="1280" y="0" width="1920" height="1080" />
</state>
<state x="538" y="-170" width="774" height="774" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590396787684" />
<state x="534" y="-210" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser/0.0.1920.1080@0.0.1920.1080" timestamp="1590540625923" />
<state x="1802" y="-330" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser/1280.0.1920.1080/0.0.1280.1024@1280.0.1920.1080" timestamp="1592137639716" />
<state x="1710" y="11" width="99" height="1060" key="dock-window-1" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1710" y="11" width="99" height="1060" key="dock-window-1/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="934" y="11" width="58" height="1060" key="dock-window-10" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="934" y="11" width="58" height="1060" key="dock-window-10/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1252" y="11" width="48" height="1060" key="dock-window-11" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1252" y="11" width="48" height="1060" key="dock-window-11/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1124" y="11" width="72" height="1060" key="dock-window-12" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1124" y="11" width="72" height="1060" key="dock-window-12/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1604" y="11" width="307" height="1060" key="dock-window-13" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1604" y="11" width="307" height="1060" key="dock-window-13/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1650" y="11" width="261" height="1060" key="dock-window-14" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1650" y="11" width="261" height="1060" key="dock-window-14/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1343" y="11" width="75" height="1060" key="dock-window-15" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1343" y="11" width="75" height="1060" key="dock-window-15/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1402" y="11" width="79" height="1060" key="dock-window-16" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1402" y="11" width="79" height="1060" key="dock-window-16/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1594" y="11" width="47" height="1060" key="dock-window-17" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1594" y="11" width="47" height="1060" key="dock-window-17/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1469" y="11" width="83" height="1060" key="dock-window-18" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1469" y="11" width="83" height="1060" key="dock-window-18/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1540" y="11" width="88" height="1060" key="dock-window-19" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1540" y="11" width="88" height="1060" key="dock-window-19/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1811" y="11" width="100" height="1060" key="dock-window-2" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1811" y="11" width="100" height="1060" key="dock-window-2/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="112" y="11" width="46" height="1060" key="dock-window-20" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="112" y="11" width="46" height="1060" key="dock-window-20/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1284" y="11" width="627" height="1060" key="dock-window-21" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1284" y="11" width="627" height="1060" key="dock-window-21/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1124" y="11" width="152" height="1060" key="dock-window-22" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1124" y="11" width="152" height="1060" key="dock-window-22/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1444" y="11" width="467" height="1060" key="dock-window-23" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1444" y="11" width="467" height="1060" key="dock-window-23/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="874" y="11" width="167" height="1060" key="dock-window-24" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="874" y="11" width="167" height="1060" key="dock-window-24/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="964" y="11" width="184" height="1060" key="dock-window-25" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="964" y="11" width="184" height="1060" key="dock-window-25/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1540" y="11" width="371" height="1060" key="dock-window-26" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1540" y="11" width="371" height="1060" key="dock-window-26/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1284" y="11" width="120" height="1060" key="dock-window-27" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1284" y="11" width="120" height="1060" key="dock-window-27/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1072" y="11" width="205" height="1060" key="dock-window-28" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1072" y="11" width="205" height="1060" key="dock-window-28/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1204" y="11" width="232" height="1060" key="dock-window-29" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1204" y="11" width="232" height="1060" key="dock-window-29/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1621" y="11" width="93" height="1060" key="dock-window-3" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1621" y="11" width="93" height="1060" key="dock-window-3/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="904" y="11" width="52" height="1060" key="dock-window-30" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="904" y="11" width="52" height="1060" key="dock-window-30/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1001" y="11" width="63" height="1060" key="dock-window-31" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1001" y="11" width="63" height="1060" key="dock-window-31/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1036" y="11" width="66" height="1060" key="dock-window-32" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1036" y="11" width="66" height="1060" key="dock-window-32/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1077" y="11" width="69" height="1060" key="dock-window-33" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1077" y="11" width="69" height="1060" key="dock-window-33/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="958" y="11" width="61" height="1060" key="dock-window-34" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="958" y="11" width="61" height="1060" key="dock-window-34/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="769" y="11" width="47" height="1060" key="dock-window-35" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="769" y="11" width="47" height="1060" key="dock-window-35/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="964" y="11" width="947" height="1060" key="dock-window-4" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="964" y="11" width="947" height="1060" key="dock-window-4/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1184" y="11" width="140" height="1060" key="dock-window-5" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1184" y="11" width="140" height="1060" key="dock-window-5/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1239" y="11" width="129" height="1060" key="dock-window-6" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1239" y="11" width="129" height="1060" key="dock-window-6/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="1204" y="11" width="112" height="1060" key="dock-window-7" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="1204" y="11" width="112" height="1060" key="dock-window-7/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="870" y="11" width="54" height="1060" key="dock-window-8" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="870" y="11" width="54" height="1060" key="dock-window-8/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="900" y="11" width="56" height="1060" key="dock-window-9" timestamp="1590395037402">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="900" y="11" width="56" height="1060" key="dock-window-9/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395037402" />
<state x="653" y="275" width="614" height="512" key="find.popup" timestamp="1590385200980">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="653" y="275" width="614" height="512" key="find.popup/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590385200980" />
<state x="227" y="403" width="250" height="278" key="jetbrains.javascript.buildTools.run-task-popup" timestamp="1593730131352">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="227" y="403" width="250" height="278" key="jetbrains.javascript.buildTools.run-task-popup/0.1080.1920.1080/0.0.1920.1080@0.0.1920.1080" timestamp="1593730131352" />
<state x="622" y="249" key="run.anything.popup" timestamp="1590363963127">
<screen x="0" y="0" width="1920" height="1080" />
</state>
<state x="622" y="249" key="run.anything.popup/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590363963127" />
<state x="1903" y="240" width="672" height="678" key="search.everywhere.popup" timestamp="1592033634952">
<screen x="1280" y="0" width="1920" height="1080" />
</state>
<state x="623" y="240" width="672" height="678" key="search.everywhere.popup/0.0.1920.1080/1920.0.1280.1024@0.0.1920.1080" timestamp="1590395597621" />
<state x="1903" y="240" width="672" height="678" key="search.everywhere.popup/1280.0.1920.1080/0.0.1280.1024@1280.0.1920.1080" timestamp="1592033634952" />
</component>
</project>

1
.obsidian/config vendored
View File

@ -1 +0,0 @@
{"baseFontSize":16,"pluginEnabledStatus":{"file-explorer":true,"global-search":true,"switcher":true,"graph":true,"backlink":true,"page-preview":true,"command-palette":true,"markdown-importer":true,"word-count":true,"open-with-default-app":true,"file-recovery":true},"alwaysUpdateLinks":true,"promptDelete":false}

97
.obsidian/workspace vendored
View File

@ -1,97 +0,0 @@
{
"main": {
"id": "cff797892302acf3",
"type": "split",
"children": [
{
"id": "5b8b6fab2d3ff4a9",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "content/portfolio/Snake.md",
"mode": "source"
}
}
}
],
"direction": "vertical"
},
"left": {
"id": "d289b0a88f9473dc",
"type": "split",
"children": [
{
"id": "917ad6055d9b702c",
"type": "tabs",
"children": [
{
"id": "27d5bbbb56d13c3f",
"type": "leaf",
"state": {
"type": "file-explorer",
"state": {}
}
},
{
"id": "f59f8c4e127a9cbf",
"type": "leaf",
"state": {
"type": "search",
"state": {
"query": "",
"matchingCase": false,
"explainSearch": false,
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
}
}
}
]
}
],
"direction": "horizontal",
"width": 300
},
"right": {
"id": "e8413990fdd4f098",
"type": "split",
"children": [
{
"id": "5c222fe5f229e203",
"type": "tabs",
"children": [
{
"id": "91d89a62fd6b5ea1",
"type": "leaf",
"state": {
"type": "backlink",
"state": {
"file": "content/portfolio/Snake.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
"showSearch": false,
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
}
}
}
]
}
],
"direction": "horizontal",
"width": 300,
"collapsed": true
},
"active": "5b8b6fab2d3ff4a9",
"lastOpenFiles": [
"content/portfolio/Snake.md",
"content/portfolio/Hole.md",
"content/portfolio/AnkiLan.md",
"content/portfolio/snake/snake-desktop 1.png",
"content/portfolio/Pasted image 20210606223013.png"
]
}

View File

@ -1,2 +1,6 @@
# [god.redeyes.club](https://god.redeyes.club)
My personal site
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## This is my personal site
Writen with react
`yarn start` to start
or visit [horhik.xyz](https://horhik.xyz)

View File

@ -1,6 +0,0 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

View File

@ -1,9 +0,0 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
type: portfolio
description: ""
githug: ""
site: ""
---

View File

@ -1,6 +0,0 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
type: post
---

View File

@ -1,66 +0,0 @@
@import "variables";
@import "fonts";
body {
margin: 0;
padding: 0;
background-color: var(--background);
color: var(--foreground);
font-family: 'Mononoki', 'Ubuntu', 'Twemoji' sans-serif;
max-width: 1000px;
margin: 0 auto;
box-shadow: 0px -30px 20px rgba(0, 0, 0, 0.5);
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
padding:10px 0;
}
p {
font-family: sans-serif;
}
a, .link{
transition: 0.3s;
color: $link-color;
text-decoration: none;
&:hover, &:focus{
color: var(--pink)
}
}
@media (min-width: 1000px) {
box-shadow: 4px 4px 32px rgba(0, 0, 0, 0.34);
}
.h1{
font-family: 'Mononoki Bold', 'Fira Code SemiBold', 'Twemoji', monospace ;
font-size: 2em;
}
// Highlighting one line code (which uses ` not ```)
p code, quote code, q code{
font-family: $main-font;
background: var(--selection);
color: var(--cyan);
border-radius: 3px;
padding: 0 6px;
}
img {
width: 100%;
}
audio {height:200px; width:300px; background:yellow;}
@import "logo";
@import "page-404";
@import "elements/page-links";
@import "elements/recent-list";
@import "elements/contacts";
@import "elements/portfolio-project";
@import "elements/blog-post-preview";
@import "elements/blog-post";

View File

@ -1,60 +0,0 @@
@import "variables";
@import "fonts";
body {
margin: 0;
padding: 0;
background-color: var(--background);
color: var(--foreground);
font-family: 'Mononoki', 'Ubuntu', 'Twemoji' sans-serif;
max-width: 1000px;
margin: 0 auto;
box-shadow: 0px -30px 20px rgba(0, 0, 0, 0.5);
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
padding:10px 0;
}
a, .link{
transition: 0.3s;
color: $link-color;
text-decoration: none;
&:hover, &:focus{
color: var(--pink)
}
}
@media (min-width: 1000px) {
box-shadow: 4px 4px 32px rgba(0, 0, 0, 0.34);
}
.h1{
font-family: 'Mononoki Bold', 'Fira Code SemiBold', 'Twemoji' ;
font-size: 2em;
}
// Highlighting one line code (which uses ` not ```)
p code, quote code, q code{
font-family: $main-font;
background: var(--selection);
color: var(--cyan);
border-radius: 3px;
padding: 0 6px;
}
img {
width: 100%;
}
@import "logo";
@import "page-404";
@import "elements/page-links";
@import "elements/recent-list";
@import "elements/contacts";
@import "elements/portfolio-project";
@import "elements/blog-post-preview";
@import "elements/blog-post";

View File

@ -1,24 +0,0 @@
.blog-header{
color: $header-color;
font-family: "Mononoki Bold", "Twitter Color Emoji", "Twemoji", sans-serif;
font-size: 2em;
display: inline-flex;
justify-content: center;
text-align:center;
margin: 0 auto;
margin-top: 32px;
}
.blog-post{
time{
font-family: $blog-font, sans-serif;
display: flex;
align-content: center;
justify-content: center;
font-size: 0.9em;
}
padding: 0px 30px;
font-size: 22px;
font-family: Ubuntu, sans-serif;
}

View File

@ -1,33 +0,0 @@
@font-face { //
font-family: 'Mononoki';
src: url('../fonts/mononoki-Regular.eot');
src: url('../fonts/mononoki-Regular.eot') format('embedded-opentype'),
url('../fonts/mononoki-Regular.ttf') format('truetype'),
url('../fonts/mononoki-Regular.woff2') format('woff2'),
url('../fonts/mononoki-Regular.woff') format('woff');
}
@font-face {
font-family: 'Mononoki Bold';
src: url('../fonts/mononoki-Bold.eot');
src: url('../fonts/mononoki-Bold.eot') format('embedded-opentype'),
url('../fonts/mononoki-Bold.ttf') format('truetype'),
url('../fonts/mononoki-Bold.woff2') format('woff2'),
url('../fonts/mononoki-Bold.woff') format('woff');
}
@font-face {
font-family: 'Mononoki';
src: url('../fonts/mononoki-Regular.eot');
src: url('../fonts/mononoki-Regular.eot') format('embedded-opentype'),
url('../fonts/mononoki-Regular.ttf') format('truetype'),
url('../fonts/mononoki-Regular.woff2') format('woff2'),
url('../fonts/mononoki-Regular.woff') format('woff');
}
@font-face {
font-family: 'Twemoji';
src: url('../fonts/Twemoji.ttf') format('truetype');
}
@import url('https://fonts.googleapis.com/css2?family=Cuprum:ital,wght@0,400;0,700;1,400;1,700&display=swap');

View File

@ -1,18 +0,0 @@
.not-found{
display: flex;
justify-content: center;
font-size: 25px;
line-height: 28px;
color: var(--selection);
tansition: 0.3s;
}
@media screen and (max-width: 500px) {
.not-found {
font-size: 14px;
line-height: 14px;
}
}

View File

@ -1,37 +0,0 @@
/* Dracula theme */
/*
:root {
--background: #282A36 ;
--comment: #6272A4 ;
--selection: #44475A ;
--foreground: #F8F8F2 ;
--cyan: #8BE9FD ;
--orange: #FFB86C;
--green: #50FA7B ;
--pink: #FF79C6 ;
--purple: #BD93F9 ;
--red: #FF5555 ;
--yellow: #F1FA8C;
}
*/
/* Gruvbox theme */
:root {
--background: #282828 ;
--comment: #458588 ;
--selection: #665c54 ;
--foreground: #ebdbb2 ;
--cyan: #83a598 ;
--orange: #fe8019;
--green: #98971a ;
--pink: #d3869b ;
--purple: #b16286 ;
--red: #cc241d ;
--yellow: #F1FA8C;
}
$ascii-line-height: 1.115em;
$ascii-line-height-mobile: 1.112em;
$header-color: var(--green);
$main-font: 'Mononoki', 'Twemoji', monospace;
$blog-font: 'Cuprum', 'Mononoki', 'Twemoji', monospace;
$link-color: var(--cyan);

View File

@ -1,33 +0,0 @@
@font-face { //
font-family: 'Mononoki';
src: url('../fonts/mononoki-Regular.eot');
src: url('../fonts/mononoki-Regular.eot') format('embedded-opentype'),
url('../fonts/mononoki-Regular.ttf') format('truetype'),
url('../fonts/mononoki-Regular.woff2') format('woff2'),
url('../fonts/mononoki-Regular.woff') format('woff');
}
@font-face {
font-family: 'Mononoki Bold';
src: url('../fonts/mononoki-Bold.eot');
src: url('../fonts/mononoki-Bold.eot') format('embedded-opentype'),
url('../fonts/mononoki-Bold.ttf') format('truetype'),
url('../fonts/mononoki-Bold.woff2') format('woff2'),
url('../fonts/mononoki-Bold.woff') format('woff');
}
@font-face {
font-family: 'Mononoki';
src: url('../fonts/mononoki-Regular.eot');
src: url('../fonts/mononoki-Regular.eot') format('embedded-opentype'),
url('../fonts/mononoki-Regular.ttf') format('truetype'),
url('../fonts/mononoki-Regular.woff2') format('woff2'),
url('../fonts/mononoki-Regular.woff') format('woff');
}
@font-face {
font-family: 'Twemoji';
src: url('../fonts/Twemoji.ttf') format('truetype');
}
@import url('https://fonts.googleapis.com/css2?family=Cuprum:ital,wght@0,400;0,700;1,400;1,700&display=swap');

View File

@ -1,30 +0,0 @@
.logo--wrapper {
display: grid;
font-family: Mononoki, 'Fira Code',monospace, Ubuntu;
}
.logo-quote {
text-align: center;
color: var(--foreground);
margin: 10px auto 28px;
max-width: 300px;
}
.logo{
margin: 0 auto;
margin-top: 30px;
display: flex;
flex-direction: column;
align-items: center;
align-content: center;
font-family: Mononoki, 'Fira Code',monospace, Ubuntu;
}
.toilet-logo{
color: var(--orange);
font-size: 0.9em;
line-height: $ascii-line-height;
margin: 0;
font-family: Mononoki, 'Fira Code',monospace, Ubuntu;
white-space: pre-line;
}

View File

@ -1,18 +0,0 @@
.not-found{
display: flex;
justify-content: center;
font-size: 25px;
line-height: 28px;
color: var(--selection);
tansition: 0.3s;
}
@media screen and (max-width: 500px) {
.not-found {
font-size: 14px;
line-height: 14px;
}
}

View File

@ -1,37 +0,0 @@
/* Dracula theme */
/*
:root {
--background: #282A36 ;
--comment: #6272A4 ;
--selection: #44475A ;
--foreground: #F8F8F2 ;
--cyan: #8BE9FD ;
--orange: #FFB86C;
--green: #50FA7B ;
--pink: #FF79C6 ;
--purple: #BD93F9 ;
--red: #FF5555 ;
--yellow: #F1FA8C;
}
*/
/* Gruvbox theme */
:root {
--background: #282828 ;
--comment: #458588 ;
--selection: #665c54 ;
--foreground: #ebdbb2 ;
--cyan: #83a598 ;
--orange: #fe8019;
--green: #98971a ;
--pink: #d3869b ;
--purple: #b16286 ;
--red: #cc241d ;
--yellow: #F1FA8C;
}
$ascii-line-height: 1.115em;
$ascii-line-height-mobile: 1.112em;
$header-color: var(--green);
$main-font: 'Mononoki', 'Twemoji', monospace;
$blog-font: 'Cuprum', 'Mononoki', 'Twemoji', monospace;
$link-color: var(--cyan);

View File

@ -1,42 +0,0 @@
#baseURL = "https://horhik.xyz/"
baseURL = "https://redeyes.club/"
languageCode = "en-us"
title = "Horhik's redeyes reason"
summaryLength=10
enableEmoji = true
[markup]
[markup.highlight]
anchorLineNos = false
codeFences = true
guessSyntax = true
hl_Lines = ""
lineAnchors = ""
lineNoStart = 1
lineNos = true
lineNumbersInTable = true
noClasses = true
style = "fruity"
tabWidth = 2
[markup.goldmark.renderer]
unsafe= true
[[menu.social]]
name = "Mastodon"
url = "https://mastodon.ml/web/accounts/74403"
weight = 1
[[menu.social]]
name = "GitHub"
url = "https://github.com/horhik"
weight = 10
[[menu.social]]
name = "LinkedIn"
url = "https://www.linkedin.com/in/horhik"
weight = 100
[taxonomies]
category = "categories"
tag = "tags"
site = "site"
github = "github"

View File

@ -1,4 +0,0 @@
---
title: "Horhik's music"
date: 2021-06-06
---

View File

@ -1,6 +0,0 @@
---
title: "Kek"
date: 2021-11-13T20:00:32+03:00
draft: true
---

View File

@ -1,15 +0,0 @@
---
title: "Software should work (ru)"
date: 2021-11-13T19:22:35+03:00
image_url: https://pixelfed-prod.nyc3.cdn.digitaloceanspaces.com/public/m/_v2/319616208418770944/1672d1d81-1ab3fb/vnRYg4ZEMivr/4Q5oENJ9gwjBtTwrFBeo0RXPc1fml1h4ObzTSMAz.jpg
type: post
---
*"софт должен просто работать"*
Made with [BespokeSynth](https://www.bespokesynth.com/)
<audio controls>
<source src="../software_should_work.mp3" type="audio/mp3">
Your browser does not support the audio tag.
</audio>

View File

@ -1,7 +0,0 @@
---
title: "AnkiLan ⭐"
date: 2020-05-01T00:00:00+03:00
type: portfolio
description: "App for creating Anki flashcards"
github: "https://github.com/Horhik/ankilan"
---

View File

@ -1,6 +0,0 @@
---
title: "Ankilan"
date: 2021-06-06T16:06:34+03:00
draft: true
---

View File

@ -1,9 +0,0 @@
---
title: "Hole chat 🐰"
date: 2021-05-01T00:00:00+03:00
type: portfolio
description: "Decentralized messenger over Freenet network"
github: "https://github.com/hole-chat/"
site: "https://github.com/hole-chat/core/blob/master/README.md"
icon: "https://avatars.githubusercontent.com/u/80746081?s=400&u=941f96e2a43c02b36318c4efabcb36430467fc31&v=4"
---

View File

@ -1,20 +0,0 @@
---
title: "Snake game 🐍 "
date: 2019-11-01T00:00:00+03:00
type: portfolio
description: "Snake game written with P5js"
tags: ["game", "javascript"]
github: "https://github.com/horhik/snake"
site: "https://snake.horhik.xyz/"
---
The simple snake game which working on both desktop 🖥 and mobile 📲
<div class="with-images" style="display: flex; flex-wrap: wrap; justify-content: center;" >
<img src="./snake-desktop.png"style="max-width: 600px; height: max-content;" alt="snake on desktop screenshot">
<img src="./snake-mobile.png" style="max-width: 250px" alt="snake on mobile screenshot">
</div>
On mobile there's a support for playing via swipes 👆

View File

@ -1,9 +0,0 @@
---
title: "Tasquare ☑"
date: 2020-01-01T00:00:00+03:00
type: portfolio
description: "TODO app with timer written on React"
github: "https://github.com/horhik/tasquare"
site: "https://tasquare.horhik.xyz/"
icon: "https://raw.githubusercontent.com/Horhik/tasquare/master/src/svg/logo.svg"
---

View File

@ -1,4 +0,0 @@
---
title: "O. George's portfolio"
date: 2021-06-06
---

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

View File

@ -1,52 +0,0 @@
---
title: "PyAutoGUI for simplifying anki routine"
date: 2021-01-21T10:26:19+03:00
description: "How i used PyAutoGUI wit my WM"
type: draft
---
I had been adding some cards to Anki.
It was lowercase word and word with stress in russian. like *торты тОрты.*
I'm lazy and i wrote two simple scripts. All what i have to do is input words with stress into a file.
First script for creating file with list of sequence of word with stress and lowercase word
```python
import os
f = open("/home/horhik/text.txt", 'r+')
lines = f.readlines()
for ind, line in enumerate(lines):
print(line.lower(), " ", line)
```
After, i just pushed output to file and opened it it Emacs.
Second script automatizing adding cards to A**nki**.
I split my window by **Anki** "add card" window and **Emacs**. As i use `evil` mode in Emacs, script looks like that:
```python
import pyautogui
import os
while(True):
pyautogui.hotkey("winleft", 'j') # toggle window
pyautogui.press(["v", "$", "y"]) # copy string
pyautogui.hotkey("winleft", 'j') # toggle window
pyautogui.hotkey("ctrl", 'v') # past text
pyautogui.press("tab") # next input field
pyautogui.hotkey("winleft", 'j') # toggle window
pyautogui.press(["j","0", "w", "v" , "$", "y", "0", "j", "j" ])
# move to next line beginning, copy it and go to next occurence
pyautogui.hotkey("winleft", 'j') # toggle window
pyautogui.hotkey("ctrl", 'v') # paste text
pyautogui.press("tab") # ...
pyautogui.press("tab") # ...
pyautogui.press("tab") # ...
pyautogui.press("tab") # ... way to submit button
pyautogui.press("space") # pressing submit button
```
`while(true)` was my mistake. I launched script in terminal, with `sleep` 3 seconds before.
But i couldn't shut script down without any strange effect when i opening not only 2 windows in my Window Manager.
Some strange things happen before I cached terminal and pressed `Ctrl+C`

View File

@ -1,8 +0,0 @@
---
title: "Still nothing"
date: 2021-01-21T10:26:19+03:00
description: "Nothing"
type: post
---
# NOTHING

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

View File

@ -1,15 +0,0 @@
{{ define "main"}}
<main id="main">
<div class="not-found" >
<pre>
░░░░░░░░░░░█░█░▄▀▄░█░█░░░░░░░░░░░░░
░░░░░░░░░░░░▀█░█░█░░▀█░░░░░░░░░░░░░
░░░░░░░░░░░░░▀░░▀░░░░▀░░░░░░░░░░░░░
░█▀█░█▀█░▀█▀░░░█▀▀░█▀█░█░█░█▀█░█▀▄░
░█░█░█░█░░█░░░░█▀▀░█░█░█░█░█░█░█░█░
░▀░▀░▀▀▀░░▀░░░░▀░░░▀▀▀░▀▀▀░▀░▀░▀▀░░
</pre>
</div>
</main>
{{ end }}

View File

@ -1,28 +0,0 @@
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode | default "en-us" }}">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{ .Title }}</title>
{{ $style := resources.Get "css/basic.scss" }}
{{ $style = $style | toCSS }}
{{ with .Site.Params.description }}<meta name="description" content="{{ . }}">{{ end }}
{{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,500;0,700;1,300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ $style.Permalink }}">
{{ with .OutputFormats.Get "RSS" -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s">` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}
{{- end }}
</head>
<body>
{{ partial "header" . }}
{{ block "main" . }}{{ end }}
{{ partial "footer" . }}
</body>
</html>

View File

@ -1,16 +0,0 @@
{{ define "main" }}
<main>
{{ if or .Title .Content }}
<div>
{{ with .Title }}<h1>{{ . }}</h1>{{ end }}
{{ with .Content }}<div>{{ . }}</div>{{ end }}
</div>
{{ end }}
{{ range .Paginator.Pages }}
{{ .Render "summary" }}
{{ end }}
{{ partial "pagination.html" . }}
</main>
{{ partial "sidebar.html" . }}
{{ end }}

View File

@ -1,34 +0,0 @@
{{ define "main" }}
<main>
<style>
audio {height:200px;
width:300px;
background-image:url("{{.Params.image_url}}");
background-position: center;
background-size: 550px 425px;
border-radius: 10px;
}
</style>
<article class="blog-post">
<h1 class="blog-header">{{ .Title }}</h1>
<sub><small><time>{{ .Date.Format "02.01.2006 15:04" }}</time></small></sub>
<div>
{{ .Content }}
</div>
<!-- {{ with .Params.tags }} -->
<!-- <div> -->
<!-- <ul id="tags"> -->
<!-- {{ range . }} -->
<!-- <li><a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a></li> -->
<!-- {{ end }} -->
<!-- </ul> -->
<!-- </div> -->
<!-- {{ end }} -->
{{ with .Site.DisqusShortname }}
<div>
{{ template "_internal/disqus.html" . }}
</div>
{{ end }}
</article>
</main>
{{ end }}

View File

@ -1,9 +0,0 @@
<article class="recent-block recent-block--right">
<div>
<a class="article__link" href="{{ .Permalink }}">{{ .Title }}</a>
</div>
<time class="recent-block__time">{{ .Date.Format "02.01.2006 15:04" }}</time>
<!-- {{ range .Params.tags }} -->
<!-- <\!-- <a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a> -\-> -->
<!-- {{ end }} -->
</article>

View File

@ -1,6 +0,0 @@
{{ define "main" }}
<main>
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) }}
{{ partial "sidebar.html" . }}
</main>
{{ end }}

View File

@ -1,4 +0,0 @@
<li>
<a href="{{ .Permalink }}">{{ .Title }}</a>
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
</li>

View File

@ -1,26 +0,0 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{ .Title }}</title>
{{ $style := resources.Get "css/basic.scss" }}
{{ $style = $style | toCSS }}
{{ with .Site.Params.description }}<meta name="description" content="{{ . }}">{{ end }}
{{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,500;0,700;1,300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ $style.Permalink }}">
{{ with .OutputFormats.Get "RSS" -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s">` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}
{{- end }}
</head>
{{ partial "header" . }}
<main id="main">
<div>
{{ range .Pages }}
{{ .Render "summary"}}
{{ end }}
</div>
</main>
{{ partial "footer" . }}

View File

@ -1,9 +0,0 @@
<article class="recent-block recent-block--right">
<div>
<a class="article__link" href="{{ .Permalink }}">{{ .Title }}</a>
</div>
<time class="recent-block__time">{{ .Date.Format "02.01.2006 15:04" }}</time>
{{ range .Params.tags }}
<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a>
{{ end }}
</article>

View File

@ -1,20 +0,0 @@
<footer>
<ul class="contacts">
<li><a href="https://github.com/horhik" class=" contact-link" title="github">
<pre>
┏━╸╻╺┳╸╻ ╻╻ ╻┏┓
┃╺┓┃ ┃ ┣━┫┃ ┃┣┻┓
┗━┛╹ ╹ ╹ ╹┗━┛┗━┛</pre></a></li>
<li><a href="https://mastodon.ml/web/accounts/74403" class=" contact-link" title="mastodon: @horhik@mastodon.ml">
<pre>
┏━╸┏━╸╺┳┓╻╻ ╻┏━╸┏━┓┏━┓┏━╸
┣╸ ┣╸ ┃┃┃┃┏┛┣╸ ┣┳┛┗━┓┣╸
╹ ┗━╸╺┻┛╹┗┛ ┗━╸╹┗╸┗━┛┗━╸</pre></a></li>
<li><a href="mailto:horhik@tuta.io" class=" contact-link" title="Mail">
<pre>
┏┳┓┏━┓╻╻
┃┃┃┣━┫┃┃
╹ ╹╹ ╹╹┗━╸</pre></a></li>
</ul>
<p class="copyright">&copy;{{ now.Year }} <a href="{{ .Site.BaseURL }}">Horhik</a></p>
</footer>

View File

@ -1,40 +0,0 @@
{{$horhik := "░█░█░▀█▀░░░░░░░▀█▀░▀░█▄█░░░█▀█░░░█░█░█▀█░█▀▄░█░█░▀█▀░█░█\n░█▀█░░█░░░░░░░░░█░░░░█░█░░░█▀█░░░█▀█░█░█░█▀▄░█▀█░░█░░█▀▄\n░▀░▀░▀▀▀░▄▀░░░░▀▀▀░░░▀░▀░░░▀░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀▀░▀░▀"}}
{{$home := "░█▄█░█▀█░▀█▀░█▀█░▄▀░░▀▄░\n░█░█░█▀█░░█░░█░█░█░░░░█░\n░▀░▀░▀░▀░▀▀▀░▀░▀░░▀░░▀░░"}}
{{$portfolio := "░█▀█░█▀█░█▀▄░▀█▀░█▀▀░█▀█░█░░░▀█▀░█▀█\n░█▀▀░█░█░█▀▄░░█░░█▀▀░█░█░█░░░░█░░█░█\n░▀░░░▀▀▀░▀░▀░░▀░░▀░░░▀▀▀░▀▀▀░▀▀▀░▀▀"}}
{{$blog := "░█▀▄░█░░░█▀█░█▀▀\n ░█▀▄░█░░░█░█░█░█\n ░▀▀░░▀▀▀░▀▀▀░▀▀▀"}}
{{$music := "░█▄█░█░█░█▀▀░▀█▀░█▀▀\n░█░█░█░█░▀▀█░░█░░█░░\n░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀▀▀"}}
{{$sec := .FirstSection}}
<header class="logo--wrapper">
<a href="{{ .Page.URL }}"><pre class="logo toilet-logo" title="Home">{{if eq .Section "portfolio"}}
{{$portfolio}}
<!-- <span class="logo-quote">O. Georges works</span> -->
{{else if eq .Section "posts"}}
{{$blog}}
{{else if eq .Section "music"}}
{{$music}}
<!--<span class="logo-quote">O. Georges thoughts</span> -->
{{else}}
{{$horhik}}
<!-- <span class="logo-quote">O. Georges site</span> -->
{{end}}
</pre></a>
<nav>
<ul class="page-list">
{{ range .Site.Sections }}
<li class="page-link"><a href="{{ .URL | relURL }}">
{{ if eq (title .Section) "Portfolio" }}{{$portfolio}}
{{ else if eq (title .Section) "Posts"}}{{$blog}}
{{ else if eq (title .Section) "Music"}}{{$music}}
{{end}}
</a></li>
{{ end }}
{{if ne (title .FirstSection) "Horhik.xyz"}}
<li class="page-link"><a href="{{.Site.BaseURL}}">
{{$home}}
</a></li>
{{end}}
</ul>
</nav>
</header>

View File

@ -1,9 +0,0 @@
<div>
{{ if .Paginator.HasPrev }}
<a href="{{ .Paginator.Prev.URL }}">Previous Page</a>
{{ end }}
{{ .Paginator.PageNumber }} of {{ .Paginator.TotalPages }}
{{ if .Paginator.HasNext }}
<a href="{{ .Paginator.Next.URL }}">Next Page</a>
{{ end }}
</div>

View File

@ -1,17 +0,0 @@
<aside>
<div class="recent">
<div >
<h2 class="h1 recent-header">LATEST POSTS</h3>
</div>
<div>
<ul class="recent-list">
{{ range first 5 (where .Site.Pages "Type" "post") }}
<li class="recent-block recent-block--right">
<a href="{{ .RelPermalink }}">{{ .Title }}</a> <br>
<time class="recent-block__time">{{ .Date.Format "02.01.2006" }}</time>
</li>
{{ end }}
</ul>
</div>
</div>
</aside>

View File

@ -1,4 +0,0 @@
<li>
<a href="{{ .Permalink }}">{{ .Title }}</a>
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
</li>

View File

@ -1,30 +0,0 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{ .Title }}</title>
{{ $style := resources.Get "css/basic.scss" }}
{{ $style = $style | toCSS }}
{{ with .Site.Params.description }}<meta name="description" content="{{ . }}">{{ end }}
{{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,500;0,700;1,300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ $style.Permalink }}">
{{ with .OutputFormats.Get "RSS" -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s">` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}
{{- end }}
</head>
{{ partial "header" . }}
<main id="main">
<ul class="portfolio">
{{ range .Pages }}
{{ .Render "summary"}}
{{ end }}
</ul>
</main>
{{ partial "footer" . }}

View File

@ -1,8 +0,0 @@
<main id="main">
<div>
<h1 id="title">{{ .Title }}</h1>
{{ range .Pages }}
{{ .Render "summary"}}
{{ end }}
</div>
</main>

View File

@ -1,29 +0,0 @@
<li class="project">
<h2>
<a class="project-name" href="{{ .Permalink }}">{{ .Title }}</a>
</h2>
<p class="project-description">{{.Description}}</p>
<ul class="project-links">
{{if in .Params.github ""}}
<li class="project-link project-link--github" >
<a href="{{.Params.github}}">
Github
</a>
</li>
{{end}}
{{if in .Params.site ""}}
<li class="project-link" >
<img class="project-icon" src="{{.Params.icon}}">
<a href="{{.Params.site}}">
Site
</a>
</li>
{{end}}
</ul>
{{ range .Params.tags }}
<!-- <a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a> -->
{{ end }}
</li>

View File

@ -1,30 +0,0 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{ .Title }}</title>
{{ $style := resources.Get "css/basic.scss" }}
{{ $style = $style | toCSS }}
{{ with .Site.Params.description }}<meta name="description" content="{{ . }}">{{ end }}
{{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,500;0,700;1,300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ $style.Permalink }}">
{{ with .OutputFormats.Get "RSS" -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s">` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}
{{- end }}
</head>
<article class="recent-block recent-block--right">
<div>
<a class="article__link" href="{{ .Permalink }}">{{ .Title }}</a>
</div>
<time class="recent-block__time">{{ .Date.Format "02.01.2006 15:04" }}</time>
{{ range .Params.tags }}
<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a>
{{ end }}
</article>

View File

@ -1,4 +0,0 @@
<li>
<a href="{{ .Permalink }}">{{ .Title }}</a>
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
</li>

View File

View File

@ -1,26 +0,0 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{ .Title }}</title>
{{ $style := resources.Get "css/basic.scss" }}
{{ $style = $style | toCSS }}
{{ with .Site.Params.description }}<meta name="description" content="{{ . }}">{{ end }}
{{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,500;0,700;1,300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ $style.Permalink }}">
{{ with .OutputFormats.Get "RSS" -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s">` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}
{{- end }}
</head>
{{ partial "header" . }}
<main id="main">
<div>
{{ range .Pages }}
{{ .Render "summary"}}
{{ end }}
</div>
</main>
{{ partial "footer" . }}

View File

@ -1,8 +0,0 @@
<main id="main">
<div>
<h1 id="title">{{ .Title }}</h1>
{{ range .Pages }}
{{ .Render "summary"}}
{{ end }}
</div>
</main>

View File

@ -1,9 +0,0 @@
<article class="recent-block recent-block--right">
<div>
<a class="article__link" href="{{ .Permalink }}">{{ .Title }}</a>
</div>
<time class="recent-block__time">{{ .Date.Format "02.01.2006 15:04" }}</time>
{{ range .Params.tags }}
<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a>
{{ end }}
</article>

View File

@ -1,30 +0,0 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{ .Title }}</title>
{{ $style := resources.Get "css/basic.scss" }}
{{ $style = $style | toCSS }}
{{ with .Site.Params.description }}<meta name="description" content="{{ . }}">{{ end }}
{{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,500;0,700;1,300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ $style.Permalink }}">
{{ with .OutputFormats.Get "RSS" -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s">` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}
{{- end }}
</head>
<article class="recent-block recent-block--right">
<div>
<a class="article__link" href="{{ .Permalink }}">{{ .Title }}</a>
</div>
<time class="recent-block__time">{{ .Date.Format "02.01.2006 15:04" }}</time>
{{ range .Params.tags }}
<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a>
{{ end }}
</article>

View File

@ -1,32 +0,0 @@
[build]
publish = "public"
command = "hugo --gc --minify"
[context.production.environment]
HUGO_VERSION = "0.80.0"
HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true"
[context.split1]
command = "hugo --gc --minify --enableGitInfo"
[context.split1.environment]
HUGO_VERSION = "0.80.0"
HUGO_ENV = "production"
[context.deploy-preview]
command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL"
[context.deploy-preview.environment]
HUGO_VERSION = "0.80.0"
[context.branch-deploy]
command = "hugo --gc --minify -b $DEPLOY_PRIME_URL"
[context.branch-deploy.environment]
HUGO_VERSION = "0.80.0"
[context.next.environment]
HUGO_ENABLEGITINFO = "true"

41
package.json Normal file
View File

@ -0,0 +1,41 @@
{
"name": "horhik.xyz",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.3.2",
"@testing-library/user-event": "^7.1.2",
"ascii-art": "^2.5.0",
"figlet": "^1.4.0",
"node-sass": "^4.14.1",
"prettier": "^2.0.5",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-redux": "^7.2.0",
"react-router-dom": "^5.2.0",
"react-scripts": "3.4.1",
"redux": "^4.0.5"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

1
public/_redirects Normal file
View File

@ -0,0 +1 @@
/* /index.html 200

73
public/app-page.svg Normal file
View File

@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg16"
version="1.1"
viewBox="0 0 50.799999 49.477084"
height="178"
width="192">
<defs
id="defs10">
<rect
id="rect62"
height="59.03009"
width="94.342064"
y="145.91623"
x="126.6591" />
</defs>
<metadata
id="metadata13">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1">
<text
id="text52"
y="18.58102"
x="1.6502874"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.61345px;line-height:1.13;font-family:'mononoki Nerd Font Mono';-inkscape-font-specification:'mononoki Nerd Font Mono';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.190337"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'mononoki Nerd Font Mono';-inkscape-font-specification:'mononoki Nerd Font Mono';fill:#ffb86c;fill-opacity:1;stroke-width:0.190337"
y="18.58102"
x="1.6502874"
id="tspan50">░█░█░░░░█▀▄</tspan><tspan
id="tspan54"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'mononoki Nerd Font Mono';-inkscape-font-specification:'mononoki Nerd Font Mono';fill:#ffb86c;fill-opacity:1;stroke-width:0.190337"
y="27.184219"
x="1.6502874">░█▀█░░░░█░█</tspan><tspan
id="tspan56"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'mononoki Nerd Font Mono';-inkscape-font-specification:'mononoki Nerd Font Mono';fill:#ffb86c;fill-opacity:1;stroke-width:0.190337"
y="35.787418"
x="1.6502874">░▀░▀░▀░░▀▀░</tspan><tspan
id="tspan58"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'mononoki Nerd Font Mono';-inkscape-font-specification:'mononoki Nerd Font Mono';stroke-width:0.190337"
y="44.390617"
x="1.6502874" /></text>
<text
style="font-size:10.5833px;line-height:1.125;font-family:sans-serif;white-space:pre;shape-inside:url(#rect62);"
id="text60"
xml:space="preserve" />
<text
id="text891"
y="33.40794"
x="5.8149066"
style="font-size:2.28947px;line-height:1.125;font-family:sans-serif;stroke-width:0.0572371"
xml:space="preserve"><tspan
style="stroke-width:0.0572371"
y="33.40794"
x="5.8149066"
id="tspan889"> </tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

22
public/index.html Normal file
View File

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="O. George's portfolio and blog"
/>
<link href="https://fonts.googleapis.com/css2?family=Cuprum:ital,wght@0,400;1,400;1,700&display=swap" rel="stylesheet">
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo.png" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<link rel="icon" type="image/svg+xml" href="logo.png">
<title>Horhik.xyz</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
</html>

BIN
public/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

116
public/logo.svg Normal file
View File

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg8"
version="1.1"
viewBox="0 0 210 297"
height="297mm"
width="210mm">
<defs
id="defs2">
<rect
id="rect849"
height="42.032764"
width="55.861077"
y="181.22374"
x="157.3882" />
<rect
id="rect835"
height="103.7479"
width="127.15798"
y="110.29623"
x="53.174042" />
</defs>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1">
<text
style="line-height:1.125;font-family:sans-serif;font-size:10.58333333px;white-space:pre;shape-inside:url(#rect835);"
id="text833"
xml:space="preserve" />
<text
style="line-height:1.125;font-family:sans-serif;font-size:10.58333333px;white-space:pre;shape-inside:url(#rect849);"
id="text847"
xml:space="preserve" />
<g
transform="translate(-6.665638,53.583117)"
id="g899">
<rect
rx="0"
style="fill:#282a36;fill-opacity:1;stroke-width:9.465;stroke-miterlimit:4;stroke-dasharray:none"
id="rect873"
width="102.57725"
height="129.46489"
x="59.264179"
y="46.933193"
transform="matrix(0,1,1,0,0,0)"
ry="18.287838" />
<rect
ry="0"
transform="matrix(0,1,1,0,0,0)"
y="46.933201"
x="26.202042"
height="129.46487"
width="63.873825"
id="rect873-6"
style="fill:#44475a;fill-opacity:1;stroke-width:9.46499;stroke-miterlimit:4;stroke-dasharray:none"
rx="0" />
</g>
</g>
<g
id="layer2">
<text
id="text841"
y="123.47272"
x="61.213528"
style="font-size:31.1912px;line-height:1.11;font-family:sans-serif;fill:#ffb86c;fill-opacity:1;stroke-width:0.77978"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'mononoki Nerd Font';-inkscape-font-specification:'mononoki Nerd Font';fill:#ffb86c;fill-opacity:1;stroke-width:0.77978"
y="123.47272"
x="61.213528"
id="tspan839">░█░█░</tspan><tspan
id="tspan843"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'mononoki Nerd Font';-inkscape-font-specification:'mononoki Nerd Font';fill:#ffb86c;fill-opacity:1;stroke-width:0.77978"
y="158.39955"
x="61.213528">░█▀█░</tspan><tspan
id="tspan845"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'mononoki Nerd Font';-inkscape-font-specification:'mononoki Nerd Font';fill:#ffb86c;fill-opacity:1;stroke-width:0.77978"
y="193.32639"
x="61.213528">░▀░▀░</tspan></text>
<text
id="text862"
y="152.56528"
x="104.05653"
style="font-size:10.5833px;line-height:1.125;font-family:sans-serif;stroke-width:0.264583"
xml:space="preserve"><tspan
style="stroke-width:0.264583"
y="152.56528"
x="104.05653"
id="tspan860" /></text>
<text
id="text871"
y="139.71835"
x="164.71696"
style="font-size:10.5833px;line-height:1.125;font-family:sans-serif;stroke-width:0.264583"
xml:space="preserve"><tspan
style="stroke-width:0.264583"
y="139.71835"
x="164.71696"
id="tspan869"></tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
public/logo192_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
public/logo512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

156
public/logo_source.svg Normal file
View File

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="logo_source.svg"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
inkscape:export-ydpi="101.67"
inkscape:export-xdpi="101.67"
inkscape:export-filename="/home/horhik/Pictures/icons/siteLogo.png"
id="svg8"
version="1.1"
viewBox="0 0 210 297"
height="297mm"
width="210mm">
<defs
id="defs2">
<rect
id="rect849"
height="42.032764"
width="55.861077"
y="181.22374"
x="157.3882" />
<rect
id="rect835"
height="103.7479"
width="127.15798"
y="110.29623"
x="53.174042" />
</defs>
<sodipodi:namedview
inkscape:window-maximized="0"
inkscape:window-y="20"
inkscape:window-x="1280"
inkscape:window-height="1054"
inkscape:window-width="954"
inkscape:snap-global="true"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer2"
inkscape:document-units="mm"
inkscape:cy="475.70568"
inkscape:cx="486.03366"
inkscape:zoom="0.41387025"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<text
style="line-height:1.125;font-family:sans-serif;font-size:10.58333333px;white-space:pre;shape-inside:url(#rect835);"
id="text833"
xml:space="preserve" />
<text
style="line-height:1.125;font-family:sans-serif;font-size:10.58333333px;white-space:pre;shape-inside:url(#rect849);"
id="text847"
xml:space="preserve" />
<g
inkscape:export-ydpi="101.67"
inkscape:export-xdpi="101.67"
transform="translate(-6.665638,53.583117)"
id="g899">
<rect
rx="0"
style="fill:#282a36;fill-opacity:1;stroke-width:9.465;stroke-miterlimit:4;stroke-dasharray:none"
id="rect873"
width="102.57725"
height="129.46489"
x="59.264179"
y="46.933193"
transform="matrix(0,1,1,0,0,0)"
ry="18.287838" />
<rect
ry="0"
transform="matrix(0,1,1,0,0,0)"
y="46.933201"
x="26.202042"
height="129.46487"
width="63.873825"
id="rect873-6"
style="fill:#44475a;fill-opacity:1;stroke-width:9.46499;stroke-miterlimit:4;stroke-dasharray:none"
rx="0" />
</g>
</g>
<g
inkscape:label="Layer 2"
id="layer2"
inkscape:groupmode="layer">
<text
inkscape:export-ydpi="101.67"
inkscape:export-xdpi="101.67"
id="text841"
y="123.47272"
x="61.213528"
style="font-size:31.1912px;line-height:1.11;font-family:sans-serif;fill:#ffb86c;fill-opacity:1;stroke-width:0.77978"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'mononoki Nerd Font';-inkscape-font-specification:'mononoki Nerd Font';fill:#ffb86c;fill-opacity:1;stroke-width:0.77978"
y="123.47272"
x="61.213528"
id="tspan839"
sodipodi:role="line">░█░█░</tspan><tspan
id="tspan843"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'mononoki Nerd Font';-inkscape-font-specification:'mononoki Nerd Font';fill:#ffb86c;fill-opacity:1;stroke-width:0.77978"
y="158.39955"
x="61.213528"
sodipodi:role="line">░█▀█░</tspan><tspan
id="tspan845"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'mononoki Nerd Font';-inkscape-font-specification:'mononoki Nerd Font';fill:#ffb86c;fill-opacity:1;stroke-width:0.77978"
y="193.32639"
x="61.213528"
sodipodi:role="line">░▀░▀░</tspan></text>
<text
id="text862"
y="152.56528"
x="104.05653"
style="font-size:10.5833px;line-height:1.125;font-family:sans-serif;stroke-width:0.264583"
xml:space="preserve"><tspan
style="stroke-width:0.264583"
y="152.56528"
x="104.05653"
id="tspan860"
sodipodi:role="line" /></text>
<text
id="text871"
y="139.71835"
x="164.71696"
style="font-size:10.5833px;line-height:1.125;font-family:sans-serif;stroke-width:0.264583"
xml:space="preserve"><tspan
style="stroke-width:0.264583"
y="139.71835"
x="164.71696"
id="tspan869"
sodipodi:role="line"></tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

25
public/manifest.json Normal file
View File

@ -0,0 +1,25 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

3
public/robots.txt Normal file
View File

@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

View File

@ -1,377 +0,0 @@
@charset "UTF-8";
/* Dracula theme */
/*
:root {
--background: #282A36 ;
--comment: #6272A4 ;
--selection: #44475A ;
--foreground: #F8F8F2 ;
--cyan: #8BE9FD ;
--orange: #FFB86C;
--green: #50FA7B ;
--pink: #FF79C6 ;
--purple: #BD93F9 ;
--red: #FF5555 ;
--yellow: #F1FA8C;
}
*/
/* Gruvbox theme */
@import url("https://fonts.googleapis.com/css2?family=Cuprum:ital,wght@0,400;0,700;1,400;1,700&display=swap");
:root {
--background: #282828 ;
--comment: #458588 ;
--selection: #665c54 ;
--foreground: #ebdbb2 ;
--cyan: #83a598 ;
--orange: #fe8019;
--green: #98971a ;
--pink: #d3869b ;
--purple: #b16286 ;
--red: #cc241d ;
--yellow: #F1FA8C; }
@font-face {
font-family: 'Mononoki';
src: url("../fonts/mononoki-Regular.eot");
src: url("../fonts/mononoki-Regular.eot") format("embedded-opentype"), url("../fonts/mononoki-Regular.ttf") format("truetype"), url("../fonts/mononoki-Regular.woff2") format("woff2"), url("../fonts/mononoki-Regular.woff") format("woff"); }
@font-face {
font-family: 'Mononoki Bold';
src: url("../fonts/mononoki-Bold.eot");
src: url("../fonts/mononoki-Bold.eot") format("embedded-opentype"), url("../fonts/mononoki-Bold.ttf") format("truetype"), url("../fonts/mononoki-Bold.woff2") format("woff2"), url("../fonts/mononoki-Bold.woff") format("woff"); }
@font-face {
font-family: 'Mononoki';
src: url("../fonts/mononoki-Regular.eot");
src: url("../fonts/mononoki-Regular.eot") format("embedded-opentype"), url("../fonts/mononoki-Regular.ttf") format("truetype"), url("../fonts/mononoki-Regular.woff2") format("woff2"), url("../fonts/mononoki-Regular.woff") format("woff"); }
@font-face {
font-family: 'Twemoji';
src: url("../fonts/Twemoji.ttf") format("truetype"); }
body {
margin: 0;
padding: 0;
background-color: var(--background);
color: var(--foreground);
font-family: 'Mononoki', 'Ubuntu', 'Twemoji' sans-serif;
max-width: 1000px;
margin: 0 auto;
box-shadow: 0px -30px 20px rgba(0, 0, 0, 0.5);
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
padding: 10px 0; }
a, .link {
transition: 0.3s;
color: var(--cyan);
text-decoration: none; }
a:hover, a:focus, .link:hover, .link:focus {
color: var(--pink); }
@media (min-width: 1000px) {
box-shadow: 4px 4px 32px rgba(0, 0, 0, 0.34); }
.h1 {
font-family: 'Mononoki Bold', 'Fira Code SemiBold', 'Twemoji';
font-size: 2em; }
p code, quote code, q code {
font-family: "Mononoki", "Twemoji", monospace;
background: var(--selection);
color: var(--cyan);
border-radius: 3px;
padding: 0 6px; }
img {
width: 100%; }
.logo--wrapper {
display: grid;
font-family: Mononoki, 'Fira Code',monospace, Ubuntu; }
.logo-quote {
text-align: center;
color: var(--foreground);
margin: 10px auto 28px;
max-width: 300px; }
.logo {
margin: 0 auto;
margin-top: 30px;
display: flex;
flex-direction: column;
align-items: center;
align-content: center;
font-family: Mononoki, 'Fira Code',monospace, Ubuntu; }
.toilet-logo {
color: var(--orange);
font-size: 0.9em;
line-height: 1.115em;
margin: 0;
font-family: Mononoki, 'Fira Code',monospace, Ubuntu;
white-space: pre-line; }
.not-found {
display: flex;
justify-content: center;
font-size: 25px;
line-height: 28px;
color: var(--selection);
tansition: 0.3s; }
@media screen and (max-width: 500px) {
.not-found {
font-size: 14px;
line-height: 14px; } }
.page-list {
list-style: none;
display: flex;
justify-content: space-between;
width: 400px;
margin: 0 auto;
font-family: Mononoki;
padding: 0; }
.page-link {
font-size: 0.4em;
line-height: 1.115em;
transition: 0.3s;
margin: 0px 10px; }
.page-link a {
color: var(--green);
text-decoration: none;
display: block; }
.page-link a:hover, .page-link a:focus {
color: var(--pink); }
@media screen and (max-width: 420px) {
.page-link {
line-height: 1.112em;
white-space: pre-line;
margin-bottom: 5px; }
.page-list {
flex-direction: column;
align-items: center;
width: auto; }
.toilet-logo {
font-size: 0.6em; } }
.recent {
margin: 0 auto; }
.recent-header {
text-align: center; }
.recent-list {
list-style: none;
margin: 0;
padding: 0; }
.recent-block {
text-decoration: none;
font-family: "Mononoki", "Twemoji", monospace;
font-size: 1.3em;
box-shadow: 4px 4px 32px rgba(0, 0, 0, 0.34);
background: var(--background);
border-radius: 10px;
word-break: break-word;
display: block;
align-items: center;
align-content: center;
margin: 20px 0;
padding: 10px 20px;
width: max-content;
max-width: 80vw;
color: var(--cyan);
transition: 0.2s; }
.recent-block--left {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
margin-right: auto; }
.recent-block--left::before {
content: '📜';
margin: 5px;
display: flex;
align-items: center;
align-content: center; }
.recent-block--left:hover, .recent-block--left:focus {
padding-left: 40px; }
.recent-block--left:active {
padding-left: 0; }
.recent-block--right {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
margin-left: auto; }
.recent-block--right::after {
content: url("../../../src/svg/github-icon.svg");
margin: 5px;
display: flex;
align-items: center;
align-content: center; }
.recent-block--right:hover, .recent-block--right:focus {
padding-right: 40px; }
.recent-block--right:active {
padding-right: 0; }
.recent-block__time {
float: right;
font-size: 12px;
color: var(--purple); }
.contacts {
list-style: none;
padding: 0;
display: flex;
justify-content: space-around;
flex-wrap: wrap;
margin: 0 auto; }
.contact-link {
text-decoration: none;
font-size: 1em;
color: var(--cyan);
line-height: 0.8em;
margin: 10px 15px;
display: block; }
.copyright {
font-family: "Mononoki", "Twemoji", monospace;
margin-left: 20px; }
.portfolio {
list-style: none;
padding: 20px;
display: flex;
flex-direction: column;
align-content: center;
align-items: center;
justify-content: center; }
.project {
display: flex;
flex-direction: column;
padding: 26px;
box-shadow: 4px 4px 32px rgba(0, 0, 0, 0.34);
border-radius: 10px;
background: var(--background);
font-family: "Mononoki", "Twemoji", monospace;
text-align: center;
margin: 20px 0;
max-width: 70vw;
transition: 0.3s; }
.project:hover, .project:focus {
box-shadow: 4px 4px 24px rgba(0, 0, 0, 0.6); }
.project h2 {
margin-bottom: 0; }
.project-name {
color: var(--green);
margin: 0; }
.project-name a {
color: var(--green);
text-decoration: none; }
.project-gallery {
list-style: none;
padding: 0; }
.project-links {
padding: 0;
list-style: none;
display: flex;
flex-wrap: wrap;
justify-content: space-around; }
.project-icon {
width: 35px;
height: auto;
margin-right: 10px; }
.project-link {
margin-right: 10px;
display: flex;
align-items: center;
align-content: center;
vertical-align: center; }
.project-link::before {
margin-right: 10px; }
.project-link--github::before {
content: url("./github-icon.svg"); }
.project-link--iphone::before {
content: url("./appstore.svg"); }
.project-link--android::before {
content: url("./googleplay.svg"); }
.project-link--app-page::before {
content: url("./app-page.svg"); }
.project-link__logo {
margin-right: 10px;
width: 30px; }
.blog-posts {
list-style: none;
padding: 0;
font-family: 'Cuprum', sans-serif;
transition: 0.5s; }
.blog-posts__item {
font-family: 'Cuprum', sans-serif;
color: var(--foreground); }
.blog-posts__item::before, .blog-posts__item::after {
content: '' !important; }
.blog-posts__item--right p {
text-align: right; }
.blog-posts__item--right ul {
flex-direction: row-reverse; }
.blog-posts__item--left {
text-align: left; }
.nothing {
font-family: 'Mononoki Bold', monospace;
text-align: center; }
.blog-post__header {
color: var(--green); }
.blog-post__header a {
color: var(--green); }
.blog-info__list {
list-style: none;
padding: 0;
display: flex; }
.blog-info__item {
margin-right: 20px;
color: var(--orange);
display: flex;
align-items: center; }
.blog-info__item--created::before {
content: url("../../svg/watch.svg");
margin-right: 10px; }
.blog-info__item--reading-time::before {
content: url("../../svg/stopwatch.svg");
margin-right: 10px; }
.blog-header {
color: var(--green);
font-family: "Mononoki Bold", "Twitter Color Emoji", "Twemoji", sans-serif;
font-size: 2em;
display: inline-flex;
justify-content: center;
text-align: center;
margin: 0 auto;
margin-top: 32px; }
.blog-post {
padding: 0px 30px;
font-size: 22px;
font-family: Ubuntu; }
.blog-post time {
font-family: "Cuprum", "Mononoki", "Twemoji", monospace;
display: flex;
align-content: center;
justify-content: center;
font-size: 0.9em; }

View File

@ -1 +0,0 @@
{"Target":"css/basic.css","MediaType":"text/css","Data":{}}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

63
src/App.js Normal file
View File

@ -0,0 +1,63 @@
import React, {useEffect} from "react";
import "./css/basic.scss";
import HomePage from "./components/pages/homepage";
import { connect } from "react-redux";
import NavHeader from "./components/navigation/nav-header";
import { BrowserRouter, Route, Switch } from "react-router-dom";
import PageLinks from "./components/navigation/page-links";
import Logo from "./components/elements/logo";
import PortfolioPage from "./components/pages/portfolio";
import BlogPage from "./components/pages/blog";
import pages from "./constants/routes";
import {setCurrentPage} from "./actions/route-actions";
function App(props) {
useEffect(() => {
const path = window.location.pathname
switch (path) {
case pages[1].src:
props.setCurrentPage(pages[1])
return 0
case pages[2].src:
props.setCurrentPage(pages[2])
return 0
default:
props.setCurrentPage(pages[0])
return 0
}
}, [] )
return (
<div className="App">
<BrowserRouter>
<Logo child={props.pageQuote} header={props.currentPageName} />
<PageLinks />
<Switch>
<Route
exact
path={'/'}
component={HomePage}
/>
<Route
exact
path={'/blog'}
component={BlogPage}
/>
<Route
exact
path={'/portfolio'}
component={PortfolioPage}
/>
</Switch>
</BrowserRouter>
</div>
);
}
export default connect((state) => ({
currentPath: state.client.currentPath,
currentPage: state.client.currentPage,
currentPageName: state.client.currentPageName,
pageQuote: state.client.pageQuote,
}), {
setCurrentPage
})(App);

View File

@ -0,0 +1,6 @@
import { SET_CURRENT_PAGE } from "../constants/routes";
export const setCurrentPage = (page) => ({
type: SET_CURRENT_PAGE,
page,
});

535
src/ascii/Pagga.js Normal file
View File

@ -0,0 +1,535 @@
export default `tlf2a$ 3 3 8 0 15 0 64 0
===============================================================================
Pagga.tlf, or Pagga, by Sam Hocevar and pagga.
Sam Hocevar sam@hocevar.net
font creation, all base characters
This font is free software. It comes without any warranty, to the extent
permitted by applicable law. You can redistribute it and/or modify it under
the terms of the Do What The Fuck You Want To Public License, Version 2,
as published by Sam Hocevar. See http://sam.zoy.org/wtfpl/COPYING for more
details.
This font is part of TOIlets official distribution. More information
on the TOIlet website at http://caca.zoy.org/wiki/toilet
===============================================================================
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
/@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
\\@
\\@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
\\@
\\@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
@
@
@@
0x00C0 À LATIN CAPITAL LETTER A WITH GRAVE
@
@
@@
0x00C1 Á LATIN CAPITAL LETTER A WITH ACUTE
@
@
@@
0x00C2 Â LATIN CAPITAL LETTER A WITH CIRCUMFLEX
@
@
@@
0x00C3 Ã LATIN CAPITAL LETTER A WITH TILDE
@
@
@@
0x00C5 Å LATIN CAPITAL LETTER A WITH RING ABOVE
@
@
@@
0x00C6 Æ LATIN CAPITAL LETTER AE
@
@
@@
0x00C7 Ç LATIN CAPITAL LETTER C WITH CEDILLA
@
@
@@
0x00C8 È LATIN CAPITAL LETTER E WITH GRAVE
@
@
@@
0x00C9 É LATIN CAPITAL LETTER E WITH ACUTE
@
@
@@
0x00CA Ê LATIN CAPITAL LETTER E WITH CIRCUMFLEX
@
@
@@
0x00CB Ë LATIN CAPITAL LETTER E WITH DIAERESIS
@
@
@@
0x00CC Ì LATIN CAPITAL LETTER I WITH GRAVE
@
@
@@
0x00CD Í LATIN CAPITAL LETTER I WITH ACUTE
@
@
@@
0x00CE Î LATIN CAPITAL LETTER I WITH CIRCUMFLEX
@
@
@@
0x00CF Ï LATIN CAPITAL LETTER I WITH DIAERESIS
@
@
@@
0x00D1 Ñ LATIN CAPITAL LETTER N WITH TILDE
@
@
@@
0x00D2 Ò LATIN CAPITAL LETTER O WITH GRAVE
@
@
@@
0x00D3 Ó LATIN CAPITAL LETTER O WITH ACUTE
@
@
@@
0x00D4 Ô LATIN CAPITAL LETTER O WITH CIRCUMFLEX
@
@
@@
0x00D5 Õ LATIN CAPITAL LETTER O WITH TILDE
@
@
@@
0x00D8 Ø LATIN CAPITAL LETTER O WITH STROKE
@
@
@@
0x00D9 Ù LATIN CAPITAL LETTER U WITH GRAVE
@
@
@@
0x00DA Ú LATIN CAPITAL LETTER U WITH ACUTE
@
@
@@
0x00DB Û LATIN CAPITAL LETTER U WITH CIRCUMFLEX
@
@
@@
0x00DD Ý LATIN CAPITAL LETTER Y WITH ACUTE
@
@
@@
0x00E0 à LATIN SMALL LETTER A WITH GRAVE
@
@
@@
0x00E1 á LATIN SMALL LETTER A WITH ACUTE
@
@
@@
0x00E2 â LATIN SMALL LETTER A WITH CIRCUMFLEX
@
@
@@
0x00E3 ã LATIN SMALL LETTER A WITH TILDE
@
@
@@
0x00E5 å LATIN SMALL LETTER A WITH RING ABOVE
@
@
@@
0x00E6 æ LATIN SMALL LETTER AE
@
@
@@
0x00E7 ç LATIN SMALL LETTER C WITH CEDILLA
@
@
@@
0x00E8 è LATIN SMALL LETTER E WITH GRAVE
@
@
@@
0x00E9 é LATIN SMALL LETTER E WITH ACUTE
@
@
@@
0x00EA ê LATIN SMALL LETTER E WITH CIRCUMFLEX
@
@
@@
0x00EB ë LATIN SMALL LETTER E WITH DIAERESIS
@
@
@@
0x00EC ì LATIN SMALL LETTER I WITH GRAVE
@
@
@@
0x00ED í LATIN SMALL LETTER I WITH ACUTE
@
@
@@
0x00EE î LATIN SMALL LETTER I WITH CIRCUMFLEX
@
@
@@
0x00EF ï LATIN SMALL LETTER I WITH DIAERESIS
@
@
@@
0x00F1 ñ LATIN SMALL LETTER N WITH TILDE
@
@
@@
0x00F2 ò LATIN SMALL LETTER O WITH GRAVE
@
@
@@
0x00F3 ó LATIN SMALL LETTER O WITH ACUTE
@
@
@@
0x00F4 ô LATIN SMALL LETTER O WITH CIRCUMFLEX
@
@
@@
0x00F5 õ LATIN SMALL LETTER O WITH TILDE
@
@
@@
0x00F8 ø LATIN SMALL LETTER O WITH STROKE
@
@
@@
0x00F9 ù LATIN SMALL LETTER U WITH GRAVE
@
@
@@
0x00FA ú LATIN SMALL LETTER U WITH ACUTE
@
@
@@
0x00FB û LATIN SMALL LETTER U WITH CIRCUMFLEX
@
@
@@
0x00FC ü LATIN SMALL LETTER U WITH DIAERESIS
@
@
@@
0x00FD ý LATIN SMALL LETTER Y WITH ACUTE
@
@
@@
0x00FF ÿ LATIN SMALL LETTER Y WITH DIAERESIS
@
@
@@
0x0153 œ LATIN SMALL LIGATURE OE
@
@
@@
`;

View File

@ -0,0 +1,20 @@
import React from "react";
import { connect } from "react-redux";
const About = (props) => {
return (
<section>
<h2>About me</h2>
<section>
<div>
<h3>Who I am?</h3>
</div>
<div>
<h3>What I can?</h3>
</div>
</section>
</section>
);
};
export default connect()(About);

View File

@ -0,0 +1,43 @@
import React from "react";
import asciiWord from "../../functions/ascii-word";
const links = [
{
site: "github",
url: "https://github.com/horhik",
},
{
site: "twitter",
url: "https://twitter.com/HORHl",
},
{
site: "mail",
mail: "horhik@protonmail.com",
},
];
const SocialLink = (props) => {
return (
<a href={props.url} className={" contact-link"}>
<pre>{asciiWord(props.site, "Nacyj")}</pre>
</a>
);
};
const Contacts = (props) => {
return (
<ul className={"contacts"}>
{links.map((link) => (
<li key={link.url}>
{link.mail ? (
<SocialLink url={`mailto:${link.mail}`} site={link.site} />
) : (
<SocialLink url={link.url} site={link.site} />
)}
</li>
))}
</ul>
);
};
export default Contacts;

View File

@ -0,0 +1,26 @@
import React from "react";
import { connect } from "react-redux";
import { Link } from "react-router-dom/cjs/react-router-dom.min";
/*
* props: {
* header,
* pos,
* link
*
* }
* */
const RecentBlock = (props) => {
return (
<Link
to={props.src}
className={`recent-block recent-block--${props.pos === ('github') ? 'right' : "left"}`}
>
{props.header || "no content loaded..."}
</Link>
);
};
export default connect()(RecentBlock);

View File

@ -0,0 +1,26 @@
import React from "react";
import { connect } from "react-redux";
import RecentBlock from "./recent-block";
import Contacts from "../contacts";
const Recent = ({recent}) => {
return (
<section className={"recent"}>
<h1 className={"h1 recent-header"}>Recent</h1>
<ul className="recent-list">
{recent.map((page) => {
return (
<li key={page.src} >
<RecentBlock src={page.src} header={page.content} pos={page.type}>
</RecentBlock>
</li>
);
})}
</ul>
</section>
);
};
export default connect(state => ({
recent: state.content.recentNews
}))(Recent);

View File

@ -0,0 +1,22 @@
import React, { useEffect, useState } from "react";
import asciiWord from "../../functions/ascii-word";
/*
*/
const Logo = (props) => {
useEffect(() => {}, []);
return (
<div className={"logo--wrapper"}>
<div className={"logo"}>
<pre className={"toilet-logo"}>{asciiWord(props.header)}</pre>
</div>
<span className={"logo-quote"}>{props.child}</span>
</div>
);
};
export default Logo;

View File

@ -0,0 +1,8 @@
import React from "react";
import { connect } from "react-redux";
const NavHeader = (props) => {
return <nav></nav>;
};
export default connect()(NavHeader);

Some files were not shown because too many files have changed in this diff Show More